1
0
ergogen/test/helpers/mock_footprints.js
2022-11-14 00:40:05 +01:00

124 lines
3.5 KiB
JavaScript

exports.inject = (ergogen) => {
ergogen.inject('footprint', 'trace_test', {
nets: {
P1: 'P1'
},
params: {
class: 'T',
side: 'F'
},
body: p => {
return `
(module trace_test (layer F.Cu) (tedit 5CF31DEF)
${p.at /* parametric position */}
(pad 1 smd rect (at 0 0 ${p.rot}) (size 1 1) (layers F.Cu F.Paste F.Mask)
${p.net.P1.str} (solder_mask_margin 0.2))
(pad 2 smd rect (at 5 5 ${p.rot}) (size 1 1) (layers F.Cu F.Paste F.Mask)
${p.net.P1.str} (solder_mask_margin 0.2))
)
(segment (start ${p.xy(0, 0)}) (end ${p.xy(5, 5)}) (width 0.25) (layer F.Cu) (net ${p.net.P1.index}))
`
}
})
ergogen.inject('footprint', 'zone_test', {
nets: {
P1: 'P1'
},
params: {
class: 'T',
side: 'F'
},
body: p => {
return `
(module zone_test (layer F.Cu) (tedit 5CF31DEF)
${p.at /* parametric position */}
(pad 1 smd rect (at 0 0 ${p.rot}) (size 1 1) (layers F.Cu F.Paste F.Mask)
${p.net.P1.str} (solder_mask_margin 0.2))
(pad 2 smd rect (at 5 5 ${p.rot}) (size 1 1) (layers F.Cu F.Paste F.Mask)
${p.net.P1.str} (solder_mask_margin 0.2))
)
(zone (net ${p.net.P1.index}) (net_name ${p.net.P1.name}) (layer ${p.param.side}.Cu) (tstamp 0) (hatch full 0.508)
(connect_pads (clearance 0.508))
(min_thickness 0.254)
(fill yes (arc_segments 32) (thermal_gap 0.508) (thermal_bridge_width 0.508))
(polygon (pts (xy ${p.xy(5, 5)}) (xy ${p.xy(5, -5)}) (xy ${p.xy(-5, -5)}) (xy ${p.xy(-5, 5)})))
)
`
}
})
ergogen.inject('footprint', 'dynamic_net_test', {
nets: {},
params: {
class: 'T',
side: 'F'
},
body: p => {
return `
(module dynamic_net_test (layer F.Cu) (tedit 5CF31DEF)
${p.at /* parametric position */}
(pad 1 smd rect (at 0 0 ${p.rot}) (size 1 1) (layers F.Cu F.Paste F.Mask)
${p.local_net('1').str} (solder_mask_margin 0.2))
(pad 1 smd rect (at 0 0 ${p.rot}) (size 1 1) (layers F.Cu F.Paste F.Mask)
${p.local_net('2').str} (solder_mask_margin 0.2))
(pad 1 smd rect (at 0 0 ${p.rot}) (size 1 1) (layers F.Cu F.Paste F.Mask)
${p.local_net('3').str} (solder_mask_margin 0.2))
)
`
}
})
ergogen.inject('footprint', 'anchor_test', {
nets: {},
params: {
class: 'T',
side: 'F'
},
anchors: {
end: undefined
},
body: p => {
return `
(module anchor_test (layer F.Cu) (tedit 5CF31DEF)
${p.at /* parametric position */}
(fp_line (start 0 0) (end ${p.anchors.end.x} ${p.anchors.end.y}) (layer Dwgs.User) (width 0.05))
)
`
}
})
ergogen.inject('footprint', 'references_test', {
nets: {},
params: {},
body: p => {
return `references ${p.ref_hide ? 'hidden' : 'shown'}`
}
})
}