designix 0.5.21 → 0.5.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +205 -147
  2. package/package.json +5 -5
package/dist/index.js CHANGED
@@ -1447,19 +1447,19 @@ var pDef3 = {
1447
1447
  partName: "pole_static",
1448
1448
  params: [
1449
1449
  //pNumber(name, unit, init, min, max, step)
1450
- pNumber3("D1", "mm", 1e3, 100, 4e3, 10),
1451
- pNumber3("D2", "mm", 700, 100, 4e3, 10),
1452
- pNumber3("D3", "mm", 800, 100, 4e3, 10),
1453
- pNumber3("H1", "mm", 3e3, 100, 4e4, 10),
1454
- pNumber3("H2", "mm", 7e3, 100, 4e4, 10),
1450
+ pNumber3("D1", "mm", 1e3, 20, 4e3, 1),
1451
+ pNumber3("D2", "mm", 700, 10, 4e3, 1),
1452
+ pNumber3("D3", "mm", 800, 10, 4e3, 1),
1453
+ pNumber3("H1", "mm", 3e3, 10, 4e4, 10),
1454
+ pNumber3("H2", "mm", 7e3, 50, 4e4, 10),
1455
1455
  pNumber3("E1", "mm", 30, 1, 80, 1),
1456
1456
  pNumber3("E2", "mm", 5, 1, 80, 1),
1457
1457
  pNumber3("N1", "", 32, 3, 100, 1),
1458
1458
  pNumber3("D5", "mm", 40, 1, 100, 1),
1459
1459
  pNumber3("L1", "mm", 45, 1, 300, 1),
1460
- pNumber3("D4", "mm", 600, 200, 1200, 1),
1461
- pNumber3("H3", "mm", 300, 50, 1200, 1),
1462
- pNumber3("H4", "mm", 1800, 200, 2500, 1),
1460
+ pNumber3("D4", "mm", 600, 1, 1200, 1),
1461
+ pNumber3("H3", "mm", 300, 5, 1200, 1),
1462
+ pNumber3("H4", "mm", 1800, 10, 2500, 1),
1463
1463
  pNumber3("L2", "mm", 30, 1, 100, 1),
1464
1464
  pNumber3("E3", "mm", 40, 1, 100, 1)
1465
1465
  ],
@@ -1671,33 +1671,33 @@ var pDef4 = {
1671
1671
  partName: "rake",
1672
1672
  params: [
1673
1673
  //pNumber(name, unit, init, min, max, step)
1674
- pNumber4("D1", "mm", 600, 100, 4e3, 10),
1675
- pNumber4("D2", "mm", 400, 100, 4e3, 10),
1676
- pNumber4("D3", "mm", 400, 100, 4e3, 10),
1677
- pNumber4("H1", "mm", 800, 100, 4e3, 10),
1678
- pNumber4("H2", "mm", 3e3, 100, 6e3, 10),
1674
+ pNumber4("D1", "mm", 600, 10, 4e3, 10),
1675
+ pNumber4("D2", "mm", 400, 10, 4e3, 10),
1676
+ pNumber4("D3", "mm", 400, 10, 4e3, 10),
1677
+ pNumber4("H1", "mm", 800, 1, 4e3, 10),
1678
+ pNumber4("H2", "mm", 3e3, 20, 6e3, 10),
1679
1679
  pNumber4("H3", "mm", 400, 0, 4e3, 10),
1680
1680
  pNumber4("E1", "mm", 20, 1, 80, 1),
1681
1681
  pNumber4("E3", "mm", 30, 1, 80, 1),
1682
- pNumber4("H4", "mm", 400, 100, 1e3, 10),
1683
- pNumber4("D4", "mm", 300, 100, 1e3, 10),
1682
+ pNumber4("H4", "mm", 400, 10, 1e3, 10),
1683
+ pNumber4("D4", "mm", 300, 10, 1e3, 10),
1684
1684
  pNumber4("E4", "mm", 20, 1, 80, 1),
1685
- pNumber4("H5", "mm", 1e3, 100, 2e3, 10),
1686
- pNumber4("D5", "mm", 200, 10, 1e3, 10),
1687
- pNumber4("L4", "mm", 300, 10, 1e3, 10),
1688
- pNumber4("L5", "mm", 2e3, 100, 4e3, 10),
1689
- pNumber4("L6", "mm", 2e3, 100, 4e3, 10),
1690
- pNumber4("D6", "mm", 100, 10, 600, 10),
1685
+ pNumber4("H5", "mm", 1e3, 10, 2e3, 10),
1686
+ pNumber4("D5", "mm", 200, 1, 1e3, 10),
1687
+ pNumber4("L4", "mm", 300, 1, 1e3, 10),
1688
+ pNumber4("L5", "mm", 2e3, 10, 4e3, 10),
1689
+ pNumber4("L6", "mm", 2e3, 1, 4e3, 10),
1690
+ pNumber4("D6", "mm", 100, 1, 600, 10),
1691
1691
  pNumber4("E6", "mm", 10, 1, 80, 1),
1692
- pNumber4("L7", "mm", 100, 10, 1e3, 1),
1693
- pNumber4("L8", "mm", 200, 10, 1e3, 1),
1692
+ pNumber4("L7", "mm", 100, 1, 1e3, 1),
1693
+ pNumber4("L8", "mm", 200, 1, 1e3, 1),
1694
1694
  pNumber4("N1", "", 24, 3, 100, 1),
1695
1695
  pNumber4("D7", "mm", 40, 1, 100, 1),
1696
1696
  pNumber4("L1", "mm", 30, 1, 300, 1),
1697
- pNumber4("D8", "mm", 400, 100, 1e3, 10),
1698
- pNumber4("H6", "mm", 100, 50, 1e3, 10),
1699
- pNumber4("H7", "mm", 600, 100, 2e3, 10),
1700
- pNumber4("L9", "mm", 300, 100, 1e3, 10),
1697
+ pNumber4("D8", "mm", 400, 1, 1e3, 10),
1698
+ pNumber4("H6", "mm", 100, 1, 1e3, 10),
1699
+ pNumber4("H7", "mm", 600, 10, 2e3, 10),
1700
+ pNumber4("L9", "mm", 300, 1, 1e3, 10),
1701
1701
  pNumber4("R9", "mm", 50, 0, 300, 1)
1702
1702
  ],
1703
1703
  paramSvg: {
@@ -1819,7 +1819,7 @@ function pGeom4(t, param) {
1819
1819
  const doorLowX = param.L9 / 2;
1820
1820
  const doorHighX = doorLowX - param.H7 * Math.tan(coneAngle);
1821
1821
  if (doorHighX < param.R9) {
1822
- throw `err177: R9 ${param.R9} too large compare to coneAngle and L9 ${param.L9}`;
1822
+ throw `err177: R9 ${param.R9} too large compare to doorHighX ${doorHighX} and L9 ${param.L9}`;
1823
1823
  }
1824
1824
  if (param.L9 > param.D1) {
1825
1825
  throw `err180: L9 ${param.L9} too large compare to D1 ${param.D1}`;
@@ -2088,12 +2088,12 @@ var pDef5 = {
2088
2088
  partName: "spider",
2089
2089
  params: [
2090
2090
  //pNumber(name, unit, init, min, max, step)
2091
- pNumber5("D1", "mm", 100, 10, 400, 1),
2092
- pNumber5("L1", "mm", 400, 100, 1e3, 10),
2093
- pNumber5("L2", "mm", 400, 100, 1e3, 10),
2094
- pNumber5("L3", "mm", 100, 10, 400, 1),
2095
- pNumber5("L4", "mm", 3e3, 500, 8e3, 10),
2096
- pNumber5("L5", "mm", 2e3, 100, 8e3, 10),
2091
+ pNumber5("D1", "mm", 100, 1, 400, 1),
2092
+ pNumber5("L1", "mm", 400, 1, 1e3, 1),
2093
+ pNumber5("L2", "mm", 400, 1, 1e3, 1),
2094
+ pNumber5("L3", "mm", 100, 1, 400, 1),
2095
+ pNumber5("L4", "mm", 3e3, 10, 8e3, 10),
2096
+ pNumber5("L5", "mm", 2e3, 1, 8e3, 1),
2097
2097
  pNumber5("L6", "mm", 30, 1, 100, 1),
2098
2098
  pNumber5("E1", "mm", 3, 1, 80, 1),
2099
2099
  pNumber5("E2", "mm", 50, 1, 200, 1),
@@ -2274,24 +2274,24 @@ var pDef6 = {
2274
2274
  partName: "swing",
2275
2275
  params: [
2276
2276
  //pNumber(name, unit, init, min, max, step)
2277
- pNumber6("L1", "mm", 12500, 1e3, 4e4, 10),
2278
- pNumber6("L2", "mm", 6e3, 1e3, 4e4, 10),
2279
- pNumber6("L3", "mm", 500, 100, 4e3, 10),
2280
- pNumber6("L4", "mm", 600, 100, 4e3, 10),
2281
- pNumber6("L5", "mm", 2e3, 100, 1e4, 10),
2282
- pNumber6("L6", "mm", 2e3, 100, 1e4, 10),
2283
- pNumber6("D1", "mm", 400, 50, 1e3, 1),
2284
- pNumber6("H1", "mm", 100, 10, 400, 1),
2285
- pNumber6("H2", "mm", 100, 10, 400, 1),
2286
- pNumber6("H3", "mm", 100, 10, 400, 1),
2287
- pNumber6("H4", "mm", 100, 10, 400, 1),
2277
+ pNumber6("L1", "mm", 12500, 100, 4e4, 10),
2278
+ pNumber6("L2", "mm", 6e3, 100, 4e4, 10),
2279
+ pNumber6("L3", "mm", 500, 1, 4e3, 1),
2280
+ pNumber6("L4", "mm", 600, 1, 4e3, 1),
2281
+ pNumber6("L5", "mm", 2e3, 1, 1e4, 1),
2282
+ pNumber6("L6", "mm", 2e3, 1, 1e4, 1),
2283
+ pNumber6("D1", "mm", 400, 1, 1e3, 1),
2284
+ pNumber6("H1", "mm", 100, 1, 400, 1),
2285
+ pNumber6("H2", "mm", 100, 1, 400, 1),
2286
+ pNumber6("H3", "mm", 100, 1, 400, 1),
2287
+ pNumber6("H4", "mm", 100, 1, 400, 1),
2288
2288
  pNumber6("E1", "mm", 5, 1, 80, 1),
2289
2289
  pNumber6("E2", "mm", 3, 1, 80, 1),
2290
2290
  pNumber6("E3", "mm", 3, 1, 80, 1),
2291
2291
  pNumber6("rod1", "", 10, 1, 40, 1),
2292
- pNumber6("rod2", "mm", 1300, 100, 4e3, 10),
2293
- pNumber6("rod3", "mm", 400, 50, 1e3, 10),
2294
- pNumber6("rod4", "mm", 100, 50, 400, 10)
2292
+ pNumber6("rod2", "mm", 1300, 10, 4e3, 10),
2293
+ pNumber6("rod3", "mm", 400, 10, 1e3, 10),
2294
+ pNumber6("rod4", "mm", 100, 1, 400, 1)
2295
2295
  ],
2296
2296
  paramSvg: {
2297
2297
  L1: "swing_top.svg",
@@ -2467,36 +2467,36 @@ var pDef7 = {
2467
2467
  partName: "heliostat",
2468
2468
  params: [
2469
2469
  //pNumber(name, unit, init, min, max, step)
2470
- pNumber7("H1", "mm", 3e3, 100, 4e4, 10),
2471
- pNumber7("H2", "mm", 2500, 100, 4e4, 10),
2472
- pNumber7("H3", "mm", 200, 10, 500, 10),
2473
- pNumber7("H4", "mm", 800, 100, 4e3, 10),
2474
- pNumber7("H5", "mm", 3e3, 100, 6e3, 10),
2475
- pNumber7("H6", "mm", 200, 100, 4e3, 10),
2476
- pNumber7("H7", "mm", 800, 100, 4e3, 10),
2477
- pNumber7("H8", "mm", 200, 100, 4e3, 10),
2478
- pNumber7("H9", "mm", 100, 10, 400, 10),
2479
- pNumber7("D1", "mm", 1e3, 100, 4e3, 10),
2480
- pNumber7("D2", "mm", 700, 100, 4e3, 10),
2481
- pNumber7("D3", "mm", 900, 100, 4e3, 10),
2482
- pNumber7("D4", "mm", 400, 100, 4e3, 10),
2483
- pNumber7("D5", "mm", 300, 100, 1e3, 10),
2484
- pNumber7("D6", "mm", 200, 100, 1e3, 10),
2485
- pNumber7("D7", "mm", 400, 100, 1e3, 10),
2486
- pNumber7("D8", "mm", 100, 10, 1e3, 10),
2487
- pNumber7("D9", "mm", 100, 10, 1e3, 10),
2488
- pNumber7("S1", "mm", 250, 10, 800, 10),
2489
- pNumber7("S2", "mm", 200, 10, 800, 10),
2470
+ pNumber7("H1", "mm", 3e3, 10, 4e4, 10),
2471
+ pNumber7("H2", "mm", 2500, 50, 4e4, 10),
2472
+ pNumber7("H3", "mm", 200, 1, 500, 1),
2473
+ pNumber7("H4", "mm", 800, 1, 4e3, 1),
2474
+ pNumber7("H5", "mm", 3e3, 50, 6e3, 10),
2475
+ pNumber7("H6", "mm", 200, 1, 4e3, 1),
2476
+ pNumber7("H7", "mm", 800, 1, 4e3, 1),
2477
+ pNumber7("H8", "mm", 200, 1, 4e3, 1),
2478
+ pNumber7("H9", "mm", 100, 1, 400, 1),
2479
+ pNumber7("D1", "mm", 1e3, 20, 4e3, 10),
2480
+ pNumber7("D2", "mm", 700, 20, 4e3, 10),
2481
+ pNumber7("D3", "mm", 900, 20, 4e3, 10),
2482
+ pNumber7("D4", "mm", 400, 20, 4e3, 10),
2483
+ pNumber7("D5", "mm", 300, 20, 1e3, 10),
2484
+ pNumber7("D6", "mm", 200, 10, 1e3, 10),
2485
+ pNumber7("D7", "mm", 400, 10, 1e3, 10),
2486
+ pNumber7("D8", "mm", 100, 1, 1e3, 1),
2487
+ pNumber7("D9", "mm", 100, 1, 1e3, 1),
2488
+ pNumber7("S1", "mm", 250, 1, 800, 1),
2489
+ pNumber7("S2", "mm", 200, 1, 800, 1),
2490
2490
  pNumber7("E1", "mm", 30, 1, 80, 1),
2491
2491
  pNumber7("E2", "mm", 50, 1, 80, 1),
2492
- pNumber7("L1", "mm", 12500, 1e3, 4e4, 10),
2493
- pNumber7("L2", "mm", 6e3, 1e3, 4e4, 10),
2494
- pNumber7("L3", "mm", 100, 10, 500, 10),
2495
- pNumber7("L4", "mm", 600, 100, 4e3, 10),
2496
- pNumber7("L5", "mm", 2e3, 100, 6e3, 10),
2497
- pNumber7("L6", "mm", 2e3, 100, 6e3, 10),
2498
- pNumber7("L7", "mm", 100, 10, 1e3, 10),
2499
- pNumber7("L8", "mm", 200, 10, 1e3, 10),
2492
+ pNumber7("L1", "mm", 12500, 100, 4e4, 10),
2493
+ pNumber7("L2", "mm", 6e3, 100, 4e4, 10),
2494
+ pNumber7("L3", "mm", 100, 1, 500, 1),
2495
+ pNumber7("L4", "mm", 600, 1, 4e3, 1),
2496
+ pNumber7("L5", "mm", 2e3, 10, 6e3, 1),
2497
+ pNumber7("L6", "mm", 2e3, 1, 6e3, 1),
2498
+ pNumber7("L7", "mm", 100, 1, 1e3, 1),
2499
+ pNumber7("L8", "mm", 200, 1, 1e3, 1),
2500
2500
  pNumber7("al", "degree", 80, 0, 95, 1),
2501
2501
  pNumber7("ar", "degree", 80, 0, 95, 1)
2502
2502
  ],
@@ -2535,7 +2535,7 @@ var pDef7 = {
2535
2535
  ar: "heliostat_side_sizing.svg"
2536
2536
  },
2537
2537
  sim: {
2538
- tMax: 180,
2538
+ tMax: 100,
2539
2539
  tStep: 0.5,
2540
2540
  tUpdate: 500
2541
2541
  // every 0.5 second
@@ -2569,19 +2569,41 @@ function pGeom7(t, param) {
2569
2569
  poleStaticParam.setVal("H2", param.H2);
2570
2570
  poleStaticParam.setVal("D1", param.D1);
2571
2571
  poleStaticParam.setVal("D2", param.D2);
2572
+ poleStaticParam.setVal("D3", param.D1 - 6 * param.E1);
2572
2573
  poleStaticParam.setVal("E1", param.E1);
2573
2574
  poleStaticParam.setVal("E2", param.E1);
2575
+ const poleStaticN1 = 32;
2576
+ const poleStaticD5 = (param.D1 - 6 * param.E1) / (poleStaticN1 * 4);
2577
+ poleStaticParam.setVal("N1", poleStaticN1);
2578
+ poleStaticParam.setVal("D5", poleStaticD5);
2579
+ poleStaticParam.setVal("L1", param.E1 + poleStaticD5 / 2);
2580
+ poleStaticParam.setVal("H3", param.H1 / 4);
2581
+ poleStaticParam.setVal("H4", param.H1 / 2);
2582
+ poleStaticParam.setVal("D4", param.H1 / 4);
2583
+ poleStaticParam.setVal("L2", param.H1 / 80);
2584
+ poleStaticParam.setVal("E3", param.H1 / 80);
2574
2585
  rakeParam.setVal("H1", param.H4);
2575
2586
  rakeParam.setVal("H2", param.H5);
2587
+ rakeParam.setVal("H3", param.H4 - 2 * param.E1);
2576
2588
  rakeParam.setVal("D1", param.D3);
2577
2589
  rakeParam.setVal("D2", param.D4);
2578
2590
  rakeParam.setVal("L9", param.D3 / 2);
2591
+ rakeParam.setVal("H7", param.D3 / 2 * 1.6);
2592
+ rakeParam.setVal("H6", param.D3 / 20);
2593
+ rakeParam.setVal("R9", param.D3 / 20);
2579
2594
  rakeParam.setVal("E1", param.E1);
2580
2595
  rakeParam.setVal("E3", param.E1);
2581
- rakeParam.setVal("D3", param.D2 * 0.6);
2596
+ rakeParam.setVal("E4", param.E1);
2597
+ const rakeD3 = param.D2 * 0.6;
2598
+ const rakeN1 = 24;
2599
+ const rakeD7 = rakeD3 / (rakeN1 * 4);
2600
+ rakeParam.setVal("D3", rakeD3);
2582
2601
  if (param.D2 > param.D3 - 2 * param.E1) {
2583
2602
  throw `err153: D2 ${param.D2} too large compare to D3 ${param.D3} and E1 ${param.E1}`;
2584
2603
  }
2604
+ rakeParam.setVal("N1", rakeN1);
2605
+ rakeParam.setVal("D7", rakeD7);
2606
+ rakeParam.setVal("L1", rakeD7);
2585
2607
  rakeParam.setVal("H4", param.H6);
2586
2608
  rakeParam.setVal("D4", param.D5);
2587
2609
  rakeParam.setVal("L7", param.L7);
@@ -2601,14 +2623,22 @@ function pGeom7(t, param) {
2601
2623
  rakeParam.setVal("L5", param.L5 + 2 * param.L3);
2602
2624
  rakeParam.setVal("L6", param.L6 + 2 * param.L3);
2603
2625
  const spiderL5 = param.L5 * 0.96;
2626
+ const spiderN1 = 6;
2604
2627
  spiderParam.setVal("L5", spiderL5);
2605
2628
  spiderParam.setVal("D1", param.D8);
2606
2629
  spiderParam.setVal("L1", param.S1);
2607
2630
  spiderParam.setVal("L2", param.S2);
2631
+ spiderParam.setVal("L3", param.E2 * 2);
2632
+ spiderParam.setVal("E1", param.E1);
2608
2633
  spiderParam.setVal("E2", param.E2);
2634
+ spiderParam.setVal("E3", param.E1);
2609
2635
  spiderParam.setVal("L4", param.L2 / 2 - param.H8);
2636
+ spiderParam.setVal("R2", 0);
2637
+ spiderParam.setVal("N1", spiderN1);
2638
+ spiderParam.setVal("L6", spiderL5 / (spiderN1 * 10));
2610
2639
  swingParam.setVal("L2", param.L2);
2611
2640
  swingParam.setVal("D1", param.D6);
2641
+ swingParam.setVal("H3", param.H9);
2612
2642
  swingParam.setVal("H4", param.H9);
2613
2643
  swingParam.setVal("L1", param.L1);
2614
2644
  if (param.L1 < 4 * param.L4 + 2 * param.L6 + param.L5 + 2 * param.L3) {
@@ -2707,8 +2737,8 @@ function pGeom7(t, param) {
2707
2737
  position: [0, 0, rakePosY]
2708
2738
  };
2709
2739
  const subSpider = {
2710
- partName: rakeParam.getPartName(),
2711
- dparam: rakeParam.getDesignParamList(),
2740
+ partName: spiderParam.getPartName(),
2741
+ dparam: spiderParam.getDesignParamList(),
2712
2742
  orientation: [Math.PI / 2, 0, 0],
2713
2743
  position: [0, spiderL5 / 2, spiderPosY]
2714
2744
  };
@@ -2772,36 +2802,36 @@ var pDef8 = {
2772
2802
  partName: "rake_stopper",
2773
2803
  params: [
2774
2804
  //pNumber(name, unit, init, min, max, step)
2775
- pNumber8("D1", "mm", 600, 100, 4e3, 10),
2776
- pNumber8("D2", "mm", 400, 100, 4e3, 10),
2777
- pNumber8("D3", "mm", 400, 100, 4e3, 10),
2778
- pNumber8("H1", "mm", 800, 100, 4e3, 10),
2779
- pNumber8("H2", "mm", 3e3, 100, 6e3, 10),
2780
- pNumber8("H3", "mm", 400, 0, 4e3, 10),
2805
+ pNumber8("D1", "mm", 600, 10, 4e3, 10),
2806
+ pNumber8("D2", "mm", 400, 10, 4e3, 10),
2807
+ pNumber8("D3", "mm", 400, 1, 4e3, 1),
2808
+ pNumber8("H1", "mm", 800, 1, 4e3, 1),
2809
+ pNumber8("H2", "mm", 3e3, 20, 6e3, 10),
2810
+ pNumber8("H3", "mm", 400, 0, 4e3, 1),
2781
2811
  pNumber8("E1", "mm", 20, 1, 80, 1),
2782
2812
  pNumber8("E3", "mm", 30, 1, 80, 1),
2783
- pNumber8("H4", "mm", 200, 100, 1e3, 10),
2784
- pNumber8("D4", "mm", 300, 100, 1e3, 10),
2813
+ pNumber8("H4", "mm", 200, 1, 1e3, 1),
2814
+ pNumber8("D4", "mm", 300, 1, 1e3, 1),
2785
2815
  pNumber8("E4", "mm", 20, 1, 80, 1),
2786
- pNumber8("H5", "mm", 400, 100, 2e3, 10),
2787
- pNumber8("D5", "mm", 200, 10, 1e3, 10),
2788
- pNumber8("L4", "mm", 300, 10, 1e3, 10),
2789
- pNumber8("L5", "mm", 2e3, 100, 4e3, 10),
2790
- pNumber8("L6", "mm", 2e3, 100, 4e3, 10),
2791
- pNumber8("D6", "mm", 100, 10, 600, 10),
2816
+ pNumber8("H5", "mm", 400, 1, 2e3, 1),
2817
+ pNumber8("D5", "mm", 200, 1, 1e3, 1),
2818
+ pNumber8("L4", "mm", 300, 1, 1e3, 1),
2819
+ pNumber8("L5", "mm", 2e3, 1, 4e3, 1),
2820
+ pNumber8("L6", "mm", 2e3, 1, 4e3, 1),
2821
+ pNumber8("D6", "mm", 100, 1, 600, 1),
2792
2822
  pNumber8("E6", "mm", 10, 1, 80, 1),
2793
- pNumber8("L7", "mm", 100, 10, 1e3, 1),
2794
- pNumber8("L8", "mm", 200, 10, 1e3, 1),
2823
+ pNumber8("L7", "mm", 100, 1, 1e3, 1),
2824
+ pNumber8("L8", "mm", 200, 1, 1e3, 1),
2795
2825
  pNumber8("N1", "", 24, 3, 100, 1),
2796
2826
  pNumber8("D7", "mm", 40, 1, 100, 1),
2797
2827
  pNumber8("L1", "mm", 30, 1, 300, 1),
2798
- pNumber8("D8", "mm", 400, 100, 1e3, 10),
2799
- pNumber8("H6", "mm", 100, 50, 1e3, 10),
2800
- pNumber8("H7", "mm", 600, 100, 2e3, 10),
2801
- pNumber8("L9", "mm", 300, 100, 1e3, 10),
2828
+ pNumber8("D8", "mm", 400, 1, 1e3, 1),
2829
+ pNumber8("H6", "mm", 100, 1, 1e3, 1),
2830
+ pNumber8("H7", "mm", 600, 1, 2e3, 1),
2831
+ pNumber8("L9", "mm", 300, 1, 1e3, 1),
2802
2832
  pNumber8("R9", "mm", 50, 0, 300, 1),
2803
- pNumber8("S1", "mm", 100, 10, 300, 1),
2804
- pNumber8("S2", "mm", 2e3, 100, 8e3, 10),
2833
+ pNumber8("S1", "mm", 100, 1, 300, 1),
2834
+ pNumber8("S2", "mm", 2e3, 1, 8e3, 1),
2805
2835
  pNumber8("E7", "mm", 5, 1, 80, 1)
2806
2836
  ],
2807
2837
  paramSvg: {
@@ -2875,8 +2905,8 @@ function pGeom8(t, param) {
2875
2905
  if (2 * param.E7 >= param.S1) {
2876
2906
  throw `err135: E7 ${param.E7} too large compare to S1 ${param.S1}`;
2877
2907
  }
2878
- if (param.L5 < param.D1 + 4 * param.S1) {
2879
- throw `err138: L5 ${param.L5} too small compare to D1 ${param.D1} and S1 ${param.S1}`;
2908
+ if (param.L5 < param.D2) {
2909
+ throw `err138: L5 ${param.L5} too small compare to D2 ${param.D2}`;
2880
2910
  }
2881
2911
  const stopper1H = H1H5 - param.S2;
2882
2912
  if (stopper1H < 0) {
@@ -3127,33 +3157,33 @@ var pDef9 = {
3127
3157
  partName: "heliostat_2",
3128
3158
  params: [
3129
3159
  //pNumber(name, unit, init, min, max, step)
3130
- pNumber9("H1", "mm", 3e3, 100, 4e4, 10),
3131
- pNumber9("H2", "mm", 2500, 100, 4e4, 10),
3132
- pNumber9("H3", "mm", 200, 10, 500, 10),
3133
- pNumber9("H4", "mm", 800, 100, 4e3, 10),
3134
- pNumber9("H5", "mm", 3e3, 100, 6e3, 10),
3135
- pNumber9("H6", "mm", 200, 100, 4e3, 10),
3136
- pNumber9("H7", "mm", 400, 100, 4e3, 10),
3137
- pNumber9("H9", "mm", 100, 10, 400, 10),
3138
- pNumber9("D1", "mm", 1e3, 100, 4e3, 10),
3139
- pNumber9("D2", "mm", 700, 100, 4e3, 10),
3140
- pNumber9("D3", "mm", 900, 100, 4e3, 10),
3141
- pNumber9("D4", "mm", 400, 100, 4e3, 10),
3142
- pNumber9("D5", "mm", 300, 100, 1e3, 10),
3143
- pNumber9("D6", "mm", 200, 100, 1e3, 10),
3144
- pNumber9("D7", "mm", 400, 100, 1e3, 10),
3145
- pNumber9("D9", "mm", 100, 10, 1e3, 10),
3160
+ pNumber9("H1", "mm", 3e3, 10, 4e4, 10),
3161
+ pNumber9("H2", "mm", 2500, 50, 4e4, 10),
3162
+ pNumber9("H3", "mm", 200, 1, 500, 1),
3163
+ pNumber9("H4", "mm", 800, 1, 4e3, 1),
3164
+ pNumber9("H5", "mm", 3e3, 50, 6e3, 10),
3165
+ pNumber9("H6", "mm", 200, 1, 4e3, 1),
3166
+ pNumber9("H7", "mm", 400, 1, 4e3, 1),
3167
+ pNumber9("H9", "mm", 100, 1, 400, 1),
3168
+ pNumber9("D1", "mm", 1e3, 20, 4e3, 10),
3169
+ pNumber9("D2", "mm", 700, 20, 4e3, 10),
3170
+ pNumber9("D3", "mm", 900, 20, 4e3, 10),
3171
+ pNumber9("D4", "mm", 400, 20, 4e3, 10),
3172
+ pNumber9("D5", "mm", 300, 20, 1e3, 10),
3173
+ pNumber9("D6", "mm", 200, 10, 1e3, 10),
3174
+ pNumber9("D7", "mm", 400, 10, 1e3, 10),
3175
+ pNumber9("D9", "mm", 100, 1, 1e3, 1),
3146
3176
  pNumber9("E1", "mm", 30, 1, 80, 1),
3147
- pNumber9("L1", "mm", 12500, 1e3, 4e4, 10),
3148
- pNumber9("L2", "mm", 6e3, 1e3, 4e4, 10),
3149
- pNumber9("L3", "mm", 100, 10, 500, 10),
3150
- pNumber9("L4", "mm", 600, 100, 4e3, 10),
3151
- pNumber9("L5", "mm", 2e3, 100, 6e3, 10),
3152
- pNumber9("L6", "mm", 2e3, 100, 6e3, 10),
3153
- pNumber9("L7", "mm", 100, 10, 1e3, 10),
3154
- pNumber9("L8", "mm", 200, 10, 1e3, 10),
3177
+ pNumber9("L1", "mm", 12500, 100, 4e4, 10),
3178
+ pNumber9("L2", "mm", 6e3, 100, 4e4, 10),
3179
+ pNumber9("L3", "mm", 100, 1, 500, 1),
3180
+ pNumber9("L4", "mm", 600, 1, 4e3, 1),
3181
+ pNumber9("L5", "mm", 2e3, 10, 6e3, 10),
3182
+ pNumber9("L6", "mm", 2e3, 1, 6e3, 1),
3183
+ pNumber9("L7", "mm", 100, 1, 1e3, 1),
3184
+ pNumber9("L8", "mm", 200, 1, 1e3, 1),
3155
3185
  pNumber9("al", "degree", 80, 0, 95, 1),
3156
- pNumber9("S1", "mm", 100, 10, 800, 1)
3186
+ pNumber9("S1", "mm", 100, 1, 800, 1)
3157
3187
  ],
3158
3188
  paramSvg: {
3159
3189
  H1: "heliostat_overview.svg",
@@ -3185,7 +3215,7 @@ var pDef9 = {
3185
3215
  S1: "heliostat2_side_sizing.svg"
3186
3216
  },
3187
3217
  sim: {
3188
- tMax: 180,
3218
+ tMax: 100,
3189
3219
  tStep: 0.5,
3190
3220
  tUpdate: 500
3191
3221
  // every 0.5 second
@@ -3217,19 +3247,43 @@ function pGeom9(t, param) {
3217
3247
  poleStaticParam.setVal("H2", param.H2);
3218
3248
  poleStaticParam.setVal("D1", param.D1);
3219
3249
  poleStaticParam.setVal("D2", param.D2);
3250
+ poleStaticParam.setVal("D3", param.D1 - 6 * param.E1);
3220
3251
  poleStaticParam.setVal("E1", param.E1);
3221
3252
  poleStaticParam.setVal("E2", param.E1);
3253
+ const poleStaticN1 = 32;
3254
+ const poleStaticD5 = (param.D1 - 6 * param.E1) / (poleStaticN1 * 4);
3255
+ poleStaticParam.setVal("N1", poleStaticN1);
3256
+ poleStaticParam.setVal("D5", poleStaticD5);
3257
+ poleStaticParam.setVal("L1", param.E1 + poleStaticD5 / 2);
3258
+ poleStaticParam.setVal("H3", param.H1 / 4);
3259
+ poleStaticParam.setVal("H4", param.H1 / 2);
3260
+ poleStaticParam.setVal("D4", param.H1 / 4);
3261
+ poleStaticParam.setVal("L2", param.H1 / 80);
3262
+ poleStaticParam.setVal("E3", param.H1 / 80);
3222
3263
  rakeParam.setVal("H1", param.H4);
3223
3264
  rakeParam.setVal("H2", param.H5);
3265
+ rakeParam.setVal("H3", param.H4 - 2 * param.E1);
3224
3266
  rakeParam.setVal("D1", param.D3);
3225
3267
  rakeParam.setVal("D2", param.D4);
3226
3268
  rakeParam.setVal("L9", param.D3 / 2);
3269
+ rakeParam.setVal("H7", param.D3 / 2 * 1.6);
3270
+ rakeParam.setVal("H6", param.D3 / 20);
3271
+ rakeParam.setVal("R9", param.D3 / 20);
3227
3272
  rakeParam.setVal("E1", param.E1);
3228
3273
  rakeParam.setVal("E3", param.E1);
3229
- rakeParam.setVal("D3", param.D2 * 0.6);
3274
+ rakeParam.setVal("E4", param.E1);
3275
+ rakeParam.setVal("E6", param.E1);
3276
+ rakeParam.setVal("E7", param.E1);
3277
+ const rakeD3 = param.D2 * 0.6;
3278
+ const rakeN1 = 24;
3279
+ const rakeD7 = rakeD3 / (rakeN1 * 4);
3280
+ rakeParam.setVal("D3", rakeD3);
3230
3281
  if (param.D2 > param.D3 - 2 * param.E1) {
3231
3282
  throw `err153: D2 ${param.D2} too large compare to D3 ${param.D3} and E1 ${param.E1}`;
3232
3283
  }
3284
+ rakeParam.setVal("N1", rakeN1);
3285
+ rakeParam.setVal("D7", rakeD7);
3286
+ rakeParam.setVal("L1", rakeD7);
3233
3287
  rakeParam.setVal("H4", param.H6);
3234
3288
  rakeParam.setVal("D4", param.D5);
3235
3289
  rakeParam.setVal("L7", param.L7);
@@ -3252,6 +3306,7 @@ function pGeom9(t, param) {
3252
3306
  rakeParam.setVal("S2", param.L2 / 2);
3253
3307
  swingParam.setVal("L2", param.L2);
3254
3308
  swingParam.setVal("D1", param.D6);
3309
+ swingParam.setVal("H3", param.H9);
3255
3310
  swingParam.setVal("H4", param.H9);
3256
3311
  swingParam.setVal("L1", param.L1);
3257
3312
  if (param.L1 < 4 * param.L4 + 2 * param.L6 + param.L5 + 2 * param.L3) {
@@ -3380,15 +3435,15 @@ var pDef10 = {
3380
3435
  partName: "base",
3381
3436
  params: [
3382
3437
  //pNumber(name, unit, init, min, max, step)
3383
- pNumber10("D1", "mm", 600, 100, 4e3, 10),
3384
- pNumber10("D2", "mm", 700, 100, 4e3, 10),
3385
- pNumber10("D3", "mm", 400, 100, 4e3, 10),
3386
- pNumber10("D4", "mm", 500, 100, 4e3, 10),
3438
+ pNumber10("D1", "mm", 600, 10, 4e3, 10),
3439
+ pNumber10("D2", "mm", 700, 10, 4e3, 10),
3440
+ pNumber10("D3", "mm", 400, 10, 4e3, 10),
3441
+ pNumber10("D4", "mm", 500, 10, 4e3, 10),
3387
3442
  pNumber10("E1", "mm", 30, 1, 80, 1),
3388
3443
  pNumber10("E2", "mm", 30, 1, 80, 1),
3389
3444
  pNumber10("E3", "mm", 30, 1, 80, 1),
3390
3445
  pNumber10("H1", "mm", 800, 10, 4e3, 10),
3391
- pNumber10("H2", "mm", 50, 10, 4e3, 10),
3446
+ pNumber10("H2", "mm", 50, 1, 4e3, 1),
3392
3447
  pNumber10("H3", "mm", 400, 10, 4e3, 10),
3393
3448
  pNumber10("N2", "", 12, 1, 100, 1),
3394
3449
  pNumber10("L2", "mm", 100, 1, 400, 1),
@@ -3446,6 +3501,9 @@ function pGeom10(t, param) {
3446
3501
  rGeome.logstr += `base-height: ${ffix11(param.H1)} mm
3447
3502
  `;
3448
3503
  rGeome.logstr += `base-external-diameter: ${ffix11(param.D2)} mm
3504
+ `;
3505
+ const interHollow = param.D1 * Math.PI / param.N2 - param.L2;
3506
+ rGeome.logstr += `inter-hollow: ${ffix11(interHollow)} mm
3449
3507
  `;
3450
3508
  ctrBaseCut1 = function(orient) {
3451
3509
  const rBaseCut1 = contour9(orient * R2, 0).addSegStrokeA(orient * R2, param.E3).addSegStrokeA(orient * R1, param.E3).addSegStrokeA(orient * R1, param.H1).addSegStrokeA(orient * (R1 - param.E2), param.H1).addSegStrokeA(orient * (R1 - param.E2), param.E3).addSegStrokeA(orient * R4, param.E3).addSegStrokeA(orient * R4, 0).closeSegStroke();
@@ -3587,9 +3645,9 @@ var pDef11 = {
3587
3645
  partName: "pole_rotor",
3588
3646
  params: [
3589
3647
  //pNumber(name, unit, init, min, max, step)
3590
- pNumber11("D1", "mm", 600, 100, 4e3, 10),
3591
- pNumber11("D2", "mm", 400, 100, 4e3, 10),
3592
- pNumber11("H1", "mm", 8e3, 100, 4e4, 10),
3648
+ pNumber11("D1", "mm", 600, 1, 4e3, 1),
3649
+ pNumber11("D2", "mm", 400, 1, 4e3, 1),
3650
+ pNumber11("H1", "mm", 8e3, 10, 4e4, 10),
3593
3651
  pNumber11("E1", "mm", 5, 1, 80, 1),
3594
3652
  pNumber11("E2", "mm", 30, 1, 80, 1),
3595
3653
  pNumber11("N1", "", 24, 3, 100, 1),
@@ -3874,10 +3932,10 @@ var pDef13 = {
3874
3932
  partName: "trapeze",
3875
3933
  params: [
3876
3934
  //pNumber(name, unit, init, min, max, step)
3877
- pNumber13("L1", "mm", 1600, 100, 4e3, 10),
3878
- pNumber13("L2", "mm", 1e3, 100, 4e3, 10),
3879
- pNumber13("L3", "mm", 400, 5, 800, 5),
3880
- pNumber13("L4", "mm", 300, 5, 800, 5),
3935
+ pNumber13("L1", "mm", 1600, 10, 4e3, 1),
3936
+ pNumber13("L2", "mm", 1e3, 10, 4e3, 1),
3937
+ pNumber13("L3", "mm", 400, 5, 800, 1),
3938
+ pNumber13("L4", "mm", 300, 5, 800, 1),
3881
3939
  pNumber13("N1", "", 7, 1, 20, 1),
3882
3940
  pNumber13("N2", "", 4, 1, 20, 1),
3883
3941
  pNumber13("N3", "", 2, 1, 20, 1),
@@ -3885,10 +3943,10 @@ var pDef13 = {
3885
3943
  pNumber13("L5", "mm", 100, 1, 400, 1),
3886
3944
  pNumber13("L6", "mm", 20, 1, 400, 1),
3887
3945
  pNumber13("L7", "mm", 20, 1, 400, 1),
3888
- pNumber13("D1", "mm", 10, 1, 40, 10),
3889
- pNumber13("D2", "mm", 10, 1, 40, 10),
3890
- pNumber13("D3", "mm", 30, 1, 100, 10),
3891
- pNumber13("D4", "mm", 26, 1, 100, 10),
3946
+ pNumber13("D1", "mm", 10, 1, 40, 1),
3947
+ pNumber13("D2", "mm", 10, 1, 40, 1),
3948
+ pNumber13("D3", "mm", 30, 1, 100, 1),
3949
+ pNumber13("D4", "mm", 26, 1, 100, 1),
3892
3950
  pNumber13("R1", "mm", 60, 1, 400, 1),
3893
3951
  pNumber13("R2", "mm", 20, 1, 400, 1),
3894
3952
  pNumber13("R3", "mm", 20, 1, 400, 1),
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "designix",
3
- "version": "0.5.21",
3
+ "version": "0.5.22",
4
4
  "description": "The first designs made with parametrix",
5
5
  "private": false,
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/charlyoleg2/parametrix.git"
9
9
  },
10
- "homepage": "https://github.com/charlyoleg2/parametrix/tree/main/pkg/designix#readme",
10
+ "homepage": "https://charlyoleg2.github.io/parametrix/",
11
11
  "keywords": [
12
12
  "cad",
13
13
  "programmatic",
@@ -49,12 +49,12 @@
49
49
  "clean": "shx rm -fr dist dist2 node_modules"
50
50
  },
51
51
  "dependencies": {
52
- "geometrix": "^0.5.16"
52
+ "geometrix": "^0.5.20"
53
53
  },
54
54
  "devDependencies": {
55
55
  "@typescript-eslint/eslint-plugin": "^7.0.1",
56
56
  "@typescript-eslint/parser": "^7.0.1",
57
- "esbuild": "^0.20.0",
57
+ "esbuild": "^0.20.1",
58
58
  "eslint": "^8.56.0",
59
59
  "eslint-config-prettier": "^9.1.0",
60
60
  "npm-run-all": "^4.1.5",
@@ -63,7 +63,7 @@
63
63
  "svgo": "^3.2.0",
64
64
  "tsup": "^8.0.2",
65
65
  "typescript": "^5.3.3",
66
- "vitest": "^1.3.0"
66
+ "vitest": "^1.3.1"
67
67
  },
68
68
  "exports": {
69
69
  ".": {