adapt svg export to new pad definition

This commit is contained in:
King Kévin 2015-09-02 22:07:23 +02:00
parent 3f00f109ac
commit 0ece4c294c
1 changed files with 32 additions and 25 deletions

View File

@ -75,7 +75,7 @@ function cvlp_polyline(points, thickness, closed=false) {
}
// create a set of elements representing a rectangle
// provide top corner, size, an radius of corner
// provide top left corner position, size, and radius of corner
function cvlp_rectangle(x, y, width, height, thickness, radius=0, round=true) {
var rectangle = []
rectangle = rectangle.concat(cvlp_line(x+radius, y, x+width-radius, y, thickness, round))
@ -210,44 +210,51 @@ function json2svg(json) {
layers['silkscreen'].appendChild(arc)
break
case 'pad':
var copper = document.createElementNS(svgNS,'line')
copper.style.setProperty('stroke-width',element.thickness)
var copper = document.createElementNS(svgNS,'rect')
copper.style.setProperty('stroke-width',0)
copper.setAttribute('x',element.x-element.width/2)
copper.setAttribute('y',element.y-element.height/2)
copper.setAttribute('width',element.width)
copper.setAttribute('height',element.height)
if (element.round) {
copper.style.setProperty('stroke-linecap','round')
copper.setAttribute('rx',Math.min(element.width,element.height)/2)
copper.setAttribute('ry',Math.min(element.width,element.height)/2)
} else {
copper.style.setProperty('stroke-linecap','square')
copper.setAttribute('rx',0)
copper.setAttribute('ry',0)
}
copper.setAttribute('x1',element.x1)
copper.setAttribute('y1',element.y1)
copper.setAttribute('x2',element.x2)
copper.setAttribute('y2',element.y2)
layers['copper'].appendChild(copper)
var clearance = document.createElementNS(svgNS,'line')
clearance.style.setProperty('stroke-width',element.thickness+2*element.clearance)
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.style.setProperty('stroke-linecap','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.style.setProperty('stroke-linecap','square')
clearance.setAttribute('rx',0)
clearance.setAttribute('ry',0)
}
clearance.setAttribute('x1',element.x1)
clearance.setAttribute('y1',element.y1)
clearance.setAttribute('x2',element.x2)
clearance.setAttribute('y2',element.y2)
layers['clearance'].appendChild(clearance)
var soldermask = document.createElementNS(svgNS,'line')
soldermask.style.setProperty('stroke-width',element.soldermask)
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.style.setProperty('stroke-linecap','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.style.setProperty('stroke-linecap','square')
soldermask.setAttribute('rx',0)
soldermask.setAttribute('ry',0)
}
soldermask.setAttribute('x1',element.x1)
soldermask.setAttribute('y1',element.y1)
soldermask.setAttribute('x2',element.x2)
soldermask.setAttribute('y2',element.y2)
layers['soldermask'].appendChild(soldermask)
break
case 'pin':
break
var copper = document.createElementNS(svgNS,'rect')
copper.style.setProperty('stroke-width',0)
copper.setAttribute('x',element.x-element.thickness/2)