designix 0.5.29 → 0.5.30

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/index.js CHANGED
@@ -1432,7 +1432,7 @@ import {
1432
1432
  checkGeom as checkGeom3,
1433
1433
  prefixLog as prefixLog3,
1434
1434
  figure as figure8,
1435
- degToRad as degToRad4,
1435
+ degToRad as degToRad5,
1436
1436
  radToDeg as radToDeg6,
1437
1437
  ffix as ffix10,
1438
1438
  pNumber as pNumber8,
@@ -2349,7 +2349,10 @@ var poleStaticDef = {
2349
2349
  import {
2350
2350
  contour as contour7,
2351
2351
  contourCircle as contourCircle5,
2352
+ ctrRectangle,
2353
+ ctrRectRot,
2352
2354
  figure as figure5,
2355
+ degToRad as degToRad4,
2353
2356
  radToDeg as radToDeg4,
2354
2357
  ffix as ffix7,
2355
2358
  pNumber as pNumber5,
@@ -2393,7 +2396,8 @@ var pDef5 = {
2393
2396
  pNumber5("H6", "mm", 100, 1, 1e3, 10),
2394
2397
  pNumber5("H7", "mm", 600, 10, 2e3, 10),
2395
2398
  pNumber5("L9", "mm", 300, 1, 1e3, 10),
2396
- pNumber5("R9", "mm", 50, 0, 300, 1)
2399
+ pNumber5("R9", "mm", 50, 0, 300, 1),
2400
+ pNumber5("doorOrientation", "degree", 0, -180, 180, 1)
2397
2401
  ],
2398
2402
  paramSvg: {
2399
2403
  D1: "rake_face.svg",
@@ -2423,7 +2427,8 @@ var pDef5 = {
2423
2427
  H6: "rake_door.svg",
2424
2428
  H7: "rake_door.svg",
2425
2429
  L9: "rake_door.svg",
2426
- R9: "rake_door.svg"
2430
+ R9: "rake_door.svg",
2431
+ doorOrientation: "rake_door.svg"
2427
2432
  },
2428
2433
  sim: {
2429
2434
  tMax: 180,
@@ -2434,10 +2439,8 @@ var pDef5 = {
2434
2439
  };
2435
2440
  function pGeom5(t, param, suffix = "") {
2436
2441
  const rGeome = initGeom5(pDef5.partName + suffix);
2437
- let ctrCone;
2438
- let ctrConePlus;
2439
- let ctrRect;
2440
2442
  const figCone = figure5();
2443
+ const figConeHollow = figure5();
2441
2444
  const figBeam = figure5();
2442
2445
  const figBeamHollow = figure5();
2443
2446
  const figDisc = figure5();
@@ -2458,28 +2461,6 @@ function pGeom5(t, param, suffix = "") {
2458
2461
  const R8 = param.D8 / 2;
2459
2462
  const H1H2 = param.H1 + param.H2;
2460
2463
  const H1H5 = H1H2 - param.H4 + param.H5;
2461
- rGeome.logstr += `cone-height: ${ffix7(H1H2)} mm
2462
- `;
2463
- rGeome.logstr += `cone-height total: ${ffix7(H1H5)} mm
2464
- `;
2465
- if (param.D2 > param.D1) {
2466
- throw `err110: D2 ${param.D2} is larger than D1 ${param.D1}`;
2467
- }
2468
- if (param.D3 + param.E1 > param.D1) {
2469
- throw `err113: D3 ${param.D3} is too large compare to D1 ${param.D1} and E1 ${param.E1}`;
2470
- }
2471
- if (param.H3 + param.E3 > param.H1) {
2472
- throw `err116: H3 ${param.H3} is too large compare to H1 ${param.H1} and E3 ${param.E3}`;
2473
- }
2474
- if (param.H4 + R4 > param.H2) {
2475
- throw `err119: H4 ${param.H4} is too large compare to H2 ${param.H2} and D4 ${param.D4}`;
2476
- }
2477
- if (param.E4 > R4) {
2478
- throw `err122: E4 ${param.E4} is too large compare to D4 ${param.D4}`;
2479
- }
2480
- if (param.D8 <= param.D5) {
2481
- throw `err146: D8 ${param.D8} is too small compare to D5 ${param.D5}`;
2482
- }
2483
2464
  const beamL = 4 * param.L4 + param.L5 + 2 * param.L6;
2484
2465
  const beamH = param.H1 + param.H2 - param.H4;
2485
2466
  const handLowX = R4 * Math.cos(Math.PI / 6);
@@ -2490,17 +2471,10 @@ function pGeom5(t, param, suffix = "") {
2490
2471
  const handHighYext = R8 * Math.sin(Math.PI / 6);
2491
2472
  const handPos = [-beamL / 2, -param.L5 / 2 - param.L4, param.L5 / 2, beamL / 2 - param.L4];
2492
2473
  const wingLy = param.H2 - param.L8 - param.H4 - R4;
2493
- if (wingLy < 0) {
2494
- throw `err140: H2 ${param.H2} too small compare to L8 ${param.L8}, H4 ${param.H4} and D4 ${param.D4}`;
2495
- }
2496
2474
  const coneAngle = Math.atan2(R1 - R2, param.H2);
2497
- rGeome.logstr += `cone-angle: ${ffix7(radToDeg4(coneAngle))} degree
2498
- `;
2499
2475
  const wingLx = beamL / 2 - param.L7 - R1 + param.L8 * Math.tan(coneAngle);
2500
2476
  const wingL = Math.sqrt(wingLx ** 2 + wingLy ** 2);
2501
2477
  const wingAngle = Math.atan2(wingLx, wingLy);
2502
- rGeome.logstr += `wing-angle: ${ffix7(radToDeg4(wingAngle))} degree
2503
- `;
2504
2478
  const wingLPre = param.E1 / Math.sin(wingAngle + coneAngle);
2505
2479
  const wingL2 = wingL + param.E4 / Math.cos(wingAngle) + wingLPre;
2506
2480
  const wingPosX = R1 - param.L8 * Math.tan(coneAngle) - wingLPre * Math.sin(wingAngle);
@@ -2513,49 +2487,75 @@ function pGeom5(t, param, suffix = "") {
2513
2487
  const wingAngleC = Math.PI / 2 - wingAngle;
2514
2488
  const doorLowX = param.L9 / 2;
2515
2489
  const doorHighX = doorLowX - param.H7 * Math.tan(coneAngle);
2490
+ if (param.D2 > param.D1) {
2491
+ throw `err110: D2 ${param.D2} is larger than D1 ${param.D1}`;
2492
+ }
2493
+ if (param.D3 + param.E1 > param.D1) {
2494
+ throw `err113: D3 ${param.D3} is too large compare to D1 ${param.D1} and E1 ${param.E1}`;
2495
+ }
2496
+ if (param.H3 + param.E3 > param.H1) {
2497
+ throw `err116: H3 ${param.H3} is too large compare to H1 ${param.H1} and E3 ${param.E3}`;
2498
+ }
2499
+ if (param.H4 + R4 > param.H2) {
2500
+ throw `err119: H4 ${param.H4} is too large compare to H2 ${param.H2} and D4 ${param.D4}`;
2501
+ }
2502
+ if (param.E4 > R4) {
2503
+ throw `err122: E4 ${param.E4} is too large compare to D4 ${param.D4}`;
2504
+ }
2505
+ if (param.D8 <= param.D5) {
2506
+ throw `err146: D8 ${param.D8} is too small compare to D5 ${param.D5}`;
2507
+ }
2508
+ if (wingLy < 0) {
2509
+ throw `err140: H2 ${param.H2} too small compare to L8 ${param.L8}, H4 ${param.H4} and D4 ${param.D4}`;
2510
+ }
2516
2511
  if (doorHighX < param.R9) {
2517
2512
  throw `err177: R9 ${param.R9} too large compare to doorHighX ${doorHighX} and L9 ${param.L9}`;
2518
2513
  }
2519
2514
  if (param.L9 > param.D1) {
2520
2515
  throw `err180: L9 ${param.L9} too large compare to D1 ${param.D1}`;
2521
2516
  }
2517
+ rGeome.logstr += `cone-height: ${ffix7(H1H2)} mm
2518
+ `;
2519
+ rGeome.logstr += `cone-height total: ${ffix7(H1H5)} mm
2520
+ `;
2521
+ rGeome.logstr += `cone-angle: ${ffix7(radToDeg4(coneAngle))} degree
2522
+ `;
2523
+ rGeome.logstr += `wing-angle: ${ffix7(radToDeg4(wingAngle))} degree
2524
+ `;
2522
2525
  const coneSlopeX = param.E1 * Math.cos(coneAngle);
2523
2526
  const coneSlopeY = param.E1 * Math.sin(coneAngle);
2524
2527
  const coneFC = param.E1 * Math.tan(coneAngle / 2);
2525
- ctrCone = function(orient) {
2528
+ const ctrCone = function(orient) {
2526
2529
  const rCtr = contour7(orient * R1, 0).addSegStrokeA(orient * R1, param.H1).addSegStrokeA(orient * R2, H1H2).addSegStrokeA(orient * (R2 - coneSlopeX), H1H2 - coneSlopeY).addSegStrokeA(orient * (R1 - param.E1), param.H1 - coneFC).addSegStrokeA(orient * (R1 - param.E1), 0).closeSegStroke();
2527
2530
  return rCtr;
2528
2531
  };
2529
- ctrConePlus = function(orient) {
2532
+ const ctrConePlus = function(orient) {
2530
2533
  const rCtr = contour7(orient * R1, 0).addSegStrokeA(orient * R1, param.H1).addSegStrokeA(orient * R2, H1H2).addSegStrokeA(orient * (R2 - coneSlopeX), H1H2 - coneSlopeY).addSegStrokeA(orient * (R1 - param.E1), param.H1 - coneFC).addSegStrokeA(orient * (R1 - param.E1), param.H1 - param.H3).addSegStrokeA(orient * R3, param.H1 - param.H3).addSegStrokeA(orient * R3, param.H1 - param.H3 - param.E3).addSegStrokeA(orient * (R1 - param.E1), param.H1 - param.H3 - param.E3).addSegStrokeA(orient * (R1 - param.E1), 0).closeSegStroke();
2531
2534
  return rCtr;
2532
2535
  };
2533
- ctrRect = function(width, height, xpos, ypos, angle) {
2534
- const xWidth = width * Math.cos(angle);
2535
- const yWidth = width * Math.sin(angle);
2536
- const xHeight = -height * Math.sin(angle);
2537
- const yHeight = height * Math.cos(angle);
2538
- const rCtr = contour7(xpos, ypos).addSegStrokeA(xpos + xWidth, ypos + yWidth).addSegStrokeA(xpos + xWidth + xHeight, ypos + yWidth + yHeight).addSegStrokeA(xpos + xHeight, ypos + yHeight).closeSegStroke();
2539
- return rCtr;
2540
- };
2536
+ const coneHollowHeight2 = beamH - R4 - (param.H1 - coneFC);
2537
+ const coneHollowR2 = R1 - param.E1 - Math.tan(coneAngle) * coneHollowHeight2;
2538
+ const ctrConeHollow = contour7(0, beamH - R4).addSegStrokeA(coneHollowR2, beamH - R4).addSegStrokeA(R1 - param.E1, param.H1 - coneFC).addSegStrokeA(R1 - param.E1, param.H1 - param.H3).addSegStrokeA(0, param.H1 - param.H3).closeSegStroke();
2541
2539
  const ctrDoor = contour7(doorLowX, param.H1 + param.H6).addCornerRounded(param.R9).addSegStrokeA(doorHighX, param.H1 + param.H6 + param.H7).addCornerRounded(param.R9).addSegStrokeA(-doorHighX, param.H1 + param.H6 + param.H7).addCornerRounded(param.R9).addSegStrokeA(-doorLowX, param.H1 + param.H6).addCornerRounded(param.R9).closeSegStroke();
2542
2540
  figCone.addMain(ctrCone(1));
2543
2541
  figCone.addSecond(ctrConePlus(1));
2544
2542
  figCone.addSecond(ctrConePlus(-1));
2545
- figCone.addSecond(ctrRect(beamL, param.D4, -beamL / 2, beamH - R4, 0));
2543
+ figCone.addSecond(ctrRectangle(-beamL / 2, beamH - R4, beamL, param.D4));
2546
2544
  figCone.addSecond(
2547
- ctrRect(beamL, param.D4 - 2 * param.E4, -beamL / 2, beamH - R4 + param.E4, 0)
2545
+ ctrRectangle(-beamL / 2, beamH - R4 + param.E4, beamL, param.D4 - 2 * param.E4)
2548
2546
  );
2549
2547
  for (const posX of handPos) {
2550
2548
  figCone.addSecond(
2551
- ctrRect(param.L4, param.H5 - handLowY - handHighYint, posX, beamH + handLowY, 0)
2549
+ ctrRectangle(posX, beamH + handLowY, param.L4, param.H5 - handLowY - handHighYint)
2552
2550
  );
2553
2551
  }
2554
- figCone.addSecond(ctrRect(wingL2, 2 * R6, wingPosX, wingPosY, wingAngleC));
2555
- figCone.addSecond(ctrRect(wingL2, 2 * wingHR, wingHPosX, wingHPosY, wingAngleC));
2556
- figCone.addSecond(ctrRect(2 * R6, wingL2, -wingPosX, wingPosY, wingAngle));
2557
- figCone.addSecond(ctrRect(2 * wingHR, wingL2, -wingHPosX, wingHPosY, wingAngle));
2552
+ figCone.addSecond(ctrRectRot(wingPosX, wingPosY, wingL2, 2 * R6, wingAngleC));
2553
+ figCone.addSecond(ctrRectRot(wingHPosX, wingHPosY, wingL2, 2 * wingHR, wingAngleC));
2554
+ figCone.addSecond(ctrRectRot(-wingPosX, wingPosY, 2 * R6, wingL2, wingAngle));
2555
+ figCone.addSecond(ctrRectRot(-wingHPosX, wingHPosY, 2 * wingHR, wingL2, wingAngle));
2558
2556
  figCone.addSecond(ctrDoor);
2557
+ figConeHollow.mergeFigure(figCone, true);
2558
+ figConeHollow.addMain(ctrConeHollow);
2559
2559
  const ctrHand = contour7(handLowX, beamH + handLowY).addSegStrokeA(handHighXext, beamH + param.H5 - handHighYext).addSegStrokeA(handHighXint, beamH + param.H5 - handHighYint).addPointA(-handHighXint, beamH + param.H5 - handHighYint).addSegArc(R5, false, false).addSegStrokeA(-handHighXext, beamH + param.H5 - handHighYext).addSegStrokeA(-handLowX, beamH + handLowY).closeSegArc(R4, false, false);
2560
2560
  figBeam.addMain(contourCircle5(0, beamH, R4));
2561
2561
  figBeam.addMain(contourCircle5(0, beamH, R4 - param.E4));
@@ -2563,8 +2563,8 @@ function pGeom5(t, param, suffix = "") {
2563
2563
  figBeam.addSecond(ctrConePlus(-1));
2564
2564
  figBeam.addSecond(ctrHand);
2565
2565
  figBeam.addSecond(contourCircle5(0, beamH + param.H5, R5));
2566
- figBeam.addSecond(ctrRect(2 * R6, wingLy, -R6, param.H1 + param.L8, 0));
2567
- figBeam.addSecond(ctrRect(2 * wingHR, wingLy, -wingHR, param.H1 + param.L8, 0));
2566
+ figBeam.addSecond(ctrRectangle(-R6, param.H1 + param.L8, 2 * R6, wingLy));
2567
+ figBeam.addSecond(ctrRectangle(-wingHR, param.H1 + param.L8, 2 * wingHR, wingLy));
2568
2568
  figBeam.addSecond(ctrDoor);
2569
2569
  figBeamHollow.addMain(contourCircle5(0, beamH, R4 - param.E4));
2570
2570
  figBeamHollow.addSecond(contourCircle5(0, beamH, R4));
@@ -2580,22 +2580,22 @@ function pGeom5(t, param, suffix = "") {
2580
2580
  }
2581
2581
  figDisc.addSecond(contourCircle5(0, 0, R1 - param.E1));
2582
2582
  figDisc.addSecond(contourCircle5(0, 0, R2));
2583
- figDisc.addSecond(ctrRect(param.D4, beamL, -R4, -beamL / 2, 0));
2584
- figDisc.addSecond(ctrRect(param.D4 - 2 * param.E4, beamL, -R4 + param.E4, -beamL / 2, 0));
2583
+ figDisc.addSecond(ctrRectangle(-R4, -beamL / 2, param.D4, beamL));
2584
+ figDisc.addSecond(ctrRectangle(-R4 + param.E4, -beamL / 2, param.D4 - 2 * param.E4, beamL));
2585
2585
  for (const posX of handPos) {
2586
- figDisc.addSecond(ctrRect(2 * handLowX, param.L4, -handLowX, posX, 0));
2587
- figDisc.addSecond(ctrRect(2 * handHighXint, param.L4, -handHighXint, posX, 0));
2588
- figDisc.addSecond(ctrRect(2 * handHighXext, param.L4, -handHighXext, posX, 0));
2586
+ figDisc.addSecond(ctrRectangle(-handLowX, posX, 2 * handLowX, param.L4));
2587
+ figDisc.addSecond(ctrRectangle(-handHighXint, posX, 2 * handHighXint, param.L4));
2588
+ figDisc.addSecond(ctrRectangle(-handHighXext, posX, 2 * handHighXext, param.L4));
2589
2589
  }
2590
- figDisc.addSecond(ctrRect(2 * R6, wingLx, -R6, R1 - param.L8 * Math.tan(coneAngle), 0));
2590
+ figDisc.addSecond(ctrRectangle(-R6, R1 - param.L8 * Math.tan(coneAngle), 2 * R6, wingLx));
2591
2591
  figDisc.addSecond(
2592
- ctrRect(2 * wingHR, wingLx, -wingHR, R1 - param.L8 * Math.tan(coneAngle), 0)
2592
+ ctrRectangle(-wingHR, R1 - param.L8 * Math.tan(coneAngle), 2 * wingHR, wingLx)
2593
2593
  );
2594
2594
  figDisc.addSecond(
2595
- ctrRect(2 * R6, wingLx, -R6, -R1 + param.L8 * Math.tan(coneAngle) - wingLx, 0)
2595
+ ctrRectangle(-R6, -R1 + param.L8 * Math.tan(coneAngle) - wingLx, 2 * R6, wingLx)
2596
2596
  );
2597
2597
  figDisc.addSecond(
2598
- ctrRect(2 * wingHR, wingLx, -wingHR, -R1 + param.L8 * Math.tan(coneAngle) - wingLx, 0)
2598
+ ctrRectangle(-wingHR, -R1 + param.L8 * Math.tan(coneAngle) - wingLx, 2 * wingHR, wingLx)
2599
2599
  );
2600
2600
  figHand.addMain(ctrHand);
2601
2601
  figHand.addSecond(contourCircle5(0, beamH, R4));
@@ -2608,21 +2608,22 @@ function pGeom5(t, param, suffix = "") {
2608
2608
  figDoor.addMain(ctrDoor);
2609
2609
  figDoor.addSecond(ctrConePlus(1));
2610
2610
  figDoor.addSecond(ctrConePlus(-1));
2611
- figDoor.addSecond(ctrRect(beamL, param.D4, -beamL / 2, beamH - R4, 0));
2611
+ figDoor.addSecond(ctrRectangle(-beamL / 2, beamH - R4, beamL, param.D4));
2612
2612
  figDoor.addSecond(
2613
- ctrRect(beamL, param.D4 - 2 * param.E4, -beamL / 2, beamH - R4 + param.E4, 0)
2613
+ ctrRectangle(-beamL / 2, beamH - R4 + param.E4, beamL, param.D4 - 2 * param.E4)
2614
2614
  );
2615
2615
  for (const posX of handPos) {
2616
2616
  figDoor.addSecond(
2617
- ctrRect(param.L4, param.H5 - handLowY - handHighYint, posX, beamH + handLowY, 0)
2617
+ ctrRectangle(posX, beamH + handLowY, param.L4, param.H5 - handLowY - handHighYint)
2618
2618
  );
2619
2619
  }
2620
- figDoor.addSecond(ctrRect(wingL2, 2 * R6, wingPosX, wingPosY, wingAngleC));
2621
- figDoor.addSecond(ctrRect(wingL2, 2 * wingHR, wingHPosX, wingHPosY, wingAngleC));
2622
- figDoor.addSecond(ctrRect(2 * R6, wingL2, -wingPosX, wingPosY, wingAngle));
2623
- figDoor.addSecond(ctrRect(2 * wingHR, wingL2, -wingHPosX, wingHPosY, wingAngle));
2620
+ figDoor.addSecond(ctrRectRot(wingPosX, wingPosY, wingL2, 2 * R6, wingAngleC));
2621
+ figDoor.addSecond(ctrRectRot(wingHPosX, wingHPosY, wingL2, 2 * wingHR, wingAngleC));
2622
+ figDoor.addSecond(ctrRectRot(-wingPosX, wingPosY, 2 * R6, wingL2, wingAngle));
2623
+ figDoor.addSecond(ctrRectRot(-wingHPosX, wingHPosY, 2 * wingHR, wingL2, wingAngle));
2624
2624
  rGeome.fig = {
2625
2625
  faceCone: figCone,
2626
+ faceConeHollow: figConeHollow,
2626
2627
  faceBeam: figBeam,
2627
2628
  faceBeamHollow: figBeamHollow,
2628
2629
  faceDisc: figDisc,
@@ -2652,6 +2653,13 @@ function pGeom5(t, param, suffix = "") {
2652
2653
  rotate: [0, 0, 0],
2653
2654
  translate: [0, 0, 0]
2654
2655
  },
2656
+ {
2657
+ outName: `subpax_${designName}_coneHollow`,
2658
+ face: `${designName}_faceConeHollow`,
2659
+ extrudeMethod: EExtrude4.eRotate,
2660
+ rotate: [0, 0, 0],
2661
+ translate: [0, 0, 0]
2662
+ },
2655
2663
  {
2656
2664
  outName: `subpax_${designName}_beam`,
2657
2665
  face: `${designName}_faceBeam`,
@@ -2713,7 +2721,7 @@ function pGeom5(t, param, suffix = "") {
2713
2721
  face: `${designName}_faceDoor`,
2714
2722
  extrudeMethod: EExtrude4.eLinearOrtho,
2715
2723
  length: param.D1,
2716
- rotate: [Math.PI / 2, 0, Math.PI / 2],
2724
+ rotate: [Math.PI / 2, 0, -Math.PI / 2 + degToRad4(param.doorOrientation)],
2717
2725
  translate: [0, 0, 0]
2718
2726
  },
2719
2727
  ...preExtrude
@@ -2738,6 +2746,7 @@ function pGeom5(t, param, suffix = "") {
2738
2746
  outName: `ipax_${designName}_hollow`,
2739
2747
  boolMethod: EBVolume5.eUnion,
2740
2748
  inList: [
2749
+ `subpax_${designName}_coneHollow`,
2741
2750
  `subpax_${designName}_beamHollow`,
2742
2751
  `subpax_${designName}_wing_hollow_right`,
2743
2752
  `subpax_${designName}_wing_hollow_left`,
@@ -2962,7 +2971,7 @@ import {
2962
2971
  point as point5,
2963
2972
  contour as contour9,
2964
2973
  contourCircle as contourCircle7,
2965
- ctrRectangle,
2974
+ ctrRectangle as ctrRectangle2,
2966
2975
  figure as figure7,
2967
2976
  ffix as ffix9,
2968
2977
  pNumber as pNumber7,
@@ -3046,9 +3055,9 @@ function pGeom7(t, param, suffix = "") {
3046
3055
  figSide.addMain(contourCircle7(0, 0, R1 - param.E1));
3047
3056
  const sidePx = [-param.L2 / 2, -param.L3 - param.H2, param.L3, param.L2 / 2 - param.H2];
3048
3057
  for (const px of sidePx) {
3049
- figSide.addMain(ctrRectangle(px, R1 - param.H4, param.H2, param.H4));
3058
+ figSide.addMain(ctrRectangle2(px, R1 - param.H4, param.H2, param.H4));
3050
3059
  figSide.addMain(
3051
- ctrRectangle(
3060
+ ctrRectangle2(
3052
3061
  px + param.E2,
3053
3062
  R1 - param.H4 + param.E2,
3054
3063
  param.H2 - 2 * param.E2,
@@ -3056,7 +3065,7 @@ function pGeom7(t, param, suffix = "") {
3056
3065
  )
3057
3066
  );
3058
3067
  }
3059
- figSide.addSecond(ctrRectangle(-param.L2 / 2, R1, param.L2, param.H3));
3068
+ figSide.addSecond(ctrRectangle2(-param.L2 / 2, R1, param.L2, param.H3));
3060
3069
  const facePx = [];
3061
3070
  facePx.push(-param.L1 / 2);
3062
3071
  facePx.push(param.L1 / 2 - param.H1);
@@ -3071,9 +3080,9 @@ function pGeom7(t, param, suffix = "") {
3071
3080
  }
3072
3081
  }
3073
3082
  for (const px of facePx) {
3074
- figFace.addMain(ctrRectangle(px, R1, param.H1, param.H3));
3083
+ figFace.addMain(ctrRectangle2(px, R1, param.H1, param.H3));
3075
3084
  figFace.addMain(
3076
- ctrRectangle(
3085
+ ctrRectangle2(
3077
3086
  px + param.E3,
3078
3087
  R1 + param.E3,
3079
3088
  param.H1 - 2 * param.E3,
@@ -3081,15 +3090,15 @@ function pGeom7(t, param, suffix = "") {
3081
3090
  )
3082
3091
  );
3083
3092
  }
3084
- figFace.addSecond(ctrRectangle(-param.L1 / 2, -R1, param.L1, param.D1));
3085
- figFace.addSecond(ctrRectangle(-param.L1 / 2, R1 - param.H4, param.L1, param.H4));
3093
+ figFace.addSecond(ctrRectangle2(-param.L1 / 2, -R1, param.L1, param.D1));
3094
+ figFace.addSecond(ctrRectangle2(-param.L1 / 2, R1 - param.H4, param.L1, param.H4));
3086
3095
  for (const px of facePx) {
3087
- figTop.addSecond(ctrRectangle(px, -param.L2 / 2, param.H1, param.L2));
3096
+ figTop.addSecond(ctrRectangle2(px, -param.L2 / 2, param.H1, param.L2));
3088
3097
  }
3089
3098
  for (const py of sidePx) {
3090
- figTop.addSecond(ctrRectangle(-param.L1 / 2, py, param.L1, param.H2));
3099
+ figTop.addSecond(ctrRectangle2(-param.L1 / 2, py, param.L1, param.H2));
3091
3100
  }
3092
- figTop.addSecond(ctrRectangle(-param.L1 / 2, -R1, param.L1, param.D1));
3101
+ figTop.addSecond(ctrRectangle2(-param.L1 / 2, -R1, param.L1, param.D1));
3093
3102
  const aBAC = Math.atan2(param.S1, R1);
3094
3103
  const aDAB = 2 * aBAC;
3095
3104
  const pA = point5(0, 0);
@@ -3100,12 +3109,12 @@ function pGeom7(t, param, suffix = "") {
3100
3109
  figButtress.addMain(contourCircle7(0, 0, R1 - param.E1));
3101
3110
  figSide.addSecond(ctrButtress);
3102
3111
  for (const px of facePx) {
3103
- figTopWithRod.addMain(ctrRectangle(px, -param.L2 / 2, param.H1, param.L2));
3112
+ figTopWithRod.addMain(ctrRectangle2(px, -param.L2 / 2, param.H1, param.L2));
3104
3113
  }
3105
3114
  for (const py of sidePx) {
3106
- figTopWithRod.addMain(ctrRectangle(-param.L1 / 2, py, param.L1, param.H2));
3115
+ figTopWithRod.addMain(ctrRectangle2(-param.L1 / 2, py, param.L1, param.H2));
3107
3116
  }
3108
- figTopWithRod.addMain(ctrRectangle(-param.L1 / 2, -R1, param.L1, param.D1));
3117
+ figTopWithRod.addMain(ctrRectangle2(-param.L1 / 2, -R1, param.L1, param.D1));
3109
3118
  const rodPx0 = -((param.rod1 - 1) * param.rod2 + param.rod3) / 2;
3110
3119
  const rodOffset = (param.rod3 - param.rod4) / 2;
3111
3120
  const rodPlateH = param.rod3 / 2;
@@ -3114,10 +3123,10 @@ function pGeom7(t, param, suffix = "") {
3114
3123
  const rodPy0 = -rodLength / 2;
3115
3124
  for (let i = 0; i < param.rod1; i++) {
3116
3125
  const px = rodPx0 + i * param.rod2;
3117
- figTopWithRod.addSecond(ctrRectangle(px + rodOffset, rodPy0, param.rod4, rodLength));
3126
+ figTopWithRod.addSecond(ctrRectangle2(px + rodOffset, rodPy0, param.rod4, rodLength));
3118
3127
  for (let j = 0; j < 4; j++) {
3119
3128
  figTopWithRod.addSecond(
3120
- ctrRectangle(px, rodPy0 + j * rodPyStep, param.rod3, rodPlateH, rodPlateH / 4)
3129
+ ctrRectangle2(px, rodPy0 + j * rodPyStep, param.rod3, rodPlateH, rodPlateH / 4)
3121
3130
  );
3122
3131
  }
3123
3132
  }
@@ -3288,7 +3297,7 @@ function pGeom8(t, param, suffix = "") {
3288
3297
  `;
3289
3298
  const posAngleMid = (param.al - param.ar) / 2;
3290
3299
  const posAngleDegree = posAngleMid - Math.sin(2 * Math.PI * t / pDef8.sim.tMax) * (param.al + param.ar) / 2;
3291
- const posAngle = degToRad4(posAngleDegree);
3300
+ const posAngle = degToRad5(posAngleDegree);
3292
3301
  rGeome.logstr += `swing position angle: ${ffix10(radToDeg6(posAngle))} degree
3293
3302
  `;
3294
3303
  const rakePosY = param.H1 + param.H2 - param.H3;
@@ -3513,7 +3522,7 @@ import {
3513
3522
  checkGeom as checkGeom5,
3514
3523
  prefixLog as prefixLog5,
3515
3524
  figure as figure10,
3516
- degToRad as degToRad5,
3525
+ degToRad as degToRad6,
3517
3526
  radToDeg as radToDeg8,
3518
3527
  ffix as ffix12,
3519
3528
  pNumber as pNumber10,
@@ -3528,8 +3537,8 @@ import {
3528
3537
  checkGeom as checkGeom4,
3529
3538
  prefixLog as prefixLog4,
3530
3539
  contourCircle as contourCircle8,
3531
- ctrRectangle as ctrRectangle2,
3532
- ctrRectRot,
3540
+ ctrRectangle as ctrRectangle3,
3541
+ ctrRectRot as ctrRectRot2,
3533
3542
  figure as figure9,
3534
3543
  radToDeg as radToDeg7,
3535
3544
  ffix as ffix11,
@@ -3575,9 +3584,11 @@ var pDef9 = {
3575
3584
  pNumber9("H7", "mm", 600, 1, 2e3, 1),
3576
3585
  pNumber9("L9", "mm", 300, 1, 1e3, 1),
3577
3586
  pNumber9("R9", "mm", 50, 0, 300, 1),
3587
+ pNumber9("doorOrientation", "degree", 0, -180, 180, 1),
3578
3588
  pSectionSeparator8("stoppers"),
3579
3589
  pNumber9("S1", "mm", 100, 1, 300, 1),
3580
3590
  pNumber9("S2", "mm", 2e3, 1, 8e3, 1),
3591
+ pNumber9("S3", "mm", 100, 0, 8e3, 1),
3581
3592
  pNumber9("E7", "mm", 5, 1, 80, 1),
3582
3593
  pSectionSeparator8("low stopper"),
3583
3594
  pNumber9("JD1", "mm", 200, 1, 500, 1),
@@ -3585,7 +3596,14 @@ var pDef9 = {
3585
3596
  pNumber9("JL1", "mm", 260, 1, 2e3, 1),
3586
3597
  pNumber9("JH1", "mm", 20, -500, 500, 1),
3587
3598
  pNumber9("JS1", "mm", 100, 1, 500, 1),
3588
- pNumber9("JS2", "mm", 200, 1, 500, 1)
3599
+ pNumber9("JS2", "mm", 200, 1, 500, 1),
3600
+ pSectionSeparator8("high stopper"),
3601
+ pNumber9("JD3", "mm", 200, 1, 500, 1),
3602
+ pNumber9("JE3", "mm", 5, 1, 80, 1),
3603
+ pNumber9("JS3", "mm", 120, 1, 500, 1),
3604
+ pNumber9("JD4", "mm", 200, 1, 500, 1),
3605
+ pNumber9("JE4", "mm", 5, 1, 80, 1),
3606
+ pNumber9("JS4", "mm", 120, 1, 500, 1)
3589
3607
  ],
3590
3608
  paramSvg: {
3591
3609
  D1: "rake_face.svg",
@@ -3616,15 +3634,23 @@ var pDef9 = {
3616
3634
  H7: "rake_door.svg",
3617
3635
  L9: "rake_door.svg",
3618
3636
  R9: "rake_door.svg",
3637
+ doorOrientation: "rake_door.svg",
3619
3638
  S1: "rake_side_stopper.svg",
3620
3639
  S2: "rake_top_stopper.svg",
3640
+ S3: "rake_side_stopper.svg",
3621
3641
  E7: "rake_side_stopper.svg",
3622
3642
  JD1: "rake_low_stopper_holder.svg",
3623
3643
  JE1: "rake_low_stopper_holder.svg",
3624
3644
  JL1: "rake_low_stopper_holder.svg",
3625
3645
  JH1: "rake_low_stopper_holder.svg",
3626
3646
  JS1: "rake_side_stopper.svg",
3627
- JS2: "rake_top_stopper.svg"
3647
+ JS2: "rake_top_stopper.svg",
3648
+ JD3: "rake_side_stopper.svg",
3649
+ JE3: "rake_side_stopper.svg",
3650
+ JS3: "rake_top_stopper.svg",
3651
+ JD4: "rake_top_stopper.svg",
3652
+ JE4: "rake_top_stopper.svg",
3653
+ JS4: "rake_side_stopper.svg"
3628
3654
  },
3629
3655
  sim: {
3630
3656
  tMax: 180,
@@ -3652,6 +3678,8 @@ function pGeom9(t, param, suffix = "") {
3652
3678
  const figStopperFaceBH = figure9();
3653
3679
  const figLowStopperHolderPre = figure9();
3654
3680
  const figLowStopperHolder = figure9();
3681
+ const figHi1StopperHolder = figure9();
3682
+ const figHi2StopperHolder = figure9();
3655
3683
  rGeome.logstr += `${rGeome.partName} simTime: ${t}
3656
3684
  `;
3657
3685
  try {
@@ -3659,19 +3687,23 @@ function pGeom9(t, param, suffix = "") {
3659
3687
  const H1H2 = param.H1 + param.H2;
3660
3688
  const H1H5 = H1H2 - param.H4 + param.H5;
3661
3689
  const stopper1H = H1H5 - param.S2;
3662
- const stopper2H = param.H1 + param.H2 - param.H4 + param.D4 / 2;
3663
- const stopper3H = param.H1 + param.L8 - param.S1;
3690
+ const Hi2SHpz = param.H1 + param.H2 - param.H4;
3691
+ const stopper2H = Hi2SHpz + param.D4 / 2;
3692
+ const stopper3H = param.H1 + param.S3;
3664
3693
  const L5h = param.L5 / 2;
3665
3694
  const S1r = param.S1 / 2;
3666
3695
  const S1h = param.S1 - 2 * param.E7;
3667
3696
  const S1hr = S1h / 2;
3668
3697
  const lowStopperTopPosX = -R1 - param.S1 / 2 - param.JS1;
3669
- const S2s = param.S2 - param.S1 / 2;
3698
+ const S2s = param.S2 - S1r;
3670
3699
  const lowSPosY = stopper1H - S1r;
3671
3700
  const lowSHPosZ = stopper1H - param.JH1;
3672
3701
  const JR1 = param.JD1 / 2;
3673
3702
  const JR1H = JR1 - param.JE1;
3674
3703
  const lowSHL = R1 + param.JS2;
3704
+ const JR3 = param.JD3 / 2;
3705
+ const JR4 = param.JD4 / 2;
3706
+ const Hi2SHpy = L5h - S1r;
3675
3707
  if (2 * param.E7 >= param.S1) {
3676
3708
  throw `err135: E7 ${param.E7} too large compare to S1 ${param.S1}`;
3677
3709
  }
@@ -3699,12 +3731,21 @@ function pGeom9(t, param, suffix = "") {
3699
3731
  if (param.JS2 < param.JS1 - S1r) {
3700
3732
  throw `err149: JS2 ${param.JS2} too small compare to JS1 ${param.JS1} and S1 ${param.S1}`;
3701
3733
  }
3734
+ if (param.S3 > param.H2 - param.H4) {
3735
+ throw `err150: S3 ${param.S3} too large compare to H2 ${param.H2} and H4 ${param.H4}`;
3736
+ }
3737
+ if (param.JE3 > param.JD3 / 2) {
3738
+ throw `err151: JE3 ${param.JE3} too large compare to JD3 ${param.JD3}`;
3739
+ }
3740
+ if (param.JE4 > param.JD4 / 2) {
3741
+ throw `err152: JE4 ${param.JE4} too large compare to JD4 ${param.JD4}`;
3742
+ }
3702
3743
  rGeome.logstr += `cone-height: ${ffix11(H1H2)} mm
3703
3744
  `;
3704
3745
  rGeome.logstr += `cone-height total: ${ffix11(H1H5)} mm
3705
3746
  `;
3706
- figLowStopperHolderPre.addSecond(ctrRectangle2(-L5h, lowSPosY, param.L5, param.S1));
3707
- figLowStopperHolderPre.addSecond(ctrRectangle2(-L5h, lowSPosY + param.E7, param.L5, S1h));
3747
+ figLowStopperHolderPre.addSecond(ctrRectangle3(-L5h, lowSPosY, param.L5, param.S1));
3748
+ figLowStopperHolderPre.addSecond(ctrRectangle3(-L5h, lowSPosY + param.E7, param.L5, S1h));
3708
3749
  figLowStopperHolderPre.addMain(contourCircle8(-param.JL1 / 2, lowSHPosZ, JR1));
3709
3750
  figLowStopperHolderPre.addMain(contourCircle8(-param.JL1 / 2, lowSHPosZ, JR1H));
3710
3751
  figLowStopperHolderPre.addMain(contourCircle8(param.JL1 / 2, lowSHPosZ, JR1));
@@ -3738,6 +3779,7 @@ function pGeom9(t, param, suffix = "") {
3738
3779
  rakeParam.setVal("H7", param.H7);
3739
3780
  rakeParam.setVal("L9", param.L9);
3740
3781
  rakeParam.setVal("R9", param.R9);
3782
+ rakeParam.setVal("doorOrientation", param.doorOrientation);
3741
3783
  const rakeGeom = rakeDef.pGeom(0, rakeParam.getParamVal(), rakeParam.getSuffix());
3742
3784
  checkGeom4(rakeGeom);
3743
3785
  rGeome.logstr += prefixLog4(rakeGeom.logstr, rakeParam.getPartNameSuffix());
@@ -3752,53 +3794,59 @@ function pGeom9(t, param, suffix = "") {
3752
3794
  figDoor.mergeFigure(rakeGeom.fig.faceDoor);
3753
3795
  figDoor.mergeFigure(figLowStopperHolderPre, true);
3754
3796
  figStopperTop.mergeFigure(rakeGeom.fig.faceDisc, true);
3755
- figStopperTop.addMain(ctrRectangle2(lowStopperTopPosX, -L5h, param.S1, param.L5));
3756
- figStopperTop.addMain(ctrRectangle2(lowStopperTopPosX + param.E7, -L5h, S1h, param.L5));
3757
- figStopperTop.addMain(ctrRectangle2(param.S2 - param.S1, -L5h, param.S1, param.L5));
3758
- figStopperTop.addMain(ctrRectangle2(param.S2 - param.E7 - S1h, -L5h, S1h, param.L5));
3759
- figStopperTop.addMain(ctrRectangle2(0, -L5h, S2s, param.S1));
3760
- figStopperTop.addMain(ctrRectangle2(0, -L5h + param.E7, S2s, S1h));
3761
- figStopperTop.addMain(ctrRectangle2(0, L5h - param.S1, S2s, param.S1));
3762
- figStopperTop.addMain(ctrRectangle2(0, L5h - param.S1 + param.E7, S2s, S1h));
3763
- figStopperTop.addMain(ctrRectangle2(0, -R1 - param.S1, S2s, param.S1));
3764
- figStopperTop.addMain(ctrRectangle2(0, -R1 - param.S1 + param.E7, S2s, S1h));
3765
- figStopperTop.addMain(ctrRectangle2(0, R1, S2s, param.S1));
3766
- figStopperTop.addMain(ctrRectangle2(0, R1 + param.E7, S2s, S1h));
3767
- figStopperTop.addSecond(ctrRectangle2(-lowSHL, -param.JL1 / 2 - JR1, lowSHL, 2 * JR1));
3768
- figStopperTop.addSecond(ctrRectangle2(-lowSHL, -param.JL1 / 2 - JR1H, lowSHL, 2 * JR1H));
3769
- figStopperTop.addSecond(ctrRectangle2(-lowSHL, param.JL1 / 2 - JR1, lowSHL, 2 * JR1));
3770
- figStopperTop.addSecond(ctrRectangle2(-lowSHL, param.JL1 / 2 - JR1H, lowSHL, 2 * JR1H));
3797
+ figStopperTop.addMain(ctrRectangle3(lowStopperTopPosX, -L5h, param.S1, param.L5));
3798
+ figStopperTop.addMain(ctrRectangle3(lowStopperTopPosX + param.E7, -L5h, S1h, param.L5));
3799
+ figStopperTop.addMain(ctrRectangle3(param.S2 - param.S1, -L5h, param.S1, param.L5));
3800
+ figStopperTop.addMain(ctrRectangle3(param.S2 - param.E7 - S1h, -L5h, S1h, param.L5));
3801
+ figStopperTop.addMain(ctrRectangle3(0, -L5h, S2s, param.S1));
3802
+ figStopperTop.addMain(ctrRectangle3(0, -L5h + param.E7, S2s, S1h));
3803
+ figStopperTop.addMain(ctrRectangle3(0, L5h - param.S1, S2s, param.S1));
3804
+ figStopperTop.addMain(ctrRectangle3(0, L5h - param.S1 + param.E7, S2s, S1h));
3805
+ figStopperTop.addMain(ctrRectangle3(0, -R1 - param.S1, S2s, param.S1));
3806
+ figStopperTop.addMain(ctrRectangle3(0, -R1 - param.S1 + param.E7, S2s, S1h));
3807
+ figStopperTop.addMain(ctrRectangle3(0, R1, S2s, param.S1));
3808
+ figStopperTop.addMain(ctrRectangle3(0, R1 + param.E7, S2s, S1h));
3809
+ figStopperTop.addSecond(ctrRectangle3(-lowSHL, -param.JL1 / 2 - JR1, lowSHL, 2 * JR1));
3810
+ figStopperTop.addSecond(ctrRectangle3(-lowSHL, -param.JL1 / 2 - JR1H, lowSHL, 2 * JR1H));
3811
+ figStopperTop.addSecond(ctrRectangle3(-lowSHL, param.JL1 / 2 - JR1, lowSHL, 2 * JR1));
3812
+ figStopperTop.addSecond(ctrRectangle3(-lowSHL, param.JL1 / 2 - JR1H, lowSHL, 2 * JR1H));
3813
+ const Hi1SHL = R1 + param.JS3;
3814
+ const Hi1SHW = param.JD3 - 2 * param.JE3;
3815
+ figStopperTop.addSecond(ctrRectangle3(-param.JD3 / 2, -Hi1SHL, param.JD3, Hi1SHL));
3816
+ figStopperTop.addSecond(ctrRectangle3(-param.JD3 / 2 + param.JE3, -Hi1SHL, Hi1SHW, Hi1SHL));
3817
+ figStopperTop.addSecond(ctrRectangle3(-param.JD3 / 2, 0, param.JD3, Hi1SHL));
3818
+ figStopperTop.addSecond(ctrRectangle3(-param.JD3 / 2 + param.JE3, 0, Hi1SHW, Hi1SHL));
3771
3819
  figStopperSide.mergeFigure(rakeGeom.fig.faceBeam, true);
3772
3820
  figStopperSide.addMain(contourCircle8(-R1 - param.JS1, stopper1H, S1r));
3773
3821
  figStopperSide.addMain(contourCircle8(-R1 - param.JS1, stopper1H, S1hr));
3774
- figStopperSide.addMain(contourCircle8(param.S2 - S1r, stopper2H + S1r, S1r));
3775
- figStopperSide.addMain(contourCircle8(param.S2 - S1r, stopper2H + S1r, S1hr));
3776
- figStopperSide.addSecond(ctrRectangle2(0, stopper2H, S2s, param.S1));
3777
- figStopperSide.addSecond(ctrRectangle2(0, stopper2H + param.E7, S2s, S1h));
3778
- const stopper3Ly = stopper2H + param.S1 / 2 - stopper3H;
3779
- const stopper3L = Math.sqrt(S2s ** 2 + stopper3Ly ** 2);
3780
- const stopper3A = Math.atan2(stopper3Ly, S2s);
3781
- rGeome.logstr += `stopper-rod: L ${ffix11(stopper3L)} mm, A ${ffix11(
3782
- radToDeg7(stopper3A)
3783
- )} degree
3822
+ figStopperSide.addMain(contourCircle8(S2s, stopper2H + S1r, S1r));
3823
+ figStopperSide.addMain(contourCircle8(S2s, stopper2H + S1r, S1hr));
3824
+ figStopperSide.addSecond(ctrRectangle3(0, stopper2H, S2s, param.S1));
3825
+ figStopperSide.addSecond(ctrRectangle3(0, stopper2H + param.E7, S2s, S1h));
3826
+ const stopper3Ly = stopper2H + S1r - stopper3H;
3827
+ const stp3L = Math.sqrt(S2s ** 2 + stopper3Ly ** 2);
3828
+ const stp3A = Math.atan2(stopper3Ly, S2s);
3829
+ rGeome.logstr += `stopper-rod: L ${ffix11(stp3L)} mm, A ${ffix11(radToDeg7(stp3A))} degree
3784
3830
  `;
3785
- const stp3posdX = S1r * Math.sin(stopper3A);
3786
- const stp3posdY = S1r * Math.cos(stopper3A);
3831
+ const stp3posdX = S1r * Math.sin(stp3A);
3832
+ const stp3posdY = S1r * Math.cos(stp3A);
3787
3833
  const stp3posY = stopper3H - stp3posdY;
3788
- figStopperSide.addSecond(ctrRectRot(stp3posdX, stp3posY, stopper3L, param.S1, stopper3A));
3789
- const stp3posdX2 = S1hr * Math.sin(stopper3A);
3790
- const stp3posdY2 = S1hr * Math.cos(stopper3A);
3834
+ figStopperSide.addSecond(ctrRectRot2(stp3posdX, stp3posY, stp3L, param.S1, stp3A));
3835
+ const stp3posdX2 = S1hr * Math.sin(stp3A);
3836
+ const stp3posdY2 = S1hr * Math.cos(stp3A);
3791
3837
  const stp3posY2 = stopper3H - stp3posdY2;
3792
- figStopperSide.addSecond(ctrRectRot(stp3posdX2, stp3posY2, stopper3L, S1h, stopper3A));
3793
- figStopperSide.addSecond(ctrRectangle2(-lowSHL, lowSHPosZ - JR1, lowSHL, 2 * JR1));
3794
- figStopperSide.addSecond(ctrRectangle2(-lowSHL, lowSHPosZ - JR1H, lowSHL, 2 * JR1H));
3795
- figStopperSideH.mergeFigure(rakeGeom.fig.faceBeam, true);
3796
- figStopperSideH.addSecond(contourCircle8(-R1 - param.JS1, stopper1H, S1r));
3838
+ figStopperSide.addSecond(ctrRectRot2(stp3posdX2, stp3posY2, stp3L, S1h, stp3A));
3839
+ figStopperSide.addSecond(ctrRectangle3(-lowSHL, lowSHPosZ - JR1, lowSHL, 2 * JR1));
3840
+ figStopperSide.addSecond(ctrRectangle3(-lowSHL, lowSHPosZ - JR1H, lowSHL, 2 * JR1H));
3841
+ figStopperSide.addSecond(contourCircle8(0, stopper3H, param.JD3 / 2));
3842
+ figStopperSide.addSecond(contourCircle8(0, stopper3H, param.JD3 / 2 - param.JE3));
3843
+ const Hi2SHL = param.D4 / 2 + param.JS4;
3844
+ const Hi2SHW2 = param.JD4 / 2 - param.JE4;
3845
+ figStopperSide.addSecond(ctrRectangle3(-param.JD4 / 2, Hi2SHpz, param.JD4, Hi2SHL));
3846
+ figStopperSide.addSecond(ctrRectangle3(-Hi2SHW2, Hi2SHpz, 2 * Hi2SHW2, Hi2SHL));
3847
+ figStopperSideH.mergeFigure(figStopperSide, true);
3797
3848
  figStopperSideH.addMain(contourCircle8(-R1 - param.JS1, stopper1H, S1hr));
3798
- figStopperSideH.addSecond(contourCircle8(param.S2 - S1r, stopper2H + S1r, S1r));
3799
3849
  figStopperSideH.addMain(contourCircle8(param.S2 - S1r, stopper2H + S1r, S1hr));
3800
- figStopperSideH.addSecond(ctrRectangle2(-lowSHL, lowSHPosZ - JR1, lowSHL, 2 * JR1));
3801
- figStopperSideH.addSecond(ctrRectangle2(-lowSHL, lowSHPosZ - JR1H, lowSHL, 2 * JR1H));
3802
3850
  figStopperFaceT.mergeFigure(rakeGeom.fig.faceCone, true);
3803
3851
  figStopperFaceT.mergeFigure(figLowStopperHolderPre, true);
3804
3852
  figStopperFaceT.addMain(contourCircle8(-param.L5 / 2 + S1r, stopper2H + S1r, S1r));
@@ -3825,6 +3873,25 @@ function pGeom9(t, param, suffix = "") {
3825
3873
  figStopperFaceBH.addMain(contourCircle8(R1 + S1r, 0, S1hr));
3826
3874
  figLowStopperHolder.mergeFigure(rakeGeom.fig.faceCone, true);
3827
3875
  figLowStopperHolder.mergeFigure(figLowStopperHolderPre);
3876
+ const px8 = -Hi2SHpy - Hi2SHW2;
3877
+ const px9 = Hi2SHpy - Hi2SHW2;
3878
+ const py10 = stopper3H - Hi1SHW / 2;
3879
+ figLowStopperHolder.addSecond(ctrRectangle3(-Hi2SHpy - JR4, Hi2SHpz, param.JD4, Hi2SHL));
3880
+ figLowStopperHolder.addSecond(ctrRectangle3(px8, Hi2SHpz, 2 * Hi2SHW2, Hi2SHL));
3881
+ figLowStopperHolder.addSecond(ctrRectangle3(Hi2SHpy - JR4, Hi2SHpz, param.JD4, Hi2SHL));
3882
+ figLowStopperHolder.addSecond(ctrRectangle3(px9, Hi2SHpz, 2 * Hi2SHW2, Hi2SHL));
3883
+ figLowStopperHolder.addSecond(ctrRectangle3(-Hi1SHL, stopper3H - JR3, Hi1SHL, param.JD3));
3884
+ figLowStopperHolder.addSecond(ctrRectangle3(-Hi1SHL, py10, Hi1SHL, Hi1SHW));
3885
+ figLowStopperHolder.addSecond(ctrRectangle3(0, stopper3H - JR3, Hi1SHL, param.JD3));
3886
+ figLowStopperHolder.addSecond(ctrRectangle3(0, stopper3H - Hi1SHW / 2, Hi1SHL, Hi1SHW));
3887
+ figHi1StopperHolder.mergeFigure(figStopperSide, true);
3888
+ figHi1StopperHolder.addMain(contourCircle8(0, stopper3H, param.JD3 / 2));
3889
+ figHi1StopperHolder.addMain(contourCircle8(0, stopper3H, param.JD3 / 2 - param.JE3));
3890
+ figHi2StopperHolder.mergeFigure(figStopperTop, true);
3891
+ figHi2StopperHolder.addMain(contourCircle8(0, -Hi2SHpy, JR4));
3892
+ figHi2StopperHolder.addMain(contourCircle8(0, -Hi2SHpy, JR4 - param.JE4));
3893
+ figHi2StopperHolder.addMain(contourCircle8(0, Hi2SHpy, JR4));
3894
+ figHi2StopperHolder.addMain(contourCircle8(0, Hi2SHpy, JR4 - param.JE4));
3828
3895
  rGeome.fig = {
3829
3896
  faceCone: figCone,
3830
3897
  faceBeam: figBeam,
@@ -3841,7 +3908,9 @@ function pGeom9(t, param, suffix = "") {
3841
3908
  faceStopperFaceTH: figStopperFaceTH,
3842
3909
  faceStopperFaceB: figStopperFaceB,
3843
3910
  faceStopperFaceBH: figStopperFaceBH,
3844
- faceLowStopperHolder: figLowStopperHolder
3911
+ faceLowStopperHolder: figLowStopperHolder,
3912
+ faceHi1StopperHolder: figHi1StopperHolder,
3913
+ faceHi2StopperHolder: figHi2StopperHolder
3845
3914
  };
3846
3915
  const designName = rGeome.partName;
3847
3916
  rGeome.vol = {
@@ -3852,6 +3921,20 @@ function pGeom9(t, param, suffix = "") {
3852
3921
  subgeom: rakeGeom,
3853
3922
  rotate: [0, 0, 0],
3854
3923
  translate: [0, 0, 0]
3924
+ },
3925
+ {
3926
+ outName: `inpax_${designName}_coneHollow`,
3927
+ subdesign: "subpax_rake_coneHollow",
3928
+ subgeom: rakeGeom,
3929
+ rotate: [0, 0, 0],
3930
+ translate: [0, 0, 0]
3931
+ },
3932
+ {
3933
+ outName: `inpax_${designName}_beamHollow`,
3934
+ subdesign: "subpax_rake_beamHollow",
3935
+ subgeom: rakeGeom,
3936
+ rotate: [0, 0, 0],
3937
+ translate: [0, 0, 0]
3855
3938
  }
3856
3939
  ],
3857
3940
  extrudes: [
@@ -3891,17 +3974,49 @@ function pGeom9(t, param, suffix = "") {
3891
3974
  outName: `subpax_${designName}_stpFaceB`,
3892
3975
  face: `${designName}_faceStopperFaceB`,
3893
3976
  extrudeMethod: EExtrude7.eLinearOrtho,
3894
- length: stopper3L,
3895
- rotate: [Math.PI / 2 - stopper3A, 0, Math.PI / 2],
3977
+ length: stp3L,
3978
+ rotate: [Math.PI / 2 - stp3A, 0, Math.PI / 2],
3896
3979
  translate: [0, 0, stopper3H]
3897
3980
  },
3898
3981
  {
3899
3982
  outName: `subpax_${designName}_stpFaceBH`,
3900
3983
  face: `${designName}_faceStopperFaceBH`,
3901
3984
  extrudeMethod: EExtrude7.eLinearOrtho,
3902
- length: stopper3L,
3903
- rotate: [Math.PI / 2 - stopper3A, 0, Math.PI / 2],
3985
+ length: stp3L,
3986
+ rotate: [Math.PI / 2 - stp3A, 0, Math.PI / 2],
3904
3987
  translate: [0, 0, stopper3H]
3988
+ },
3989
+ {
3990
+ outName: `subpax_${designName}_lowSH`,
3991
+ face: `${designName}_faceLowStopperHolder`,
3992
+ extrudeMethod: EExtrude7.eLinearOrtho,
3993
+ length: lowSHL,
3994
+ rotate: [Math.PI / 2, 0, -Math.PI / 2],
3995
+ translate: [0, 0, 0]
3996
+ },
3997
+ {
3998
+ outName: `subpax_${designName}_Hi1SH1`,
3999
+ face: `${designName}_faceHi1StopperHolder`,
4000
+ extrudeMethod: EExtrude7.eLinearOrtho,
4001
+ length: Hi1SHL,
4002
+ rotate: [Math.PI / 2, 0, 0],
4003
+ translate: [0, 0, 0]
4004
+ },
4005
+ {
4006
+ outName: `subpax_${designName}_Hi1SH2`,
4007
+ face: `${designName}_faceHi1StopperHolder`,
4008
+ extrudeMethod: EExtrude7.eLinearOrtho,
4009
+ length: Hi1SHL,
4010
+ rotate: [Math.PI / 2, 0, Math.PI],
4011
+ translate: [0, 0, 0]
4012
+ },
4013
+ {
4014
+ outName: `subpax_${designName}_Hi2SH`,
4015
+ face: `${designName}_faceHi2StopperHolder`,
4016
+ extrudeMethod: EExtrude7.eLinearOrtho,
4017
+ length: Hi2SHL,
4018
+ rotate: [0, 0, 0],
4019
+ translate: [0, 0, Hi2SHpz]
3905
4020
  }
3906
4021
  ],
3907
4022
  volumes: [
@@ -3911,13 +4026,19 @@ function pGeom9(t, param, suffix = "") {
3911
4026
  inList: [
3912
4027
  `subpax_${designName}_stpSide`,
3913
4028
  `subpax_${designName}_stpFaceT`,
3914
- `subpax_${designName}_stpFaceB`
4029
+ `subpax_${designName}_stpFaceB`,
4030
+ `subpax_${designName}_lowSH`,
4031
+ `subpax_${designName}_Hi1SH1`,
4032
+ `subpax_${designName}_Hi1SH2`,
4033
+ `subpax_${designName}_Hi2SH`
3915
4034
  ]
3916
4035
  },
3917
4036
  {
3918
4037
  outName: `ipax_${designName}_hollow`,
3919
4038
  boolMethod: EBVolume9.eUnion,
3920
4039
  inList: [
4040
+ `inpax_${designName}_coneHollow`,
4041
+ `inpax_${designName}_beamHollow`,
3921
4042
  `subpax_${designName}_stpSideH`,
3922
4043
  `subpax_${designName}_stpFaceTH`,
3923
4044
  `subpax_${designName}_stpFaceBH`
@@ -4039,7 +4160,7 @@ function pGeom10(t, param, suffix = "") {
4039
4160
  rGeome.logstr += `heliostat-swing-length: ${ffix12(param.L1)}, width ${ffix12(param.L2)} m
4040
4161
  `;
4041
4162
  const posAngleDegree = param.al * t / pDef10.sim.tMax;
4042
- const posAngle = degToRad5(posAngleDegree);
4163
+ const posAngle = degToRad6(posAngleDegree);
4043
4164
  rGeome.logstr += `swing position angle: ${ffix12(radToDeg8(posAngle))} degree
4044
4165
  `;
4045
4166
  const rakePosY = param.H1 + param.H2 - param.H3;
@@ -4884,7 +5005,7 @@ var ringGuidanceDef = {
4884
5005
  // src/heliostat/vaxis_guidance.ts
4885
5006
  import {
4886
5007
  contourCircle as contourCircle13,
4887
- ctrRectangle as ctrRectangle3,
5008
+ ctrRectangle as ctrRectangle4,
4888
5009
  figure as figure15,
4889
5010
  ffix as ffix17,
4890
5011
  pNumber as pNumber15,
@@ -4986,10 +5107,10 @@ function pGeom15(t, param, suffix = "") {
4986
5107
  figTop.addMain(innerCtr);
4987
5108
  figTop.addSecond(contourCircle13(0, 0, param.Dvaxis / 2));
4988
5109
  const w1 = R1 - R6 + R4;
4989
- figSection.addMain(ctrRectangle3(R6, 0, w1, param.T1));
4990
- figSection.addMain(ctrRectangle3(-R6 - w1, 0, w1, param.T1));
4991
- figSection.addSecond(ctrRectangle3(R1 - R3, 0, 2 * R3, param.T1));
4992
- figSection.addSecond(ctrRectangle3(-R1 - R3, 0, 2 * R3, param.T1));
5110
+ figSection.addMain(ctrRectangle4(R6, 0, w1, param.T1));
5111
+ figSection.addMain(ctrRectangle4(-R6 - w1, 0, w1, param.T1));
5112
+ figSection.addSecond(ctrRectangle4(R1 - R3, 0, 2 * R3, param.T1));
5113
+ figSection.addSecond(ctrRectangle4(-R1 - R3, 0, 2 * R3, param.T1));
4993
5114
  rGeome.fig = {
4994
5115
  faceTop: figTop,
4995
5116
  faceSection: figSection
@@ -5035,9 +5156,9 @@ import {
5035
5156
  point as point6,
5036
5157
  contour as contour14,
5037
5158
  contourCircle as contourCircle14,
5038
- ctrRectangle as ctrRectangle4,
5159
+ ctrRectangle as ctrRectangle5,
5039
5160
  figure as figure16,
5040
- degToRad as degToRad6,
5161
+ degToRad as degToRad7,
5041
5162
  ffix as ffix18,
5042
5163
  pNumber as pNumber16,
5043
5164
  pDropdown as pDropdown3,
@@ -5106,7 +5227,7 @@ function pGeom16(t, param, suffix = "") {
5106
5227
  const Rinner = R5 + param.E5;
5107
5228
  const Rinner2 = R8 - param.E8;
5108
5229
  const aLeg = 2 * Math.asin(param.L5 / (2 * Rinner));
5109
- const sA0 = Math.PI / 12 + degToRad6(param.SA1);
5230
+ const sA0 = Math.PI / 12 + degToRad7(param.SA1);
5110
5231
  const sA = Math.PI / 2 + aLeg - sA0;
5111
5232
  const sA1 = Math.PI - sA0;
5112
5233
  const sA2 = Math.PI / 2 - Math.PI / 6 + sA0;
@@ -5143,9 +5264,9 @@ function pGeom16(t, param, suffix = "") {
5143
5264
  ctrProfile.addPointA(p23.cx, p23.cy).addSegArc(SR1 + param.SE1, false, true).addSegStrokeAP(-Math.PI / 6, Rinner).addSegStrokeAP(-Math.PI / 6, R8).addPointAP(Math.PI / 2, R8).addSegArc(R8, false, true).closeSegStroke();
5144
5265
  figProfile.addMain(ctrProfile);
5145
5266
  const R8plus = R8 * Math.sin(Math.PI / 6);
5146
- figSide.addMain(ctrRectangle4(0, -R8plus, param.L4, R8 + R8plus));
5147
- figSide.addSecond(ctrRectangle4(0, -R8, param.L4, 2 * R8));
5148
- figSide.addSecond(ctrRectangle4(0, -R5, param.L4, 2 * R5));
5267
+ figSide.addMain(ctrRectangle5(0, -R8plus, param.L4, R8 + R8plus));
5268
+ figSide.addSecond(ctrRectangle5(0, -R8, param.L4, 2 * R8));
5269
+ figSide.addSecond(ctrRectangle5(0, -R5, param.L4, 2 * R5));
5149
5270
  rGeome.fig = {
5150
5271
  faceProfile: figProfile,
5151
5272
  faceSide: figSide
@@ -6094,7 +6215,7 @@ var surfaceDef = {
6094
6215
  };
6095
6216
 
6096
6217
  // src/dummy/circles.ts
6097
- import { degToRad as degToRad7, point as point7, figure as figure20, pNumber as pNumber20, initGeom as initGeom20 } from "geometrix";
6218
+ import { degToRad as degToRad8, point as point7, figure as figure20, pNumber as pNumber20, initGeom as initGeom20 } from "geometrix";
6098
6219
  var pDef20 = {
6099
6220
  partName: "circles",
6100
6221
  params: [
@@ -6125,7 +6246,7 @@ function pGeom20(t, param, suffix = "") {
6125
6246
  figOne.addPoint(p2);
6126
6247
  for (let i = 0; i < 20; i++) {
6127
6248
  figOne.addPoint(
6128
- p1.scale(p2, param["amplitude-offset"] + param["amplitude-scale"] * i).rotate(p2, i * degToRad7(param.angle) + t * Math.PI / 2 / pDef20.sim.tMax)
6249
+ p1.scale(p2, param["amplitude-offset"] + param["amplitude-scale"] * i).rotate(p2, i * degToRad8(param.angle) + t * Math.PI / 2 / pDef20.sim.tMax)
6129
6250
  );
6130
6251
  }
6131
6252
  rGeome.fig = { one: figOne };
@@ -6251,7 +6372,7 @@ var dummyPoleStaticDef = {
6251
6372
  };
6252
6373
 
6253
6374
  // src/geometrix_verification/verify_point.ts
6254
- import { degToRad as degToRad8, point as point9, figure as figure23, pNumber as pNumber23, initGeom as initGeom23 } from "geometrix";
6375
+ import { degToRad as degToRad9, point as point9, figure as figure23, pNumber as pNumber23, initGeom as initGeom23 } from "geometrix";
6255
6376
  var pDef23 = {
6256
6377
  partName: "verify_point",
6257
6378
  params: [
@@ -6285,8 +6406,8 @@ function pGeom23(t, param, suffix = "") {
6285
6406
  try {
6286
6407
  const figOne = figure23();
6287
6408
  const p1 = point9(param.p1x, param.p1y + t);
6288
- const p2 = point9(0, 0).setPolar(degToRad8(param.p2a), param.p2l);
6289
- const p3 = p1.rotateOrig(degToRad8(param.rotateOrig));
6409
+ const p2 = point9(0, 0).setPolar(degToRad9(param.p2a), param.p2l);
6410
+ const p3 = p1.rotateOrig(degToRad9(param.rotateOrig));
6290
6411
  const p4 = p1.scaleOrig(param.scaleOrig);
6291
6412
  figOne.addPoint(p1);
6292
6413
  figOne.addPoint(p2);
@@ -6443,7 +6564,7 @@ var verifyLine1Def = {
6443
6564
  };
6444
6565
 
6445
6566
  // src/geometrix_verification/verify_line_2.ts
6446
- import { degToRad as degToRad9, point as point12, line as line2, figure as figure26, pNumber as pNumber26, initGeom as initGeom26 } from "geometrix";
6567
+ import { degToRad as degToRad10, point as point12, line as line2, figure as figure26, pNumber as pNumber26, initGeom as initGeom26 } from "geometrix";
6447
6568
  var pDef26 = {
6448
6569
  partName: "verify_line_2",
6449
6570
  params: [
@@ -6486,8 +6607,8 @@ function pGeom26(t, param, suffix = "") {
6486
6607
  figOne.addPoint(p1);
6487
6608
  figOne.addPoint(p2);
6488
6609
  figOne.addPoint(p3);
6489
- const l1 = line2(param.l1cx, param.l1cy, degToRad9(param.l1ca + t));
6490
- const l2 = line2(param.l2cx, param.l2cy, degToRad9(param.l2ca));
6610
+ const l1 = line2(param.l1cx, param.l1cy, degToRad10(param.l1ca + t));
6611
+ const l2 = line2(param.l2cx, param.l2cy, degToRad10(param.l2ca));
6491
6612
  figOne.addLine(l1);
6492
6613
  figOne.addLine(l2);
6493
6614
  figOne.addPoint(l1.intersection(l2));
@@ -6577,7 +6698,7 @@ var verifyLine3Def = {
6577
6698
  };
6578
6699
 
6579
6700
  // src/geometrix_verification/verify_vector.ts
6580
- import { degToRad as degToRad10, point as point14, vector, figure as figure28, pNumber as pNumber28, initGeom as initGeom28 } from "geometrix";
6701
+ import { degToRad as degToRad11, point as point14, vector, figure as figure28, pNumber as pNumber28, initGeom as initGeom28 } from "geometrix";
6581
6702
  var pDef28 = {
6582
6703
  partName: "verify_vector",
6583
6704
  params: [
@@ -6616,8 +6737,8 @@ function pGeom28(t, param, suffix = "") {
6616
6737
  const figOne = figure28();
6617
6738
  const p1 = point14(param.p1x, param.p1y + t);
6618
6739
  const p2 = point14(param.p2x, param.p2y);
6619
- const v1 = vector(degToRad10(param.v1a), param.v1l, p1);
6620
- const v2 = vector(degToRad10(param.v2a), param.v2l, p1);
6740
+ const v1 = vector(degToRad11(param.v1a), param.v1l, p1);
6741
+ const v2 = vector(degToRad11(param.v2a), param.v2l, p1);
6621
6742
  figOne.addPoint(p1);
6622
6743
  figOne.addPoint(p2);
6623
6744
  figOne.addVector(v1);
@@ -6721,7 +6842,7 @@ var verifyContour1Def = {
6721
6842
  };
6722
6843
 
6723
6844
  // src/geometrix_verification/verify_contour_2.ts
6724
- import { degToRad as degToRad11, contour as contour20, figure as figure30, pNumber as pNumber30, initGeom as initGeom30 } from "geometrix";
6845
+ import { degToRad as degToRad12, contour as contour20, figure as figure30, pNumber as pNumber30, initGeom as initGeom30 } from "geometrix";
6725
6846
  var pDef30 = {
6726
6847
  partName: "verify_contour_2",
6727
6848
  params: [
@@ -6791,17 +6912,17 @@ function pGeom30(t, param, suffix = "") {
6791
6912
  ctr2.addSegStrokeR(20, 20).addPointR(20, 20).addSegArc(r1, false, false).addPointRP(Math.PI / 4, 28).addSegArc(r1, false, true).addPointRP(Math.PI / 4, 28).addSegArc(r1, true, true).addPointRP(Math.PI / 4, 28).addSegArc(r1, true, false).addSegStrokeRP(Math.PI / 4, 20).addSegStrokeRP(-Math.PI / 4, 20).addPointR(10, -9).addPointR(20, -20).addSegArc2().addPointR(20, -9).addPointR(20, -20).addSegArc2().addPointR(9, -6).addPointR(20, -20).addSegArc2().addPointR(9, -14).addPointR(20, -20).addSegArc2().addPointR(9, 0).addPointR(20, -20).addSegArc2().addSegStrokeR(20, -20).addSegStrokeR(20, 20).addPointR(9, 20).addPointR(20, 20).addSegArc2().addPointR(20, 10).addPointR(20, 20).addSegArc2().addPointR(9, 6).addPointR(20, 20).addSegArc2().addPointR(9, 14).addPointR(20, 20).addSegArc2().addPointR(9, 0).addPointR(20, 20).addSegArc2().addSegStrokeR(20, 20).addSegStrokeR(0, 20).addPointR(15, 8).addPointR(0, 20).addSegArc2().addPointR(-15, 8).addPointR(0, 20).addSegArc2().addPointR(5, 8).addPointR(0, 20).addSegArc2().addPointR(-5, 8).addPointR(0, 20).addSegArc2().addSegStrokeR(0, 20).addSegStrokeR(20, 0).addPointR(8, 15).addPointR(20, 0).addSegArc2().addPointR(8, -15).addPointR(20, 0).addSegArc2().addPointR(8, 5).addPointR(20, 0).addSegArc2().addPointR(8, -5).addPointR(20, 0).addSegArc2().addSegStrokeR(20, 0).addSegStrokeR(0, -20).addPointR(15, -8).addPointR(0, -20).addSegArc2().addPointR(-15, -8).addPointR(0, -20).addSegArc2().addPointR(5, -8).addPointR(0, -20).addSegArc2().addPointR(-5, -8).addPointR(0, -20).addSegArc2().addSegStrokeR(0, -20).addSegStrokeR(-20, 0).addPointR(-8, 15).addPointR(-20, 0).addSegArc2().addPointR(-8, -15).addPointR(-20, 0).addSegArc2().addPointR(-8, 5).addPointR(-20, 0).addSegArc2().addPointR(-8, -5).addPointR(-20, 0).addSegArc2().addSegStrokeR(-20, 0).closeSegStroke();
6792
6913
  ctr2.check();
6793
6914
  figOne.addMain(ctr2);
6794
- const ctr3 = contour20(200, 200).addSegStrokeR(20, 0).addPointR(20, 0).addSegArc3(degToRad11(ata), true).addSegStrokeR(20, 0).addPointR(20, 0).addSegArc3(degToRad11(ata), false).addSegStrokeR(20, 0).addSegStrokeR(0, 20).addPointR(0, 20).addSegArc3(degToRad11(ata), true).addSegStrokeR(0, 20).addPointR(0, 20).addSegArc3(degToRad11(ata), false).addSegStrokeR(0, 20).addSegStrokeR(-20, 0).addPointR(-20, 0).addSegArc3(degToRad11(ata), true).addSegStrokeR(-20, 0).addPointR(-20, 0).addSegArc3(degToRad11(ata), false).addSegStrokeR(-20, 0).addSegStrokeR(0, -20).addPointR(0, -20).addSegArc3(degToRad11(ata), true).addSegStrokeR(0, -20).addPointR(0, -20).addSegArc3(degToRad11(ata), false).addSegStrokeR(0, -20);
6915
+ const ctr3 = contour20(200, 200).addSegStrokeR(20, 0).addPointR(20, 0).addSegArc3(degToRad12(ata), true).addSegStrokeR(20, 0).addPointR(20, 0).addSegArc3(degToRad12(ata), false).addSegStrokeR(20, 0).addSegStrokeR(0, 20).addPointR(0, 20).addSegArc3(degToRad12(ata), true).addSegStrokeR(0, 20).addPointR(0, 20).addSegArc3(degToRad12(ata), false).addSegStrokeR(0, 20).addSegStrokeR(-20, 0).addPointR(-20, 0).addSegArc3(degToRad12(ata), true).addSegStrokeR(-20, 0).addPointR(-20, 0).addSegArc3(degToRad12(ata), false).addSegStrokeR(-20, 0).addSegStrokeR(0, -20).addPointR(0, -20).addSegArc3(degToRad12(ata), true).addSegStrokeR(0, -20).addPointR(0, -20).addSegArc3(degToRad12(ata), false).addSegStrokeR(0, -20);
6795
6916
  ctr3.check();
6796
6917
  figOne.addMain(ctr3);
6797
- const ctr4 = contour20(600, 200).addSegStrokeR(20, 20).addPointR(20, 20).addSegArc3(degToRad11(ata), true).addSegStrokeR(20, 20).addPointR(20, 20).addSegArc3(degToRad11(ata), false).addSegStrokeR(20, 20).addSegStrokeR(-20, 20).addPointR(-20, 20).addSegArc3(degToRad11(ata), true).addSegStrokeR(-20, 20).addPointR(-20, 20).addSegArc3(degToRad11(ata), false).addSegStrokeR(-20, 20).addSegStrokeR(-20, -20).addPointR(-20, -20).addSegArc3(degToRad11(ata), true).addSegStrokeR(-20, -20).addPointR(-20, -20).addSegArc3(degToRad11(ata), false).addSegStrokeR(-20, -20).addSegStrokeR(20, -20).addPointR(20, -20).addSegArc3(degToRad11(ata), true).addSegStrokeR(20, -20).addPointR(20, -20).addSegArc3(degToRad11(ata), false).addSegStrokeR(20, -20);
6918
+ const ctr4 = contour20(600, 200).addSegStrokeR(20, 20).addPointR(20, 20).addSegArc3(degToRad12(ata), true).addSegStrokeR(20, 20).addPointR(20, 20).addSegArc3(degToRad12(ata), false).addSegStrokeR(20, 20).addSegStrokeR(-20, 20).addPointR(-20, 20).addSegArc3(degToRad12(ata), true).addSegStrokeR(-20, 20).addPointR(-20, 20).addSegArc3(degToRad12(ata), false).addSegStrokeR(-20, 20).addSegStrokeR(-20, -20).addPointR(-20, -20).addSegArc3(degToRad12(ata), true).addSegStrokeR(-20, -20).addPointR(-20, -20).addSegArc3(degToRad12(ata), false).addSegStrokeR(-20, -20).addSegStrokeR(20, -20).addPointR(20, -20).addSegArc3(degToRad12(ata), true).addSegStrokeR(20, -20).addPointR(20, -20).addSegArc3(degToRad12(ata), false).addSegStrokeR(20, -20);
6798
6919
  ctr4.check();
6799
6920
  figOne.addMain(ctr4);
6800
6921
  const ctr5 = contour20(100, 500);
6801
6922
  for (let i = 0; i < 8; i++) {
6802
6923
  const adir = i * 45;
6803
- const adirRad = degToRad11(adir);
6804
- ctr5.addSegStrokeRP(adirRad, 20).addPointRP(adirRad, 20).addSeg2Arcs(degToRad11(adir + at1), degToRad11(180 + adir - at2)).addSegStrokeRP(adirRad, 20).addPointRP(adirRad, 20).addSeg2Arcs(degToRad11(adir - at1), degToRad11(180 + adir + at2)).addSegStrokeRP(adirRad, 20);
6924
+ const adirRad = degToRad12(adir);
6925
+ ctr5.addSegStrokeRP(adirRad, 20).addPointRP(adirRad, 20).addSeg2Arcs(degToRad12(adir + at1), degToRad12(180 + adir - at2)).addSegStrokeRP(adirRad, 20).addPointRP(adirRad, 20).addSeg2Arcs(degToRad12(adir - at1), degToRad12(180 + adir + at2)).addSegStrokeRP(adirRad, 20);
6805
6926
  }
6806
6927
  ctr5.check();
6807
6928
  figOne.addMain(ctr5);
@@ -6822,7 +6943,7 @@ var verifyContour2Def = {
6822
6943
  };
6823
6944
 
6824
6945
  // src/geometrix_verification/verify_contour_3.ts
6825
- import { degToRad as degToRad12, contour as contour21, figure as figure31, pNumber as pNumber31, initGeom as initGeom31 } from "geometrix";
6946
+ import { degToRad as degToRad13, contour as contour21, figure as figure31, pNumber as pNumber31, initGeom as initGeom31 } from "geometrix";
6826
6947
  var pDef31 = {
6827
6948
  partName: "verify_contour_3",
6828
6949
  params: [
@@ -6868,7 +6989,7 @@ function pGeom31(t, param, suffix = "") {
6868
6989
  const ctr2 = contour21(300, 0);
6869
6990
  for (let i = 0; i < 4; i++) {
6870
6991
  const angle = 90 * (1 - i);
6871
- ctr2.addSegStrokeRP(degToRad12(angle), l2).addCornerRounded(r2).addSegStrokeRP(degToRad12(angle - 45), l2).addCornerRounded(r2).addSegStrokeRP(degToRad12(angle + 45), l2).addCornerRounded(r2).addSegStrokeRP(degToRad12(angle), l2).addCornerRounded(r2);
6992
+ ctr2.addSegStrokeRP(degToRad13(angle), l2).addCornerRounded(r2).addSegStrokeRP(degToRad13(angle - 45), l2).addCornerRounded(r2).addSegStrokeRP(degToRad13(angle + 45), l2).addCornerRounded(r2).addSegStrokeRP(degToRad13(angle), l2).addCornerRounded(r2);
6872
6993
  }
6873
6994
  rGeome.logstr += ctr2.check();
6874
6995
  figOne.addMain(ctr2);