remove: clearance and soldermask. this should be up to the layout
This commit is contained in:
parent
4202ce1dd3
commit
fff1b48c43
|
@ -40,8 +40,6 @@
|
|||
"y": 0, // center vertical position of pad
|
||||
"width": 100, // end position of pad (positive)
|
||||
"height": 100, // end position of pad (positive)
|
||||
"clearance": 5, // clearance of pad (positive, added to each side of copper)
|
||||
"soldermask": 11, // solder mask opening (can be negative, added to each side of copper)
|
||||
"round": true, // round or square edges to start/stop of pad
|
||||
},
|
||||
{
|
||||
|
@ -51,8 +49,6 @@
|
|||
"y": 50, // center vertical position of pin
|
||||
"thickness": 30, // diameter/width of copper pin (positive, >= drill diameter/width)
|
||||
"drill": 20, // diameter of drill
|
||||
"clearance": 5, // clearance of pad (positive, added to each side of copper)
|
||||
"soldermask": 35, // solder mask opening (can be negative, added to each side of copper)
|
||||
"round": true, // shape of pin: round or square
|
||||
}
|
||||
]
|
||||
|
|
157
cvlp_lib.js
157
cvlp_lib.js
|
@ -27,7 +27,7 @@ function cvlp_arc(x, y, radius, start, angle, thickness) {
|
|||
}
|
||||
|
||||
// create a set of elements with an pad element
|
||||
function cvlp_pad(number, x, y, width, height, clearance, soldermask, round=false) {
|
||||
function cvlp_pad(number, x, y, width, height, round=true) {
|
||||
var pad = {}
|
||||
pad.type = "pad"
|
||||
pad.number = number
|
||||
|
@ -35,14 +35,12 @@ function cvlp_pad(number, x, y, width, height, clearance, soldermask, round=fals
|
|||
pad.y = y
|
||||
pad.width = width
|
||||
pad.height = height
|
||||
pad.clearance = clearance
|
||||
pad.soldermask = soldermask
|
||||
pad.round = round
|
||||
return [pad]
|
||||
}
|
||||
|
||||
// create a set of elements with an pin element
|
||||
function cvlp_pin(number, x, y, thickness, drill, clearance, soldermask, round=false) {
|
||||
function cvlp_pin(number, x, y, thickness, drill, round=true) {
|
||||
var pin = {}
|
||||
pin.type = "pin"
|
||||
pin.number = number
|
||||
|
@ -50,8 +48,6 @@ function cvlp_pin(number, x, y, thickness, drill, clearance, soldermask, round=f
|
|||
pin.y = y
|
||||
pin.thickness = thickness
|
||||
pin.drill = drill
|
||||
pin.clearance = clearance
|
||||
pin.soldermask = soldermask
|
||||
pin.round = round
|
||||
return [pin]
|
||||
}
|
||||
|
@ -151,8 +147,6 @@ function json2svg(json) {
|
|||
// add copper and silkscreen layers
|
||||
layers_desc = [ { name: 'copper', stroke: 'black', fill: 'black', display: 'inline'},
|
||||
{ name: 'drill', stroke: 'none', fill: 'white', display: 'inline'},
|
||||
{ name: 'clearance', stroke: 'red', fill: 'none', display: 'none'},
|
||||
{ name: 'soldermask', stroke: 'green', fill: 'none', display: 'none'},
|
||||
{ name: 'silkscreen', stroke: 'gray', fill: 'none', display: 'inline'}
|
||||
]
|
||||
layers = []
|
||||
|
@ -217,34 +211,6 @@ function json2svg(json) {
|
|||
copper.setAttribute('ry',0)
|
||||
}
|
||||
layers['copper'].appendChild(copper)
|
||||
var clearance = document.createElementNS(svgNS,'rect')
|
||||
clearance.style.setProperty('stroke-width',0)
|
||||
clearance.setAttribute('x',element.x-element.width/2-element.clearance)
|
||||
clearance.setAttribute('y',element.y-element.height/2-element.clearance)
|
||||
clearance.setAttribute('width',element.width+element.clearance*2)
|
||||
clearance.setAttribute('height',element.height+element.clearance*2)
|
||||
if (element.round) {
|
||||
clearance.setAttribute('rx',Math.min(element.width,element.height)/2+element.clearance)
|
||||
clearance.setAttribute('ry',Math.min(element.width,element.height)/2+element.clearance)
|
||||
} else {
|
||||
clearance.setAttribute('rx',0)
|
||||
clearance.setAttribute('ry',0)
|
||||
}
|
||||
layers['clearance'].appendChild(clearance)
|
||||
var soldermask = document.createElementNS(svgNS,'rect')
|
||||
soldermask.style.setProperty('stroke-width',0)
|
||||
soldermask.setAttribute('x',element.x-element.width/2-element.soldermask/2)
|
||||
soldermask.setAttribute('y',element.y-element.height/2-element.soldermask/2)
|
||||
soldermask.setAttribute('width',element.width+element.soldermask*2)
|
||||
soldermask.setAttribute('height',element.height+element.soldermask*2)
|
||||
if (element.round) {
|
||||
soldermask.setAttribute('rx',Math.min(element.width,element.height)/2+element.soldermask)
|
||||
soldermask.setAttribute('ry',Math.min(element.width,element.height)/2+element.soldermask)
|
||||
} else {
|
||||
soldermask.setAttribute('rx',0)
|
||||
soldermask.setAttribute('ry',0)
|
||||
}
|
||||
layers['soldermask'].appendChild(soldermask)
|
||||
break
|
||||
case 'pin':
|
||||
break
|
||||
|
@ -268,34 +234,6 @@ function json2svg(json) {
|
|||
drill.setAttribute('cy',element.y)
|
||||
drill.setAttribute('r',element.drill/2)
|
||||
layers['drill'].appendChild(drill)
|
||||
var clearance = document.createElementNS(svgNS,'rect')
|
||||
clearance.style.setProperty('stroke-width',0)
|
||||
clearance.setAttribute('x',element.x-element.thickness/2-element.clearance)
|
||||
clearance.setAttribute('y',element.y-element.thickness/2-element.clearance)
|
||||
clearance.setAttribute('height',element.thickness+element.clearance*2)
|
||||
clearance.setAttribute('width',element.thickness+element.clearance*2)
|
||||
if (element.round) {
|
||||
clearance.setAttribute('rx',element.thickness/2+element.clearance)
|
||||
clearance.setAttribute('ry',element.thickness/2+element.clearance)
|
||||
} else {
|
||||
clearance.setAttribute('rx',0)
|
||||
clearance.setAttribute('ry',0)
|
||||
}
|
||||
layers['clearance'].appendChild(clearance)
|
||||
var soldermask = document.createElementNS(svgNS,'rect')
|
||||
soldermask.style.setProperty('stroke-width',0)
|
||||
soldermask.setAttribute('x',element.x-element.soldermask/2)
|
||||
soldermask.setAttribute('y',element.y-element.soldermask/2)
|
||||
soldermask.setAttribute('height',element.soldermask)
|
||||
soldermask.setAttribute('width',element.soldermask)
|
||||
if (element.round) {
|
||||
soldermask.setAttribute('rx',element.thickness/2+element.soldermask)
|
||||
soldermask.setAttribute('ry',element.thickness/2+element.soldermask)
|
||||
} else {
|
||||
soldermask.setAttribute('rx',0)
|
||||
soldermask.setAttribute('ry',0)
|
||||
}
|
||||
layers['soldermask'].appendChild(soldermask)
|
||||
break
|
||||
default:
|
||||
console.log('unknown element type: '+element.type)
|
||||
|
@ -339,14 +277,14 @@ function json2pcb(json) {
|
|||
y2 = element.y+element.height/2-element.width/2
|
||||
thickness = element.width
|
||||
}
|
||||
pcb += 'Pad['+x1+''+json.unit+' '+y1+''+json.unit+' '+x2+''+json.unit+' '+y2+''+json.unit+' '+thickness+''+json.unit+' '+element.clearance*2+''+json.unit+' '+Math.max(thickness+element.soldermask,0)+''+json.unit+' "" "'+element.number+'" "'
|
||||
pcb += 'Pad['+x1+''+json.unit+' '+y1+''+json.unit+' '+x2+''+json.unit+' '+y2+''+json.unit+' '+thickness+''+json.unit+' '+0+''+json.unit+' '+thickness+''+json.unit+' "" "'+element.number+'" "'
|
||||
if (!element.round) {
|
||||
pcb += 'square'
|
||||
}
|
||||
pcb += '"]\n'
|
||||
break
|
||||
case 'pin':
|
||||
pcb += 'Pin['+element.x+''+json.unit+' '+element.y+''+json.unit+' '+element.thickness+''+json.unit+' '+element.clearance*2+''+json.unit+' '+Math.max(thickness+element.soldermask,0)+''+json.unit+' '+element.drill+''+json.unit+' "" "'+element.number+'" "'
|
||||
pcb += 'Pin['+element.x+''+json.unit+' '+element.y+''+json.unit+' '+element.thickness+''+json.unit+' '+0+''+json.unit+' '+thickness+''+json.unit+' '+element.drill+''+json.unit+' "" "'+element.number+'" "'
|
||||
if (!element.round) {
|
||||
pcb += 'square'
|
||||
}
|
||||
|
@ -389,8 +327,6 @@ function json2kicad(json) {
|
|||
kicad += ' (at '+convert_unit(element.x,json.unit,'mm')+' '+convert_unit(element.y,json.unit,'mm')+')'
|
||||
kicad += ' (size '+convert_unit(element.width,json.unit,'mm')+' '+convert_unit(element.height,json.unit,'mm')+')'
|
||||
kicad += ' (layers F.Cu F.Paste F.Mask)'
|
||||
kicad += ' (clearance '+convert_unit(element.clearance,json.unit,'mm')+')'
|
||||
kicad += ' (solder_mask_margin '+convert_unit(element.soldermask,json.unit,'mm')+')'
|
||||
kicad += ')\n'
|
||||
break
|
||||
case 'pin':
|
||||
|
@ -408,8 +344,6 @@ function json2kicad(json) {
|
|||
kicad += ' (size '+convert_unit(length,json.unit,'mm')+' '+convert_unit(element.thickness,json.unit,'mm')+')'
|
||||
kicad += ' (drill '+convert_unit(element.drill,json.unit,'mm')
|
||||
kicad += ' (layers F.Cu F.Paste F.Mask)'
|
||||
kicad += ' (clearance '+convert_unit(element.clearance,json.unit,'mm')+')'
|
||||
kicad += ' (solder_mask_margin '+convert_unit(element.soldermask,json.unit,'mm')+')'
|
||||
kicad += ')\n'
|
||||
break
|
||||
default:
|
||||
|
@ -436,8 +370,6 @@ function json2eagle(json) {
|
|||
layers_desc = [ { number: 1, name: 'Top', color: 4, fill: 1, visible: 'yes', active: 'yes'},
|
||||
{ number: 17, name: 'Pads', color: 2, fill: 1, visible: 'yes', active: 'yes'},
|
||||
{ number: 21, name: 'tPLace', color: 7, fill: 1, visible: 'yes', active: 'yes'},
|
||||
{ number: 29, name: 'tStop', color: 7, fill: 3, visible: 'no', active: 'yes'},
|
||||
{ number: 39, name: 'tKeepout', color: 4, fill: 11, visible: 'no', active: 'yes'},
|
||||
]
|
||||
for (layer_i in layers_desc) {
|
||||
var layer_desc = layers_desc[layer_i]
|
||||
|
@ -504,53 +436,6 @@ function json2eagle(json) {
|
|||
pad.setAttribute('roundness',0)
|
||||
}
|
||||
packag.appendChild(pad)
|
||||
if (element.round) {
|
||||
var x1, y1, x2, y2, thickness
|
||||
if (element.width>element.height) {
|
||||
x1 = element.x-element.width/2+element.height/2
|
||||
y1 = element.y
|
||||
x2 = element.x+element.width/2-element.height/2
|
||||
y2 = element.y
|
||||
thickness = element.height
|
||||
} else {
|
||||
x1 = element.x
|
||||
y1 = element.y-element.height/2+element.width/2
|
||||
x2 = element.x
|
||||
y2 = element.y+element.height/2-element.width/2
|
||||
thickness = element.width
|
||||
}
|
||||
var clearance = xml.createElement('wire')
|
||||
clearance.setAttribute('x1',convert_unit(x1,json.unit,'mm'))
|
||||
clearance.setAttribute('y1',convert_unit(-1*y1,json.unit,'mm'))
|
||||
clearance.setAttribute('x2',convert_unit(x2,json.unit,'mm'))
|
||||
clearance.setAttribute('y2',convert_unit(-1*y2,json.unit,'mm'))
|
||||
clearance.setAttribute('width',convert_unit(Math.max(thickness+element.clearance*2,0),json.unit,'mm'))
|
||||
clearance.setAttribute('layer','39')
|
||||
packag.appendChild(clearance)
|
||||
var soldermask = xml.createElement('wire')
|
||||
soldermask.setAttribute('x1',convert_unit(x1,json.unit,'mm'))
|
||||
soldermask.setAttribute('y1',convert_unit(-1*y1,json.unit,'mm'))
|
||||
soldermask.setAttribute('x2',convert_unit(x2,json.unit,'mm'))
|
||||
soldermask.setAttribute('y2',convert_unit(-1*y2,json.unit,'mm'))
|
||||
soldermask.setAttribute('width',convert_unit(Math.max(thickness+element.soldermask*2,0),json.unit,'mm'))
|
||||
soldermask.setAttribute('layer','29')
|
||||
packag.appendChild(soldermask)
|
||||
} else {
|
||||
var clearance = xml.createElement('rectangle')
|
||||
clearance.setAttribute('x1',convert_unit(element.x-element.width/2-element.clearance,json.unit,'mm'))
|
||||
clearance.setAttribute('y1',convert_unit(-1*(element.y-element.height/2-element.clearance),json.unit,'mm'))
|
||||
clearance.setAttribute('x2',convert_unit(element.x+element.width/2+element.clearance,json.unit,'mm'))
|
||||
clearance.setAttribute('y2',convert_unit(-1*(element.y+element.height/2+element.clearance),json.unit,'mm'))
|
||||
clearance.setAttribute('layer','39')
|
||||
packag.appendChild(clearance)
|
||||
var soldermask = xml.createElement('rectangle')
|
||||
soldermask.setAttribute('x1',convert_unit(element.x-element.width/2-element.soldermask,json.unit,'mm'))
|
||||
soldermask.setAttribute('y1',convert_unit(-1*(element.y-element.height/2-element.soldermask),json.unit,'mm'))
|
||||
soldermask.setAttribute('x2',convert_unit(element.x+element.width/2+element.soldermask,json.unit,'mm'))
|
||||
soldermask.setAttribute('y2',convert_unit(-1*(element.y+element.height/2+element.soldermask),json.unit,'mm'))
|
||||
soldermask.setAttribute('layer','29')
|
||||
packag.appendChild(soldermask)
|
||||
}
|
||||
break
|
||||
case 'pin':
|
||||
var pin = xml.createElement('pad')
|
||||
|
@ -566,40 +451,6 @@ function json2eagle(json) {
|
|||
pin.setAttribute('shape','square')
|
||||
}
|
||||
packag.appendChild(pin)
|
||||
if (element.round) {
|
||||
var clearance = xml.createElement('wire')
|
||||
clearance.setAttribute('x1',convert_unit(x,json.unit,'mm'))
|
||||
clearance.setAttribute('y2',convert_unit(-1*y,json.unit,'mm'))
|
||||
clearance.setAttribute('x2',convert_unit(x,json.unit,'mm'))
|
||||
clearance.setAttribute('y2',convert_unit(-1*y,json.unit,'mm'))
|
||||
clearance.setAttribute('width',convert_unit(Math.max(element.thickness+element.clearance*2,0),json.unit,'mm'))
|
||||
clearance.setAttribute('layer','39')
|
||||
packag.appendChild(clearance)
|
||||
var soldermask = xml.createElement('wire')
|
||||
soldermask.setAttribute('x1',convert_unit(x,json.unit,'mm'))
|
||||
soldermask.setAttribute('y1',convert_unit(-1*y,json.unit,'mm'))
|
||||
soldermask.setAttribute('x2',convert_unit(x,json.unit,'mm'))
|
||||
soldermask.setAttribute('y2',convert_unit(-1*y,json.unit,'mm'))
|
||||
soldermask.setAttribute('width',convert_unit(Math.max(element.thickness+element.soldermask*2,0),json.unit,'mm'))
|
||||
soldermask.setAttribute('layer','29')
|
||||
packag.appendChild(soldermask)
|
||||
} else {
|
||||
var clearance = xml.createElement('rectangle')
|
||||
clearance.setAttribute('x1',convert_unit(element.x-element.thickness/2-element.clearance,json.unit,'mm'))
|
||||
clearance.setAttribute('y1',convert_unit(-1*(element.y-element.thickness/2-element.clearance),json.unit,'mm'))
|
||||
clearance.setAttribute('x2',convert_unit(element.x+element.thickness/2+element.clearance,json.unit,'mm'))
|
||||
clearance.setAttribute('y2',convert_unit(-1*(element.y+element.thickness/2+element.clearance),json.unit,'mm'))
|
||||
clearance.setAttribute('layer','39')
|
||||
packag.appendChild(clearance)
|
||||
var soldermask = xml.createElement('rectangle')
|
||||
soldermask.setAttribute('x1',convert_unit(element.x-element.thickness/2-element.soldermask,json.unit,'mm'))
|
||||
soldermask.setAttribute('y1',convert_unit(-1*(element.y-element.thickness/2-element.soldermask),json.unit,'mm'))
|
||||
soldermask.setAttribute('x2',convert_unit(element.x+element.thickness/2+element.soldermask,json.unit,'mm'))
|
||||
soldermask.setAttribute('y2',convert_unit(-1*(element.y+element.thickness/2+element.soldermask),json.unit,'mm'))
|
||||
soldermask.setAttribute('layer','29')
|
||||
packag.appendChild(soldermask)
|
||||
}
|
||||
break
|
||||
break
|
||||
default:
|
||||
console.log('unknown element type: '+element.type)
|
||||
|
|
|
@ -42,13 +42,13 @@
|
|||
// draw pads
|
||||
for (var i=0; i<6; i++) {
|
||||
if (document.getElementById("pad_layer_copper").checked) {
|
||||
var west = cvlp_pad(i+1, 0+pad_size/2, (pad_size+pad_chip_spacing*2)+pad_spacing*i, pad_size, pad_thickness, pad_thickness*0.1, -1*Math.max(pad_size,pad_thickness))
|
||||
var west = cvlp_pad(i+1, 0+pad_size/2, (pad_size+pad_chip_spacing*2)+pad_spacing*i, pad_size, pad_thickness)
|
||||
logo.elements = logo.elements.concat(west)
|
||||
var south = cvlp_pad(i+7, (pad_size+pad_chip_spacing*2)+pad_spacing*i, (pad_size+pad_chip_spacing*2+pad_spacing*5+pad_chip_spacing*2)+pad_size/2, pad_thickness, pad_size, pad_thickness*0.1, -1*Math.max(pad_size,pad_thickness))
|
||||
var south = cvlp_pad(i+7, (pad_size+pad_chip_spacing*2)+pad_spacing*i, (pad_size+pad_chip_spacing*2+pad_spacing*5+pad_chip_spacing*2)+pad_size/2, pad_thickness, pad_size)
|
||||
logo.elements = logo.elements.concat(south)
|
||||
var east = cvlp_pad(18-i, (pad_size+pad_chip_spacing*2+pad_spacing*5+pad_chip_spacing*2)+pad_size/2, (pad_size+pad_chip_spacing*2)+pad_spacing*i, pad_size, pad_thickness, pad_thickness*0.1, -1*Math.max(pad_size,pad_thickness))
|
||||
var east = cvlp_pad(18-i, (pad_size+pad_chip_spacing*2+pad_spacing*5+pad_chip_spacing*2)+pad_size/2, (pad_size+pad_chip_spacing*2)+pad_spacing*i, pad_size, pad_thickness)
|
||||
logo.elements = logo.elements.concat(east)
|
||||
var north = cvlp_pad(24-i, pad_size+pad_chip_spacing*2+pad_spacing*i, pad_size/2, pad_thickness, pad_size, pad_thickness*0.1, -1*Math.max(pad_size,pad_thickness))
|
||||
var north = cvlp_pad(24-i, pad_size+pad_chip_spacing*2+pad_spacing*i, pad_size/2, pad_thickness, pad_size)
|
||||
logo.elements = logo.elements.concat(north)
|
||||
} else {
|
||||
var west = cvlp_line(0+pad_thickness/2, (pad_size+pad_chip_spacing*2)+pad_spacing*i, pad_size-pad_thickness/2, (pad_size+pad_chip_spacing*2)+pad_spacing*i, pad_thickness)
|
||||
|
|
Loading…
Reference in New Issue