jscad-electronics 0.0.130 → 0.0.131

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/vanilla.js CHANGED
@@ -442,50 +442,72 @@ var Tssop = ({
442
442
  bodyWidth
443
443
  }) => {
444
444
  const sidePinCount = Math.ceil(pinCount / 2);
445
- const fullLength10 = pitch * pinCount / 2 + leadWidth / 2;
445
+ const isSmallTssop = sidePinCount <= 4;
446
446
  const pinOffsetToCenter = (sidePinCount - 1) * pitch / 2;
447
- const leadThickness = 0.25;
447
+ const bodyLength10 = pitch * Math.max(sidePinCount - 1, 0) + (isSmallTssop ? 1.5 : 1.15);
448
+ const bodyVisualWidth = bodyWidth - (isSmallTssop ? 0.66 : 0.58);
449
+ const leadThickness = 0.15;
450
+ const leadHeight = 0.8;
451
+ const bodyHeight = 1.22;
452
+ const bodyStandoff = 0.24;
453
+ const padContactLength = leadLength * 0.5;
454
+ const leadReach = padContactLength + Math.max(0.22, Math.min(0.4, leadLength * 0.65));
455
+ const leadStartOffset = bodyWidth / 2 + leadLength / 2;
456
+ const curveLength = leadReach * 0.1;
457
+ const notchInset = Math.min(Math.min(bodyVisualWidth, bodyLength10) * 0.18, 1);
458
+ const notchRadius = Math.min(
459
+ Math.min(bodyVisualWidth, bodyLength10) * 0.12,
460
+ 0.45
461
+ );
448
462
  return /* @__PURE__ */ jsxs(Fragment2, { children: [
449
463
  Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx(
450
464
  SmdChipLead,
451
465
  {
452
466
  position: {
453
- x: -bodyWidth / 2 - leadLength,
467
+ x: -leadStartOffset,
454
468
  y: i * pitch - pinOffsetToCenter,
455
469
  z: leadThickness / 2
456
470
  },
457
471
  width: leadWidth,
458
472
  thickness: leadThickness,
459
- padContactLength: leadLength,
460
- bodyDistance: leadLength + 1,
461
- height: 0.8
473
+ padContactLength,
474
+ bodyDistance: leadReach,
475
+ curveLength,
476
+ height: leadHeight
462
477
  },
463
- i
478
+ `left-${i}`
464
479
  )),
465
480
  Array.from({ length: sidePinCount }).map((_, i) => /* @__PURE__ */ jsx(
466
481
  SmdChipLead,
467
482
  {
468
483
  rotation: Math.PI,
469
484
  position: {
470
- x: bodyWidth / 2 + leadLength,
485
+ x: leadStartOffset,
471
486
  y: i * pitch - pinOffsetToCenter,
472
487
  z: leadThickness / 2
473
488
  },
474
489
  width: leadWidth,
475
490
  thickness: leadThickness,
476
- padContactLength: leadLength,
477
- bodyDistance: leadLength + 1,
478
- height: 0.8
491
+ padContactLength,
492
+ bodyDistance: leadReach,
493
+ curveLength,
494
+ height: leadHeight
479
495
  },
480
- i
496
+ `right-${i}`
481
497
  )),
482
498
  /* @__PURE__ */ jsx(
483
499
  ChipBody,
484
500
  {
485
- center: { x: 0, y: 0, z: leadThickness / 2 },
486
- width: bodyWidth - leadWidth - 1,
487
- length: fullLength10,
488
- height: 1.5
501
+ center: { x: 0, y: 0, z: 0 },
502
+ width: bodyVisualWidth,
503
+ length: bodyLength10,
504
+ height: bodyHeight,
505
+ notchPosition: {
506
+ x: -(bodyVisualWidth / 2 - notchInset - 0.2),
507
+ y: bodyLength10 / 2 - notchInset - 0.2,
508
+ z: bodyHeight
509
+ },
510
+ notchRadius
489
511
  }
490
512
  )
491
513
  ] });