Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/fn/diode.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,8 @@ export const diode = (parameters: {
tht: boolean
p: number
}): { circuitJson: AnySoupElement[]; parameters: PassiveDef } => {
return { circuitJson: passive(parameters), parameters }
return {
circuitJson: passive({ ...parameters, roundedPads: true }),
parameters,
}
}
1 change: 1 addition & 0 deletions src/fn/melf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ export const melfWithoutParsing = (parameters: z.infer<typeof melf_def>) => {
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.125,
),
)
}
Expand Down
1 change: 1 addition & 0 deletions src/fn/micromelf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ export const microMelfWithoutParsing = (
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.1,
),
)
}
Expand Down
1 change: 1 addition & 0 deletions src/fn/minimelf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ export const miniMelfWithoutParsing = (
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.125,
),
)
}
Expand Down
1 change: 1 addition & 0 deletions src/fn/sma.ts
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ export const smaWithoutParsing = (parameters: z.infer<typeof sma_def>) => {
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.125,
),
)
}
Expand Down
1 change: 1 addition & 0 deletions src/fn/smb.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ export const smbWithoutParsing = (parameters: z.infer<typeof smb_def>) => {
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.125,
),
)
}
Expand Down
16 changes: 6 additions & 10 deletions src/fn/smbf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,21 +95,17 @@ export const getSmbfCoords = (parameters: {
// Function to generate smbf pads
export const smbfWithoutParsing = (parameters: z.infer<typeof smbf_def>) => {
const pads: AnyCircuitElement[] = []
const p = length.parse(parameters.p)
const pl = length.parse(parameters.pl)
const pw = length.parse(parameters.pw)
const cornerRadius = 0.125

for (let i = 1; i <= parameters.num_pins; i++) {
const { x, y } = getSmbfCoords({
pn: i,
p: Number.parseFloat(parameters.p),
p,
})
pads.push(
rectpad(
i,
x,
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
),
)
pads.push(rectpad(i, x, y, pl, pw, cornerRadius))
}
return pads
}
1 change: 1 addition & 0 deletions src/fn/smc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ export const smcWithoutParsing = (parameters: z.infer<typeof smc_def>) => {
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.125,
),
)
}
Expand Down
1 change: 1 addition & 0 deletions src/fn/smf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ export const smfWithoutParsing = (parameters: z.infer<typeof smf_def>) => {
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.125,
),
)
}
Expand Down
1 change: 1 addition & 0 deletions src/fn/sod110.ts
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ export const sodWithoutParsing = (parameters: z.infer<typeof sod_def>) => {
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.1,
),
)
}
Expand Down
1 change: 1 addition & 0 deletions src/fn/sod123.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ export const sodWithoutParsing = (parameters: z.infer<typeof sod_def>) => {
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.1125,
),
)
}
Expand Down
16 changes: 6 additions & 10 deletions src/fn/sod123f.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,21 +100,17 @@ export const getSodCoords = (parameters: {
// Function to generate SOD pads
export const sodWithoutParsing = (parameters: z.infer<typeof sod_def>) => {
const pads: AnyCircuitElement[] = []
const p = length.parse(parameters.p)
const pl = length.parse(parameters.pl)
const pw = length.parse(parameters.pw)
const cornerRadius = 0.125

for (let i = 1; i <= parameters.num_pins; i++) {
const { x, y } = getSodCoords({
pn: i,
p: Number.parseFloat(parameters.p),
p,
})
pads.push(
rectpad(
i,
x,
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
),
)
pads.push(rectpad(i, x, y, pl, pw, cornerRadius))
}
return pads
}
1 change: 1 addition & 0 deletions src/fn/sod128.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ export const sodWithoutParsing = (parameters: z.infer<typeof sod_def>) => {
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.125,
),
)
}
Expand Down
16 changes: 6 additions & 10 deletions src/fn/sod323.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,21 +97,17 @@ export const getSodCoords = (parameters: {
// Function to generate SOD pads
export const sodWithoutParsing = (parameters: z.infer<typeof sod_def>) => {
const pads: AnyCircuitElement[] = []
const p = length.parse(parameters.p)
const pl = length.parse(parameters.pl)
const pw = length.parse(parameters.pw)
const cornerRadius = 0.05625

for (let i = 1; i <= parameters.num_pins; i++) {
const { x, y } = getSodCoords({
pn: i,
p: Number.parseFloat(parameters.p),
p,
})
pads.push(
rectpad(
i,
x,
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
),
)
pads.push(rectpad(i, x, y, pl, pw, cornerRadius))
}
return pads
}
1 change: 1 addition & 0 deletions src/fn/sod323f.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ export const sodWithoutParsing = (parameters: z.infer<typeof sod_def>) => {
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.0625,
),
)
}
Expand Down
16 changes: 6 additions & 10 deletions src/fn/sod523.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,21 +100,17 @@ export const getSodCoords = (parameters: {
// Function to generate SOD pads
export const sodWithoutParsing = (parameters: z.infer<typeof sod_def>) => {
const pads: AnyCircuitElement[] = []
const p = length.parse(parameters.p)
const pl = length.parse(parameters.pl)
const pw = length.parse(parameters.pw)
const cornerRadius = 0.075

for (let i = 1; i <= parameters.num_pins; i++) {
const { x, y } = getSodCoords({
pn: i,
p: Number.parseFloat(parameters.p),
p,
})
pads.push(
rectpad(
i,
x,
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
),
)
pads.push(rectpad(i, x, y, pl, pw, cornerRadius))
}
return pads
}
1 change: 1 addition & 0 deletions src/fn/sod882.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ export const sodWithoutParsing = (parameters: z.infer<typeof sod_def>) => {
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.025,
),
)
}
Expand Down
1 change: 1 addition & 0 deletions src/fn/sod882d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ export const sodWithoutParsing = (parameters: z.infer<typeof sod_def>) => {
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
0.0625,
),
)
}
Expand Down
16 changes: 6 additions & 10 deletions src/fn/sod923.ts
Original file line number Diff line number Diff line change
Expand Up @@ -124,21 +124,17 @@ export const getSodCoords = (parameters: {
// Function to generate SOD pads
export const sodWithoutParsing = (parameters: z.infer<typeof sod_def>) => {
const pads: AnyCircuitElement[] = []
const p = length.parse(parameters.p)
const pl = length.parse(parameters.pl)
const pw = length.parse(parameters.pw)
const cornerRadius = 0.03125

for (let i = 1; i <= parameters.num_pins; i++) {
const { x, y } = getSodCoords({
pn: i,
p: Number.parseFloat(parameters.p),
p,
})
pads.push(
rectpad(
i,
x,
y,
Number.parseFloat(parameters.pl),
Number.parseFloat(parameters.pw),
),
)
pads.push(rectpad(i, x, y, pl, pw, cornerRadius))
}
return pads
}
9 changes: 7 additions & 2 deletions src/helpers/passive-fn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,7 @@ export const passive_def = base_def.extend({
h: length.optional(),
nonpolarized: z.boolean().optional(),
textbottom: z.boolean().optional(),
roundedPads: z.boolean().optional(),
})

export type PassiveDef = z.input<typeof passive_def>
Expand All @@ -239,6 +240,7 @@ export const passive = (params: PassiveDef): AnyCircuitElement[] => {
h,
nonpolarized,
textbottom,
roundedPads,
string: footprintString,
} = params

Expand Down Expand Up @@ -334,6 +336,9 @@ export const passive = (params: PassiveDef): AnyCircuitElement[] => {
sz?.courtyard_width_mm && sz.courtyard_height_mm
? createCourtyardRect(sz.courtyard_width_mm, sz.courtyard_height_mm)
: null
const cornerRadius = roundedPads
? Math.min(0.125, Math.min(pw, ph) / 8)
: undefined

if (tht) {
return [
Expand All @@ -345,8 +350,8 @@ export const passive = (params: PassiveDef): AnyCircuitElement[] => {
]
}
return [
rectpad(["1", "left"], -p / 2, 0, pw, ph),
rectpad(["2", "right"], p / 2, 0, pw, ph),
rectpad(["1", "left"], -p / 2, 0, pw, ph, cornerRadius),
rectpad(["2", "right"], p / 2, 0, pw, ph, cornerRadius),
...silkscreenLines,
silkscreenRefText,
...(courtyard ? [courtyard] : []),
Expand Down
5 changes: 5 additions & 0 deletions src/helpers/rectpad.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
import type { PcbSmtPad } from "circuit-json"

export const rectpad = (
pn: number | Array<string | number>,
x: number,
y: number,
w: number,
h: number,
cornerRadius?: number,
): PcbSmtPad => {
return {
type: "pcb_smtpad",
Expand All @@ -14,6 +16,9 @@ export const rectpad = (
height: h,
layer: "top",
shape: "rect",
...(cornerRadius !== undefined && {
corner_radius: cornerRadius,
}),
pcb_smtpad_id: "",
port_hints: Array.isArray(pn)
? pn.map((item) => item.toString())
Expand Down
2 changes: 1 addition & 1 deletion tests/__snapshots__/diode.snap.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion tests/__snapshots__/diode01005.snap.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion tests/__snapshots__/diode0201.snap.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading