easyeda 0.0.253 → 0.0.255
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +55 -14
- package/dist/browser/index.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +55 -14
- package/dist/index.js.map +1 -1
- package/dist/main.cjs +57 -16
- package/dist/main.cjs.map +1 -1
- package/package.json +2 -2
package/dist/browser/index.js
CHANGED
|
@@ -8882,6 +8882,11 @@ var unitToMm = {
|
|
|
8882
8882
|
ft: 304.8,
|
|
8883
8883
|
feet: 304.8
|
|
8884
8884
|
};
|
|
8885
|
+
var mmNumberFormatter = new Intl.NumberFormat("en-US", {
|
|
8886
|
+
useGrouping: false,
|
|
8887
|
+
notation: "standard",
|
|
8888
|
+
maximumFractionDigits: 12
|
|
8889
|
+
});
|
|
8885
8890
|
var mm = (n) => {
|
|
8886
8891
|
let unit = typeof n === "number" ? "mm" : n.replace(/^[^a-zA-Z]+/g, "").toLowerCase();
|
|
8887
8892
|
if (!unit)
|
|
@@ -8893,11 +8898,15 @@ var mm = (n) => {
|
|
|
8893
8898
|
throw new Error(`Unsupported unit: ${unit}`);
|
|
8894
8899
|
};
|
|
8895
8900
|
var mmStr = (n) => {
|
|
8896
|
-
return `${mm(n)}mm`;
|
|
8901
|
+
return `${mmNumberFormatter.format(mm(n))}mm`;
|
|
8902
|
+
};
|
|
8903
|
+
var mil2mm = (mil) => {
|
|
8904
|
+
if (typeof mil === "number")
|
|
8905
|
+
return mm(`${mil}mil`);
|
|
8906
|
+
if (mil.match(/^\d+$/))
|
|
8907
|
+
return mm(`${mil}mil`);
|
|
8908
|
+
return mm(mil);
|
|
8897
8909
|
};
|
|
8898
|
-
|
|
8899
|
-
// lib/constants.ts
|
|
8900
|
-
var DEFAULT_PCB_THICKNESS_MM = 1.6;
|
|
8901
8910
|
|
|
8902
8911
|
// lib/math/arc-utils.ts
|
|
8903
8912
|
function generateArcFromSweep(startX, startY, endX, endY, radius, largeArcFlag, sweepFlag) {
|
|
@@ -9024,15 +9033,13 @@ var normalizeSymbolName = (name) => {
|
|
|
9024
9033
|
return trimmedName;
|
|
9025
9034
|
};
|
|
9026
9035
|
|
|
9036
|
+
// lib/constants.ts
|
|
9037
|
+
var DEFAULT_PCB_THICKNESS_MM = 1.6;
|
|
9038
|
+
|
|
9027
9039
|
// lib/convert-easyeda-json-to-tscircuit-soup-json.ts
|
|
9028
9040
|
var EASYEDA_STEP_MODEL_URL = "https://modules.easyeda.com/qAxj6KHrDKw4blvCG8QJPs7Y";
|
|
9029
9041
|
var EASYEDA_OBJ_MODEL_URL = "https://modules.easyeda.com/3dmodel";
|
|
9030
9042
|
var TSCIRCUIT_MODEL_CDN_URL = "https://modelcdn.tscircuit.com/easyeda_models";
|
|
9031
|
-
var mil2mm = (mil) => {
|
|
9032
|
-
if (typeof mil === "number") return mm(`${mil}mil`);
|
|
9033
|
-
if (mil.match(/^\d+$/)) return mm(`${mil}mil`);
|
|
9034
|
-
return mm(mil);
|
|
9035
|
-
};
|
|
9036
9043
|
var milx10 = (mil10) => {
|
|
9037
9044
|
if (typeof mil10 === "number") return mil2mm(mil10) * 10;
|
|
9038
9045
|
if (mil10.match(/^\d+$/)) return mil2mm(mil10) * 10;
|
|
@@ -9164,7 +9171,8 @@ var convertEasyEdaJsonToCircuitJson = (easyEdaJson, {
|
|
|
9164
9171
|
shouldRecenter = true,
|
|
9165
9172
|
cadPositionXMm,
|
|
9166
9173
|
cadPositionYMm,
|
|
9167
|
-
cadPositionZMm
|
|
9174
|
+
cadPositionZMm,
|
|
9175
|
+
showDesignator = false
|
|
9168
9176
|
} = {}) => {
|
|
9169
9177
|
const resolvedCadPositionZMm = cadPositionZMm ?? getCadPositionZMmFromMetadata(easyEdaJson);
|
|
9170
9178
|
const circuitElements = [];
|
|
@@ -9353,6 +9361,7 @@ var convertEasyEdaJsonToCircuitJson = (easyEdaJson, {
|
|
|
9353
9361
|
).forEach((sr, index) => {
|
|
9354
9362
|
circuitElements.push(handleCutout(sr, index));
|
|
9355
9363
|
});
|
|
9364
|
+
let hasFoundDesignator = false;
|
|
9356
9365
|
easyEdaJson.packageDetail.dataStr.shape.forEach((shape, index) => {
|
|
9357
9366
|
if (shape.type === "TRACK") {
|
|
9358
9367
|
if (!isCourtyardLayer(shape.layer)) {
|
|
@@ -9364,12 +9373,22 @@ var convertEasyEdaJsonToCircuitJson = (easyEdaJson, {
|
|
|
9364
9373
|
}
|
|
9365
9374
|
} else if (shape.type === "TEXT") {
|
|
9366
9375
|
if (isCourtyardLayer(shape.layer)) return;
|
|
9376
|
+
let text = shape.text;
|
|
9377
|
+
const designatorPrefix = easyEdaJson.dataStr.head.c_para.pre || "U";
|
|
9378
|
+
const normalizedPrefix = designatorPrefix.replace(/\?/g, "");
|
|
9379
|
+
const trimmedText = text.trim();
|
|
9380
|
+
const isDesignator = trimmedText === designatorPrefix || trimmedText === `${normalizedPrefix}?` || trimmedText === normalizedPrefix;
|
|
9381
|
+
if (isDesignator) {
|
|
9382
|
+
if (!showDesignator) return;
|
|
9383
|
+
text = "{NAME}";
|
|
9384
|
+
hasFoundDesignator = true;
|
|
9385
|
+
}
|
|
9367
9386
|
circuitElements.push(
|
|
9368
9387
|
pcb_silkscreen_text.parse({
|
|
9369
9388
|
type: "pcb_silkscreen_text",
|
|
9370
9389
|
pcb_silkscreen_text_id: `pcb_silkscreen_text_${index + 1}`,
|
|
9371
9390
|
pcb_component_id: "pcb_component_1",
|
|
9372
|
-
text
|
|
9391
|
+
text,
|
|
9373
9392
|
anchor_position: {
|
|
9374
9393
|
x: mil2mm(shape.x),
|
|
9375
9394
|
y: mil2mm(shape.y)
|
|
@@ -9379,12 +9398,31 @@ var convertEasyEdaJsonToCircuitJson = (easyEdaJson, {
|
|
|
9379
9398
|
C: "center",
|
|
9380
9399
|
R: "bottom_right"
|
|
9381
9400
|
}[shape.textAnchor ?? "L"],
|
|
9382
|
-
font_size: shape.size_mm
|
|
9401
|
+
font_size: shape.size_mm || 1,
|
|
9383
9402
|
layer: "top"
|
|
9384
9403
|
})
|
|
9385
9404
|
);
|
|
9386
9405
|
}
|
|
9387
9406
|
});
|
|
9407
|
+
if (!hasFoundDesignator && showDesignator) {
|
|
9408
|
+
const bbox = easyEdaJson.packageDetail.dataStr.BBox;
|
|
9409
|
+
circuitElements.push(
|
|
9410
|
+
pcb_silkscreen_text.parse({
|
|
9411
|
+
type: "pcb_silkscreen_text",
|
|
9412
|
+
pcb_silkscreen_text_id: `pcb_silkscreen_text_designator_fallback`,
|
|
9413
|
+
pcb_component_id: "pcb_component_1",
|
|
9414
|
+
text: "{NAME}",
|
|
9415
|
+
anchor_position: {
|
|
9416
|
+
x: milx10(bbox.x + bbox.width / 2),
|
|
9417
|
+
y: milx10(bbox.y) - 1
|
|
9418
|
+
// 1mm above top edge
|
|
9419
|
+
},
|
|
9420
|
+
anchor_alignment: "center",
|
|
9421
|
+
font_size: 1,
|
|
9422
|
+
layer: "top"
|
|
9423
|
+
})
|
|
9424
|
+
);
|
|
9425
|
+
}
|
|
9388
9426
|
const pcbElements = circuitElements.filter(
|
|
9389
9427
|
(e) => e.type === "pcb_smtpad" || e.type === "pcb_plated_hole" || e.type === "pcb_hole" || e.type === "pcb_via" || e.type === "pcb_courtyard_outline" || e.type === "pcb_silkscreen_path" || e.type === "pcb_silkscreen_text"
|
|
9390
9428
|
);
|
|
@@ -10558,8 +10596,10 @@ var generateFootprintTsx = (circuitJson) => {
|
|
|
10558
10596
|
);
|
|
10559
10597
|
}
|
|
10560
10598
|
for (const silkscreenText of silkscreenTexts) {
|
|
10599
|
+
const isRefDes = silkscreenText.text === "{NAME}";
|
|
10600
|
+
const textValue = isRefDes ? "{props.name}" : JSON.stringify(silkscreenText.text);
|
|
10561
10601
|
elementStrings.push(
|
|
10562
|
-
`<silkscreentext text
|
|
10602
|
+
`<silkscreentext text=${textValue} pcbX="${mmStr(silkscreenText.anchor_position.x)}" pcbY="${mmStr(silkscreenText.anchor_position.y)}" anchorAlignment="${silkscreenText.anchor_alignment}" ${silkscreenText.font_size ? `fontSize="${mmStr(silkscreenText.font_size)}"` : ""} />`
|
|
10563
10603
|
);
|
|
10564
10604
|
}
|
|
10565
10605
|
for (const courtyardOutline of courtyardOutlines) {
|
|
@@ -10643,7 +10683,8 @@ var convertBetterEasyToTsx = async ({
|
|
|
10643
10683
|
shouldRecenter: true,
|
|
10644
10684
|
cadPositionXMm: cadPlacement?.positionXMm,
|
|
10645
10685
|
cadPositionYMm: cadPlacement?.positionYMm,
|
|
10646
|
-
cadPositionZMm: cadPlacement?.positionZMm
|
|
10686
|
+
cadPositionZMm: cadPlacement?.positionZMm,
|
|
10687
|
+
showDesignator: true
|
|
10647
10688
|
});
|
|
10648
10689
|
const [cadComponent] = su(circuitJson).cad_component.list();
|
|
10649
10690
|
if (cadComponent) {
|