add conversion to mm for kicad
This commit is contained in:
parent
450b7103a9
commit
50535b62a8
16
cvlp_lib.js
16
cvlp_lib.js
|
@ -356,10 +356,6 @@ function json2pcb(json) {
|
|||
|
||||
// convert CuVoodoo Land Pattern JSON to KiCad s-expression footprint module/file
|
||||
function json2kicad(json) {
|
||||
if (json.unit!='mm') {
|
||||
console.log('KiCad export only supports units in mm')
|
||||
return ''
|
||||
}
|
||||
// create file and add info
|
||||
var kicad = ''
|
||||
kicad += '# footprint generated from CuVoodoo Land Pattern\n'
|
||||
|
@ -372,10 +368,10 @@ function json2kicad(json) {
|
|||
var element = json.elements[element_i]
|
||||
switch (element.type) {
|
||||
case 'line':
|
||||
kicad += '(fp_line (start '+element.x1+' '+element.y1+') (end '+element.x2+' '+element.y2+') (layer F.SilkS) (width '+element.thickness+'))\n'
|
||||
kicad += '(fp_line (start '+convert_unit(element.x1,json.unit,"mm")+' '+convert_unit(element.y1,json.unit,"mm")+') (end '+convert_unit(element.x2,json.unit,"mm")+' '+convert_unit(element.y2,json.unit,"mm")+') (layer F.SilkS) (width '+convert_unit(element.thickness,json.unit,"mm")+'))\n'
|
||||
break
|
||||
case 'arc':
|
||||
kicad += '(fp_arc (start '+element.x+' '+element.y+') (end '+(element.x+element.radius*Math.cos(((-1*element.start)%360)/360.0*Math.PI*2))+' '+(element.y-element.radius*Math.sin(((-1*element.start)%360)/360.0*Math.PI*2))+') (angle '+element.angle+') (layer F.SilkS) (width '+element.thickness+'))\n'
|
||||
kicad += '(fp_arc (start '+convert_unit(element.x,json.unit,"mm")+' '+convert_unit(element.y,json.unit,"mm")+') (end '+convert_unit((element.x+element.radius*Math.cos(((-1*element.start)%360)/360.0*Math.PI*2)),json.unit,"mm")+' '+convert_unit((element.y-element.radius*Math.sin(((-1*element.start)%360)/360.0*Math.PI*2)),json.unit,"mm")+') (angle '+element.angle+') (layer F.SilkS) (width '+convert_unit(element.thickness,json.unit,"mm")+'))\n'
|
||||
break
|
||||
case 'pad':
|
||||
var x = (element.x1+element.x2)/2
|
||||
|
@ -388,11 +384,11 @@ function json2kicad(json) {
|
|||
} else {
|
||||
kicad += 'rect'
|
||||
}
|
||||
kicad += ' (at '+x+' '+y+' '+angle+')'
|
||||
kicad += ' (size '+length+' '+element.thickness+')'
|
||||
kicad += ' (at '+convert_unit(x,json.unit,"mm")+' '+convert_unit(y,json.unit,"mm")+' '+angle+')'
|
||||
kicad += ' (size '+convert_unit(length,json.unit,"mm")+' '+convert_unit(element.thickness,json.unit,"mm")+')'
|
||||
kicad += ' (layers F.Cu F.Paste F.Mask)'
|
||||
kicad += ' (clearance '+element.clearance+')'
|
||||
kicad += ' (solder_mask_margin '+(element.thickness/2*-1+element.soldermask)+')'
|
||||
kicad += ' (clearance '+convert_unit(element.clearance,json.unit,"mm")+')'
|
||||
kicad += ' (solder_mask_margin '+convert_unit((element.thickness/2*-1+element.soldermask),json.unit,"mm")+')'
|
||||
kicad += ')\n'
|
||||
break
|
||||
case 'pin':
|
||||
|
|
Loading…
Reference in New Issue