implemented change_unit

This commit is contained in:
King Kévin 2015-08-28 11:58:30 +02:00
parent 34f4e35361
commit 16fa8a746c
2 changed files with 65 additions and 46 deletions

View File

@ -91,46 +91,6 @@ function cvlp_rectangle(x, y, width, height, thickness, radius=0, round=true) {
return rectangle return rectangle
} }
// convert value from one unit to another
// units allowed: mm, in, mil
// returns converted value, on null if unknown unit
function convert_unit(value, from, to)
{
// don't convert if the unit is the same (avoid calculation imprecisions)
if (from==to) {
return value;
}
// convert to µm
var mum = 0;
switch (from) {
case 'mm':
mum = value*1000;
break;
case 'in':
mum = value*1000*25.40;
break;
case 'mil':
mum = value*25.40;
break;
default:
return null;
}
switch (to) {
case 'mm':
mum = mum/1000;
break;
case 'in':
mum = mum/1000/25.40;
break;
case 'mil':
mum = mum/25.40;
break;
default:
return null;
}
return fixed(mum);
}
// convert JSON to SVG // convert JSON to SVG
function json2svg(json) { function json2svg(json) {
// create svg // create svg

View File

@ -21,12 +21,12 @@
// draw logo // draw logo
function draw() { function draw() {
// get values // get values
var pad_size = parseInt(pad_size_input.value,10) var pad_size = parseFloat(pad_size_input.value)
var pad_thickness = parseInt(pad_thickness_input.value,10) var pad_thickness = parseFloat(pad_thickness_input.value)
var pad_spacing = parseInt(pad_spacing_input.value,10) var pad_spacing = parseFloat(pad_spacing_input.value)
var pad_chip_spacing = parseInt(pad_chip_spacing_input.value,10) var pad_chip_spacing = parseFloat(pad_chip_spacing_input.value)
var chip_thickness = parseInt(chip_thickness_input.value,10) var chip_thickness = parseFloat(chip_thickness_input.value)
var text_thickness = parseInt(text_thickness_input.value,10) var text_thickness = parseFloat(text_thickness_input.value)
// set values in logo // set values in logo
var size = pad_thickness+pad_size+pad_chip_spacing*2+pad_spacing*5+pad_chip_spacing*2+pad_size+pad_thickness var size = pad_thickness+pad_size+pad_chip_spacing*2+pad_spacing*5+pad_chip_spacing*2+pad_size+pad_thickness
@ -146,6 +146,65 @@
return return
} }
// get values
var pad_size = parseFloat(pad_size_input.value)
var pad_thickness = parseFloat(pad_thickness_input.value)
var pad_spacing = parseFloat(pad_spacing_input.value)
var pad_chip_spacing = parseFloat(pad_chip_spacing_input.value)
var chip_thickness = parseFloat(chip_thickness_input.value)
var text_thickness = parseFloat(text_thickness_input.value)
// set converted values
pad_size_input.value = convert_unit(pad_size, logo.unit, unit)
pad_thickness_input.value = convert_unit(pad_thickness, logo.unit, unit)
pad_spacing_input.value = convert_unit(pad_spacing, logo.unit, unit)
pad_chip_spacing_input.value = convert_unit(pad_chip_spacing, logo.unit, unit)
chip_thickness_input.value = convert_unit(chip_thickness, logo.unit, unit)
text_thickness_input.value = convert_unit(text_thickness, logo.unit, unit)
// save unit and redraw
logo.unit = unit
draw()
}
// convert value from one unit to another
// units allowed: mm, in, mil
// returns converted value, on null if unknown unit
function convert_unit(value, from, to)
{
// don't convert if the unit is the same (avoid calculation imprecisions)
if (from==to) {
return value;
}
// convert to µm
var mum = 0;
switch (from) {
case 'mm':
mum = value*1000;
break;
case 'in':
mum = value*1000*25.40;
break;
case 'mil':
mum = value*25.40;
break;
default:
return null;
}
switch (to) {
case 'mm':
mum = mum/1000;
break;
case 'in':
mum = mum/1000/25.40;
break;
case 'mil':
mum = mum/25.40;
break;
default:
return null;
}
return mum;
} }
</script> </script>
<div id="svg"></div> <div id="svg"></div>