diff --git a/index.js b/index.js index 7e0fd55..a9b2e86 100644 --- a/index.js +++ b/index.js @@ -26791,6 +26791,7 @@ __export(exports_fn, { sod128: () => sod128, sod123f: () => sod123f, sod123: () => sod123, + smb: () => smb, res: () => res, quad: () => quad, qfp: () => qfp, @@ -34423,6 +34424,68 @@ var microMelfWithoutParsing = (parameters) => { } return pads; }; +// src/fn/smb.ts +var smb_def = z.object({ + fn: z.string(), + num_pins: z.literal(2).default(2), + w: z.string().default("7.30mm"), + h: z.string().default("4.40mm"), + pl: z.string().default("2.50mm"), + pw: z.string().default("2.30mm"), + p: z.string().default("4.30mm") +}); +var smb = (raw_params) => { + const parameters = smb_def.parse(raw_params); + const silkscreenRefText = silkscreenRef(0, length.parse(parameters.h) / 2 + 0.5, 0.3); + const silkscreenLine = { + type: "pcb_silkscreen_path", + layer: "top", + pcb_component_id: "", + route: [ + { + x: length.parse(parameters.p) / 2, + y: length.parse(parameters.h) / 2 + }, + { + x: -length.parse(parameters.w) / 2 - 0.1, + y: length.parse(parameters.h) / 2 + }, + { + x: -length.parse(parameters.w) / 2 - 0.1, + y: -length.parse(parameters.h) / 2 + }, + { + x: length.parse(parameters.p) / 2, + y: -length.parse(parameters.h) / 2 + } + ], + stroke_width: 0.1, + pcb_silkscreen_path_id: "" + }; + return { + circuitJson: smbWithoutParsing(parameters).concat(silkscreenLine, silkscreenRefText), + parameters + }; +}; +var getSmbCoords = (parameters) => { + const { pn, p } = parameters; + if (pn === 1) { + return { x: -p / 2, y: 0 }; + } else { + return { x: p / 2, y: 0 }; + } +}; +var smbWithoutParsing = (parameters) => { + const pads = []; + for (let i = 1;i <= parameters.num_pins; i++) { + const { x, y } = getSmbCoords({ + pn: i, + p: Number.parseFloat(parameters.p) + }); + pads.push(rectpad(i, x, y, Number.parseFloat(parameters.pl), Number.parseFloat(parameters.pw))); + } + return pads; +}; // src/helpers/is-not-null.ts function isNotNull(value) { return value !== null; @@ -35443,6 +35506,22 @@ var content_default = [ {REF}`, title: "stampreceiver_left20_right20_bottom3_top2_w21mm_p2.54mm" }, + { + svgContent: `{REF}`, + title: "smb" + }, { svgContent: `