designix 0.5.29 → 0.5.31

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,
@@ -1448,6 +1448,7 @@ import {
1448
1448
  prefixLog as prefixLog2,
1449
1449
  contour as contour6,
1450
1450
  contourCircle as contourCircle4,
1451
+ ctrOblong,
1451
1452
  figure as figure4,
1452
1453
  radToDeg as radToDeg3,
1453
1454
  ffix as ffix6,
@@ -2091,8 +2092,13 @@ function pGeom4(t, param, suffix = "") {
2091
2092
  }
2092
2093
  const ctrDoorFace = function(pL2) {
2093
2094
  const R4b = R4 - pL2;
2094
- const H3b = param.H3 + R4;
2095
- const rCtrDoorFace = contour6(R4b, H3b + doorStraightLenght).addPointR(-R4b, R4b).addSegArc(R4b, false, true).addPointR(-R4b, -R4b).addSegArc(R4b, false, true).addSegStrokeR(0, -doorStraightLenght).addPointR(R4b, -R4b).addSegArc(R4b, false, true).addPointR(R4b, R4b).addSegArc(R4b, false, true).closeSegStroke();
2095
+ const rCtrDoorFace = ctrOblong(
2096
+ 0,
2097
+ param.H3 + R4 - R4b,
2098
+ 2 * R4b,
2099
+ doorStraightLenght + 2 * R4b,
2100
+ Math.PI / 2
2101
+ );
2096
2102
  return rCtrDoorFace;
2097
2103
  };
2098
2104
  figFace.addMain(ctrDoorFace(0));
@@ -2349,7 +2355,11 @@ var poleStaticDef = {
2349
2355
  import {
2350
2356
  contour as contour7,
2351
2357
  contourCircle as contourCircle5,
2358
+ ctrRectangle,
2359
+ ctrRectRot,
2360
+ ctrTrapezoid,
2352
2361
  figure as figure5,
2362
+ degToRad as degToRad4,
2353
2363
  radToDeg as radToDeg4,
2354
2364
  ffix as ffix7,
2355
2365
  pNumber as pNumber5,
@@ -2393,7 +2403,8 @@ var pDef5 = {
2393
2403
  pNumber5("H6", "mm", 100, 1, 1e3, 10),
2394
2404
  pNumber5("H7", "mm", 600, 10, 2e3, 10),
2395
2405
  pNumber5("L9", "mm", 300, 1, 1e3, 10),
2396
- pNumber5("R9", "mm", 50, 0, 300, 1)
2406
+ pNumber5("R9", "mm", 50, 0, 300, 1),
2407
+ pNumber5("doorOrientation", "degree", 0, -180, 180, 1)
2397
2408
  ],
2398
2409
  paramSvg: {
2399
2410
  D1: "rake_face.svg",
@@ -2423,7 +2434,8 @@ var pDef5 = {
2423
2434
  H6: "rake_door.svg",
2424
2435
  H7: "rake_door.svg",
2425
2436
  L9: "rake_door.svg",
2426
- R9: "rake_door.svg"
2437
+ R9: "rake_door.svg",
2438
+ doorOrientation: "rake_door.svg"
2427
2439
  },
2428
2440
  sim: {
2429
2441
  tMax: 180,
@@ -2434,10 +2446,8 @@ var pDef5 = {
2434
2446
  };
2435
2447
  function pGeom5(t, param, suffix = "") {
2436
2448
  const rGeome = initGeom5(pDef5.partName + suffix);
2437
- let ctrCone;
2438
- let ctrConePlus;
2439
- let ctrRect;
2440
2449
  const figCone = figure5();
2450
+ const figConeHollow = figure5();
2441
2451
  const figBeam = figure5();
2442
2452
  const figBeamHollow = figure5();
2443
2453
  const figDisc = figure5();
@@ -2458,28 +2468,6 @@ function pGeom5(t, param, suffix = "") {
2458
2468
  const R8 = param.D8 / 2;
2459
2469
  const H1H2 = param.H1 + param.H2;
2460
2470
  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
2471
  const beamL = 4 * param.L4 + param.L5 + 2 * param.L6;
2484
2472
  const beamH = param.H1 + param.H2 - param.H4;
2485
2473
  const handLowX = R4 * Math.cos(Math.PI / 6);
@@ -2490,17 +2478,10 @@ function pGeom5(t, param, suffix = "") {
2490
2478
  const handHighYext = R8 * Math.sin(Math.PI / 6);
2491
2479
  const handPos = [-beamL / 2, -param.L5 / 2 - param.L4, param.L5 / 2, beamL / 2 - param.L4];
2492
2480
  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
2481
  const coneAngle = Math.atan2(R1 - R2, param.H2);
2497
- rGeome.logstr += `cone-angle: ${ffix7(radToDeg4(coneAngle))} degree
2498
- `;
2499
2482
  const wingLx = beamL / 2 - param.L7 - R1 + param.L8 * Math.tan(coneAngle);
2500
2483
  const wingL = Math.sqrt(wingLx ** 2 + wingLy ** 2);
2501
2484
  const wingAngle = Math.atan2(wingLx, wingLy);
2502
- rGeome.logstr += `wing-angle: ${ffix7(radToDeg4(wingAngle))} degree
2503
- `;
2504
2485
  const wingLPre = param.E1 / Math.sin(wingAngle + coneAngle);
2505
2486
  const wingL2 = wingL + param.E4 / Math.cos(wingAngle) + wingLPre;
2506
2487
  const wingPosX = R1 - param.L8 * Math.tan(coneAngle) - wingLPre * Math.sin(wingAngle);
@@ -2513,49 +2494,82 @@ function pGeom5(t, param, suffix = "") {
2513
2494
  const wingAngleC = Math.PI / 2 - wingAngle;
2514
2495
  const doorLowX = param.L9 / 2;
2515
2496
  const doorHighX = doorLowX - param.H7 * Math.tan(coneAngle);
2497
+ if (param.D2 > param.D1) {
2498
+ throw `err110: D2 ${param.D2} is larger than D1 ${param.D1}`;
2499
+ }
2500
+ if (param.D3 + param.E1 > param.D1) {
2501
+ throw `err113: D3 ${param.D3} is too large compare to D1 ${param.D1} and E1 ${param.E1}`;
2502
+ }
2503
+ if (param.H3 + param.E3 > param.H1) {
2504
+ throw `err116: H3 ${param.H3} is too large compare to H1 ${param.H1} and E3 ${param.E3}`;
2505
+ }
2506
+ if (param.H4 + R4 > param.H2) {
2507
+ throw `err119: H4 ${param.H4} is too large compare to H2 ${param.H2} and D4 ${param.D4}`;
2508
+ }
2509
+ if (param.E4 > R4) {
2510
+ throw `err122: E4 ${param.E4} is too large compare to D4 ${param.D4}`;
2511
+ }
2512
+ if (param.D8 <= param.D5) {
2513
+ throw `err146: D8 ${param.D8} is too small compare to D5 ${param.D5}`;
2514
+ }
2515
+ if (wingLy < 0) {
2516
+ throw `err140: H2 ${param.H2} too small compare to L8 ${param.L8}, H4 ${param.H4} and D4 ${param.D4}`;
2517
+ }
2516
2518
  if (doorHighX < param.R9) {
2517
2519
  throw `err177: R9 ${param.R9} too large compare to doorHighX ${doorHighX} and L9 ${param.L9}`;
2518
2520
  }
2519
2521
  if (param.L9 > param.D1) {
2520
2522
  throw `err180: L9 ${param.L9} too large compare to D1 ${param.D1}`;
2521
2523
  }
2524
+ rGeome.logstr += `cone-height: ${ffix7(H1H2)} mm
2525
+ `;
2526
+ rGeome.logstr += `cone-height total: ${ffix7(H1H5)} mm
2527
+ `;
2528
+ rGeome.logstr += `cone-angle: ${ffix7(radToDeg4(coneAngle))} degree
2529
+ `;
2530
+ rGeome.logstr += `wing-angle: ${ffix7(radToDeg4(wingAngle))} degree
2531
+ `;
2522
2532
  const coneSlopeX = param.E1 * Math.cos(coneAngle);
2523
2533
  const coneSlopeY = param.E1 * Math.sin(coneAngle);
2524
2534
  const coneFC = param.E1 * Math.tan(coneAngle / 2);
2525
- ctrCone = function(orient) {
2535
+ const ctrCone = function(orient) {
2526
2536
  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
2537
  return rCtr;
2528
2538
  };
2529
- ctrConePlus = function(orient) {
2539
+ const ctrConePlus = function(orient) {
2530
2540
  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
2541
  return rCtr;
2532
2542
  };
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
- };
2541
- 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();
2543
+ const coneHollowHeight2 = beamH - R4 - (param.H1 - coneFC);
2544
+ const coneHollowR2 = R1 - param.E1 - Math.tan(coneAngle) * coneHollowHeight2;
2545
+ 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();
2546
+ const ctrDoor = ctrTrapezoid(
2547
+ -doorLowX,
2548
+ param.H1 + param.H6,
2549
+ param.L9,
2550
+ 2 * doorHighX,
2551
+ param.H7,
2552
+ param.R9
2553
+ );
2542
2554
  figCone.addMain(ctrCone(1));
2543
2555
  figCone.addSecond(ctrConePlus(1));
2544
2556
  figCone.addSecond(ctrConePlus(-1));
2545
- figCone.addSecond(ctrRect(beamL, param.D4, -beamL / 2, beamH - R4, 0));
2557
+ figCone.addSecond(ctrRectangle(-beamL / 2, beamH - R4, beamL, param.D4));
2546
2558
  figCone.addSecond(
2547
- ctrRect(beamL, param.D4 - 2 * param.E4, -beamL / 2, beamH - R4 + param.E4, 0)
2559
+ ctrRectangle(-beamL / 2, beamH - R4 + param.E4, beamL, param.D4 - 2 * param.E4)
2548
2560
  );
2549
2561
  for (const posX of handPos) {
2550
2562
  figCone.addSecond(
2551
- ctrRect(param.L4, param.H5 - handLowY - handHighYint, posX, beamH + handLowY, 0)
2563
+ ctrRectangle(posX, beamH + handLowY, param.L4, param.H5 - handLowY - handHighYint)
2552
2564
  );
2553
2565
  }
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));
2566
+ figCone.addSecond(ctrRectRot(wingPosX, wingPosY, wingL2, 2 * R6, wingAngleC));
2567
+ figCone.addSecond(ctrRectRot(wingHPosX, wingHPosY, wingL2, 2 * wingHR, wingAngleC));
2568
+ figCone.addSecond(ctrRectRot(-wingPosX, wingPosY, 2 * R6, wingL2, wingAngle));
2569
+ figCone.addSecond(ctrRectRot(-wingHPosX, wingHPosY, 2 * wingHR, wingL2, wingAngle));
2558
2570
  figCone.addSecond(ctrDoor);
2571
+ figConeHollow.mergeFigure(figCone, true);
2572
+ figConeHollow.addMain(ctrConeHollow);
2559
2573
  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
2574
  figBeam.addMain(contourCircle5(0, beamH, R4));
2561
2575
  figBeam.addMain(contourCircle5(0, beamH, R4 - param.E4));
@@ -2563,8 +2577,8 @@ function pGeom5(t, param, suffix = "") {
2563
2577
  figBeam.addSecond(ctrConePlus(-1));
2564
2578
  figBeam.addSecond(ctrHand);
2565
2579
  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));
2580
+ figBeam.addSecond(ctrRectangle(-R6, param.H1 + param.L8, 2 * R6, wingLy));
2581
+ figBeam.addSecond(ctrRectangle(-wingHR, param.H1 + param.L8, 2 * wingHR, wingLy));
2568
2582
  figBeam.addSecond(ctrDoor);
2569
2583
  figBeamHollow.addMain(contourCircle5(0, beamH, R4 - param.E4));
2570
2584
  figBeamHollow.addSecond(contourCircle5(0, beamH, R4));
@@ -2580,22 +2594,22 @@ function pGeom5(t, param, suffix = "") {
2580
2594
  }
2581
2595
  figDisc.addSecond(contourCircle5(0, 0, R1 - param.E1));
2582
2596
  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));
2597
+ figDisc.addSecond(ctrRectangle(-R4, -beamL / 2, param.D4, beamL));
2598
+ figDisc.addSecond(ctrRectangle(-R4 + param.E4, -beamL / 2, param.D4 - 2 * param.E4, beamL));
2585
2599
  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));
2600
+ figDisc.addSecond(ctrRectangle(-handLowX, posX, 2 * handLowX, param.L4));
2601
+ figDisc.addSecond(ctrRectangle(-handHighXint, posX, 2 * handHighXint, param.L4));
2602
+ figDisc.addSecond(ctrRectangle(-handHighXext, posX, 2 * handHighXext, param.L4));
2589
2603
  }
2590
- figDisc.addSecond(ctrRect(2 * R6, wingLx, -R6, R1 - param.L8 * Math.tan(coneAngle), 0));
2604
+ figDisc.addSecond(ctrRectangle(-R6, R1 - param.L8 * Math.tan(coneAngle), 2 * R6, wingLx));
2591
2605
  figDisc.addSecond(
2592
- ctrRect(2 * wingHR, wingLx, -wingHR, R1 - param.L8 * Math.tan(coneAngle), 0)
2606
+ ctrRectangle(-wingHR, R1 - param.L8 * Math.tan(coneAngle), 2 * wingHR, wingLx)
2593
2607
  );
2594
2608
  figDisc.addSecond(
2595
- ctrRect(2 * R6, wingLx, -R6, -R1 + param.L8 * Math.tan(coneAngle) - wingLx, 0)
2609
+ ctrRectangle(-R6, -R1 + param.L8 * Math.tan(coneAngle) - wingLx, 2 * R6, wingLx)
2596
2610
  );
2597
2611
  figDisc.addSecond(
2598
- ctrRect(2 * wingHR, wingLx, -wingHR, -R1 + param.L8 * Math.tan(coneAngle) - wingLx, 0)
2612
+ ctrRectangle(-wingHR, -R1 + param.L8 * Math.tan(coneAngle) - wingLx, 2 * wingHR, wingLx)
2599
2613
  );
2600
2614
  figHand.addMain(ctrHand);
2601
2615
  figHand.addSecond(contourCircle5(0, beamH, R4));
@@ -2608,21 +2622,22 @@ function pGeom5(t, param, suffix = "") {
2608
2622
  figDoor.addMain(ctrDoor);
2609
2623
  figDoor.addSecond(ctrConePlus(1));
2610
2624
  figDoor.addSecond(ctrConePlus(-1));
2611
- figDoor.addSecond(ctrRect(beamL, param.D4, -beamL / 2, beamH - R4, 0));
2625
+ figDoor.addSecond(ctrRectangle(-beamL / 2, beamH - R4, beamL, param.D4));
2612
2626
  figDoor.addSecond(
2613
- ctrRect(beamL, param.D4 - 2 * param.E4, -beamL / 2, beamH - R4 + param.E4, 0)
2627
+ ctrRectangle(-beamL / 2, beamH - R4 + param.E4, beamL, param.D4 - 2 * param.E4)
2614
2628
  );
2615
2629
  for (const posX of handPos) {
2616
2630
  figDoor.addSecond(
2617
- ctrRect(param.L4, param.H5 - handLowY - handHighYint, posX, beamH + handLowY, 0)
2631
+ ctrRectangle(posX, beamH + handLowY, param.L4, param.H5 - handLowY - handHighYint)
2618
2632
  );
2619
2633
  }
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));
2634
+ figDoor.addSecond(ctrRectRot(wingPosX, wingPosY, wingL2, 2 * R6, wingAngleC));
2635
+ figDoor.addSecond(ctrRectRot(wingHPosX, wingHPosY, wingL2, 2 * wingHR, wingAngleC));
2636
+ figDoor.addSecond(ctrRectRot(-wingPosX, wingPosY, 2 * R6, wingL2, wingAngle));
2637
+ figDoor.addSecond(ctrRectRot(-wingHPosX, wingHPosY, 2 * wingHR, wingL2, wingAngle));
2624
2638
  rGeome.fig = {
2625
2639
  faceCone: figCone,
2640
+ faceConeHollow: figConeHollow,
2626
2641
  faceBeam: figBeam,
2627
2642
  faceBeamHollow: figBeamHollow,
2628
2643
  faceDisc: figDisc,
@@ -2652,6 +2667,13 @@ function pGeom5(t, param, suffix = "") {
2652
2667
  rotate: [0, 0, 0],
2653
2668
  translate: [0, 0, 0]
2654
2669
  },
2670
+ {
2671
+ outName: `subpax_${designName}_coneHollow`,
2672
+ face: `${designName}_faceConeHollow`,
2673
+ extrudeMethod: EExtrude4.eRotate,
2674
+ rotate: [0, 0, 0],
2675
+ translate: [0, 0, 0]
2676
+ },
2655
2677
  {
2656
2678
  outName: `subpax_${designName}_beam`,
2657
2679
  face: `${designName}_faceBeam`,
@@ -2713,7 +2735,7 @@ function pGeom5(t, param, suffix = "") {
2713
2735
  face: `${designName}_faceDoor`,
2714
2736
  extrudeMethod: EExtrude4.eLinearOrtho,
2715
2737
  length: param.D1,
2716
- rotate: [Math.PI / 2, 0, Math.PI / 2],
2738
+ rotate: [Math.PI / 2, 0, -Math.PI / 2 + degToRad4(param.doorOrientation)],
2717
2739
  translate: [0, 0, 0]
2718
2740
  },
2719
2741
  ...preExtrude
@@ -2738,6 +2760,7 @@ function pGeom5(t, param, suffix = "") {
2738
2760
  outName: `ipax_${designName}_hollow`,
2739
2761
  boolMethod: EBVolume5.eUnion,
2740
2762
  inList: [
2763
+ `subpax_${designName}_coneHollow`,
2741
2764
  `subpax_${designName}_beamHollow`,
2742
2765
  `subpax_${designName}_wing_hollow_right`,
2743
2766
  `subpax_${designName}_wing_hollow_left`,
@@ -2962,7 +2985,7 @@ import {
2962
2985
  point as point5,
2963
2986
  contour as contour9,
2964
2987
  contourCircle as contourCircle7,
2965
- ctrRectangle,
2988
+ ctrRectangle as ctrRectangle2,
2966
2989
  figure as figure7,
2967
2990
  ffix as ffix9,
2968
2991
  pNumber as pNumber7,
@@ -3046,9 +3069,9 @@ function pGeom7(t, param, suffix = "") {
3046
3069
  figSide.addMain(contourCircle7(0, 0, R1 - param.E1));
3047
3070
  const sidePx = [-param.L2 / 2, -param.L3 - param.H2, param.L3, param.L2 / 2 - param.H2];
3048
3071
  for (const px of sidePx) {
3049
- figSide.addMain(ctrRectangle(px, R1 - param.H4, param.H2, param.H4));
3072
+ figSide.addMain(ctrRectangle2(px, R1 - param.H4, param.H2, param.H4));
3050
3073
  figSide.addMain(
3051
- ctrRectangle(
3074
+ ctrRectangle2(
3052
3075
  px + param.E2,
3053
3076
  R1 - param.H4 + param.E2,
3054
3077
  param.H2 - 2 * param.E2,
@@ -3056,7 +3079,7 @@ function pGeom7(t, param, suffix = "") {
3056
3079
  )
3057
3080
  );
3058
3081
  }
3059
- figSide.addSecond(ctrRectangle(-param.L2 / 2, R1, param.L2, param.H3));
3082
+ figSide.addSecond(ctrRectangle2(-param.L2 / 2, R1, param.L2, param.H3));
3060
3083
  const facePx = [];
3061
3084
  facePx.push(-param.L1 / 2);
3062
3085
  facePx.push(param.L1 / 2 - param.H1);
@@ -3071,9 +3094,9 @@ function pGeom7(t, param, suffix = "") {
3071
3094
  }
3072
3095
  }
3073
3096
  for (const px of facePx) {
3074
- figFace.addMain(ctrRectangle(px, R1, param.H1, param.H3));
3097
+ figFace.addMain(ctrRectangle2(px, R1, param.H1, param.H3));
3075
3098
  figFace.addMain(
3076
- ctrRectangle(
3099
+ ctrRectangle2(
3077
3100
  px + param.E3,
3078
3101
  R1 + param.E3,
3079
3102
  param.H1 - 2 * param.E3,
@@ -3081,15 +3104,15 @@ function pGeom7(t, param, suffix = "") {
3081
3104
  )
3082
3105
  );
3083
3106
  }
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));
3107
+ figFace.addSecond(ctrRectangle2(-param.L1 / 2, -R1, param.L1, param.D1));
3108
+ figFace.addSecond(ctrRectangle2(-param.L1 / 2, R1 - param.H4, param.L1, param.H4));
3086
3109
  for (const px of facePx) {
3087
- figTop.addSecond(ctrRectangle(px, -param.L2 / 2, param.H1, param.L2));
3110
+ figTop.addSecond(ctrRectangle2(px, -param.L2 / 2, param.H1, param.L2));
3088
3111
  }
3089
3112
  for (const py of sidePx) {
3090
- figTop.addSecond(ctrRectangle(-param.L1 / 2, py, param.L1, param.H2));
3113
+ figTop.addSecond(ctrRectangle2(-param.L1 / 2, py, param.L1, param.H2));
3091
3114
  }
3092
- figTop.addSecond(ctrRectangle(-param.L1 / 2, -R1, param.L1, param.D1));
3115
+ figTop.addSecond(ctrRectangle2(-param.L1 / 2, -R1, param.L1, param.D1));
3093
3116
  const aBAC = Math.atan2(param.S1, R1);
3094
3117
  const aDAB = 2 * aBAC;
3095
3118
  const pA = point5(0, 0);
@@ -3100,12 +3123,12 @@ function pGeom7(t, param, suffix = "") {
3100
3123
  figButtress.addMain(contourCircle7(0, 0, R1 - param.E1));
3101
3124
  figSide.addSecond(ctrButtress);
3102
3125
  for (const px of facePx) {
3103
- figTopWithRod.addMain(ctrRectangle(px, -param.L2 / 2, param.H1, param.L2));
3126
+ figTopWithRod.addMain(ctrRectangle2(px, -param.L2 / 2, param.H1, param.L2));
3104
3127
  }
3105
3128
  for (const py of sidePx) {
3106
- figTopWithRod.addMain(ctrRectangle(-param.L1 / 2, py, param.L1, param.H2));
3129
+ figTopWithRod.addMain(ctrRectangle2(-param.L1 / 2, py, param.L1, param.H2));
3107
3130
  }
3108
- figTopWithRod.addMain(ctrRectangle(-param.L1 / 2, -R1, param.L1, param.D1));
3131
+ figTopWithRod.addMain(ctrRectangle2(-param.L1 / 2, -R1, param.L1, param.D1));
3109
3132
  const rodPx0 = -((param.rod1 - 1) * param.rod2 + param.rod3) / 2;
3110
3133
  const rodOffset = (param.rod3 - param.rod4) / 2;
3111
3134
  const rodPlateH = param.rod3 / 2;
@@ -3114,10 +3137,10 @@ function pGeom7(t, param, suffix = "") {
3114
3137
  const rodPy0 = -rodLength / 2;
3115
3138
  for (let i = 0; i < param.rod1; i++) {
3116
3139
  const px = rodPx0 + i * param.rod2;
3117
- figTopWithRod.addSecond(ctrRectangle(px + rodOffset, rodPy0, param.rod4, rodLength));
3140
+ figTopWithRod.addSecond(ctrRectangle2(px + rodOffset, rodPy0, param.rod4, rodLength));
3118
3141
  for (let j = 0; j < 4; j++) {
3119
3142
  figTopWithRod.addSecond(
3120
- ctrRectangle(px, rodPy0 + j * rodPyStep, param.rod3, rodPlateH, rodPlateH / 4)
3143
+ ctrRectangle2(px, rodPy0 + j * rodPyStep, param.rod3, rodPlateH, rodPlateH / 4)
3121
3144
  );
3122
3145
  }
3123
3146
  }
@@ -3288,7 +3311,7 @@ function pGeom8(t, param, suffix = "") {
3288
3311
  `;
3289
3312
  const posAngleMid = (param.al - param.ar) / 2;
3290
3313
  const posAngleDegree = posAngleMid - Math.sin(2 * Math.PI * t / pDef8.sim.tMax) * (param.al + param.ar) / 2;
3291
- const posAngle = degToRad4(posAngleDegree);
3314
+ const posAngle = degToRad5(posAngleDegree);
3292
3315
  rGeome.logstr += `swing position angle: ${ffix10(radToDeg6(posAngle))} degree
3293
3316
  `;
3294
3317
  const rakePosY = param.H1 + param.H2 - param.H3;
@@ -3513,7 +3536,7 @@ import {
3513
3536
  checkGeom as checkGeom5,
3514
3537
  prefixLog as prefixLog5,
3515
3538
  figure as figure10,
3516
- degToRad as degToRad5,
3539
+ degToRad as degToRad6,
3517
3540
  radToDeg as radToDeg8,
3518
3541
  ffix as ffix12,
3519
3542
  pNumber as pNumber10,
@@ -3528,8 +3551,8 @@ import {
3528
3551
  checkGeom as checkGeom4,
3529
3552
  prefixLog as prefixLog4,
3530
3553
  contourCircle as contourCircle8,
3531
- ctrRectangle as ctrRectangle2,
3532
- ctrRectRot,
3554
+ ctrRectangle as ctrRectangle3,
3555
+ ctrRectRot2,
3533
3556
  figure as figure9,
3534
3557
  radToDeg as radToDeg7,
3535
3558
  ffix as ffix11,
@@ -3575,9 +3598,11 @@ var pDef9 = {
3575
3598
  pNumber9("H7", "mm", 600, 1, 2e3, 1),
3576
3599
  pNumber9("L9", "mm", 300, 1, 1e3, 1),
3577
3600
  pNumber9("R9", "mm", 50, 0, 300, 1),
3601
+ pNumber9("doorOrientation", "degree", 0, -180, 180, 1),
3578
3602
  pSectionSeparator8("stoppers"),
3579
3603
  pNumber9("S1", "mm", 100, 1, 300, 1),
3580
3604
  pNumber9("S2", "mm", 2e3, 1, 8e3, 1),
3605
+ pNumber9("S3", "mm", 100, 0, 8e3, 1),
3581
3606
  pNumber9("E7", "mm", 5, 1, 80, 1),
3582
3607
  pSectionSeparator8("low stopper"),
3583
3608
  pNumber9("JD1", "mm", 200, 1, 500, 1),
@@ -3585,7 +3610,14 @@ var pDef9 = {
3585
3610
  pNumber9("JL1", "mm", 260, 1, 2e3, 1),
3586
3611
  pNumber9("JH1", "mm", 20, -500, 500, 1),
3587
3612
  pNumber9("JS1", "mm", 100, 1, 500, 1),
3588
- pNumber9("JS2", "mm", 200, 1, 500, 1)
3613
+ pNumber9("JS2", "mm", 200, 1, 500, 1),
3614
+ pSectionSeparator8("high stopper"),
3615
+ pNumber9("JD3", "mm", 200, 1, 500, 1),
3616
+ pNumber9("JE3", "mm", 5, 1, 80, 1),
3617
+ pNumber9("JS3", "mm", 120, 1, 500, 1),
3618
+ pNumber9("JD4", "mm", 200, 1, 500, 1),
3619
+ pNumber9("JE4", "mm", 5, 1, 80, 1),
3620
+ pNumber9("JS4", "mm", 120, 1, 500, 1)
3589
3621
  ],
3590
3622
  paramSvg: {
3591
3623
  D1: "rake_face.svg",
@@ -3616,15 +3648,23 @@ var pDef9 = {
3616
3648
  H7: "rake_door.svg",
3617
3649
  L9: "rake_door.svg",
3618
3650
  R9: "rake_door.svg",
3651
+ doorOrientation: "rake_door.svg",
3619
3652
  S1: "rake_side_stopper.svg",
3620
3653
  S2: "rake_top_stopper.svg",
3654
+ S3: "rake_side_stopper.svg",
3621
3655
  E7: "rake_side_stopper.svg",
3622
3656
  JD1: "rake_low_stopper_holder.svg",
3623
3657
  JE1: "rake_low_stopper_holder.svg",
3624
3658
  JL1: "rake_low_stopper_holder.svg",
3625
3659
  JH1: "rake_low_stopper_holder.svg",
3626
3660
  JS1: "rake_side_stopper.svg",
3627
- JS2: "rake_top_stopper.svg"
3661
+ JS2: "rake_top_stopper.svg",
3662
+ JD3: "rake_side_stopper.svg",
3663
+ JE3: "rake_side_stopper.svg",
3664
+ JS3: "rake_top_stopper.svg",
3665
+ JD4: "rake_top_stopper.svg",
3666
+ JE4: "rake_top_stopper.svg",
3667
+ JS4: "rake_side_stopper.svg"
3628
3668
  },
3629
3669
  sim: {
3630
3670
  tMax: 180,
@@ -3652,6 +3692,8 @@ function pGeom9(t, param, suffix = "") {
3652
3692
  const figStopperFaceBH = figure9();
3653
3693
  const figLowStopperHolderPre = figure9();
3654
3694
  const figLowStopperHolder = figure9();
3695
+ const figHi1StopperHolder = figure9();
3696
+ const figHi2StopperHolder = figure9();
3655
3697
  rGeome.logstr += `${rGeome.partName} simTime: ${t}
3656
3698
  `;
3657
3699
  try {
@@ -3659,19 +3701,23 @@ function pGeom9(t, param, suffix = "") {
3659
3701
  const H1H2 = param.H1 + param.H2;
3660
3702
  const H1H5 = H1H2 - param.H4 + param.H5;
3661
3703
  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;
3704
+ const Hi2SHpz = param.H1 + param.H2 - param.H4;
3705
+ const stopper2H = Hi2SHpz + param.D4 / 2;
3706
+ const stopper3H = param.H1 + param.S3;
3664
3707
  const L5h = param.L5 / 2;
3665
3708
  const S1r = param.S1 / 2;
3666
3709
  const S1h = param.S1 - 2 * param.E7;
3667
3710
  const S1hr = S1h / 2;
3668
3711
  const lowStopperTopPosX = -R1 - param.S1 / 2 - param.JS1;
3669
- const S2s = param.S2 - param.S1 / 2;
3712
+ const S2s = param.S2 - S1r;
3670
3713
  const lowSPosY = stopper1H - S1r;
3671
3714
  const lowSHPosZ = stopper1H - param.JH1;
3672
3715
  const JR1 = param.JD1 / 2;
3673
3716
  const JR1H = JR1 - param.JE1;
3674
3717
  const lowSHL = R1 + param.JS2;
3718
+ const JR3 = param.JD3 / 2;
3719
+ const JR4 = param.JD4 / 2;
3720
+ const Hi2SHpy = L5h - S1r;
3675
3721
  if (2 * param.E7 >= param.S1) {
3676
3722
  throw `err135: E7 ${param.E7} too large compare to S1 ${param.S1}`;
3677
3723
  }
@@ -3699,12 +3745,21 @@ function pGeom9(t, param, suffix = "") {
3699
3745
  if (param.JS2 < param.JS1 - S1r) {
3700
3746
  throw `err149: JS2 ${param.JS2} too small compare to JS1 ${param.JS1} and S1 ${param.S1}`;
3701
3747
  }
3748
+ if (param.S3 > param.H2 - param.H4) {
3749
+ throw `err150: S3 ${param.S3} too large compare to H2 ${param.H2} and H4 ${param.H4}`;
3750
+ }
3751
+ if (param.JE3 > param.JD3 / 2) {
3752
+ throw `err151: JE3 ${param.JE3} too large compare to JD3 ${param.JD3}`;
3753
+ }
3754
+ if (param.JE4 > param.JD4 / 2) {
3755
+ throw `err152: JE4 ${param.JE4} too large compare to JD4 ${param.JD4}`;
3756
+ }
3702
3757
  rGeome.logstr += `cone-height: ${ffix11(H1H2)} mm
3703
3758
  `;
3704
3759
  rGeome.logstr += `cone-height total: ${ffix11(H1H5)} mm
3705
3760
  `;
3706
- figLowStopperHolderPre.addSecond(ctrRectangle2(-L5h, lowSPosY, param.L5, param.S1));
3707
- figLowStopperHolderPre.addSecond(ctrRectangle2(-L5h, lowSPosY + param.E7, param.L5, S1h));
3761
+ figLowStopperHolderPre.addSecond(ctrRectangle3(-L5h, lowSPosY, param.L5, param.S1));
3762
+ figLowStopperHolderPre.addSecond(ctrRectangle3(-L5h, lowSPosY + param.E7, param.L5, S1h));
3708
3763
  figLowStopperHolderPre.addMain(contourCircle8(-param.JL1 / 2, lowSHPosZ, JR1));
3709
3764
  figLowStopperHolderPre.addMain(contourCircle8(-param.JL1 / 2, lowSHPosZ, JR1H));
3710
3765
  figLowStopperHolderPre.addMain(contourCircle8(param.JL1 / 2, lowSHPosZ, JR1));
@@ -3738,6 +3793,7 @@ function pGeom9(t, param, suffix = "") {
3738
3793
  rakeParam.setVal("H7", param.H7);
3739
3794
  rakeParam.setVal("L9", param.L9);
3740
3795
  rakeParam.setVal("R9", param.R9);
3796
+ rakeParam.setVal("doorOrientation", param.doorOrientation);
3741
3797
  const rakeGeom = rakeDef.pGeom(0, rakeParam.getParamVal(), rakeParam.getSuffix());
3742
3798
  checkGeom4(rakeGeom);
3743
3799
  rGeome.logstr += prefixLog4(rakeGeom.logstr, rakeParam.getPartNameSuffix());
@@ -3752,53 +3808,53 @@ function pGeom9(t, param, suffix = "") {
3752
3808
  figDoor.mergeFigure(rakeGeom.fig.faceDoor);
3753
3809
  figDoor.mergeFigure(figLowStopperHolderPre, true);
3754
3810
  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));
3811
+ figStopperTop.addMain(ctrRectangle3(lowStopperTopPosX, -L5h, param.S1, param.L5));
3812
+ figStopperTop.addMain(ctrRectangle3(lowStopperTopPosX + param.E7, -L5h, S1h, param.L5));
3813
+ figStopperTop.addMain(ctrRectangle3(param.S2 - param.S1, -L5h, param.S1, param.L5));
3814
+ figStopperTop.addMain(ctrRectangle3(param.S2 - param.E7 - S1h, -L5h, S1h, param.L5));
3815
+ figStopperTop.addMain(ctrRectangle3(0, -L5h, S2s, param.S1));
3816
+ figStopperTop.addMain(ctrRectangle3(0, -L5h + param.E7, S2s, S1h));
3817
+ figStopperTop.addMain(ctrRectangle3(0, L5h - param.S1, S2s, param.S1));
3818
+ figStopperTop.addMain(ctrRectangle3(0, L5h - param.S1 + param.E7, S2s, S1h));
3819
+ figStopperTop.addMain(ctrRectangle3(0, -R1 - param.S1, S2s, param.S1));
3820
+ figStopperTop.addMain(ctrRectangle3(0, -R1 - param.S1 + param.E7, S2s, S1h));
3821
+ figStopperTop.addMain(ctrRectangle3(0, R1, S2s, param.S1));
3822
+ figStopperTop.addMain(ctrRectangle3(0, R1 + param.E7, S2s, S1h));
3823
+ figStopperTop.addSecond(ctrRectangle3(-lowSHL, -param.JL1 / 2 - JR1, lowSHL, 2 * JR1));
3824
+ figStopperTop.addSecond(ctrRectangle3(-lowSHL, -param.JL1 / 2 - JR1H, lowSHL, 2 * JR1H));
3825
+ figStopperTop.addSecond(ctrRectangle3(-lowSHL, param.JL1 / 2 - JR1, lowSHL, 2 * JR1));
3826
+ figStopperTop.addSecond(ctrRectangle3(-lowSHL, param.JL1 / 2 - JR1H, lowSHL, 2 * JR1H));
3827
+ const Hi1SHL = R1 + param.JS3;
3828
+ const Hi1SHW = param.JD3 - 2 * param.JE3;
3829
+ figStopperTop.addSecond(ctrRectangle3(-param.JD3 / 2, -Hi1SHL, param.JD3, Hi1SHL));
3830
+ figStopperTop.addSecond(ctrRectangle3(-param.JD3 / 2 + param.JE3, -Hi1SHL, Hi1SHW, Hi1SHL));
3831
+ figStopperTop.addSecond(ctrRectangle3(-param.JD3 / 2, 0, param.JD3, Hi1SHL));
3832
+ figStopperTop.addSecond(ctrRectangle3(-param.JD3 / 2 + param.JE3, 0, Hi1SHW, Hi1SHL));
3771
3833
  figStopperSide.mergeFigure(rakeGeom.fig.faceBeam, true);
3772
3834
  figStopperSide.addMain(contourCircle8(-R1 - param.JS1, stopper1H, S1r));
3773
3835
  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
3836
+ figStopperSide.addMain(contourCircle8(S2s, stopper2H + S1r, S1r));
3837
+ figStopperSide.addMain(contourCircle8(S2s, stopper2H + S1r, S1hr));
3838
+ figStopperSide.addSecond(ctrRectangle3(0, stopper2H, S2s, param.S1));
3839
+ figStopperSide.addSecond(ctrRectangle3(0, stopper2H + param.E7, S2s, S1h));
3840
+ const stopper3Ly = stopper2H + S1r - stopper3H;
3841
+ const stp3L = Math.sqrt(S2s ** 2 + stopper3Ly ** 2);
3842
+ const stp3A = Math.atan2(stopper3Ly, S2s);
3843
+ rGeome.logstr += `stopper-rod: L ${ffix11(stp3L)} mm, A ${ffix11(radToDeg7(stp3A))} degree
3784
3844
  `;
3785
- const stp3posdX = S1r * Math.sin(stopper3A);
3786
- const stp3posdY = S1r * Math.cos(stopper3A);
3787
- 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);
3791
- 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));
3845
+ figStopperSide.addSecond(ctrRectRot2(0, stopper3H, stp3L, param.S1, stp3A));
3846
+ figStopperSide.addSecond(ctrRectRot2(0, stopper3H, stp3L, S1h, stp3A));
3847
+ figStopperSide.addSecond(ctrRectangle3(-lowSHL, lowSHPosZ - JR1, lowSHL, 2 * JR1));
3848
+ figStopperSide.addSecond(ctrRectangle3(-lowSHL, lowSHPosZ - JR1H, lowSHL, 2 * JR1H));
3849
+ figStopperSide.addSecond(contourCircle8(0, stopper3H, param.JD3 / 2));
3850
+ figStopperSide.addSecond(contourCircle8(0, stopper3H, param.JD3 / 2 - param.JE3));
3851
+ const Hi2SHL = param.D4 / 2 + param.JS4;
3852
+ const Hi2SHW2 = param.JD4 / 2 - param.JE4;
3853
+ figStopperSide.addSecond(ctrRectangle3(-param.JD4 / 2, Hi2SHpz, param.JD4, Hi2SHL));
3854
+ figStopperSide.addSecond(ctrRectangle3(-Hi2SHW2, Hi2SHpz, 2 * Hi2SHW2, Hi2SHL));
3855
+ figStopperSideH.mergeFigure(figStopperSide, true);
3797
3856
  figStopperSideH.addMain(contourCircle8(-R1 - param.JS1, stopper1H, S1hr));
3798
- figStopperSideH.addSecond(contourCircle8(param.S2 - S1r, stopper2H + S1r, S1r));
3799
3857
  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
3858
  figStopperFaceT.mergeFigure(rakeGeom.fig.faceCone, true);
3803
3859
  figStopperFaceT.mergeFigure(figLowStopperHolderPre, true);
3804
3860
  figStopperFaceT.addMain(contourCircle8(-param.L5 / 2 + S1r, stopper2H + S1r, S1r));
@@ -3825,6 +3881,25 @@ function pGeom9(t, param, suffix = "") {
3825
3881
  figStopperFaceBH.addMain(contourCircle8(R1 + S1r, 0, S1hr));
3826
3882
  figLowStopperHolder.mergeFigure(rakeGeom.fig.faceCone, true);
3827
3883
  figLowStopperHolder.mergeFigure(figLowStopperHolderPre);
3884
+ const px8 = -Hi2SHpy - Hi2SHW2;
3885
+ const px9 = Hi2SHpy - Hi2SHW2;
3886
+ const py10 = stopper3H - Hi1SHW / 2;
3887
+ figLowStopperHolder.addSecond(ctrRectangle3(-Hi2SHpy - JR4, Hi2SHpz, param.JD4, Hi2SHL));
3888
+ figLowStopperHolder.addSecond(ctrRectangle3(px8, Hi2SHpz, 2 * Hi2SHW2, Hi2SHL));
3889
+ figLowStopperHolder.addSecond(ctrRectangle3(Hi2SHpy - JR4, Hi2SHpz, param.JD4, Hi2SHL));
3890
+ figLowStopperHolder.addSecond(ctrRectangle3(px9, Hi2SHpz, 2 * Hi2SHW2, Hi2SHL));
3891
+ figLowStopperHolder.addSecond(ctrRectangle3(-Hi1SHL, stopper3H - JR3, Hi1SHL, param.JD3));
3892
+ figLowStopperHolder.addSecond(ctrRectangle3(-Hi1SHL, py10, Hi1SHL, Hi1SHW));
3893
+ figLowStopperHolder.addSecond(ctrRectangle3(0, stopper3H - JR3, Hi1SHL, param.JD3));
3894
+ figLowStopperHolder.addSecond(ctrRectangle3(0, stopper3H - Hi1SHW / 2, Hi1SHL, Hi1SHW));
3895
+ figHi1StopperHolder.mergeFigure(figStopperSide, true);
3896
+ figHi1StopperHolder.addMain(contourCircle8(0, stopper3H, param.JD3 / 2));
3897
+ figHi1StopperHolder.addMain(contourCircle8(0, stopper3H, param.JD3 / 2 - param.JE3));
3898
+ figHi2StopperHolder.mergeFigure(figStopperTop, true);
3899
+ figHi2StopperHolder.addMain(contourCircle8(0, -Hi2SHpy, JR4));
3900
+ figHi2StopperHolder.addMain(contourCircle8(0, -Hi2SHpy, JR4 - param.JE4));
3901
+ figHi2StopperHolder.addMain(contourCircle8(0, Hi2SHpy, JR4));
3902
+ figHi2StopperHolder.addMain(contourCircle8(0, Hi2SHpy, JR4 - param.JE4));
3828
3903
  rGeome.fig = {
3829
3904
  faceCone: figCone,
3830
3905
  faceBeam: figBeam,
@@ -3841,7 +3916,9 @@ function pGeom9(t, param, suffix = "") {
3841
3916
  faceStopperFaceTH: figStopperFaceTH,
3842
3917
  faceStopperFaceB: figStopperFaceB,
3843
3918
  faceStopperFaceBH: figStopperFaceBH,
3844
- faceLowStopperHolder: figLowStopperHolder
3919
+ faceLowStopperHolder: figLowStopperHolder,
3920
+ faceHi1StopperHolder: figHi1StopperHolder,
3921
+ faceHi2StopperHolder: figHi2StopperHolder
3845
3922
  };
3846
3923
  const designName = rGeome.partName;
3847
3924
  rGeome.vol = {
@@ -3852,6 +3929,20 @@ function pGeom9(t, param, suffix = "") {
3852
3929
  subgeom: rakeGeom,
3853
3930
  rotate: [0, 0, 0],
3854
3931
  translate: [0, 0, 0]
3932
+ },
3933
+ {
3934
+ outName: `inpax_${designName}_coneHollow`,
3935
+ subdesign: "subpax_rake_coneHollow",
3936
+ subgeom: rakeGeom,
3937
+ rotate: [0, 0, 0],
3938
+ translate: [0, 0, 0]
3939
+ },
3940
+ {
3941
+ outName: `inpax_${designName}_beamHollow`,
3942
+ subdesign: "subpax_rake_beamHollow",
3943
+ subgeom: rakeGeom,
3944
+ rotate: [0, 0, 0],
3945
+ translate: [0, 0, 0]
3855
3946
  }
3856
3947
  ],
3857
3948
  extrudes: [
@@ -3891,17 +3982,49 @@ function pGeom9(t, param, suffix = "") {
3891
3982
  outName: `subpax_${designName}_stpFaceB`,
3892
3983
  face: `${designName}_faceStopperFaceB`,
3893
3984
  extrudeMethod: EExtrude7.eLinearOrtho,
3894
- length: stopper3L,
3895
- rotate: [Math.PI / 2 - stopper3A, 0, Math.PI / 2],
3985
+ length: stp3L,
3986
+ rotate: [Math.PI / 2 - stp3A, 0, Math.PI / 2],
3896
3987
  translate: [0, 0, stopper3H]
3897
3988
  },
3898
3989
  {
3899
3990
  outName: `subpax_${designName}_stpFaceBH`,
3900
3991
  face: `${designName}_faceStopperFaceBH`,
3901
3992
  extrudeMethod: EExtrude7.eLinearOrtho,
3902
- length: stopper3L,
3903
- rotate: [Math.PI / 2 - stopper3A, 0, Math.PI / 2],
3993
+ length: stp3L,
3994
+ rotate: [Math.PI / 2 - stp3A, 0, Math.PI / 2],
3904
3995
  translate: [0, 0, stopper3H]
3996
+ },
3997
+ {
3998
+ outName: `subpax_${designName}_lowSH`,
3999
+ face: `${designName}_faceLowStopperHolder`,
4000
+ extrudeMethod: EExtrude7.eLinearOrtho,
4001
+ length: lowSHL,
4002
+ rotate: [Math.PI / 2, 0, -Math.PI / 2],
4003
+ translate: [0, 0, 0]
4004
+ },
4005
+ {
4006
+ outName: `subpax_${designName}_Hi1SH1`,
4007
+ face: `${designName}_faceHi1StopperHolder`,
4008
+ extrudeMethod: EExtrude7.eLinearOrtho,
4009
+ length: Hi1SHL,
4010
+ rotate: [Math.PI / 2, 0, 0],
4011
+ translate: [0, 0, 0]
4012
+ },
4013
+ {
4014
+ outName: `subpax_${designName}_Hi1SH2`,
4015
+ face: `${designName}_faceHi1StopperHolder`,
4016
+ extrudeMethod: EExtrude7.eLinearOrtho,
4017
+ length: Hi1SHL,
4018
+ rotate: [Math.PI / 2, 0, Math.PI],
4019
+ translate: [0, 0, 0]
4020
+ },
4021
+ {
4022
+ outName: `subpax_${designName}_Hi2SH`,
4023
+ face: `${designName}_faceHi2StopperHolder`,
4024
+ extrudeMethod: EExtrude7.eLinearOrtho,
4025
+ length: Hi2SHL,
4026
+ rotate: [0, 0, 0],
4027
+ translate: [0, 0, Hi2SHpz]
3905
4028
  }
3906
4029
  ],
3907
4030
  volumes: [
@@ -3911,13 +4034,19 @@ function pGeom9(t, param, suffix = "") {
3911
4034
  inList: [
3912
4035
  `subpax_${designName}_stpSide`,
3913
4036
  `subpax_${designName}_stpFaceT`,
3914
- `subpax_${designName}_stpFaceB`
4037
+ `subpax_${designName}_stpFaceB`,
4038
+ `subpax_${designName}_lowSH`,
4039
+ `subpax_${designName}_Hi1SH1`,
4040
+ `subpax_${designName}_Hi1SH2`,
4041
+ `subpax_${designName}_Hi2SH`
3915
4042
  ]
3916
4043
  },
3917
4044
  {
3918
4045
  outName: `ipax_${designName}_hollow`,
3919
4046
  boolMethod: EBVolume9.eUnion,
3920
4047
  inList: [
4048
+ `inpax_${designName}_coneHollow`,
4049
+ `inpax_${designName}_beamHollow`,
3921
4050
  `subpax_${designName}_stpSideH`,
3922
4051
  `subpax_${designName}_stpFaceTH`,
3923
4052
  `subpax_${designName}_stpFaceBH`
@@ -4039,7 +4168,7 @@ function pGeom10(t, param, suffix = "") {
4039
4168
  rGeome.logstr += `heliostat-swing-length: ${ffix12(param.L1)}, width ${ffix12(param.L2)} m
4040
4169
  `;
4041
4170
  const posAngleDegree = param.al * t / pDef10.sim.tMax;
4042
- const posAngle = degToRad5(posAngleDegree);
4171
+ const posAngle = degToRad6(posAngleDegree);
4043
4172
  rGeome.logstr += `swing position angle: ${ffix12(radToDeg8(posAngle))} degree
4044
4173
  `;
4045
4174
  const rakePosY = param.H1 + param.H2 - param.H3;
@@ -4884,7 +5013,7 @@ var ringGuidanceDef = {
4884
5013
  // src/heliostat/vaxis_guidance.ts
4885
5014
  import {
4886
5015
  contourCircle as contourCircle13,
4887
- ctrRectangle as ctrRectangle3,
5016
+ ctrRectangle as ctrRectangle4,
4888
5017
  figure as figure15,
4889
5018
  ffix as ffix17,
4890
5019
  pNumber as pNumber15,
@@ -4986,10 +5115,10 @@ function pGeom15(t, param, suffix = "") {
4986
5115
  figTop.addMain(innerCtr);
4987
5116
  figTop.addSecond(contourCircle13(0, 0, param.Dvaxis / 2));
4988
5117
  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));
5118
+ figSection.addMain(ctrRectangle4(R6, 0, w1, param.T1));
5119
+ figSection.addMain(ctrRectangle4(-R6 - w1, 0, w1, param.T1));
5120
+ figSection.addSecond(ctrRectangle4(R1 - R3, 0, 2 * R3, param.T1));
5121
+ figSection.addSecond(ctrRectangle4(-R1 - R3, 0, 2 * R3, param.T1));
4993
5122
  rGeome.fig = {
4994
5123
  faceTop: figTop,
4995
5124
  faceSection: figSection
@@ -5035,9 +5164,9 @@ import {
5035
5164
  point as point6,
5036
5165
  contour as contour14,
5037
5166
  contourCircle as contourCircle14,
5038
- ctrRectangle as ctrRectangle4,
5167
+ ctrRectangle as ctrRectangle5,
5039
5168
  figure as figure16,
5040
- degToRad as degToRad6,
5169
+ degToRad as degToRad7,
5041
5170
  ffix as ffix18,
5042
5171
  pNumber as pNumber16,
5043
5172
  pDropdown as pDropdown3,
@@ -5106,7 +5235,7 @@ function pGeom16(t, param, suffix = "") {
5106
5235
  const Rinner = R5 + param.E5;
5107
5236
  const Rinner2 = R8 - param.E8;
5108
5237
  const aLeg = 2 * Math.asin(param.L5 / (2 * Rinner));
5109
- const sA0 = Math.PI / 12 + degToRad6(param.SA1);
5238
+ const sA0 = Math.PI / 12 + degToRad7(param.SA1);
5110
5239
  const sA = Math.PI / 2 + aLeg - sA0;
5111
5240
  const sA1 = Math.PI - sA0;
5112
5241
  const sA2 = Math.PI / 2 - Math.PI / 6 + sA0;
@@ -5143,9 +5272,9 @@ function pGeom16(t, param, suffix = "") {
5143
5272
  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
5273
  figProfile.addMain(ctrProfile);
5145
5274
  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));
5275
+ figSide.addMain(ctrRectangle5(0, -R8plus, param.L4, R8 + R8plus));
5276
+ figSide.addSecond(ctrRectangle5(0, -R8, param.L4, 2 * R8));
5277
+ figSide.addSecond(ctrRectangle5(0, -R5, param.L4, 2 * R5));
5149
5278
  rGeome.fig = {
5150
5279
  faceProfile: figProfile,
5151
5280
  faceSide: figSide
@@ -6094,7 +6223,7 @@ var surfaceDef = {
6094
6223
  };
6095
6224
 
6096
6225
  // src/dummy/circles.ts
6097
- import { degToRad as degToRad7, point as point7, figure as figure20, pNumber as pNumber20, initGeom as initGeom20 } from "geometrix";
6226
+ import { degToRad as degToRad8, point as point7, figure as figure20, pNumber as pNumber20, initGeom as initGeom20 } from "geometrix";
6098
6227
  var pDef20 = {
6099
6228
  partName: "circles",
6100
6229
  params: [
@@ -6125,7 +6254,7 @@ function pGeom20(t, param, suffix = "") {
6125
6254
  figOne.addPoint(p2);
6126
6255
  for (let i = 0; i < 20; i++) {
6127
6256
  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)
6257
+ p1.scale(p2, param["amplitude-offset"] + param["amplitude-scale"] * i).rotate(p2, i * degToRad8(param.angle) + t * Math.PI / 2 / pDef20.sim.tMax)
6129
6258
  );
6130
6259
  }
6131
6260
  rGeome.fig = { one: figOne };
@@ -6251,7 +6380,7 @@ var dummyPoleStaticDef = {
6251
6380
  };
6252
6381
 
6253
6382
  // 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";
6383
+ import { degToRad as degToRad9, point as point9, figure as figure23, pNumber as pNumber23, initGeom as initGeom23 } from "geometrix";
6255
6384
  var pDef23 = {
6256
6385
  partName: "verify_point",
6257
6386
  params: [
@@ -6285,8 +6414,8 @@ function pGeom23(t, param, suffix = "") {
6285
6414
  try {
6286
6415
  const figOne = figure23();
6287
6416
  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));
6417
+ const p2 = point9(0, 0).setPolar(degToRad9(param.p2a), param.p2l);
6418
+ const p3 = p1.rotateOrig(degToRad9(param.rotateOrig));
6290
6419
  const p4 = p1.scaleOrig(param.scaleOrig);
6291
6420
  figOne.addPoint(p1);
6292
6421
  figOne.addPoint(p2);
@@ -6443,7 +6572,7 @@ var verifyLine1Def = {
6443
6572
  };
6444
6573
 
6445
6574
  // 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";
6575
+ import { degToRad as degToRad10, point as point12, line as line2, figure as figure26, pNumber as pNumber26, initGeom as initGeom26 } from "geometrix";
6447
6576
  var pDef26 = {
6448
6577
  partName: "verify_line_2",
6449
6578
  params: [
@@ -6486,8 +6615,8 @@ function pGeom26(t, param, suffix = "") {
6486
6615
  figOne.addPoint(p1);
6487
6616
  figOne.addPoint(p2);
6488
6617
  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));
6618
+ const l1 = line2(param.l1cx, param.l1cy, degToRad10(param.l1ca + t));
6619
+ const l2 = line2(param.l2cx, param.l2cy, degToRad10(param.l2ca));
6491
6620
  figOne.addLine(l1);
6492
6621
  figOne.addLine(l2);
6493
6622
  figOne.addPoint(l1.intersection(l2));
@@ -6577,7 +6706,7 @@ var verifyLine3Def = {
6577
6706
  };
6578
6707
 
6579
6708
  // 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";
6709
+ import { degToRad as degToRad11, point as point14, vector, figure as figure28, pNumber as pNumber28, initGeom as initGeom28 } from "geometrix";
6581
6710
  var pDef28 = {
6582
6711
  partName: "verify_vector",
6583
6712
  params: [
@@ -6616,8 +6745,8 @@ function pGeom28(t, param, suffix = "") {
6616
6745
  const figOne = figure28();
6617
6746
  const p1 = point14(param.p1x, param.p1y + t);
6618
6747
  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);
6748
+ const v1 = vector(degToRad11(param.v1a), param.v1l, p1);
6749
+ const v2 = vector(degToRad11(param.v2a), param.v2l, p1);
6621
6750
  figOne.addPoint(p1);
6622
6751
  figOne.addPoint(p2);
6623
6752
  figOne.addVector(v1);
@@ -6721,7 +6850,7 @@ var verifyContour1Def = {
6721
6850
  };
6722
6851
 
6723
6852
  // 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";
6853
+ import { degToRad as degToRad12, contour as contour20, figure as figure30, pNumber as pNumber30, initGeom as initGeom30 } from "geometrix";
6725
6854
  var pDef30 = {
6726
6855
  partName: "verify_contour_2",
6727
6856
  params: [
@@ -6791,17 +6920,17 @@ function pGeom30(t, param, suffix = "") {
6791
6920
  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
6921
  ctr2.check();
6793
6922
  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);
6923
+ 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
6924
  ctr3.check();
6796
6925
  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);
6926
+ 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
6927
  ctr4.check();
6799
6928
  figOne.addMain(ctr4);
6800
6929
  const ctr5 = contour20(100, 500);
6801
6930
  for (let i = 0; i < 8; i++) {
6802
6931
  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);
6932
+ const adirRad = degToRad12(adir);
6933
+ 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
6934
  }
6806
6935
  ctr5.check();
6807
6936
  figOne.addMain(ctr5);
@@ -6822,7 +6951,7 @@ var verifyContour2Def = {
6822
6951
  };
6823
6952
 
6824
6953
  // 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";
6954
+ import { degToRad as degToRad13, contour as contour21, figure as figure31, pNumber as pNumber31, initGeom as initGeom31 } from "geometrix";
6826
6955
  var pDef31 = {
6827
6956
  partName: "verify_contour_3",
6828
6957
  params: [
@@ -6868,7 +6997,7 @@ function pGeom31(t, param, suffix = "") {
6868
6997
  const ctr2 = contour21(300, 0);
6869
6998
  for (let i = 0; i < 4; i++) {
6870
6999
  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);
7000
+ 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
7001
  }
6873
7002
  rGeome.logstr += ctr2.check();
6874
7003
  figOne.addMain(ctr2);