@tscircuit/3d-viewer 0.0.329 → 0.0.331

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.
Files changed (2) hide show
  1. package/dist/index.js +62 -69
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -16749,9 +16749,10 @@ var u_curve = Array.from(
16749
16749
  function convertMilToMm(value) {
16750
16750
  if (typeof value === "string") {
16751
16751
  if (value.trim().toLowerCase().endsWith("mil")) {
16752
- return parseFloat(value) * 0.0254;
16752
+ const num = Number.parseFloat(value);
16753
+ return num * 0.0254;
16753
16754
  }
16754
- return parseFloat(value);
16755
+ return Number.parseFloat(value);
16755
16756
  }
16756
16757
  return Number(value);
16757
16758
  }
@@ -16798,9 +16799,9 @@ var getCcwDipCoords = (pinCount, pn, w, p) => {
16798
16799
  const gs = p;
16799
16800
  const h = gs * leftPinGaps;
16800
16801
  if (isLeft) {
16801
- return { x: -w / 2, y: h / 2 - (pn - 1) * gs };
16802
+ return { x: -w / 2 - 0.4, y: h / 2 - (pn - 1) * gs };
16802
16803
  }
16803
- return { x: w / 2, y: -h / 2 + (pn - ph - 1) * gs };
16804
+ return { x: w / 2 + 0.4, y: -h / 2 + (pn - ph - 1) * gs };
16804
16805
  };
16805
16806
  var dip = (raw_params) => {
16806
16807
  const parameters = dip_def.parse(raw_params);
@@ -16816,9 +16817,7 @@ var dip = (raw_params) => {
16816
16817
  platedhole(i + 1, x, y, parameters.id ?? "0.8mm", parameters.od ?? "1mm")
16817
16818
  );
16818
16819
  }
16819
- const padEdgeHeight = (parameters.num_pins / 2 - 1) * parameters.p + parameters.od;
16820
- const innerGap = parameters.w - parameters.od;
16821
- const sw = innerGap - 1;
16820
+ const sw = parameters.w - parameters.od - 0.4;
16822
16821
  const sh = (parameters.num_pins / 2 - 1) * parameters.p + parameters.od + 0.4;
16823
16822
  const silkscreenBorder = {
16824
16823
  layer: "top",
@@ -16827,7 +16826,7 @@ var dip = (raw_params) => {
16827
16826
  route: [
16828
16827
  { x: -sw / 2, y: -sh / 2 },
16829
16828
  { x: -sw / 2, y: sh / 2 },
16830
- // U-notch curve outside the pads
16829
+ // Little U shape at the top
16831
16830
  ...u_curve.map(({ x, y }) => ({
16832
16831
  x: x * sw / 6,
16833
16832
  y: y * sw / 6 + sh / 2
@@ -16842,26 +16841,24 @@ var dip = (raw_params) => {
16842
16841
  const silkscreenPins = [];
16843
16842
  for (let i = 0; i < parameters.num_pins; i++) {
16844
16843
  const isLeft = i < parameters.num_pins / 2;
16845
- const clearance = 0.6;
16846
- const { y: pinCenterY } = getCcwDipCoords(
16847
- parameters.num_pins,
16848
- i + 1,
16849
- parameters.w,
16850
- parameters.p ?? 2.54
16851
- );
16852
- const pinLabelX = isLeft ? -parameters.w / 2 - parameters.od / 2 - clearance : parameters.w / 2 + parameters.od / 2 + clearance;
16853
- const pinLabelY = pinCenterY;
16854
- silkscreenPins.push({
16844
+ const pinLabelX = isLeft ? -parameters.w / 2 - parameters.p / 2 - 0.2 : parameters.p / 2 + parameters.w / 2 + 0.2;
16845
+ const pinLabelY = isLeft ? (-sh + 1.6) / 2 + i * parameters.p : (-sh + 1.6) / 2 + (i - parameters.num_pins / 2) * parameters.p;
16846
+ const silkscreenPin2 = {
16855
16847
  type: "pcb_fabrication_note_text",
16856
- pcb_fabrication_note_text_id: `pin_${i + 1}`,
16857
16848
  layer: "top",
16858
16849
  pcb_component_id: `pin_${i + 1}`,
16850
+ pcb_silkscreen_text_id: `pin_${i + 1}`,
16859
16851
  text: `{pin${i + 1}}`,
16860
- anchor_position: { x: pinLabelX, y: pinLabelY },
16852
+ anchor_position: {
16853
+ x: pinLabelX,
16854
+ y: pinLabelY
16855
+ },
16861
16856
  font_size: 0.3,
16857
+ font_color: "red",
16862
16858
  font: "tscircuit2024",
16863
- anchor_alignment: "top_left"
16864
- });
16859
+ anchor_alignment: "top-left"
16860
+ };
16861
+ silkscreenPins.push(silkscreenPin2);
16865
16862
  }
16866
16863
  const silkscreenRefText = silkscreenRef(0, sh / 2 + 0.5, 0.4);
16867
16864
  return {
@@ -16909,11 +16906,11 @@ var footprintSizes = [
16909
16906
  {
16910
16907
  imperial: "1812",
16911
16908
  metric: "4532",
16912
- p_mm_min: 4.275,
16913
- pw_mm_min: 1.125,
16909
+ p_mm_min: 4.1,
16910
+ pw_mm_min: 1.4,
16914
16911
  ph_mm_min: 3.4,
16915
- w_mm_min: 5.4,
16916
- h_mm_min: 3.4
16912
+ w_mm_min: 0.58,
16913
+ h_mm_min: 0.21
16917
16914
  },
16918
16915
  {
16919
16916
  imperial: "0201",
@@ -16927,65 +16924,65 @@ var footprintSizes = [
16927
16924
  {
16928
16925
  imperial: "0402",
16929
16926
  metric: "1005",
16930
- p_mm_min: 1.02,
16931
- pw_mm_min: 0.54,
16932
- ph_mm_min: 0.64,
16933
- w_mm_min: 1.56,
16934
- h_mm_min: 0.64
16927
+ p_mm_min: 1,
16928
+ pw_mm_min: 0.6,
16929
+ ph_mm_min: 0.6,
16930
+ w_mm_min: 1.6,
16931
+ h_mm_min: 0.7
16935
16932
  },
16936
16933
  {
16937
16934
  imperial: "0603",
16938
16935
  metric: "1608",
16939
- p_mm_min: 1.65,
16940
- pw_mm_min: 0.8,
16941
- ph_mm_min: 0.95,
16942
- w_mm_min: 2.45,
16943
- h_mm_min: 0.95
16936
+ p_mm_min: 1.7,
16937
+ pw_mm_min: 1.1,
16938
+ ph_mm_min: 1,
16939
+ w_mm_min: 2.6,
16940
+ h_mm_min: 1
16944
16941
  },
16945
16942
  {
16946
16943
  imperial: "0805",
16947
16944
  metric: "2012",
16948
- p_mm_min: 1.825,
16949
- pw_mm_min: 1.025,
16950
- ph_mm_min: 1.4,
16951
- w_mm_min: 2.8499999999999996,
16952
- h_mm_min: 1.4
16945
+ p_mm_min: 2.15,
16946
+ pw_mm_min: 0.85,
16947
+ ph_mm_min: 1.2,
16948
+ w_mm_min: 3,
16949
+ h_mm_min: 1.2
16953
16950
  },
16954
16951
  {
16955
16952
  imperial: "1206",
16956
16953
  metric: "3216",
16957
- p_mm_min: 2.925,
16958
- pw_mm_min: 1.125,
16959
- ph_mm_min: 1.75,
16960
- w_mm_min: 4.05,
16961
- h_mm_min: 1.75
16954
+ p_mm_min: 3.2,
16955
+ pw_mm_min: 1,
16956
+ ph_mm_min: 1.9,
16957
+ w_mm_min: 4.2,
16958
+ h_mm_min: 2.5
16962
16959
  },
16963
16960
  {
16964
16961
  imperial: "1210",
16965
16962
  metric: "3225",
16966
- p_mm_min: 2.925,
16967
- pw_mm_min: 1.125,
16963
+ p_mm_min: 2.8,
16964
+ pw_mm_min: 1.25,
16968
16965
  ph_mm_min: 2.65,
16969
- w_mm_min: 4.05,
16970
- h_mm_min: 2.65
16966
+ w_mm_min: 4.5,
16967
+ h_mm_min: 3.3
16971
16968
  },
16972
16969
  {
16973
16970
  imperial: "2010",
16974
16971
  metric: "5025",
16975
- p_mm_min: 4.625,
16976
- pw_mm_min: 1.225,
16977
- ph_mm_min: 2.65,
16978
- w_mm_min: 5.85,
16979
- h_mm_min: 2.65
16972
+ p_mm_min: 3.6,
16973
+ pw_mm_min: 1.2,
16974
+ ph_mm_min: 1.2,
16975
+ w_mm_min: 5,
16976
+ h_mm_min: 2.5
16980
16977
  },
16981
16978
  {
16982
16979
  imperial: "2512",
16983
16980
  metric: "6332",
16984
- p_mm_min: 5.925,
16985
- pw_mm_min: 1.225,
16981
+ p_mm_min: 5.8,
16982
+ pw_mm_min: 1.35,
16986
16983
  ph_mm_min: 3.35,
16987
- w_mm_min: 7.15,
16988
- h_mm_min: 3.35
16984
+ w_mm_min: 6.3,
16985
+ h_mm_min: 3.2
16989
16986
  }
16990
16987
  ];
16991
16988
  var metricMap = Object.fromEntries(footprintSizes.map((s) => [s.metric, s]));
@@ -23499,11 +23496,11 @@ var applyOrigin = (elements, origin) => {
23499
23496
  var string2 = (def) => {
23500
23497
  let fp2 = footprinter();
23501
23498
  const modifiedDef = def.replace(/^((?:\d{4}|\d{5}))(?=$|_)/, "res$1");
23502
- const def_parts = modifiedDef.split(/_(?!metric)/).map((s) => {
23499
+ const def_parts = modifiedDef.split("_").map((s) => {
23503
23500
  const m = s.match(/([a-z]+)([\(\d\.\+\?].*)?/);
23504
23501
  const [_, fn, v] = m ?? [];
23505
23502
  if (v?.includes("?")) return null;
23506
- return { fn, v };
23503
+ return { fn, v: m?.[2] };
23507
23504
  }).filter(isNotNull);
23508
23505
  for (const { fn, v } of def_parts) {
23509
23506
  fp2 = fp2[fn](v);
@@ -23567,11 +23564,7 @@ var footprinter = () => {
23567
23564
  target.fn = prop;
23568
23565
  if (prop === "res" || prop === "cap") {
23569
23566
  if (v) {
23570
- if (typeof v === "string" && v.includes("_metric")) {
23571
- target.metric = v.split("_metric")[0];
23572
- } else {
23573
- target.imperial = v;
23574
- }
23567
+ target.imperial = v;
23575
23568
  }
23576
23569
  } else {
23577
23570
  target.num_pins = Number.isNaN(Number.parseFloat(v)) ? void 0 : Number.parseFloat(v);
@@ -25344,7 +25337,7 @@ import * as THREE9 from "three";
25344
25337
  // package.json
25345
25338
  var package_default = {
25346
25339
  name: "@tscircuit/3d-viewer",
25347
- version: "0.0.328",
25340
+ version: "0.0.330",
25348
25341
  main: "./dist/index.js",
25349
25342
  module: "./dist/index.js",
25350
25343
  type: "module",
@@ -25393,8 +25386,8 @@ var package_default = {
25393
25386
  "@storybook/blocks": "9.0.0-alpha.17",
25394
25387
  "@storybook/react-vite": "^9.1.2",
25395
25388
  "@tscircuit/circuit-json-util": "^0.0.64",
25396
- "@tscircuit/core": "^0.0.616",
25397
- "@tscircuit/props": "^0.0.283",
25389
+ "@tscircuit/core": "^0.0.626",
25390
+ "@tscircuit/props": "^0.0.285",
25398
25391
  "@types/jsdom": "^21.1.7",
25399
25392
  "@types/react": "19",
25400
25393
  "@types/react-dom": "19",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/3d-viewer",
3
- "version": "0.0.329",
3
+ "version": "0.0.331",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "type": "module",
@@ -49,8 +49,8 @@
49
49
  "@storybook/blocks": "9.0.0-alpha.17",
50
50
  "@storybook/react-vite": "^9.1.2",
51
51
  "@tscircuit/circuit-json-util": "^0.0.64",
52
- "@tscircuit/core": "^0.0.616",
53
- "@tscircuit/props": "^0.0.283",
52
+ "@tscircuit/core": "^0.0.626",
53
+ "@tscircuit/props": "^0.0.285",
54
54
  "@types/jsdom": "^21.1.7",
55
55
  "@types/react": "19",
56
56
  "@types/react-dom": "19",