designix-uis 0.5.8 → 0.5.10

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 (48) hide show
  1. package/README.md +4 -4
  2. package/dist/designix-uis.js +3 -1
  3. package/dist/public/_app/immutable/chunks/{entry.BFGRtcGn.js → entry.srmsUyMV.js} +1 -1
  4. package/dist/public/_app/immutable/chunks/{index.Bs7kS4ug.js → index.BhqJUW2k.js} +6 -6
  5. package/dist/public/_app/immutable/chunks/makeList.B5eM3X4c.js +112 -0
  6. package/dist/public/_app/immutable/chunks/paths.BRXC3_zO.js +1 -0
  7. package/dist/public/_app/immutable/chunks/{stores.X5bEpmSW.js → stores.BZNWI8TH.js} +1 -1
  8. package/dist/public/_app/immutable/entry/{app.CISHep7-.js → app.Fuw-_ZUo.js} +2 -2
  9. package/dist/public/_app/immutable/entry/start.MLn30SKm.js +1 -0
  10. package/dist/public/_app/immutable/nodes/{0.CnRFRWJa.js → 0.BE-W7Hwe.js} +3 -3
  11. package/dist/public/_app/immutable/nodes/{1.B9rPEgdg.js → 1.BW5Ycf-C.js} +1 -1
  12. package/dist/public/_app/immutable/nodes/{2.Cbgd_vYf.js → 2.BSq0IR72.js} +1 -1
  13. package/dist/public/_app/immutable/nodes/{3.BT04ZxFd.js → 3.BqOHGbX5.js} +1 -1
  14. package/dist/public/_app/version.json +1 -1
  15. package/dist/public/gear/gear_wheel_wheel.html +14 -14
  16. package/dist/public/gear/simplified_gear_wheel.html +14 -14
  17. package/dist/public/heliostat/base.html +14 -14
  18. package/dist/public/heliostat/haxis_guidance.html +60 -0
  19. package/dist/public/heliostat/heliostat.html +14 -14
  20. package/dist/public/heliostat/heliostat_2.html +16 -16
  21. package/dist/public/heliostat/pole_static.html +24 -15
  22. package/dist/public/heliostat/rake.html +14 -14
  23. package/dist/public/heliostat/rake_stopper.html +15 -15
  24. package/dist/public/heliostat/ring.html +14 -14
  25. package/dist/public/heliostat/ring_guidance.html +14 -14
  26. package/dist/public/heliostat/rod.html +14 -14
  27. package/dist/public/heliostat/spider.html +14 -14
  28. package/dist/public/heliostat/surface.html +14 -14
  29. package/dist/public/heliostat/swing.html +14 -14
  30. package/dist/public/heliostat/trapeze.html +14 -14
  31. package/dist/public/heliostat/vaxis.html +14 -14
  32. package/dist/public/heliostat/vaxis_guidance.html +15 -14
  33. package/dist/public/heliostat/vaxis_holder.html +14 -14
  34. package/dist/public/index.html +13 -13
  35. package/dist/public/pgdsvg/haxis_guidance.svg +1 -0
  36. package/dist/public/pgdsvg/haxis_guidance_outer.svg +1 -0
  37. package/dist/public/pgdsvg/haxis_guidance_spring.svg +1 -0
  38. package/dist/public/pgdsvg/rake.svg +1 -1
  39. package/dist/public/pgdsvg/rake_low_stopper_holder.svg +1 -0
  40. package/dist/public/pgdsvg/rake_side_stopper.svg +1 -1
  41. package/dist/public/pgdsvg/rake_top_stopper.svg +1 -1
  42. package/dist/public/pgdsvg/vaxis_guidance.svg +2 -1
  43. package/dist/public/pgdsvg/vaxis_guidance_spring.svg +1 -1
  44. package/dist/public/pgdsvg/vaxis_guidance_top.svg +2 -1
  45. package/package.json +3 -1
  46. package/dist/public/_app/immutable/chunks/makeList.YazkypBi.js +0 -108
  47. package/dist/public/_app/immutable/chunks/paths.CtF7ruBT.js +0 -1
  48. package/dist/public/_app/immutable/entry/start.IAYCmwB9.js +0 -1
@@ -1 +1,2 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="548.216" height="542.448" viewBox="0 0 145.049 143.523"><defs><path id="w" d="M385.047 566.254h46.923v30.295h-46.923z"/><path id="v" d="M326.973 322.165h39.235v27.842h-39.235z"/><path id="u" d="M310.679 291.59h37.609v26.229h-37.609z"/><path id="t" d="M271.403 274.709h40.931v41.672h-40.931z"/><path id="s" d="M41.964 490.506h61.447v32.386H41.964z"/><path id="o" d="M230.477 337.788h43.024v35.763h-43.024z"/><path id="m" d="M66.771 544.293h52.595v41.568H66.771z"/><path id="l" d="M77.858 137.531h83.851v43.935H77.858z"/><path id="k" d="M49.656 97.036h71.156v48.382H49.656z"/><path id="j" d="M479.338 609.681h71.939v53.847h-71.939z"/><path id="i" d="M543.218 236.892h42.737v38.238h-42.737z"/><path id="h" d="M519.75 43.763h68.4v71.172h-68.4z"/><path id="g" d="M546.666 422.076h35.719v33.093h-35.719z"/><path id="f" d="M360.738 72.512h39.349v32.277h-39.349z"/><path id="e" d="M309.139 65.957h52.16v31.797h-52.16z"/><path id="d" d="M503.914 145.637h58.003v43.166h-58.003z"/><path id="b" d="M432.272 88.073h56.586v36.71h-56.586z"/><path id="r" d="M230.477 337.788h43.024v35.763h-43.024z"/><marker id="a" markerHeight="1" markerWidth="1" orient="auto-start-reverse" preserveAspectRatio="xMidYMid" refX="0" refY="0" style="overflow:visible" viewBox="0 0 1 1"><path d="M3-3 0 0l3 3" style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" transform="rotate(180,0.125,0)"/></marker><marker id="c" markerHeight="1" markerWidth="1" orient="auto-start-reverse" preserveAspectRatio="xMidYMid" refX="0" refY="0" style="overflow:visible" viewBox="0 0 1 1"><path d="M3-3 0 0l3 3" style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" transform="rotate(180,0.125,0)"/></marker><marker id="n" markerHeight="1" markerWidth="1" orient="auto-start-reverse" preserveAspectRatio="xMidYMid" refX="0" refY="0" style="overflow:visible" viewBox="0 0 1 1"><path d="M3-3 0 0l3 3" style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" transform="rotate(180,0.125,0)"/></marker><marker id="p" markerHeight="1" markerWidth="1" orient="auto-start-reverse" preserveAspectRatio="xMidYMid" refX="0" refY="0" style="overflow:visible" viewBox="0 0 1 1"><path d="M3-3 0 0l3 3" style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" transform="rotate(180,0.125,0)"/></marker><marker id="q" markerHeight="1" markerWidth="1" orient="auto-start-reverse" preserveAspectRatio="xMidYMid" refX="0" refY="0" style="overflow:visible" viewBox="0 0 1 1"><path d="M3-3 0 0l3 3" style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" transform="rotate(180,0.125,0)"/></marker></defs><g transform="translate(-9.9122162,-15.218278)"><path d="M10.045 15.351h144.784v143.258H10.045z" style="fill:#fff;stroke:#fff;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="78.427" cy="93.195" r="57.927" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="78.427" cy="93.195" r="49.458" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="78.427" cy="35.269" r="2.853" style="fill:none;stroke:#000;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="136.486" cy="93.195" r="2.853" style="fill:none;stroke:#000;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="20.5" cy="93.195" r="2.853" style="fill:none;stroke:#000;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="78.427" cy="151.254" r="2.853" style="fill:none;stroke:#000;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="78.427" cy="35.269" r="5.344" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="20.368" cy="93.195" r="5.344" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="136.354" cy="93.195" r="5.344" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="78.427" cy="151.254" r="5.344" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><path d="m71.544 44.285 1.738-10.116s.402-1.706.908-2.394a4.74 4.74 0 0 1 1.96-1.537c.878-.367 1.883-.419 2.833-.36.644.042 1.3.19 1.874.484.549.28 1.005.728 1.42 1.183.405.443.767.938 1.025 1.48.252.528.492 1.684.492 1.684l1.86 9.475M71.192 142.339l2.1 9.816s.402 1.706.908 2.394a4.74 4.74 0 0 0 1.96 1.537c.878.367 1.883.42 2.833.36.644-.041 1.3-.19 1.874-.483.549-.281 1.004-.729 1.42-1.184a6.1 6.1 0 0 0 1.025-1.48c.252-.527.492-1.684.492-1.684l2.012-9.631M29.614 100.583l-10.17-2.251s-1.707-.403-2.394-.909a4.74 4.74 0 0 1-1.538-1.96c-.366-.878-.419-1.883-.359-2.833.04-.643.189-1.3.483-1.874.28-.548.728-1.004 1.183-1.42a6.1 6.1 0 0 1 1.48-1.025c.528-.251 1.685-.492 1.685-.492l9.475-1.86M127.382 86.115l9.816 2.1s1.706.403 2.394.908a4.74 4.74 0 0 1 1.537 1.96c.367.879.42 1.883.36 2.833-.041.644-.19 1.3-.483 1.875-.281.548-.729 1.004-1.183 1.42a6.1 6.1 0 0 1-1.48 1.024c-.528.252-1.685.493-1.685.493l-9.475 1.86M85.654 44.184s3.903.769 5.816 1.305a57 57 0 0 1 5.5 1.856 39 39 0 0 1 3.666 1.66c2.024 1.053 4.014 2.188 5.888 3.489a50.4 50.4 0 0 1 5.755 4.644 48 48 0 0 1 5.017 5.476c1.693 2.17 3.203 4.492 4.547 6.895 1 1.786 1.853 3.659 2.602 5.564a52 52 0 0 1 1.923 5.971c.434 1.669 1.014 5.071 1.014 5.071M29.614 86.012s.768-3.902 1.304-5.815a57 57 0 0 1 1.857-5.5 39 39 0 0 1 1.66-3.666c1.053-2.024 2.187-4.014 3.488-5.888a50.4 50.4 0 0 1 4.645-5.755 48 48 0 0 1 5.475-5.017c2.17-1.693 4.492-3.203 6.895-4.548 1.787-1 3.659-1.852 5.565-2.601a52 52 0 0 1 5.97-1.924c1.669-.434 5.071-1.013 5.071-1.013" style="fill:none;stroke:#000;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="M71.342 142.514s-3.902-.768-5.815-1.304a57 57 0 0 1-5.5-1.857 39 39 0 0 1-3.667-1.66c-2.023-1.053-4.014-2.187-5.887-3.489a50.4 50.4 0 0 1-5.755-4.644 48 48 0 0 1-5.017-5.475c-1.694-2.171-3.203-4.493-4.548-6.895-1-1.787-1.852-3.66-2.601-5.565a52 52 0 0 1-1.924-5.971c-.434-1.668-1.014-5.07-1.014-5.07M127.183 100.588s-.32 3.688-.74 5.484c-.441 1.884-1.148 3.699-1.857 5.499a39 39 0 0 1-1.66 3.667c-1.053 2.024-2.187 4.014-3.489 5.888a50.4 50.4 0 0 1-4.644 5.755 48 48 0 0 1-5.475 5.017c-2.171 1.693-4.493 3.203-6.895 4.547-1.787 1-3.66 1.853-5.565 2.602a52 52 0 0 1-5.971 1.923c-1.668.434-5.07 1.014-5.07 1.014" style="fill:none;stroke:#000;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><circle cx="78.427" cy="93.195" r="42.859" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><path d="m78.427 50.336.172 10.375c1.573 3.222 2.307 1.043 2.875.02v-5.406c.577-3.441 4.446-2.55 4.781 0v5.233c1.249 3.36 1.934 1.85 3.137 0v-5.314c1.452-3.073 3.814-1.81 4.882 0v10.21h-.904v-9.322c-1.595-2.504-2.488-1.662-3.21 0v5.32c-1.322 2.442-2.758 4.067-4.978 0V56.25c-.882-1.656-1.763-3.32-2.764 0v5.614c-1.068 1.614-1.729 4.11-5.445 0l-1.104-1.85M70.979 50.988l5.125 9.35M109.675 64.033l-7.66 7.001c-1.371 3.313.748 2.42 1.89 2.168l4.05-3.582c2.96-1.846 4.856 1.642 3.167 3.583l-3.92 3.466c-1.69 3.16-.105 2.673 2.077 2.35l3.98-3.52c3.266-.948 3.884 1.659 3.235 3.658l-7.65 6.763-.599-.678 6.985-6.175c.82-2.853-.403-2.964-2.125-2.404l-3.987 3.525c-2.705.626-4.874.626-3.298-3.73l3.898-3.447c.658-1.758 1.32-3.52-1.83-2.07l-4.205 3.717c-1.918.27-4.225 1.428-3.607-4.079l.655-2.053M104.253 58.885l-3.61 10.033M48.729 62.545l7.001 7.66c3.313 1.371 2.42-.748 2.167-1.89l-3.581-4.05c-1.847-2.96 1.642-4.856 3.582-3.167l3.467 3.92c3.16 1.69 2.673.105 2.35-2.077l-3.52-3.98c-.948-3.266 1.658-3.884 3.658-3.235l6.763 7.65-.678.599-6.175-6.985c-2.853-.82-2.965.403-2.404 2.125l3.524 3.987c.626 2.705.627 4.874-3.73 3.298L57.706 62.5c-1.758-.657-3.52-1.32-2.07 1.83l3.718 4.206c.269 1.917 1.428 4.225-4.08 3.607l-2.052-.655M43.58 67.967l10.033 3.61M121.233 93.438l-10.375.172c-3.223 1.573-1.043 2.307-.02 2.874h5.406c3.44.577 2.55 4.447 0 4.782h-5.234c-3.359 1.249-1.848 1.934 0 3.136h5.314c3.074 1.453 1.811 3.815 0 4.883h-10.21v-.904h9.323c2.504-1.595 1.662-2.488 0-3.21h-5.32c-2.443-1.322-4.068-2.758 0-4.979h5.203c1.656-.881 3.32-1.762 0-2.763h-5.614c-1.614-1.068-4.11-1.729 0-5.445l1.85-1.104M120.58 85.99l-9.35 5.125M78.37 135.902l-.173-10.375c-1.573-3.222-2.307-1.043-2.874-.02v5.407c-.577 3.44-4.447 2.55-4.782 0v-5.234c-1.248-3.36-1.933-1.849-3.136 0v5.314c-1.452 3.074-3.815 1.81-4.883 0v-10.21h.905v9.322c1.594 2.505 2.487 1.662 3.208 0v-5.32c1.324-2.442 2.76-4.067 4.98 0v5.203c.881 1.657 1.763 3.32 2.763 0v-5.613c1.069-1.615 1.73-4.111 5.445 0l1.104 1.85M85.818 135.25l-5.125-9.35M35.748 94.875l10.375-.172c3.222-1.573 1.042-2.307.02-2.875h-5.407c-3.44-.577-2.55-4.446 0-4.781h5.234c3.359-1.249 1.849-1.934 0-3.137h-5.314c-3.074-1.452-1.81-3.814 0-4.883h10.21v.905h-9.323c-2.504 1.595-1.662 2.488 0 3.209h5.321c2.442 1.323 4.067 2.759 0 4.98h-5.203c-1.657.88-3.32 1.762 0 2.763h5.613c1.615 1.068 4.111 1.729 0 5.444l-1.85 1.105M36.4 102.323l9.35-5.125M47.801 122.961l7.659-7.001c1.372-3.313-.747-2.42-1.889-2.167l-4.05 3.581c-2.96 1.847-4.856-1.642-3.168-3.582l3.921-3.467c1.69-3.16.105-2.673-2.077-2.35l-3.981 3.52c-3.265.948-3.883-1.658-3.234-3.658l7.65-6.763.598.678-6.984 6.175c-.82 2.853.402 2.964 2.125 2.404l3.987-3.524c2.705-.626 4.874-.627 3.298 3.73l-3.899 3.447c-.657 1.757-1.32 3.52 1.83 2.07l4.206-3.718c1.917-.269 4.225-1.428 3.606 4.08l-.654 2.052M53.223 128.11l3.61-10.034M107.098 124.902l-7-7.66c-3.314-1.371-2.42.748-2.168 1.89l3.581 4.05c1.847 2.96-1.642 4.856-3.582 3.167l-3.467-3.92c-3.16-1.69-2.673-.105-2.35 2.077l3.52 3.98c.948 3.266-1.658 3.884-3.658 3.235l-6.763-7.65.678-.599 6.175 6.985c2.854.82 2.965-.403 2.404-2.125l-3.524-3.987c-.626-2.705-.627-4.874 3.73-3.298l3.447 3.899c1.758.657 3.52 1.32 2.07-1.83l-3.718-4.206c-.269-1.917-1.427-4.225 4.08-3.607l2.052.655M112.246 119.48l-10.032-3.61" style="fill:none;stroke:#000;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="M78.37 135.902s-4.901-.164-7.308-.588a47.7 47.7 0 0 1-8.773-2.413c-1.62-.62-3.121-1.515-4.655-2.326-1.489-.787-4.41-2.466-4.41-2.466M85.818 135.25s3.922-.721 5.83-1.285c1.716-.508 3.41-1.117 5.03-1.88 1.736-.819 3.401-1.8 4.99-2.879 1.91-1.298 5.43-4.304 5.43-4.304M47.801 122.961s-2.476-2.509-3.55-3.901a38 38 0 0 1-3.176-4.898 49 49 0 0 1-3.028-6.6c-.638-1.727-1.513-5.313-1.513-5.313M35.748 94.875s-.228-4.447-.003-6.654c.2-1.964.684-3.894 1.199-5.8a47 47 0 0 1 1.89-5.637 44 44 0 0 1 2.406-4.897c.756-1.335 2.498-3.864 2.498-3.864M48.729 62.545s3.757-3.506 5.86-4.968c1.832-1.274 3.807-2.352 5.838-3.278 2.323-1.06 4.756-1.879 7.21-2.583 1.096-.314 3.342-.728 3.342-.728M78.427 50.336s6.11.39 9.107.979c2.34.46 4.66 1.094 6.873 1.986 2.34.942 4.537 2.222 6.697 3.525 1.08.653 3.12 2.143 3.12 2.143M109.675 64.033s4.5 5.336 6.23 8.346c1.464 2.544 2.555 5.307 3.452 8.102.575 1.79 1.224 5.508 1.224 5.508M121.233 93.438s-.422 6.802-1.213 10.099c-.716 2.984-1.856 5.87-3.168 8.644-.893 1.889-2.021 3.663-3.18 5.401-.44.658-1.426 1.898-1.426 1.898" style="fill:none;stroke:#000;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="m107.543 42.751 9.42-11.403" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#b);display:inline" transform="matrix(0.26458333,0,0,0.26458333,1.6943359,3.7236328)"><tspan x="432.271" y="101.051">D1</tspan></text><path d="m113.51 57.735 15.98-11.828" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#c)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#d);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-3.3164062,4.7773437)"><tspan x="503.914" y="158.613">D2</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#e);display:inline" transform="scale(0.26458333)"><tspan x="309.139" y="78.934">D3</tspan></text><path d="m79.248 31.826 3.227-10.245" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#f);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-3.2568359,4.2675781)"><tspan x="360.738" y="85.488">D4</tspan></text><path d="m83.375 31.951 8.031-4.717" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="M127.417 86.158h21.497M127.16 100.54h21.497" style="fill:none;stroke:#ccc;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="M148.476 86.503v14.113" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a);marker-end:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#g);display:inline" transform="matrix(0.26458333,0,0,0.26458333,4.1459961,-20.158691)"><tspan x="546.666" y="435.053">L1</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#h);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-38.533535,18.871989)"><tspan x="519.75" y="56.738">R5</tspan></text><path d="m86.687 43.145 12.11-9.768" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="m120.373 81.926 21.592-8.921" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#i);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-1.4687657,7.8127012)"><tspan x="543.217" y="249.869">D6</tspan></text><path d="m132.444 152.41 8.205-6.535" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#j);display:inline" transform="matrix(0.26458333,0,0,0.26458333,9.1468129,-11.281944)"><tspan x="479.338" y="622.658">T1</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#k);display:inline" transform="scale(0.26458333)"><tspan x="49.656" y="110.012">N1</tspan></text><path d="m18.79 85.053-2.138-54.602 54.252 3.003" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a);marker-end:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#l);display:inline" transform="matrix(0.26458333,0,0,0.26458333,6.790711,1.9680218)"><tspan x="77.857" y="150.508">N2</tspan></text><path d="m41.39 77.769-9.003-35.261L59.411 57.97" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a);marker-end:url(#a)"/><path d="m47.639 123.115-18.306 18.36M53.052 128.533l-18.306 18.36" style="fill:none;stroke:#ccc;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="m34.779 146.626-5.183-5.183" style="fill:none;stroke:#00f;stroke-width:.264584px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a);marker-end:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#m);display:inline" transform="matrix(0.26458333,0,0,0.26458333,8.7449221,0.83140289)"><tspan x="66.771" y="557.27">E2</tspan></text><path d="M62.492 120.614V104.56M63.39 120.845v-16.056" style="fill:none;stroke:#ccc;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="M62.195 105.047h-5.448" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="M63.692 105.02h5.449" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#n)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#o);display:inline" transform="matrix(0.26458333,0,0,0.26458333,0.22304247,10.805475)"><tspan x="230.477" y="350.764">E1</tspan></text><path d="M71.652 124.61v-14.315M74.517 124.786V110.47" style="fill:none;stroke:#ccc;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="M71.673 111.141h-5.449" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#p)"/><path d="M74.758 111.115h5.448" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#q)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#r);display:inline" transform="matrix(0.26458333,0,0,0.26458333,9.7006736,16.900065)"><tspan x="230.477" y="350.764">W1</tspan></text><path d="M32.757 128.44s2.452-1.473 3.829-1.59c1.014-.086 2.073.211 2.978.678.682.352 1.72 1.534 1.72 1.534" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a);marker-end:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#s);display:inline;fill:#000;stroke:none" transform="matrix(0.26458333,0,0,0.26458333,22.066738,-7.1348447)"><tspan x="41.965" y="503.482">a1</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#t);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-1.4459781,-4.5991739)"><tspan x="271.402" y="287.686">L2</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#u);display:inline" transform="matrix(0.26458333,0,0,0.26458333,1.1946237,-7.926857)"><tspan x="310.68" y="304.566">L3</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#v);display:inline" transform="matrix(0.26458333,0,0,0.26458333,7.2001976,-14.300486)"><tspan x="326.973" y="335.143">L4</tspan></text><path d="m77.87 57.453-4.973 10.545" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="m82.429 58.974 2.87 10.144" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="m94.663 62.218 1.71 8.627" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#w);display:inline" transform="scale(0.26458333)"><tspan x="385.047" y="579.231">R7</tspan></text><path d="m79.045 136.35 21.403 13.196" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="m86.714 136.157 15.414 13.032" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="548.216" height="542.448" viewBox="0 0 145.049 143.523"><defs><path id="w" d="M472.504 496.893h114.278v47.35H472.504z"/><path id="v" d="M385.047 566.254h46.923v30.295h-46.923z"/><path id="u" d="M326.973 322.165h39.235v27.842h-39.235z"/><path id="t" d="M310.679 291.59h37.609v26.229h-37.609z"/><path id="s" d="M271.403 274.709h40.931v41.672h-40.931z"/><path id="o" d="M230.477 337.788h43.024v35.763h-43.024z"/><path id="m" d="M66.771 544.293h52.595v41.568H66.771z"/><path id="l" d="M77.858 137.531h83.851v43.935H77.858z"/><path id="k" d="M49.656 97.036h71.156v48.382H49.656z"/><path id="j" d="M479.338 609.681h71.939v53.847h-71.939z"/><path id="i" d="M543.218 236.892h42.737v38.238h-42.737z"/><path id="h" d="M519.75 43.763h68.4v71.172h-68.4z"/><path id="g" d="M546.666 422.076h35.719v33.093h-35.719z"/><path id="f" d="M360.738 72.512h39.349v32.277h-39.349z"/><path id="e" d="M309.139 65.957h52.16v31.797h-52.16z"/><path id="d" d="M503.914 145.637h58.003v43.166h-58.003z"/><path id="b" d="M432.272 88.073h56.586v36.71h-56.586z"/><path id="r" d="M230.477 337.788h43.024v35.763h-43.024z"/><marker id="a" markerHeight="1" markerWidth="1" orient="auto-start-reverse" preserveAspectRatio="xMidYMid" refX="0" refY="0" style="overflow:visible" viewBox="0 0 1 1"><path d="M3-3 0 0l3 3" style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" transform="rotate(180,0.125,0)"/></marker><marker id="c" markerHeight="1" markerWidth="1" orient="auto-start-reverse" preserveAspectRatio="xMidYMid" refX="0" refY="0" style="overflow:visible" viewBox="0 0 1 1"><path d="M3-3 0 0l3 3" style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" transform="rotate(180,0.125,0)"/></marker><marker id="n" markerHeight="1" markerWidth="1" orient="auto-start-reverse" preserveAspectRatio="xMidYMid" refX="0" refY="0" style="overflow:visible" viewBox="0 0 1 1"><path d="M3-3 0 0l3 3" style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" transform="rotate(180,0.125,0)"/></marker><marker id="p" markerHeight="1" markerWidth="1" orient="auto-start-reverse" preserveAspectRatio="xMidYMid" refX="0" refY="0" style="overflow:visible" viewBox="0 0 1 1"><path d="M3-3 0 0l3 3" style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" transform="rotate(180,0.125,0)"/></marker><marker id="q" markerHeight="1" markerWidth="1" orient="auto-start-reverse" preserveAspectRatio="xMidYMid" refX="0" refY="0" style="overflow:visible" viewBox="0 0 1 1"><path d="M3-3 0 0l3 3" style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" transform="rotate(180,0.125,0)"/></marker><marker id="x" markerHeight="1" markerWidth="1" orient="auto-start-reverse" preserveAspectRatio="xMidYMid" refX="0" refY="0" style="overflow:visible" viewBox="0 0 1 1"><path d="M3-3 0 0l3 3" style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt" transform="rotate(180,0.125,0)"/></marker></defs><g transform="translate(-7.9621482,-29.156017)"><path d="M8.094 29.288h144.784v143.258H8.094z" style="fill:#fff;stroke:#fff;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="76.477" cy="107.133" r="57.927" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="76.477" cy="107.133" r="49.458" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="76.477" cy="49.206" r="2.853" style="fill:none;stroke:#000;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="134.536" cy="107.133" r="2.853" style="fill:none;stroke:#000;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="18.55" cy="107.133" r="2.853" style="fill:none;stroke:#000;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="76.477" cy="165.192" r="2.853" style="fill:none;stroke:#000;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="76.477" cy="49.206" r="5.344" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="18.418" cy="107.133" r="5.344" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="134.403" cy="107.133" r="5.344" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><circle cx="76.477" cy="165.192" r="5.344" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><path d="m69.594 58.222 1.738-10.115s.402-1.706.908-2.394a4.74 4.74 0 0 1 1.96-1.537c.878-.367 1.883-.42 2.833-.36.644.041 1.3.19 1.874.484.549.28 1.004.728 1.42 1.183.405.442.767.938 1.025 1.48.252.528.492 1.684.492 1.684l1.86 9.475M69.241 156.277l2.1 9.816s.403 1.706.909 2.394a4.74 4.74 0 0 0 1.96 1.537c.878.367 1.883.42 2.833.36.644-.041 1.3-.19 1.874-.484.549-.28 1.004-.728 1.42-1.183a6.1 6.1 0 0 0 1.025-1.48c.252-.528.492-1.684.492-1.684l2.012-9.631M27.664 114.521l-10.17-2.252s-1.707-.402-2.395-.908a4.74 4.74 0 0 1-1.537-1.96c-.367-.878-.419-1.883-.359-2.833.04-.644.189-1.3.483-1.874.28-.549.728-1.004 1.183-1.42a6.1 6.1 0 0 1 1.48-1.025c.528-.252 1.685-.492 1.685-.492l9.474-1.86M125.432 100.053l9.816 2.1s1.706.402 2.394.908a4.74 4.74 0 0 1 1.537 1.96c.367.878.42 1.883.36 2.833-.041.644-.19 1.3-.483 1.875-.281.548-.729 1.004-1.184 1.42a6.1 6.1 0 0 1-1.48 1.024c-.527.252-1.684.493-1.684.493l-9.475 1.86M83.704 58.122s3.903.769 5.816 1.304a57 57 0 0 1 5.499 1.857 39 39 0 0 1 3.667 1.66c2.023 1.053 4.014 2.187 5.888 3.489a50.4 50.4 0 0 1 5.755 4.644 48 48 0 0 1 5.017 5.475c1.693 2.171 3.203 4.493 4.547 6.895 1 1.787 1.852 3.66 2.601 5.565a52 52 0 0 1 1.924 5.971c.434 1.668 1.014 5.07 1.014 5.07M27.664 99.95s.768-3.903 1.304-5.816a57 57 0 0 1 1.857-5.499 39 39 0 0 1 1.66-3.667c1.053-2.023 2.187-4.014 3.488-5.887a50.4 50.4 0 0 1 4.645-5.755 48 48 0 0 1 5.475-5.017c2.17-1.694 4.492-3.203 6.895-4.548 1.787-1 3.659-1.852 5.565-2.601a52 52 0 0 1 5.97-1.924c1.669-.434 5.071-1.014 5.071-1.014" style="fill:none;stroke:#000;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="M69.392 156.452s-3.902-.769-5.815-1.305a57 57 0 0 1-5.5-1.856 39 39 0 0 1-3.667-1.66c-2.023-1.053-4.014-2.188-5.887-3.489a50.4 50.4 0 0 1-5.755-4.644 48 48 0 0 1-5.017-5.475c-1.694-2.171-3.203-4.493-4.548-6.895-1-1.787-1.852-3.66-2.601-5.565a52 52 0 0 1-1.924-5.971c-.434-1.668-1.014-5.071-1.014-5.071M125.233 114.526s-.32 3.687-.74 5.484c-.441 1.883-1.148 3.699-1.857 5.499a39 39 0 0 1-1.66 3.667c-1.053 2.023-2.187 4.014-3.489 5.888a50.4 50.4 0 0 1-4.644 5.754 48 48 0 0 1-5.475 5.018c-2.171 1.693-4.493 3.202-6.895 4.547-1.787 1-3.66 1.852-5.565 2.601a52 52 0 0 1-5.971 1.924c-1.668.434-5.07 1.014-5.07 1.014" style="fill:none;stroke:#000;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><circle cx="76.477" cy="107.133" r="42.859" style="fill:none;stroke:#ccc;stroke-width:.264583;stroke-linejoin:bevel"/><path d="m76.477 64.274.172 10.375c1.573 3.222 2.307 1.043 2.875.02v-5.407c.577-3.44 4.446-2.55 4.781 0v5.234c1.249 3.36 1.934 1.849 3.137 0v-5.314c1.452-3.074 3.814-1.81 4.882 0v10.21h-.904V70.07c-1.595-2.505-2.488-1.662-3.21 0v5.32c-1.322 2.442-2.758 4.067-4.979 0v-5.203c-.881-1.657-1.762-3.32-2.763 0V75.8c-1.068 1.615-1.729 4.111-5.445 0l-1.104-1.85M69.028 64.926l5.126 9.35M107.725 77.971l-7.66 7.001c-1.371 3.313.747 2.42 1.89 2.167l4.05-3.581c2.96-1.847 4.856 1.642 3.167 3.582l-3.92 3.467c-1.69 3.16-.105 2.673 2.077 2.35l3.98-3.52c3.266-.948 3.884 1.658 3.235 3.658l-7.65 6.763-.599-.678 6.985-6.175c.82-2.853-.403-2.964-2.125-2.404l-3.987 3.524c-2.706.626-4.874.627-3.298-3.73l3.898-3.447c.658-1.757 1.32-3.52-1.83-2.07l-4.205 3.718c-1.918.269-4.225 1.428-3.607-4.079l.655-2.053M102.303 72.823l-3.61 10.033M46.779 76.483l7 7.659c3.314 1.372 2.42-.747 2.168-1.889l-3.581-4.05c-1.847-2.96 1.642-4.856 3.582-3.168l3.467 3.921c3.16 1.69 2.673.105 2.35-2.077l-3.52-3.981c-.948-3.265 1.658-3.883 3.658-3.234l6.763 7.65-.678.598-6.175-6.984c-2.854-.82-2.965.402-2.404 2.125l3.524 3.986c.626 2.706.627 4.875-3.73 3.299l-3.447-3.899c-1.758-.657-3.52-1.32-2.07 1.83l3.718 4.206c.269 1.917 1.427 4.225-4.08 3.606l-2.052-.654M41.63 81.905l10.033 3.61M119.283 107.375l-10.375.173c-3.223 1.573-1.043 2.307-.02 2.874h5.406c3.44.577 2.55 4.447 0 4.782h-5.234c-3.359 1.248-1.848 1.933 0 3.136h5.314c3.074 1.452 1.811 3.815 0 4.883h-10.21v-.905h9.323c2.504-1.594 1.662-2.487 0-3.209h-5.321c-2.442-1.323-4.067-2.758 0-4.979h5.204c1.656-.881 3.32-1.763 0-2.763h-5.614c-1.614-1.069-4.11-1.73 0-5.445l1.85-1.105M118.63 99.927l-9.35 5.125M76.42 149.84l-.173-10.375c-1.573-3.222-2.307-1.043-2.874-.02v5.406c-.577 3.441-4.447 2.55-4.782 0v-5.233c-1.248-3.36-1.934-1.85-3.136 0v5.314c-1.453 3.073-3.815 1.81-4.883 0v-10.21h.904v9.322c1.595 2.504 2.488 1.662 3.21 0v-5.32c1.323-2.442 2.758-4.067 4.979 0v5.203c.881 1.656 1.762 3.32 2.763 0v-5.614c1.069-1.614 1.729-4.11 5.445 0l1.104 1.85M83.868 149.188l-5.125-9.35M33.797 108.813l10.376-.172c3.222-1.573 1.042-2.307.02-2.875h-5.407c-3.44-.577-2.55-4.447 0-4.782h5.234c3.359-1.248 1.849-1.933 0-3.136h-5.314c-3.074-1.452-1.81-3.814 0-4.883h10.21v.905h-9.323c-2.504 1.594-1.662 2.488 0 3.209h5.321c2.442 1.323 4.067 2.759 0 4.98h-5.203c-1.657.88-3.32 1.762 0 2.763h5.613c1.615 1.068 4.111 1.728 0 5.444l-1.85 1.105M34.45 116.261l9.35-5.125M45.851 136.899l7.659-7.001c1.372-3.313-.747-2.42-1.889-2.167l-4.05 3.58c-2.96 1.847-4.856-1.641-3.168-3.582l3.921-3.466c1.69-3.16.105-2.673-2.077-2.35l-3.981 3.52c-3.265.948-3.883-1.658-3.234-3.658l7.65-6.763.598.678-6.984 6.175c-.82 2.853.402 2.964 2.125 2.404l3.986-3.525c2.706-.626 4.874-.626 3.299 3.73l-3.899 3.448c-.657 1.757-1.32 3.52 1.83 2.07l4.206-3.718c1.917-.27 4.225-1.428 3.606 4.079l-.654 2.053M51.273 142.047l3.61-10.033M105.148 138.84l-7-7.66c-3.314-1.372-2.42.747-2.168 1.89l3.581 4.05c1.847 2.96-1.642 4.856-3.582 3.167l-3.467-3.921c-3.16-1.69-2.673-.104-2.35 2.077l3.52 3.982c.948 3.264-1.658 3.883-3.658 3.234l-6.763-7.65.678-.599 6.175 6.985c2.853.82 2.965-.403 2.404-2.126l-3.524-3.986c-.626-2.706-.627-4.874 3.73-3.298l3.447 3.898c1.758.658 3.52 1.32 2.07-1.83l-3.718-4.206c-.269-1.917-1.428-4.225 4.08-3.606l2.052.655M110.296 133.417l-10.032-3.61" style="fill:none;stroke:#000;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="M76.42 149.84s-4.901-.164-7.308-.588a47.7 47.7 0 0 1-8.773-2.414c-1.62-.62-3.121-1.514-4.655-2.325-1.489-.788-4.411-2.466-4.411-2.466M83.868 149.188s3.921-.722 5.83-1.286c1.716-.507 3.41-1.116 5.03-1.88 1.736-.818 3.401-1.799 4.99-2.878 1.91-1.298 5.43-4.305 5.43-4.305M45.851 136.899s-2.476-2.51-3.55-3.902a38 38 0 0 1-3.176-4.897 49 49 0 0 1-3.028-6.6c-.638-1.728-1.513-5.314-1.513-5.314M33.797 108.813s-.227-4.448-.002-6.654c.2-1.964.684-3.894 1.199-5.8a47 47 0 0 1 1.89-5.637 44 44 0 0 1 2.406-4.898c.756-1.334 2.498-3.863 2.498-3.863M46.779 76.483s3.757-3.507 5.86-4.968c1.832-1.274 3.807-2.352 5.838-3.278 2.323-1.06 4.756-1.88 7.21-2.583 1.096-.314 3.342-.728 3.342-.728M76.477 64.274s6.11.39 9.107.978c2.34.46 4.66 1.095 6.873 1.986 2.34.943 4.537 2.222 6.696 3.526 1.08.652 3.12 2.142 3.12 2.142M107.725 77.971s4.5 5.336 6.23 8.345c1.464 2.545 2.554 5.308 3.452 8.103.575 1.79 1.224 5.508 1.224 5.508M119.283 107.375s-.422 6.802-1.213 10.1c-.716 2.984-1.857 5.87-3.168 8.644-.893 1.888-2.021 3.663-3.18 5.4-.44.659-1.426 1.898-1.426 1.898" style="fill:none;stroke:#000;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="m105.593 56.689 9.42-11.404" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#b);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-0.25573208,17.661371)"><tspan x="432.271" y="101.051">D1</tspan></text><path d="m111.56 71.673 15.98-11.828" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#c)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#d);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-5.2664742,18.715082)"><tspan x="503.914" y="158.613">D2</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#e);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-1.950068,13.937738)"><tspan x="309.139" y="78.934">D3</tspan></text><path d="m77.298 45.764 3.227-10.245" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#f);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-5.2069039,18.205316)"><tspan x="360.738" y="85.488">D4</tspan></text><path d="m81.425 45.889 8.031-4.717" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="M125.467 100.096h21.497M125.21 114.478h21.497" style="fill:none;stroke:#ccc;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="M146.526 100.441v14.113" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a);marker-end:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#g);display:inline" transform="matrix(0.26458333,0,0,0.26458333,2.1959281,-6.220953)"><tspan x="546.666" y="435.053">L1</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#h);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-40.483603,32.809727)"><tspan x="519.75" y="56.738">R5</tspan></text><path d="m84.737 57.083 12.11-9.768" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="m118.423 95.864 21.592-8.922" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#i);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-3.4188337,21.750439)"><tspan x="543.217" y="249.869">D6</tspan></text><path d="m132.611 169.523 8.205-6.535" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#j);display:inline" transform="matrix(0.26458333,0,0,0.26458333,9.3134117,5.8307942)"><tspan x="479.338" y="622.658">T1</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#k);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-1.950068,13.937738)"><tspan x="49.656" y="110.012">N1</tspan></text><path d="M16.84 98.99 14.7 44.39l54.253 3.002" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a);marker-end:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#l);display:inline" transform="matrix(0.26458333,0,0,0.26458333,4.840643,15.90576)"><tspan x="77.857" y="150.508">N2</tspan></text><path d="m39.44 91.706-9.003-35.26 27.024 15.462" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a);marker-end:url(#a)"/><path d="m45.688 137.053-18.306 18.36M51.102 142.471l-18.306 18.36" style="fill:none;stroke:#ccc;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="m32.829 160.564-5.183-5.183" style="fill:none;stroke:#00f;stroke-width:.264584px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a);marker-end:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#m);display:inline" transform="matrix(0.26458333,0,0,0.26458333,6.7948541,14.769141)"><tspan x="66.771" y="557.27">E2</tspan></text><path d="M60.542 134.552v-16.056M61.44 134.783v-16.056" style="fill:none;stroke:#ccc;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="M60.245 118.985h-5.448" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="M61.742 118.958h5.449" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#n)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#o);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-3.3145255,24.743213)"><tspan x="230.477" y="350.764">SE1</tspan></text><path d="M69.702 138.548v-14.315M72.567 138.723V124.41" style="fill:none;stroke:#ccc;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"/><path d="M69.723 125.08h-5.449" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#p)"/><path d="M72.807 125.053h5.449" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#q)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#r);display:inline" transform="matrix(0.26458333,0,0,0.26458333,6.6922722,30.837803)"><tspan x="230.477" y="350.764">SD1</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#s);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-3.3960461,9.3385641)"><tspan x="271.402" y="287.686">L2</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#t);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-0.75544428,6.010881)"><tspan x="310.68" y="304.566">SL1</tspan></text><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#u);display:inline" transform="matrix(0.26458333,0,0,0.26458333,3.6626295,-1.421082)"><tspan x="326.973" y="335.143">SL2</tspan></text><path d="m75.92 71.39-4.973 10.546" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="m80.479 72.911 2.87 10.145" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="m92.712 76.156 1.71 8.626" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#v);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-1.950068,13.937738)"><tspan x="385.047" y="579.231">R7</tspan></text><path d="m77.095 150.287 21.403 13.197" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><path d="m84.764 150.095 15.414 13.032" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#a)"/><text xml:space="preserve" style="font-size:14.6667px;line-height:1.25;font-family:sans-serif;white-space:pre;shape-inside:url(#w);display:inline" transform="matrix(0.26458333,0,0,0.26458333,-5.24499,17.10766)"><tspan x="472.504" y="509.869">orientation
2
+ </tspan><tspan x="472.504" y="528.203">[ccw, cw, alt]</tspan></text><path d="m100.66 131.425 21.796 17.443" style="fill:none;stroke:#00f;stroke-width:.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:url(#x)"/></g></svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "designix-uis",
3
- "version": "0.5.8",
3
+ "version": "0.5.10",
4
4
  "description": "mini-server for static content of designix-ui",
5
5
  "type": "module",
6
6
  "private": false,
@@ -41,6 +41,8 @@
41
41
  "copy": "shx cp -r ../designix-ui/build dist/public",
42
42
  "checkCopy": "ls -l dist/public/index.html",
43
43
  "ci": "run-s check build pretty lint test:unit:once clean_public copy checkCopy",
44
+ "run": "node dist/designix-uis.js",
45
+ "run-help": "node dist/designix-uis.js --help",
44
46
  "clean": "shx rm -fr node_modules build dist tmp"
45
47
  },
46
48
  "repository": {
@@ -1,108 +0,0 @@
1
- var Se=Object.defineProperty;var Le=(i,t,u)=>t in i?Se(i,t,{enumerable:!0,configurable:!0,writable:!0,value:u}):i[t]=u;var T=(i,t,u)=>(Le(i,typeof t!="symbol"?t+"":t,u),u);import{p as e,a as p,b as ut,c as xt,i as gt,d as $t,f as H,g as O,E as U,h as st,j as _t,k as ft,l as St,m as b,n as ot,t as Bt,r as lt,o as ct,q as I,s as dt,u as Rt,v as Nt,w as yt,S as vt,x as He}from"./index.Bs7kS4ug.js";var Pe=class{constructor(i,t,u,s,n){T(this,"base_center_x");T(this,"base_center_y");T(this,"base_radius");T(this,"initial_angle");T(this,"right_nleft");this.base_center_x=i,this.base_center_y=t,this.base_radius=u,this.initial_angle=s,this.right_nleft=n}angleSign(){return this.right_nleft?1:-1}lFromU(i){return this.base_radius*Math.sqrt(1+i**2)}wFromU(i){if(i<0)throw`err729: involute parameter au ${i} is negative`;if(Math.abs(i)>Math.PI/2)throw`err730: involute parameter au ${i} is larger than PI/2`;return this.angleSign()*(i-Math.atan(i))}w2FromU(i){return this.initial_angle+this.wFromU(i)}ptc(i){const t=this.lFromU(i),u=this.w2FromU(i),s=this.base_center_x+Math.cos(u)*t,n=this.base_center_y+Math.sin(u)*t;return[s,n]}ptcta(i){return this.initial_angle+this.angleSign()*i}uFromL(i){return Math.sqrt(i**2/this.base_radius**2-1)}uFromWslow(i){let u=Math.PI/3,s=u/2,n=this.wFromU(u),c=0;for(;Math.abs(n-i)>1e-4;)n<i?u+=s:u-=s,n=this.wFromU(u),s=s/2,c+=1;return console.log(`dbg072: uFromWslow itcnt ${c}`),u}laptc(i,t,u,s){if(Math.sign(t)*this.angleSign()<0)throw`err904: Invole.laptc angle-of-pressure ${t} not compatible with right_nleft ${this.right_nleft}`;const n=i+t,c=this.base_center_x+Math.cos(n)*this.base_radius,o=this.base_center_y+Math.sin(n)*this.base_radius,d=n-this.angleSign()*Math.PI/2,l=u*this.base_radius,g=c+Math.cos(d)*l,h=o+Math.sin(d)*l,f=this.lFromU(u)*s,r=u,a=Math.cos(r)*f,_=Math.sin(r)*f;return[g,h,a,_]}};function Ht(i,t,u,s,n){return new Pe(i,t,u,s,n)}var De=class{constructor(){T(this,"mod",1);T(this,"TN",23);T(this,"as",1);T(this,"cx",0);T(this,"cy",0);T(this,"brr",50);T(this,"blr",50);T(this,"ar",54);T(this,"pr",53);T(this,"dr",52);T(this,"br",51);T(this,"bRound",1);T(this,"adt",.5);T(this,"initAngle",0);T(this,"axisAngle",0);T(this,"involArcPairs",1);T(this,"skinThickness",0);T(this,"involuteR",Ht(0,0,50,0,!0));T(this,"involuteL",Ht(0,0,50,0,!1));T(this,"rud",0);T(this,"rup",0);T(this,"rua",0);T(this,"rwd",0);T(this,"rwp",0);T(this,"rwa",0);T(this,"lud",0);T(this,"lup",0);T(this,"lua",0);T(this,"lwd",0);T(this,"lwp",0);T(this,"lwa",0);T(this,"msg");T(this,"initStep",0);this.mod=1,this.msg="",this.initStep=0}incInitStep(i){if(this.initStep+1!==i)throw`err834: incInitStep initStep ${this.initStep} and target ${i} are not compatible`;this.initStep=i}checkInitStep(i,t){if(this.initStep<i)throw`err835: checkInitStep for ${t} initStep ${this.initStep} is too small compare to targetMin ${i}`}set1ModuleToothNumber(i,t){this.incInitStep(1),this.mod=i,this.TN=t,this.pr=this.mod*this.TN/2,this.as=2*Math.PI/this.TN}set2CenterPosition(i,t){this.incInitStep(2),this.cx=i,this.cy=t}set3CircleRadius(i,t,u,s){this.incInitStep(3),this.ar=this.pr+this.mod*i,this.dr=this.pr-this.mod*t,this.br=this.dr-this.mod*u,this.bRound=s}set4BaseCircles(i,t){this.incInitStep(4),this.brr=i,this.blr=t}set5AddendumThickness(i){this.incInitStep(5),this.adt=i/100}set6Angles(i,t){this.incInitStep(6),this.initAngle=i,this.axisAngle=t}set7InvoluteDetails(i,t){this.incInitStep(7),this.involArcPairs=i,this.skinThickness=t}getRefCircles(){return this.checkInitStep(4,"getRefCircles"),[b(this.cx,this.cy,this.ar,"Azure"),b(this.cx,this.cy,this.pr,"Azure"),b(this.cx,this.cy,this.dr,"Azure"),b(this.cx,this.cy,this.br,"Azure"),b(this.cx,this.cy,this.brr,"CornFlowerBlue"),b(this.cx,this.cy,this.blr,"Crimson")]}calcInvoluteAngles(){this.checkInitStep(4,"calcInvoluteAngles"),this.involuteR=Ht(this.cx,this.cy,this.brr,0,!0),this.dr>this.brr?this.rud=this.involuteR.uFromL(this.dr):this.rud=0,this.rup=this.involuteR.uFromL(this.pr),this.rua=this.involuteR.uFromL(this.ar),this.rwd=this.involuteR.wFromU(this.rud),this.rwp=this.involuteR.wFromU(this.rup),this.rwa=this.involuteR.wFromU(this.rua),this.involuteL=Ht(this.cx,this.cy,this.blr,0,!1),this.dr>this.blr?this.lud=this.involuteL.uFromL(this.dr):this.rud=0,this.lup=this.involuteL.uFromL(this.pr),this.lua=this.involuteL.uFromL(this.ar),this.lwd=this.involuteL.wFromU(this.lud),this.lwp=this.involuteL.wFromU(this.lup),this.lwa=this.involuteL.wFromU(this.lua)}checkProfileConditions(){const i=this.as*this.adt,t=this.rwa-this.rwp,u=Math.abs(this.lwa-this.lwp),s=i-t-u;if(s<0)throw`err554: No remaining Addendum reserve ${H(s)}
2
- `;const n=this.as*(1-this.adt),c=this.rwp-this.rwd,o=Math.abs(this.lwp-this.lwd),d=n-c-o;if(d<2*Math.atan2(this.bRound,this.br))throw`err555: No remaining Dedendum reserve ${H(d)} compare to bRound ${H(this.bRound)}
3
- `}getToothRef(){const i=6*this.involArcPairs,t=0;this.checkInitStep(7,"getProfile"),this.calcInvoluteAngles();const u=(this.rua-this.rud)/i,s=(this.lua-this.lud)/i,n=this.initAngle+t*this.as,c=Ht(this.cx,this.cy,this.brr,n-this.rwp,!0),[o,d]=c.ptc(this.rud+0*u),l=O(o,d,"Gold");for(let S=0;S<i;S++){const[f,r]=c.ptc(this.rud+(S+1)*u);l.addSegStrokeA(f,r)}const g=n+this.as*this.adt,h=Ht(this.cx,this.cy,this.blr,g-this.lwp,!1);for(let S=0;S<i+1;S++){const[f,r]=h.ptc(this.lud+(i-S)*s);l.addSegStrokeA(f,r)}return l.closeSegStroke(),l}getProfile(){this.checkInitStep(7,"getProfile"),this.calcInvoluteAngles(),this.checkProfileConditions();const i=this.rwd-this.rwp,t=this.lwd-this.lwp,u=this.dr>this.brr?this.dr:this.brr,s=this.dr>this.blr?this.dr:this.blr;if(this.bRound>u-this.br)throw`err409: getProfile bRound ${H(this.bRound)} too large for erdr ${H(u)} and br ${H(this.br)}`;if(this.bRound>s-this.br)throw`err408: getProfile bRound ${H(this.bRound)} too large for eldr ${H(s)} and br ${H(this.br)}`;const n=(this.rua-this.rud)/this.involArcPairs,c=(this.lua-this.lud)/this.involArcPairs,o=ot(this.cx,this.cy),d=o.translatePolar(this.initAngle+i,this.br),l=O(d.cx,d.cy);for(let g=0;g<this.TN;g++){const h=this.initAngle+g*this.as,S=o.translatePolar(h+i,this.br);l.addSegStrokeA(S.cx,S.cy).addCornerRounded(this.bRound);const f=Ht(this.cx,this.cy,this.brr,h-this.rwp,!0),[r,a]=f.ptc(this.rud),_=f.ptcta(this.rud),$=ot(r,a).translatePolar(_-Math.PI/2,this.skinThickness);l.addSegStrokeA($.cx,$.cy);for(let v=0;v<this.involArcPairs;v++){const M=this.rud+v*n,[R,B]=f.ptc(M+n),E=f.ptcta(M),m=f.ptcta(M+n)+Math.PI,y=ot(R,B).translatePolar(E-Math.PI/2,this.skinThickness);l.addPointA(y.cx,y.cy).addSeg2Arcs(E,m)}const C=h+this.as*this.adt,D=Ht(this.cx,this.cy,this.blr,C-this.lwp,!1),x=this.lud+this.involArcPairs*c,[w,N]=D.ptc(x),P=D.ptcta(x)+Math.PI,k=ot(w,N).translatePolar(P-Math.PI/2,this.skinThickness);l.addSegStrokeA(k.cx,k.cy);for(let v=0;v<this.involArcPairs;v++){const M=this.lud+(this.involArcPairs-v)*c,[R,B]=D.ptc(M-c),E=D.ptcta(M)+Math.PI,m=D.ptcta(M-c),y=ot(R,B).translatePolar(E-Math.PI/2,this.skinThickness);l.addPointA(y.cx,y.cy).addSeg2Arcs(E,m)}const A=o.translatePolar(C+t,this.br);l.addSegStrokeA(A.cx,A.cy).addCornerRounded(this.bRound)}return l.closeSegStroke(),l}getMsg(){return this.msg}};function jt(){return new De}function ve(i,t,u,s){i.checkInitStep(1,"helper.gw2center-1"),t.checkInitStep(1,"helper.gw2center-2");const n=i.pr+t.pr+s,c=i.cx+n*Math.cos(u),o=i.cy+n*Math.sin(u);return[c,o,n]}function xe(i,t,u,s,n,c,o,d,l){i.checkInitStep(3,"helper.baseCircles-1"),t.checkInitStep(3,"helper.baseCircles-2");let g=u,h=n,S=s,f=c;const r=d,a=l;return r===0&&(t.TN>i.TN?(g=i.dr,h=g*t.TN/i.TN):(h=t.dr,g=h*i.TN/t.TN)),a===0&&(t.TN>i.TN?(S=i.dr,f=S*t.TN/i.TN):(f=t.dr,S=f*i.TN/t.TN)),o===1&&(S=g,f=h),[g,S,h,f]}var $e=class{constructor(i,t,u,s,n,c){T(this,"gw1");T(this,"gw2");T(this,"initAngle1");T(this,"angleCenterCenter");T(this,"interAxis");T(this,"rightLeftCenter2");T(this,"msg");T(this,"apr");T(this,"apl");T(this,"lBDr",0);T(this,"lBDl",0);T(this,"laStartRr1",0);T(this,"laStartRr2",0);T(this,"laStartRl1",0);T(this,"laStartRl2",0);T(this,"aFODr1",0);T(this,"aFODr2",0);T(this,"aFODl1",0);T(this,"aFODl2",0);T(this,"lasr1",0);T(this,"lasr2",0);T(this,"lasl1",0);T(this,"lasl2",0);T(this,"firstToothUr1",0);T(this,"firstToothUl1",0);T(this,"ftdr1",0);T(this,"ftdl1",0);this.gw1=i,this.gw2=t,this.initAngle1=u,this.angleCenterCenter=s,this.interAxis=n,this.rightLeftCenter2=c,this.msg="",this.apr=0,this.apl=0}check1(){this.gw1.checkInitStep(4,"ActionLine.check1-1"),this.gw2.checkInitStep(4,"ActionLine.check1-2"),this.interAxis>this.gw1.ar+this.gw2.ar&&(this.msg+=`warn333: initAngle2 interAxis ${H(this.interAxis)} is too large compare to gw1.ar ${H(this.gw1.ar)} and gw2.ar ${H(this.gw2.ar)}
4
- `),dt(this.gw1.brr*this.gw2.TN-this.gw2.brr*this.gw1.TN)!==0&&(this.msg+=`warn407: right ratios differ N1/N2 = ${this.gw1.TN} / ${this.gw2.TN} = ${H(this.gw1.TN/this.gw2.TN)} and brr1/brr2 = ${H(this.gw1.brr)}/${H(this.gw2.brr)} = ${H(this.gw1.brr/this.gw2.brr)}
5
- `),dt(this.gw1.blr*this.gw2.TN-this.gw2.blr*this.gw1.TN)!==0&&(this.msg+=`warn408: left ratios differ N1/N2 = ${this.gw1.TN} / ${this.gw2.TN} = ${H(this.gw1.TN/this.gw2.TN)} and blr1/blr2 = ${H(this.gw1.blr)}/${H(this.gw2.blr)} = ${H(this.gw1.blr/this.gw2.blr)}
6
- `)}check2(){this.gw1.checkInitStep(5,"ActionLine.check2-1"),this.gw2.checkInitStep(5,"ActionLine.check2-2"),dt(this.gw1.adt+this.gw2.adt-1)>0&&(this.msg+=`warn281: addendum thickness too large: adt1 ${H(this.gw1.adt)} adt2 ${H(this.gw2.adt)}
7
- `);const i=this.gw1.ar-this.gw1.pr,t=this.gw1.pr-this.gw1.dr,u=this.gw2.ar-this.gw2.pr,s=this.gw2.pr-this.gw2.dr;dt(s-i)<0&&(this.msg+=`warn282: addendum-1 ${H(i)} larger than dedendum-2 ${H(s)}
8
- `),dt(t-u)<0&&(this.msg+=`warn283: addendum-2 ${H(u)} larger than dedendum-1 ${H(t)}
9
- `)}calcActionLine(){this.gw1.checkInitStep(4,"ActionLine.calcActionLine-1"),this.gw2.checkInitStep(4,"ActionLine.calcActionLine-2"),this.gw1.calcInvoluteAngles(),this.gw2.calcInvoluteAngles();const i=this.interAxis*this.gw1.brr/(this.gw1.brr+this.gw2.brr),t=this.interAxis*this.gw1.blr/(this.gw1.blr+this.gw2.blr),u=this.interAxis-i,s=this.interAxis-t;this.apr=Math.acos((this.gw1.brr+this.gw2.brr)/this.interAxis),this.apl=Math.acos((this.gw1.blr+this.gw2.blr)/this.interAxis),this.msg+=`Pressure angular: right: ${H(lt(this.apr))} left: ${H(lt(this.apl))} degree
10
- `,this.lBDr=this.interAxis*Math.sin(this.apr),this.lBDl=this.interAxis*Math.sin(this.apl),this.msg+=`Line of Action Maximum length: right: ${H(this.lBDr)} left: ${H(this.lBDl)} mm
11
- `;const n=Math.PI/2+this.apr,c=Rt(this.gw1.ar,i,n);this.aFODr1=Math.PI-n-c;const o=this.gw1.rua-this.apr-this.gw1.rwa;if(dt(this.aFODr1-o)!==0)throw`dbg378: aFODr1 ${this.aFODr1} and aFODr1Alt ${o} differ`;const d=Nt(i,this.gw1.ar,this.aFODr1),l=n,g=Rt(this.gw2.ar,u,l);this.aFODr2=Math.PI-l-g;const h=this.gw2.rua-this.apr-this.gw2.rwa;if(dt(this.aFODr2-h)!==0)throw`dbg379: aFODr2 ${this.aFODr2} and aFODr2Alt ${h} differ`;const S=Nt(u,this.gw2.ar,this.aFODr2),f=d+S,r=f/this.gw1.brr,a=f/this.gw2.brr,_=this.gw1.rua-r,$=this.gw2.rua-a;this.laStartRr1=this.gw1.involuteR.lFromU(_),this.laStartRr2=this.gw2.involuteR.lFromU($);const C=Math.PI/2+this.apl,D=Rt(this.gw1.ar,t,C);this.aFODl1=Math.PI-C-D;const x=this.gw1.lua-this.apl+this.gw1.lwa;if(dt(this.aFODl1-x)!==0)throw`dbg388: aFODl1 ${this.aFODl1} and aFODl1Alt ${x} differ`;const w=Nt(t,this.gw1.ar,this.aFODl1),N=n,P=Rt(this.gw2.ar,s,N);this.aFODl2=Math.PI-N-P;const k=this.gw2.lua-this.apl+this.gw2.lwa;if(dt(this.aFODl2-k)!==0)throw`dbg389: aFODl2 ${this.aFODl2} and aFODl2Alt ${k} differ`;const A=Nt(s,this.gw2.ar,this.aFODl2),v=w+A,M=v/this.gw1.blr,R=v/this.gw2.blr,B=this.gw1.lua-M,E=this.gw2.lua-R;this.laStartRl1=this.gw1.involuteL.lFromU(B),this.laStartRl2=this.gw2.involuteL.lFromU(E),this.msg+=`Line of Action Effective length: right: ${H(f)} left: ${H(v)} mm
12
- `,this.msg+=`Line of Action Effective rotation angle: right-1: ${H(lt(r))} right-2: ${H(lt(a))} left-1: ${H(lt(M))} left-2: ${H(lt(R))} degree
13
- `,this.msg+=`Line of Action Effective height: right-1: ${H(this.gw1.ar-this.laStartRr1)} right-2: ${H(this.gw2.ar-this.laStartRr2)} left-1: ${H(this.gw1.ar-this.laStartRl1)} left-2: ${H(this.gw2.ar-this.laStartRl2)} mm
14
- `,this.lasr1=2*Math.PI/this.gw1.TN*this.gw1.brr,this.lasr2=2*Math.PI/this.gw2.TN*this.gw2.brr,this.msg+=`Line of Action right: step length: 1: ${H(this.lasr1)} 2: ${H(this.lasr2)} mm
15
- `,this.msg+=`Line of Action right: nb of contact point: 1: ${H(f/this.lasr1)} 2: ${H(f/this.lasr2)}
16
- `,this.lasl1=2*Math.PI/this.gw1.TN*this.gw1.blr,this.lasl2=2*Math.PI/this.gw2.TN*this.gw2.blr,this.msg+=`Line of Action left: step length: 1: ${H(this.lasl1)} 2: ${H(this.lasl2)} mm
17
- `,this.msg+=`Line of Action left: nb of contact point: 1: ${H(v/this.lasl1)} 2: ${H(v/this.lasl2)}
18
- `}calcContactPoint1(){for(this.gw1.checkInitStep(5,"ActionLine.calcContactPoint1"),this.firstToothUr1=yt(this.apr-(this.initAngle1-this.angleCenterCenter)+this.gw1.rwp);dt(this.firstToothUr1-this.gw1.as)>=0;)this.firstToothUr1=dt(this.firstToothUr1-this.gw1.as);for(this.firstToothUl1=yt(this.apl+(this.initAngle1-this.angleCenterCenter)+this.gw1.as*this.gw1.adt-this.gw1.lwp);dt(this.firstToothUl1-this.gw1.as)>=0;)this.firstToothUl1=dt(this.firstToothUl1-this.gw1.as);this.ftdr1=this.gw1.brr*this.firstToothUr1,this.ftdl1=this.gw1.blr*this.firstToothUl1}prepare(){this.check1(),this.check2(),this.calcActionLine(),this.calcContactPoint1()}oneContactSpeed(i,t,u,s,n,c,o,d,l,g){const S=Math.floor(t/(2*u)),f=(s+S*u)/n,r=i?1:-1,[a,_,$,C]=c.laptc(o,r*d,f,.4);this.msg+=`speed ${l}: vx ${H($)} vy: ${H(C)} m/s
19
- `;const D=ot(a,_),x=o+r*d,w=O(a,_,g),N=D.translatePolar(x,-C);w.addSegStrokeA(N.cx,N.cy);const P=N.translatePolar(x-r*Math.PI/2,$);return w.addSegStrokeA(P.cx,P.cy),w.closeSegStroke(),w}getContactSpeed(){const i=this.oneContactSpeed(!0,this.lBDr,this.lasr1,this.ftdr1,this.gw1.brr,this.gw1.involuteR,this.angleCenterCenter,this.apr,"R1","Black"),t=this.oneContactSpeed(!1,this.lBDl,this.lasl1,this.ftdl1,this.gw1.blr,this.gw1.involuteL,this.angleCenterCenter,this.apl,"L1","Black"),u=[];return u.push(i),u.push(t),u}getContours(){const i=[];i.push(b(this.gw1.cx,this.gw1.cy,this.laStartRr1,"SkyBlue")),i.push(b(this.gw1.cx,this.gw1.cy,this.laStartRl1,"SlateBlue")),i.push(b(this.gw2.cx,this.gw2.cy,this.laStartRr2,"SkyBlue")),i.push(b(this.gw2.cx,this.gw2.cy,this.laStartRl2,"SlateBlue"));const t=ot(this.gw1.cx,this.gw1.cy),u=ot(this.gw2.cx,this.gw2.cy),s=t.translatePolar(this.angleCenterCenter+this.apr,this.gw1.brr),n=u.translatePolar(this.angleCenterCenter+Math.PI+this.apr,this.gw2.brr),c=O(s.cx,s.cy,"YellowGreen");c.addSegStrokeA(n.cx,n.cy),c.closeSegStroke(),i.push(c);const o=t.translatePolar(this.angleCenterCenter-this.aFODr1,this.gw1.ar),d=u.translatePolar(this.angleCenterCenter+Math.PI-this.aFODr2,this.gw2.ar),l=O(o.cx,o.cy,"Yellow");l.addSegStrokeA(d.cx,d.cy),l.closeSegStroke(),i.push(l);const g=t.translatePolar(this.angleCenterCenter-this.apl,this.gw1.blr),h=u.translatePolar(this.angleCenterCenter+Math.PI-this.apl,this.gw2.blr),S=O(g.cx,g.cy,"YellowGreen");S.addSegStrokeA(h.cx,h.cy),S.closeSegStroke(),i.push(S);const f=t.translatePolar(this.angleCenterCenter+this.aFODl1,this.gw1.ar),r=u.translatePolar(this.angleCenterCenter+Math.PI+this.aFODl2,this.gw2.ar),a=O(f.cx,f.cy,"Yellow");return a.addSegStrokeA(r.cx,r.cy),a.closeSegStroke(),i.push(a),i.push(...this.getContactSpeed()),i}getContactPoint(){const i=[],t=ot(this.gw1.cx,this.gw1.cy),u=t.translatePolar(this.angleCenterCenter+this.apr,this.gw1.brr),s=t.translatePolar(this.angleCenterCenter-this.apl,this.gw1.blr);i.push(ot(u.cx,u.cy,vt.eBigSquare)),i.push(ot(s.cx,s.cy,vt.eBigSquare));const n=this.angleCenterCenter+this.apr-Math.PI/2,c=this.angleCenterCenter-this.apl+Math.PI/2,o=u.translatePolar(n,this.ftdr1),d=s.translatePolar(c,this.ftdl1);i.push(ot(o.cx,o.cy,vt.eBigSquare)),i.push(ot(d.cx,d.cy,vt.eBigSquare));let l=this.ftdr1;for(;l+this.lasr1<this.lBDr;){l+=this.lasr1;const h=u.translatePolar(n,l);i.push(ot(h.cx,h.cy,vt.eBigSquare))}let g=this.ftdl1;for(;g+this.lasl1<this.lBDl;){g+=this.lasl1;const h=s.translatePolar(c,g);i.push(ot(h.cx,h.cy,vt.eBigSquare))}return i}getMsg(){return this.msg}getInitAngle2(){let i=this.lBDr-this.ftdr1;for(;dt(i-this.lasr2)>=0;)i=dt(i-this.lasr2);let t=this.lBDl-this.ftdl1;for(;dt(t-this.lasl2)>=0;)t=dt(t-this.lasl2);const u=i/this.gw2.brr,s=t/this.gw2.blr,n=this.angleCenterCenter+Math.PI+this.apr-u+this.gw2.rwp,o=this.angleCenterCenter+Math.PI-this.apl+s+this.gw2.lwp-this.gw2.as*this.gw2.adt;let d=2*Math.PI+yt(o);for(;dt(d-this.gw2.as-n)>=0;)d=dt(d-this.gw2.as);const l=d-n,g=l*this.gw2.brr/this.gw1.brr,h=l*this.gw2.brr,S=l*this.gw2.blr;this.msg+=`slack angle: 1: ${H(lt(g))} 2: ${H(lt(l))} degree
20
- `,this.msg+=`slack on action line: right-2: ${H(h)} left-2: ${H(S)} mm
21
- `;let f=0;if(this.rightLeftCenter2===0)f=n;else if(this.rightLeftCenter2===1)f=o;else if(this.rightLeftCenter2===2)f=n+l/2;else throw`err221: initAngle2 rightLeftCenter2 ${this.rightLeftCenter2} has an unkown value`;return He(f)}};function we(i,t,u,s,n,c){return new $e(i,t,u,s,n,c)}function Me(i,t,u,s,n,c,o,d,l){let g=b(i,t,u);if(s>0){if(n>2*u)throw`err383: axisTorque ribWidth ${H(n)} larger than 2x axisRadius ${H(u)}`;const h=Math.asin(n/(2*u)),S=2*Math.PI/s;if(S-2.5*h<0)throw`err384: axisTorque ribWidth ${H(n)} or ribNb ${s} are too large`;if(o>n/2)throw`err385: axisTorque ribRound1 ${H(o)} too large compare to ribWidth ${H(n)}`;if(o+d>c)throw`err386: axisTorque ribRound12 ${H(o)} ${H(d)} too large compare to ribHeight ${H(n)}`;const f=S-2*h>Math.PI,r=ot(i,t),_=r.translatePolar(l,u+c).translatePolar(l+Math.PI/2,n/2);g=O(_.cx,_.cy);for(let $=0;$<s;$++){const C=l+$*S,D=C+S,x=r.translatePolar(C+h,u),w=r.translatePolar(D-h,u),P=r.translatePolar(C,u+c).translatePolar(C+Math.PI/2,n/2),A=r.translatePolar(D,u+c).translatePolar(D-Math.PI/2,n/2);g.addSegStrokeA(P.cx,P.cy).addCornerRounded(o),g.addSegStrokeA(x.cx,x.cy).addCornerRounded(d),g.addPointA(w.cx,w.cy).addSegArc(u,f,!0).addCornerRounded(d),g.addSegStrokeA(A.cx,A.cy).addCornerRounded(o)}g.closeSegStroke()}return g}function be(i,t,u,s,n,c,o,d){const l=2*Math.PI/n,g=Math.asin(c/(2*s)),h=Math.asin(c/(2*u));if(c>2*s)throw`err905: hollowStraight spokeWidth ${H(c)} too large for hollowInt ${H(s)}`;if(u-s<2.1*o)throw`err906: hollowStraight hollowExt ${H(u)}, hollowInt ${H(s)} and spokeRound ${H(o)} do not fit`;if(l-2*h<2.5*Math.asin(o/u))throw`err907: hollowStraight spokeNb ${n}, spokeWidth ${H(c)} or spokeRound ${H(o)} are too large`;const S=c/(2*Math.sin(l/2)),f=l-2*g<2.1*Math.asin(o/s),r=l-2*h>Math.PI,a=ot(i,t),_=[];for(let $=0;$<n;$++){const C=d+$*l,D=C+l,x=C+l/2,w=a.translatePolar(C+h,u),N=a.translatePolar(D-h,u),P=a.translatePolar(D-g,s),k=a.translatePolar(C+g,s),A=a.translatePolar(x,S),v=O(w.cx,w.cy);v.addCornerRounded(o),v.addPointA(N.cx,N.cy).addSegArc(u,r,!0).addCornerRounded(o),f?v.addSegStrokeA(A.cx,A.cy).addCornerRounded(o):(v.addSegStrokeA(P.cx,P.cy).addCornerRounded(o),v.addPointA(k.cx,k.cy).addSegArc(s,r,!1).addCornerRounded(o)),v.closeSegStroke(),_.push(v)}return _}function Zt(i,t,u,s,n,c,o,d,l,g){const h=g?1:-1,S=i/2,f=S+t,r=f+u,a=O(0,-r);return a.addSegStrokeA(h*s,-r).addCornerRounded(o).addSegStrokeA(h*s,-f).addCornerRounded(d).addSegStrokeA(h*n,-f).addSegStrokeA(h*c,-S).addCornerRounded(l).addSegStrokeA(h*c,S).addCornerRounded(l).addSegStrokeA(h*n,f).addSegStrokeA(h*s,f).addCornerRounded(d).addSegStrokeA(h*s,r).addCornerRounded(o).addSegStrokeA(0,r).closeSegStroke(),a}var Jt={partName:"gear_wheel_wheel",params:[e("module","mm",10,.1,100,.1),e("N1","scalar",23,3,1e3,1),e("N2","scalar",19,3,1e3,1),e("angleCenterCenter","degree",0,-180,180,1),e("addInterAxis","mm",0,0,100,.05),e("c1x","mm",0,-200,200,1),e("c1y","mm",0,-200,200,1),p("Tooth Profile"),e("ah1","scalar",1,.1,2,.05),e("dh1","scalar",1,.1,2,.05),e("bh1","scalar",.25,.1,2,.05),e("bRound1","mm",2,0,50,.1),e("ah2","scalar",1,.1,2,.05),e("dh2","scalar",1,.1,2,.05),e("bh2","scalar",.25,.1,2,.05),e("bRound2","mm",2,0,50,.1),e("at1","%",50,10,90,.5),e("at2","%",50,10,90,.5),ut("involSym",!0),xt("involROpt",["Optimum","Base-1","Base-2","PressureAngle","FreeBase-12"]),xt("involLOpt",["Optimum","Base-1","Base-2","PressureAngle","FreeBase-12"]),e("brr1","mm",50,10,2e3,.05),e("brr2","mm",50,10,2e3,.05),e("blr1","mm",50,10,2e3,.05),e("blr2","mm",50,10,2e3,.05),e("involArcPairs1","scalar",2,1,40,1),e("involArcPairs2","scalar",2,1,40,1),e("skinThickness1","mm",0,-3,3,.01),e("skinThickness2","mm",0,-3,3,.01),e("initAngle1","degree",0,-180,180,1),xt("gw2Position",["right","left","center"]),p("Inner"),ut("centralAxis",!0),e("axisRadius","mm",10,.1,200,.1),e("ribNb","scalar",5,0,32,1),e("ribWidth","mm",8,1,100,.1),e("ribHeight","mm",8,1,100,.1),e("ribRound1","mm",2,0,20,.1),e("ribRound2","mm",2,0,20,.1),ut("hollow",!0),e("materialHeightExt","mm",20,1,200,.5),e("materialHeightInt","mm",15,1,200,.5),e("spokeNb","scalar",5,1,18,1),e("spokeWidth","mm",15,1,200,.1),e("spokeRound","mm",10,0,20,.1),p("Axis"),ut("centralAxis",!0),ut("wheelAxis",!0),e("wheelHeight","mm",40,.1,400,.1),e("wheelMidExtra","mm",6,0,10,.1),e("wheelAxisLength","mm",40,0,400,.1),e("wheelAxisRadius","mm",20,0,200,.1),e("wheelMidRadius","mm",60,0,200,.1),e("wheelRadiusExtra","mm",1,0,20,.1),e("wheelAxisExtRound","mm",4,0,20,.1),e("wheelAxisIntRound","mm",0,0,20,.1),e("wheelExtraRound","mm",4,0,20,.1)],paramSvg:{module:"default_param_blank.svg",N1:"default_param_blank.svg",N2:"default_param_blank.svg",angleCenterCenter:"default_param_blank.svg",addInterAxis:"default_param_blank.svg",c1x:"default_param_blank.svg",c1y:"default_param_blank.svg",ah1:"default_param_blank.svg",dh1:"default_param_blank.svg",bh1:"default_param_blank.svg",bRound1:"default_param_blank.svg",ah2:"default_param_blank.svg",dh2:"default_param_blank.svg",bh2:"default_param_blank.svg",bRound2:"default_param_blank.svg",at1:"default_param_blank.svg",at2:"default_param_blank.svg",involSym:"default_param_blank.svg",involROpt:"default_param_blank.svg",involLOpt:"default_param_blank.svg",brr1:"default_param_blank.svg",brr2:"default_param_blank.svg",blr1:"default_param_blank.svg",blr2:"default_param_blank.svg",involArcPairs1:"default_param_blank.svg",skinThickness1:"default_param_blank.svg",involArcPairs2:"default_param_blank.svg",skinThickness2:"default_param_blank.svg",initAngle1:"default_param_blank.svg",gw2Position:"default_param_blank.svg",centralAxis:"default_param_blank.svg",axisRadius:"default_param_blank.svg",ribNb:"default_param_blank.svg",ribWidth:"default_param_blank.svg",ribHeight:"default_param_blank.svg",ribRound1:"default_param_blank.svg",ribRound2:"default_param_blank.svg",hollow:"default_param_blank.svg",materialHeightExt:"default_param_blank.svg",materialHeightInt:"default_param_blank.svg",spokeNb:"default_param_blank.svg",spokeWidth:"default_param_blank.svg",spokeRound:"default_param_blank.svg",wheelAxis:"default_param_blank.svg",wheelHeight:"default_param_blank.svg",wheelMidExtra:"default_param_blank.svg",wheelAxisLength:"default_param_blank.svg",wheelAxisRadius:"default_param_blank.svg",wheelMidRadius:"default_param_blank.svg",wheelRadiusExtra:"default_param_blank.svg",wheelAxisExtRound:"default_param_blank.svg",wheelAxisIntRound:"default_param_blank.svg",wheelExtraRound:"default_param_blank.svg"},sim:{tMax:100,tStep:.5,tUpdate:500}};function ke(i,t,u=""){const s=gt(Jt.partName+u),n=I(),c=I();s.logstr+=`${s.partName} simTime: ${i}
22
- `;try{const o=jt(),d=jt();o.set1ModuleToothNumber(t.module,t.N1),d.set1ModuleToothNumber(t.module,t.N2),o.set2CenterPosition(t.c1x,t.c1y);const l=$t(t.angleCenterCenter),[g,h,S]=ve(o,d,l,t.addInterAxis);d.set2CenterPosition(g,h),o.set3CircleRadius(t.ah1,t.dh1,t.bh1,t.bRound1),d.set3CircleRadius(t.ah2,t.dh2,t.bh2,t.bRound2);const[f,r,a,_]=xe(o,d,t.brr1,t.blr1,t.brr2,t.blr2,t.involSym,t.involROpt,t.involROpt);o.set4BaseCircles(f,r),d.set4BaseCircles(a,_),o.set5AddendumThickness(t.at1),d.set5AddendumThickness(t.at2);const $=$t(t.initAngle1)+i*3*o.as/100;o.set6Angles($,l);const C=we(o,d,$,l,S,t.gw2Position);C.prepare();for(const k of C.getContours())n.addDynamics(k);n.addPoints(C.getContactPoint()),d.set6Angles(C.getInitAngle2(),l+Math.PI),s.logstr+=C.getMsg(),o.set7InvoluteDetails(t.involArcPairs1,t.skinThickness1),d.set7InvoluteDetails(t.involArcPairs2,t.skinThickness2);for(const k of o.getRefCircles())n.addDynamics(k);for(const k of d.getRefCircles())n.addDynamics(k);n.addDynamics(o.getToothRef()),n.addDynamics(d.getToothRef());const D=o.getProfile();if(s.logstr+=o.getMsg(),s.logstr+=D.check(),n.addMain(D),t.centralAxis===1){const k=Me(o.cx,o.cy,t.axisRadius,t.ribNb,t.ribWidth,t.ribHeight,t.ribRound1,t.ribRound2,$);s.logstr+=k.check(),n.addMain(k)}if(t.hollow===1){const k=o.br,A=t.axisRadius+t.ribHeight,v=k-t.materialHeightExt,M=A+t.materialHeightInt;if(M>v)throw`err902: hollowMaterialInt ${H(M)} bigger than hollowMaterialExt ${H(v)}`;const R=be(o.cx,o.cy,v,M,t.spokeNb,t.spokeWidth,t.spokeRound,$);for(const B of R)s.logstr+=B.check(),n.addMain(B)}const x=d.getProfile();s.logstr+=x.check(),n.addSecond(x);const w=o.ar+t.wheelRadiusExtra;if(t.wheelAxis===1){const k=Zt(t.wheelHeight,t.wheelMidExtra,t.wheelAxisLength,t.wheelAxisRadius,t.wheelMidRadius,w,t.wheelAxisExtRound,t.wheelAxisIntRound,t.wheelExtraRound,!0),A=Zt(t.wheelHeight,t.wheelMidExtra,t.wheelAxisLength,t.wheelAxisRadius,t.wheelMidRadius,w,t.wheelAxisExtRound,t.wheelAxisIntRound,t.wheelExtraRound,!1);c.addMain(k),c.addSecond(A)}else{const k=O(0,-t.wheelHeight/2).addSegStrokeR(0,t.wheelHeight).addSegStrokeR(w,0).addSegStrokeR(0,-t.wheelHeight).closeSegStroke(),A=O(0,-t.wheelHeight/2).addSegStrokeR(0,t.wheelHeight).addSegStrokeR(-w,0).addSegStrokeR(0,-t.wheelHeight).closeSegStroke();c.addMain(k),c.addSecond(A)}s.fig={teethProfile:n,axisProfile:c};const N=s.partName,P=t.wheelHeight/2+t.wheelMidExtra+t.wheelAxisLength+10;s.vol={extrudes:[{outName:`subpax_${N}_teethProfile`,face:`${N}_teethProfile`,extrudeMethod:U.eLinearOrtho,length:2*P,rotate:[0,0,0],translate:[0,0,-P]},{outName:`subpax_${N}_axisProfile`,face:`${N}_axisProfile`,extrudeMethod:U.eRotate,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${N}`,boolMethod:st.eIntersection,inList:[`subpax_${N}_teethProfile`,`subpax_${N}_axisProfile`]}]},s.logstr+=`gear_wheel_wheel drawn successfully!
23
- `,s.calcErr=!1}catch(o){s.logstr+=o,console.log(o)}return s}var Tt={pTitle:"Gearwheel-gearwheel",pDescription:"Gear-system with two wheels",pDef:Jt,pGeom:ke},Qt={partName:"simplified_gear_wheel",params:[e("module","mm",10,.1,100,.1),e("N1","scalar",23,3,1e3,1),e("c1x","mm",0,-200,200,1),e("c1y","mm",0,-200,200,1),ut("centralAxis",!0),e("axisRadius","mm",10,.1,200,.1),e("ribNb","scalar",5,0,32,1),e("ribWidth","mm",8,1,100,.1),e("ribHeight","mm",8,1,100,.1),e("ribRound1","mm",2,0,20,.1),e("ribRound2","mm",2,0,20,.1),ut("hollow",!0),e("materialHeightExt","mm",20,1,200,.5),e("materialHeightInt","mm",15,1,200,.5),e("spokeNb","scalar",5,1,18,1),e("spokeWidth","mm",15,1,200,.1),e("spokeRound","mm",10,0,20,.1),ut("wheelAxis",!0),e("wheelHeight","mm",40,.1,400,.1),e("wheelMidExtra","mm",6,0,10,.1),e("wheelAxisLength","mm",40,0,400,.1),e("wheelAxisRadius","mm",20,0,200,.1),e("wheelMidRadius","mm",60,0,200,.1),e("wheelRadiusExtra","mm",1,0,20,.1),e("wheelAxisExtRound","mm",4,0,20,.1),e("wheelAxisIntRound","mm",0,0,20,.1),e("wheelExtraRound","mm",4,0,20,.1)],paramSvg:{module:"default_param_blank.svg",N1:"default_param_blank.svg",c1x:"default_param_blank.svg",c1y:"default_param_blank.svg",centralAxis:"default_param_blank.svg",axisRadius:"default_param_blank.svg",ribNb:"default_param_blank.svg",ribWidth:"default_param_blank.svg",ribHeight:"default_param_blank.svg",ribRound1:"default_param_blank.svg",ribRound2:"default_param_blank.svg",hollow:"default_param_blank.svg",materialHeightExt:"default_param_blank.svg",materialHeightInt:"default_param_blank.svg",spokeNb:"default_param_blank.svg",spokeWidth:"default_param_blank.svg",spokeRound:"default_param_blank.svg",wheelAxis:"default_param_blank.svg",wheelHeight:"default_param_blank.svg",wheelMidExtra:"default_param_blank.svg",wheelAxisLength:"default_param_blank.svg",wheelAxisRadius:"default_param_blank.svg",wheelMidRadius:"default_param_blank.svg",wheelRadiusExtra:"default_param_blank.svg",wheelAxisExtRound:"default_param_blank.svg",wheelAxisIntRound:"default_param_blank.svg",wheelExtraRound:"default_param_blank.svg"},sim:{tMax:100,tStep:.5,tUpdate:500}};function Ee(i,t,u=""){const s=gt(Qt.partName+u),n=I(),c=I();s.logstr+=`${s.partName} simTime: ${i}
24
- `;try{const o=_t(Tt.pDef,"_ref1");o.setVal("module",t.module),o.setVal("N1",t.N1),o.setVal("c1x",t.c1x),o.setVal("c1y",t.c1y),o.setVal("centralAxis",t.centralAxis),o.setVal("axisRadius",t.axisRadius),o.setVal("ribNb",t.ribNb),o.setVal("ribWidth",t.ribWidth),o.setVal("ribHeight",t.ribHeight),o.setVal("ribRound1",t.ribRound1),o.setVal("ribRound2",t.ribRound2),o.setVal("hollow",t.hollow),o.setVal("materialHeightExt",t.materialHeightExt),o.setVal("materialHeightInt",t.materialHeightInt),o.setVal("spokeNb",t.spokeNb),o.setVal("spokeWidth",t.spokeWidth),o.setVal("spokeRound",t.spokeRound),o.setVal("wheelAxis",t.wheelAxis),o.setVal("wheelHeight",t.wheelHeight),o.setVal("wheelMidExtra",t.wheelMidExtra),o.setVal("wheelAxisLength",t.wheelAxisLength),o.setVal("wheelAxisRadius",t.wheelAxisRadius),o.setVal("wheelMidRadius",t.wheelMidRadius),o.setVal("wheelRadiusExtra",t.wheelRadiusExtra),o.setVal("wheelAxisExtRound",t.wheelAxisExtRound),o.setVal("wheelAxisIntRound",t.wheelAxisIntRound),o.setVal("wheelExtraRound",t.wheelExtraRound);const d=Tt.pGeom(i,o.getParamVal(),o.getSuffix());ft(d),s.logstr+=St(d.logstr,o.getPartNameSuffix()),n.mergeFigure(d.fig.teethProfile),c.mergeFigure(d.fig.axisProfile),s.fig={teethProfile:n,axisProfile:c};const l=s.partName;s.vol={inherits:[{outName:`inpax_${l}_gearWW`,subdesign:"pax_gear_wheel_wheel_ref1",subgeom:d,rotate:[0,0,0],translate:[0,0,0]}],extrudes:[],volumes:[{outName:`pax_${l}`,boolMethod:st.eIdentity,inList:[`inpax_${l}_gearWW`]}]};const g={partName:o.getPartName(),dparam:o.getDesignParamList(),orientation:[0,0,0],position:[0,0,0]};s.sub={gear_wheel_wheel_1:g},s.logstr+=`simplified_gear_wheel drawn successfully!
25
- `,s.calcErr=!1}catch(o){s.logstr+=o,console.log(o)}return s}var Ae={pTitle:"Simplified gearwheel",pDescription:"One simplified gearwheel without details on teeth-profile",pDef:Qt,pGeom:Ee};function Re(i){let t="";const u=i.PHD1/2,s=i.PHD5/2,n=2*Math.asin(i.PHR4/u),c=2*Math.asin(i.PHL2/(2*s)),o=2*Math.PI/i.PHN1-c,d=i.PHL2/2,l=Math.sqrt(s**2-d**2)-u,g=Math.sqrt(d**2+l**2),h=Math.acos(l/g),S=Math.acos(i.PHR4/g),f=Math.PI-h-S;if(s<u+i.PHR4)throw`err211: PHD5 ${i.PHD5} too small compare to PHD1 ${i.PHD1} or PHR4 ${i.PHR4}`;if(o<c)throw`err212: PHL2 ${i.PHL2} too large compare to PHN1 ${i.PHN1}`;if(i.PHD3>2*i.PHR4)throw`err213: PHD3 ${i.PHD3} too large compare to PHR4 ${i.PHR4}`;f>Math.PI/2-n&&(t+=`warn345: PHL2 is quiet small ${H(i.PHL2)} mm
26
- `),t+=`petal angle: ${H(lt(c))} degree
27
- `,t+=`hollow angle: ${H(lt(o))} degree
28
- `;const r=ot(0,0),_=ot(s,0).rotate(r,-c/2),$=ot(u,0),C=ot(u-i.PHR4,0),D=C.rotate($,f),x=C.rotate($,-f),w=O(_.cx,_.cy).addCornerRounded(i.PHR6).addSegStrokeA(D.cx,D.cy).addPointA(u-i.PHR4,0).addPointA(x.cx,x.cy).addSegArc2().addSegStrokeAP(c/2,s).addCornerRounded(i.PHR6).addPointAP(c/2+o/2,s).addPointAP(c/2+o,s).addSegArc2(),N=O(_.cx,_.cy),P=[...Array(i.PHN1).keys()].map(k=>k*(c+o));for(const k of P)N.addPartial(w.rotate(0,0,k));return[t,N,P]}function te(i){const t="",u=i.D1/2,s=i.D2/2,n=i.D4/2,c=2*Math.PI/i.N1,o=i.L1/2,d=Math.sqrt(s**2-o**2),l=Math.asin(o/s),g=u-d,h=Math.atan2(o,g),S=Math.sqrt(o**2+g**2),f=Math.acos(n/S),r=h+f,a=(c-2*l)/2;if(a<0)throw`err464: N1 ${i.N1} is too large compare to D2 ${i.D2}, L1 ${i.L1}`;if(u<s)throw`err465: D2 ${i.D2} is too large compare to D1 ${i.D1}`;const _=O(d,-o),$=ot(0,0),C=ot(s,0),D=ot(u,0),w=ot(u-n,0).rotate(D,r),N=C.rotate($,l+a),P=C.rotate($,c-l),k=O(d,-o).addCornerRounded(i.R5).addSegStrokeA(w.cx,w.cy).addPointA(u+n,0).addPointA(w.cx,-w.cy).addSegArc2().addSegStrokeA(d,o).addCornerRounded(i.R5).addPointA(N.cx,N.cy).addPointA(P.cx,P.cy).addSegArc2();for(let A=0;A<i.N1;A++)_.addPartial(k.rotate(0,0,A*c));return[t,_,c]}function Ne(i){const t="",u=i.D6/2,s=2*Math.PI/i.N2,n=i.E2/2,c=2*Math.asin(n/u),o=(s-c)/2,d=i.N2<3?0:Math.PI/(2*i.N2),l=Math.PI/2+d+$t(i.a1);if(o<0)throw`err564: N2 ${i.N2} is too large compare to D6 ${i.D6}, E2 ${i.E2}`;const g=O(u,0),h=ot(0,-u),S=ot(0,0),f=h.rotate(S,-c),a=h.translatePolar(l,i.L2).translatePolar(l+Math.PI/2,i.E1),_=h.translatePolar(l,i.L2+i.L4),$=_.translatePolar(l+Math.PI/2,i.E1),C=O(f.cx,f.cy).addSegStrokeA(a.cx,a.cy);if(i.N3>0){let D=a;const x=i.W1/2,w=i.E1+x;for(let P=0;P<i.N3;P++){const A=D.translatePolar(l-Math.PI/2,w).translatePolar(l,w),v=D.translatePolar(l-Math.PI/2,2*w),M=v.translatePolar(l+Math.PI,i.L3),B=M.translatePolar(l-Math.PI/2,x).translatePolar(l+Math.PI,x),E=M.translatePolar(l-Math.PI/2,2*x);let m=0;P===i.N3-1&&(m=i.L4);const y=E.translatePolar(l,i.L3+m);C.addPointA(A.cx,A.cy).addPointA(v.cx,v.cy).addSegArc2().addSegStrokeA(M.cx,M.cy).addPointA(B.cx,B.cy).addPointA(E.cx,E.cy).addSegArc2().addSegStrokeA(y.cx,y.cy),D=y}const N=D.translatePolar(l-Math.PI/2,i.E1);C.addSegStrokeA(N.cx,N.cy),D=N;for(let P=0;P<i.N3;P++){let k=0;P===0&&(k=i.L4);const A=D.translatePolar(l+Math.PI,i.L3+k),M=A.translatePolar(l+Math.PI/2,w).translatePolar(l+Math.PI,w),R=A.translatePolar(l+Math.PI/2,2*w),B=R.translatePolar(l,i.L3),m=B.translatePolar(l+Math.PI/2,x).translatePolar(l,x),y=B.translatePolar(l+Math.PI/2,2*x);C.addSegStrokeA(A.cx,A.cy).addPointA(M.cx,M.cy).addPointA(R.cx,R.cy).addSegArc2().addSegStrokeA(B.cx,B.cy).addPointA(m.cx,m.cy).addPointA(y.cx,y.cy).addSegArc2(),D=y}}else C.addSegStrokeA($.cx,$.cy).addSegStrokeA(_.cx,_.cy);C.addSegStrokeA(h.cx,h.cy);for(let D=0;D<i.N2;D++)g.addPointAP(D*s+o,u).addPointAP(D*s+2*o,u).addSegArc2().addCornerRounded(i.R7).addPartial(C.rotate(0,0,Math.PI/2+(D+1)*s)).addCornerRounded(i.R7);return[t,g]}var ee={partName:"vaxis_holder",params:[e("PHD1","mm",700,1,2e3,1),e("PHD2","mm",900,1,4e3,1),e("PHD5","mm",800,1,4e3,1),e("PHN1","holes",6,1,24,1),p("screw holes"),e("PHD3","mm",40,2,100,1),e("PHR4","mm",40,2,100,1),e("PHL2","mm",120,5,400,1),e("PHR6","mm",20,0,400,1),p("section"),e("PHE1","mm",10,1,80,1),e("PHH1","mm",50,1,200,1),e("PHA","degree",5,-45,45,.1),e("PHL1","mm",300,1,500,1),e("PHE2","mm",10,1,80,1),e("PHE3","mm",10,1,80,1)],paramSvg:{PHD1:"vaxis_holder_top.svg",PHD2:"vaxis_holder_top.svg",PHD5:"vaxis_holder_top.svg",PHD3:"vaxis_holder_top.svg",PHR4:"vaxis_holder_top.svg",PHN1:"vaxis_holder_top.svg",PHL2:"vaxis_holder_top.svg",PHR6:"vaxis_holder_top.svg",PHE1:"vaxis_holder_section.svg",PHH1:"vaxis_holder_section.svg",PHA:"vaxis_holder_section.svg",PHL1:"vaxis_holder_section.svg",PHE2:"vaxis_holder_section.svg",PHE3:"vaxis_holder_top.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function Ve(i,t,u=""){const s=gt(ee.partName+u),n=I(),c=I(),o=I(),d=I();s.logstr+=`${s.partName} simTime: ${i}
29
- `;try{const l=$t(t.PHA),g=t.PHD1/2,h=t.PHD2/2,S=t.PHD3/2,f=t.PHD5/2,r=h+t.PHL1/2*Math.sin(l),a=h-t.PHL1/2*Math.sin(l),_=t.PHL1*Math.cos(l),$=h-t.PHE2/Math.cos(l)+t.PHE1/2*Math.tan(l),C=h-t.PHE2/Math.cos(l)-t.PHE1/2*Math.tan(l),D=Math.min($,C),x=(t.PHL1-t.PHE1/Math.cos(l))/2,w=h-t.PHE2/Math.cos(l);if(D<f)throw`err210: PHD5 ${t.PHD5} too large compare to PHE2 ${t.PHE2} or PHA ${t.PHA}`;s.logstr+=`vaxis_holder's height: ${H(_)} mm
30
- `,s.logstr+=`vaxis_holder outerD1: ${H(2*r)} mm
31
- `,s.logstr+=`vaxis_holder outerD2: ${H(2*a)} mm
32
- `,s.logstr+=`vaxis_holder innerD: ${H(t.PHD1-2*t.PHR4)} mm
33
- `,s.logstr+=`vaxis_holder D2-next: ${H(2*w)} mm
34
- `;const N=function(F){return O(F*f,-t.PHE1/2).addSegStrokeR(F*($-f),0).addSegStrokeRP(-Math.PI/2+F*l,x).addSegStrokeRP(-Math.PI/2+F*(Math.PI/2+l),t.PHE2).addSegStrokeRP(Math.PI/2+F*l,t.PHL1).addSegStrokeRP(Math.PI/2+F*(Math.PI/2+l),t.PHE2).addSegStrokeRP(-Math.PI/2+F*l,x).addSegStrokeA(F*f,t.PHE1/2).closeSegStroke()},P=function(F){return O(F*D,-t.PHE1/2).addSegStrokeA(F*D,t.PHE1/2).addSegStrokeA(F*(g-t.PHR4),t.PHE1/2).addSegStrokeA(F*(g-t.PHR4),-t.PHE1/2).closeSegStroke()},k=function(F){return O(F*(g+S),-t.PHE1/2).addSegStrokeA(F*(g+S),t.PHE1/2).addSegStrokeA(F*(g-S),t.PHE1/2).addSegStrokeA(F*(g-S),-t.PHE1/2).closeSegStroke()};n.addMain(N(1)),n.addSecond(N(-1)),n.addSecond(P(1)),n.addSecond(k(1)),n.addSecond(P(-1)),n.addSecond(k(-1));const A=function(F){return O(F*(g+t.PHR4),-t.PHE1/2).addSegStrokeA(F*$,-t.PHE1/2).addSegStrokeRP(-Math.PI/2+F*l,x).closeSegStroke()},v=function(F){return O(F*(g+t.PHR4),t.PHE1/2).addSegStrokeA(F*C,t.PHE1/2).addSegStrokeRP(Math.PI/2+F*l,x).addSegStrokeA(F*(g+t.PHR4),t.PHE1+t.PHH1).closeSegStroke()};n.addSecond(A(-1)),n.addSecond(v(-1)),o.mergeFigure(n,!0),d.mergeFigure(n,!0),n.addSecond(A(1)),n.addSecond(v(1)),o.addMain(A(1)),o.addSecond(v(1)),d.addSecond(A(1)),d.addMain(v(1)),c.addMain(b(0,0,D)),c.addSecond(b(0,0,h)),c.addSecond(b(0,0,Math.max(r,a)));const[M,R,B]=Re(t);s.logstr+=M,c.addMain(R);for(const F of B){const et=ot(0,0).translatePolar(F,g);c.addMain(b(et.cx,et.cy,t.PHD3/2))}const E=O(g+t.PHR4,-t.PHE3).addSegStrokeA(D,-t.PHE3).addSegStrokeA(D,t.PHE3).addSegStrokeA(g+t.PHR4,t.PHE3).closeSegStroke();for(const F of B)c.addSecond(E.rotate(0,0,F));s.fig={facePetal:c,faceOuter:n,faceButtress1:o,faceButtress2:d};const m=s.partName,y=Bt();y.addRotation(Math.PI/2,0,0),y.addTranslation(0,t.PHE3/2,0);const z=B.map((F,et)=>{const K=Bt(y.getMatrix());return K.addRotation(0,0,F),{outName:`subpax_${m}_b1_${et}`,face:`${m}_faceButtress1`,extrudeMethod:U.eLinearOrtho,length:t.PHE3,rotate:K.getRotation(),translate:K.getTranslation()}}),j=B.map((F,et)=>{const K=Bt(y.getMatrix());return K.addRotation(0,0,F),{outName:`subpax_${m}_b2_${et}`,face:`${m}_faceButtress2`,extrudeMethod:U.eLinearOrtho,length:t.PHE3,rotate:K.getRotation(),translate:K.getTranslation()}}),Z=B.map((F,et)=>`subpax_${m}_b1_${et}`),tt=B.map((F,et)=>`subpax_${m}_b2_${et}`);s.vol={extrudes:[{outName:`subpax_${m}_outer`,face:`${m}_faceOuter`,extrudeMethod:U.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${m}_petal`,face:`${m}_facePetal`,extrudeMethod:U.eLinearOrtho,length:t.PHE1,rotate:[0,0,0],translate:[0,0,-t.PHE1/2]},...z,...j],volumes:[{outName:`pax_${m}`,boolMethod:st.eUnion,inList:[`subpax_${m}_petal`,`subpax_${m}_outer`,...Z,...tt]}]},s.sub={},s.logstr+=`vaxis_holder drawn successfully!
35
- `,s.calcErr=!1}catch(l){s.logstr+=l,console.log(l)}return s}var Dt={pTitle:"Heliostat vaxis_holder",pDescription:"The holders of the guidance mechanism for azimuth motion",pDef:ee,pGeom:Ve},se={partName:"pole_static",params:[e("D1","mm",1e3,20,4e3,1),e("D2","mm",700,10,4e3,1),e("D3","mm",800,10,4e3,1),e("H1","mm",3e3,10,4e4,10),e("H2","mm",7e3,50,4e4,10),p("thickness"),e("E1","mm",30,1,80,1),e("E2","mm",5,1,80,1),p("base holes"),e("N1","",32,3,100,1),e("D5","mm",40,1,100,1),e("L1","mm",45,1,300,1),p("door"),e("D4","mm",600,1,1200,1),e("H3","mm",300,5,1200,1),e("H4","mm",1800,10,2500,1),e("L2","mm",30,1,100,1),e("E3","mm",40,1,100,1),p("holders"),ut("holders",!0),e("PHL1A","mm",400,10,1e3,1),e("PHL1B","mm",400,10,1e3,1),e("PHB","mm",5e3,10,2e4,1),e("PHD1A","mm",600,10,4e3,1),e("PHD1B","mm",380,10,4e3,1),e("PHN1AB","petal",6,1,24,1),p("holder-B"),e("PHD5B","mm",600,10,4e3,1),e("PHR4B","mm",30,3,400,1),e("PHD3B","mm",40,3,400,1),e("PHL2B","mm",140,3,400,1),e("PHE3B","mm",10,1,50,1),e("PHR6B","mm",20,0,400,1),e("PHE1B","mm",10,1,50,1),e("PHH1B","mm",10,1,50,1),p("holder-A"),e("PHD5A","mm",900,10,4e3,1),e("PHR4A","mm",30,3,400,1),e("PHD3A","mm",40,3,400,1),e("PHL2A","mm",200,3,400,1),e("PHE3A","mm",10,1,50,1),e("PHR6A","mm",20,0,400,1),e("PHE1A","mm",10,1,50,1),e("PHH1A","mm",10,1,50,1)],paramSvg:{D1:"pole_stator_cut.svg",D2:"pole_stator_cut.svg",D3:"pole_stator_cut.svg",H1:"pole_stator_cut.svg",H2:"pole_stator_cut.svg",E1:"pole_stator_cut.svg",E2:"pole_stator_E2.svg",N1:"pole_stator_bottom.svg",D5:"pole_stator_bottom.svg",L1:"pole_stator_bottom.svg",D4:"pole_stator_face.svg",H3:"pole_stator_face.svg",H4:"pole_stator_face.svg",L2:"pole_stator_face.svg",E3:"pole_stator_right.svg",holders:"pole_stator_holders.svg",PHL1A:"pole_stator_holders.svg",PHL1B:"pole_stator_holders.svg",PHB:"pole_stator_holders.svg",PHD1A:"pole_stator_holders.svg",PHD1B:"pole_stator_holders.svg",PHN1AB:"pole_stator_holders.svg",PHD5A:"pole_stator_holderB_top.svg",PHR4A:"pole_stator_holderB_top.svg",PHD3A:"pole_stator_holderB_top.svg",PHL2A:"pole_stator_holderB_top.svg",PHE3A:"pole_stator_holderB_top.svg",PHR6A:"pole_stator_holderB_top.svg",PHE1A:"pole_stator_holderB_section.svg",PHH1A:"pole_stator_holderB_section.svg",PHD5B:"pole_stator_holderB_top.svg",PHR4B:"pole_stator_holderB_top.svg",PHD3B:"pole_stator_holderB_top.svg",PHL2B:"pole_stator_holderB_top.svg",PHE3B:"pole_stator_holderB_top.svg",PHR6B:"pole_stator_holderB_top.svg",PHE1B:"pole_stator_holderB_section.svg",PHH1B:"pole_stator_holderB_section.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function Ce(i,t,u=""){const s=gt(se.partName+u),n=I(),c=I(),o=I(),d=I(),l=I(),g=I(),h=I(),S=I(),f=I(),r=I(),a=I();s.logstr+=`${s.partName} simTime: ${i}
36
- `;try{const _=t.D1/2,$=t.D2/2,C=t.D3/2,D=t.H1+t.H2,x=Math.atan2(_-$,t.H2),w=t.E2*Math.tan(x/2),N=t.H1-w,P=t.PHL1B/Math.cos(x),k=$+t.PHL1B/2*Math.tan(x),A=t.H1+t.H2-t.PHL1B/2,v=$+(t.PHL1B/2+t.PHB)*Math.tan(x),M=t.H1+t.H2-t.PHL1B/2-t.PHB,R=t.PHL1A/Math.cos(x),B=_-t.PHL1A/2*Math.tan(x),E=t.H1+t.PHL1A/2;if($>_)throw`err091: D2 ${t.D2} is larger than D1 ${t.D1}`;if(C+t.E2>_)throw`err095: D3 ${t.D3} and E2 ${t.E2} are too large compare to D1 ${t.D1}`;if(t.holders){if(t.PHB<t.PHL1B)throw`err131: PHB ${t.PHB} is too small compare to PHL1B ${t.PHL1B}`;if(t.PHB>t.H2-t.PHL1B-t.PHL1A)throw`err132: PHB ${t.PHB} is too large compare to H2 ${t.H2}, PHL1B ${t.PHL1B} and PHL1A ${t.PHL1A}`}s.logstr+=`pole-height: ${H(D)} mm
37
- `,s.logstr+=`cone-half-angle: ${H(lt(x))} degree
38
- `,s.logstr+=`holder position: A: ${H(E)} B1: ${H(M)} B2: ${H(A)} mm
39
- `;const m=function(L){let G=$-t.E2*Math.cos(x);return G+=(D-t.E2*Math.sin(x)-L)*Math.tan(x),G},y=function(L,G){const Y=O(L*_,0).addSegStrokeA(L*_,t.H1).addSegStrokeA(L*$,D).addSegStrokeR(-L*t.E2*Math.cos(x),-t.E2*Math.sin(x));if(G&&t.holders){const X=t.H1+t.PHL1A/2-t.PHE1A/2,nt=X+t.PHE1A,rt=D-t.PHL1B/2+t.PHE1B/2,it=rt-t.PHE1B,at=rt-t.PHB,ht=at-t.PHE1B;Y.addSegStrokeA(L*m(rt),rt).addSegStrokeA(L*(t.PHD1B/2-t.PHR4B),rt).addSegStrokeA(L*(t.PHD1B/2-t.PHR4B),it).addSegStrokeA(L*m(it),it).addSegStrokeA(L*m(at),at).addSegStrokeA(L*(t.PHD1B/2-t.PHR4B),at).addSegStrokeA(L*(t.PHD1B/2-t.PHR4B),ht).addSegStrokeA(L*m(ht),ht).addSegStrokeA(L*m(nt),nt).addSegStrokeA(L*(t.PHD1A/2-t.PHR4A),nt).addSegStrokeA(L*(t.PHD1A/2-t.PHR4A),X).addSegStrokeA(L*m(X),X)}return Y.addSegStrokeA(L*(_-t.E2),N),G?Y.addSegStrokeA(L*(_-t.E2),t.E1).addSegStrokeA(L*C,t.E1).addSegStrokeA(L*C,0):Y.addSegStrokeA(L*(_-t.E2),0),Y.closeSegStroke(),Y};n.addMain(y(1,!1)),n.addSecond(y(1,!0)),n.addSecond(y(-1,!0));const z=t.D4/2,j=t.H4-2*z;if(j<0)throw`err121: H4 ${t.H4} is too small compare to D4 ${t.D4}`;if(z-t.L2<0)throw`err121: D4 ${t.D4} is too small compare to L2 ${t.L2}`;const Z=function(L){const G=z-L,Y=t.H3+z;return O(G,Y+j).addPointR(-G,G).addSegArc(G,!1,!0).addPointR(-G,-G).addSegArc(G,!1,!0).addSegStrokeR(0,-j).addPointR(G,-G).addSegArc(G,!1,!0).addPointR(G,G).addSegArc(G,!1,!0).closeSegStroke()};c.addMain(Z(0)),c.addMain(Z(t.L2));const tt=O(_,0).addSegStrokeA(_,t.H1).addSegStrokeA($,D).addSegStrokeA(-$,D).addSegStrokeA(-_,t.H1).addSegStrokeA(-_,0).closeSegStroke();c.addSecond(tt);const F=O(-_,t.H3).addSegStrokeR(0,t.H4).addSegStrokeR(-t.E3,0).addSegStrokeR(0,-t.H4).closeSegStroke();c.addSecond(F),o.addMain(b(0,0,_)),o.addMain(b(0,0,C));const et=C+t.L1,K=2*Math.PI/t.N1;for(let L=0;L<t.N1;L++){const G=et*Math.cos(L*K),Y=et*Math.sin(L*K);o.addMain(b(G,Y,t.D5/2))}o.addSecond(b(0,0,$)),o.addSecond(b(0,0,_-t.E2)),d.addMain(b(0,0,_+t.E3)),d.addMain(b(0,0,_-t.E2)),l.addMain(Z(t.L2));const q=s.partName,W=[],V=[];if(t.holders){const L=_t(Dt.pDef,"B2");L.setVal("PHD1",t.PHD1B),L.setVal("PHD2",2*k),L.setVal("PHD5",t.PHD5B),L.setVal("PHN1",t.PHN1AB),L.setVal("PHD3",t.PHD3B),L.setVal("PHR4",t.PHR4B),L.setVal("PHL2",t.PHL2B),L.setVal("PHR6",t.PHR6B),L.setVal("PHE1",t.PHE1B),L.setVal("PHH1",t.PHH1B),L.setVal("PHA",lt(x)),L.setVal("PHL1",P),L.setVal("PHE2",t.E2),L.setVal("PHE3",t.PHE3B);const G=Dt.pGeom(0,L.getParamVal(),L.getSuffix());ft(G),s.logstr+=St(G.logstr,L.getPartNameSuffix()),g.mergeFigure(G.fig.faceOuter),h.mergeFigure(G.fig.facePetal);const Y={outName:`inpax_${q}_hB2`,subdesign:"pax_vaxis_holderB2",subgeom:G,rotate:[0,0,0],translate:[0,0,A]};W.push(Y),V.push(`inpax_${q}_hB2`);const X=_t(Dt.pDef,"B1");X.setVal("PHD1",t.PHD1B),X.setVal("PHD2",2*v),X.setVal("PHD5",t.PHD5B),X.setVal("PHN1",t.PHN1AB),X.setVal("PHD3",t.PHD3B),X.setVal("PHR4",t.PHR4B),X.setVal("PHL2",t.PHL2B),X.setVal("PHR6",t.PHR6B),X.setVal("PHE1",t.PHE1B),X.setVal("PHH1",t.PHH1B),X.setVal("PHA",lt(x)),X.setVal("PHL1",P),X.setVal("PHE2",t.E2),X.setVal("PHE3",t.PHE3B);const nt=Dt.pGeom(0,X.getParamVal(),X.getSuffix());ft(nt),s.logstr+=St(nt.logstr,X.getPartNameSuffix()),S.mergeFigure(nt.fig.faceOuter),f.mergeFigure(nt.fig.facePetal);const rt={outName:`inpax_${q}_hB1`,subdesign:"pax_vaxis_holderB1",subgeom:nt,rotate:[0,0,0],translate:[0,0,M]};W.push(rt),V.push(`inpax_${q}_hB1`);const it=_t(Dt.pDef,"A");it.setVal("PHD1",t.PHD1A),it.setVal("PHD2",2*B),it.setVal("PHD5",t.PHD5A),it.setVal("PHN1",t.PHN1AB),it.setVal("PHD3",t.PHD3A),it.setVal("PHR4",t.PHR4A),it.setVal("PHL2",t.PHL2A),it.setVal("PHR6",t.PHR6A),it.setVal("PHE1",t.PHE1A),it.setVal("PHH1",t.PHH1A),it.setVal("PHA",lt(x)),it.setVal("PHL1",R),it.setVal("PHE2",t.E2),it.setVal("PHE3",t.PHE3A);const at=Dt.pGeom(0,it.getParamVal(),it.getSuffix());ft(at),s.logstr+=St(at.logstr,it.getPartNameSuffix()),r.mergeFigure(at.fig.faceOuter),a.mergeFigure(at.fig.facePetal);const ht={outName:`inpax_${q}_hA`,subdesign:"pax_vaxis_holderA",subgeom:at,rotate:[0,0,0],translate:[0,0,E]};W.push(ht),V.push(`inpax_${q}_hA`)}s.fig={poleCut:n,poleFace:c,poleBottom:o,emptyPole:d,emptyDoor:l,holderB2Section:g,holderB2Top:h,holderB1Section:S,holderB1Top:f,holderASection:r,holderATop:a},s.vol={inherits:W,extrudes:[{outName:`subpax_${q}_pole`,face:`${q}_poleCut`,extrudeMethod:U.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${q}_bottom`,face:`${q}_poleBottom`,extrudeMethod:U.eLinearOrtho,length:t.E1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${q}_door`,face:`${q}_poleFace`,extrudeMethod:U.eLinearOrtho,length:_+t.E3,rotate:[Math.PI/2,0,0],translate:[0,0,0]},{outName:`subpax_${q}_emptyPole`,face:`${q}_emptyPole`,extrudeMethod:U.eLinearOrtho,length:t.H1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${q}_emptyDoor`,face:`${q}_emptyDoor`,extrudeMethod:U.eLinearOrtho,length:_+t.E3+10,rotate:[Math.PI/2,0,0],translate:[0,0,0]}],volumes:[{outName:`ipax_${q}_door`,boolMethod:st.eIntersection,inList:[`subpax_${q}_door`,`subpax_${q}_emptyPole`]},{outName:`ipax_${q}_pole`,boolMethod:st.eSubstraction,inList:[`subpax_${q}_pole`,`subpax_${q}_emptyDoor`]},{outName:`pax_${q}`,boolMethod:st.eUnion,inList:[`ipax_${q}_pole`,`subpax_${q}_bottom`,`ipax_${q}_door`,...V]}]},s.sub={},s.logstr+=`pole_static drawn successfully!
40
- `,s.calcErr=!1}catch(_){s.logstr+=_,console.log(_)}return s}var Mt={pTitle:"Heliostat pole static",pDescription:"The vertical pole of an heliostat",pDef:se,pGeom:Ce},oe={partName:"rake",params:[e("D1","mm",600,10,4e3,10),e("D2","mm",400,10,4e3,10),e("D3","mm",400,10,4e3,10),e("H1","mm",800,1,4e3,10),e("H2","mm",3e3,20,6e3,10),e("H3","mm",400,0,4e3,10),e("E1","mm",20,1,80,1),e("E3","mm",30,1,80,1),p("transversal"),e("H4","mm",400,10,1e3,10),e("D4","mm",300,10,1e3,10),e("E4","mm",20,1,80,1),e("H5","mm",1e3,10,2e3,10),e("D5","mm",200,1,1e3,10),e("L4","mm",300,1,1e3,10),e("L5","mm",2e3,10,4e3,10),e("L6","mm",2e3,1,4e3,10),e("D8","mm",400,1,1e3,10),p("diagonal"),e("D6","mm",100,1,600,10),e("E6","mm",10,1,80,1),e("L7","mm",100,1,1e3,1),e("L8","mm",200,1,1e3,1),p("base"),e("N1","",24,3,100,1),e("D7","mm",40,1,100,1),e("L1","mm",30,1,300,1),p("door"),e("H6","mm",100,1,1e3,10),e("H7","mm",600,10,2e3,10),e("L9","mm",300,1,1e3,10),e("R9","mm",50,0,300,1)],paramSvg:{D1:"rake_face.svg",D2:"rake_face.svg",D3:"rake_face.svg",H1:"rake_face.svg",H2:"rake_face.svg",H3:"rake_face.svg",E1:"rake_face.svg",E3:"rake_face.svg",H4:"rake_side.svg",D4:"rake_side.svg",E4:"rake_side.svg",H5:"rake_side.svg",D5:"rake_side.svg",L4:"rake_face.svg",L5:"rake_face.svg",L6:"rake_face.svg",D6:"rake_face.svg",E6:"rake_face.svg",L7:"rake_face.svg",L8:"rake_face.svg",N1:"rake_top.svg",D7:"rake_top.svg",L1:"rake_top.svg",D8:"rake_side.svg",H6:"rake_door.svg",H7:"rake_door.svg",L9:"rake_door.svg",R9:"rake_door.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function Ie(i,t,u=""){const s=gt(oe.partName+u);let n,c,o;const d=I(),l=I(),g=I(),h=I(),S=I(),f=I(),r=I(),a=I();s.logstr+=`${s.partName} simTime: ${i}
41
- `;try{const _=t.D1/2,$=t.D2/2,C=t.D3/2,D=t.D4/2,x=t.D5/2,w=t.D6/2,N=t.D7/2,P=t.D8/2,k=t.H1+t.H2,A=k-t.H4+t.H5;if(s.logstr+=`cone-height: ${H(k)} mm
42
- `,s.logstr+=`cone-height total: ${H(A)} mm
43
- `,t.D2>t.D1)throw`err110: D2 ${t.D2} is larger than D1 ${t.D1}`;if(t.D3+t.E1>t.D1)throw`err113: D3 ${t.D3} is too large compare to D1 ${t.D1} and E1 ${t.E1}`;if(t.H3+t.E3>t.H1)throw`err116: H3 ${t.H3} is too large compare to H1 ${t.H1} and E3 ${t.E3}`;if(t.H4+D>t.H2)throw`err119: H4 ${t.H4} is too large compare to H2 ${t.H2} and D4 ${t.D4}`;if(t.E4>D)throw`err122: E4 ${t.E4} is too large compare to D4 ${t.D4}`;if(t.D8<=t.D5)throw`err146: D8 ${t.D8} is too small compare to D5 ${t.D5}`;const v=4*t.L4+t.L5+2*t.L6,M=t.H1+t.H2-t.H4,R=D*Math.cos(Math.PI/6),B=D*Math.sin(Math.PI/6),E=x*Math.cos(Math.PI/6),m=x*Math.sin(Math.PI/6),y=P*Math.cos(Math.PI/6),z=P*Math.sin(Math.PI/6),j=[-v/2,-t.L5/2-t.L4,t.L5/2,v/2-t.L4],Z=t.H2-t.L8-t.H4-D;if(Z<0)throw`err140: H2 ${t.H2} too small compare to L8 ${t.L8}, H4 ${t.H4} and D4 ${t.D4}`;const tt=Math.atan2(_-$,t.H2);s.logstr+=`cone-angle: ${H(lt(tt))} degree
44
- `;const F=v/2-t.L7-_+t.L8*Math.tan(tt),et=Math.sqrt(F**2+Z**2),K=Math.atan2(F,Z);s.logstr+=`wing-angle: ${H(lt(K))} degree
45
- `;const q=t.E1/Math.sin(K+tt),W=et+t.E4/Math.cos(K)+q,V=_-t.L8*Math.tan(tt)-q*Math.sin(K),L=t.H1+t.L8-q*Math.cos(K),G=V-w*Math.cos(K),Y=L+w*Math.sin(K),X=w-t.E6,nt=V-t.E6*Math.cos(K),rt=L+t.E6*Math.sin(K),it=Math.PI/2-K,at=t.L9/2,ht=at-t.H7*Math.tan(tt);if(ht<t.R9)throw`err177: R9 ${t.R9} too large compare to doorHighX ${ht} and L9 ${t.L9}`;if(t.L9>t.D1)throw`err180: L9 ${t.L9} too large compare to D1 ${t.D1}`;const wt=t.E1*Math.cos(tt),Vt=t.E1*Math.sin(tt),Ut=t.E1*Math.tan(tt/2);n=function(Q){return O(Q*_,0).addSegStrokeA(Q*_,t.H1).addSegStrokeA(Q*$,k).addSegStrokeA(Q*($-wt),k-Vt).addSegStrokeA(Q*(_-t.E1),t.H1-Ut).addSegStrokeA(Q*(_-t.E1),0).closeSegStroke()},c=function(Q){return O(Q*_,0).addSegStrokeA(Q*_,t.H1).addSegStrokeA(Q*$,k).addSegStrokeA(Q*($-wt),k-Vt).addSegStrokeA(Q*(_-t.E1),t.H1-Ut).addSegStrokeA(Q*(_-t.E1),t.H1-t.H3).addSegStrokeA(Q*C,t.H1-t.H3).addSegStrokeA(Q*C,t.H1-t.H3-t.E3).addSegStrokeA(Q*(_-t.E1),t.H1-t.H3-t.E3).addSegStrokeA(Q*(_-t.E1),0).closeSegStroke()},o=function(Q,Lt,Pt,Et,At){const qt=Q*Math.cos(At),Yt=Q*Math.sin(At),Xt=-Lt*Math.sin(At),Kt=Lt*Math.cos(At);return O(Pt,Et).addSegStrokeA(Pt+qt,Et+Yt).addSegStrokeA(Pt+qt+Xt,Et+Yt+Kt).addSegStrokeA(Pt+Xt,Et+Kt).closeSegStroke()};const Ct=O(at,t.H1+t.H6).addCornerRounded(t.R9).addSegStrokeA(ht,t.H1+t.H6+t.H7).addCornerRounded(t.R9).addSegStrokeA(-ht,t.H1+t.H6+t.H7).addCornerRounded(t.R9).addSegStrokeA(-at,t.H1+t.H6).addCornerRounded(t.R9).closeSegStroke();d.addMain(n(1)),d.addSecond(c(1)),d.addSecond(c(-1)),d.addSecond(o(v,t.D4,-v/2,M-D,0)),d.addSecond(o(v,t.D4-2*t.E4,-v/2,M-D+t.E4,0));for(const Q of j)d.addSecond(o(t.L4,t.H5-B-m,Q,M+B,0));d.addSecond(o(W,2*w,V,L,it)),d.addSecond(o(W,2*X,nt,rt,it)),d.addSecond(o(2*w,W,-V,L,K)),d.addSecond(o(2*X,W,-nt,rt,K)),d.addSecond(Ct);const It=O(R,M+B).addSegStrokeA(y,M+t.H5-z).addSegStrokeA(E,M+t.H5-m).addPointA(-E,M+t.H5-m).addSegArc(x,!1,!1).addSegStrokeA(-y,M+t.H5-z).addSegStrokeA(-R,M+B).closeSegArc(D,!1,!1);l.addMain(b(0,M,D)),l.addMain(b(0,M,D-t.E4)),l.addSecond(c(1)),l.addSecond(c(-1)),l.addSecond(It),l.addSecond(b(0,M+t.H5,x)),l.addSecond(o(2*w,Z,-w,t.H1+t.L8,0)),l.addSecond(o(2*X,Z,-X,t.H1+t.L8,0)),l.addSecond(Ct),g.addMain(b(0,M,D-t.E4)),g.addSecond(b(0,M,D)),g.addSecond(It),h.addMain(b(0,0,_)),h.addMain(b(0,0,C));const pt=C+t.L1,Wt=2*Math.PI/t.N1;for(let Q=0;Q<t.N1;Q++){const Lt=pt*Math.cos(Q*Wt),Pt=pt*Math.sin(Q*Wt);h.addMain(b(Lt,Pt,N))}h.addSecond(b(0,0,_-t.E1)),h.addSecond(b(0,0,$)),h.addSecond(o(t.D4,v,-D,-v/2,0)),h.addSecond(o(t.D4-2*t.E4,v,-D+t.E4,-v/2,0));for(const Q of j)h.addSecond(o(2*R,t.L4,-R,Q,0)),h.addSecond(o(2*E,t.L4,-E,Q,0)),h.addSecond(o(2*y,t.L4,-y,Q,0));h.addSecond(o(2*w,F,-w,_-t.L8*Math.tan(tt),0)),h.addSecond(o(2*X,F,-X,_-t.L8*Math.tan(tt),0)),h.addSecond(o(2*w,F,-w,-_+t.L8*Math.tan(tt)-F,0)),h.addSecond(o(2*X,F,-X,-_+t.L8*Math.tan(tt)-F,0)),S.addMain(It),S.addSecond(b(0,M,D)),S.addSecond(b(0,M,D-t.E4)),S.addSecond(b(0,M+t.H5,x)),f.addMain(b(0,0,w)),f.addMain(b(0,0,X)),r.addSecond(b(0,0,w)),r.addMain(b(0,0,X)),a.addMain(Ct),a.addSecond(c(1)),a.addSecond(c(-1)),a.addSecond(o(v,t.D4,-v/2,M-D,0)),a.addSecond(o(v,t.D4-2*t.E4,-v/2,M-D+t.E4,0));for(const Q of j)a.addSecond(o(t.L4,t.H5-B-m,Q,M+B,0));a.addSecond(o(W,2*w,V,L,it)),a.addSecond(o(W,2*X,nt,rt,it)),a.addSecond(o(2*w,W,-V,L,K)),a.addSecond(o(2*X,W,-nt,rt,K)),s.fig={faceCone:d,faceBeam:l,faceBeamHollow:g,faceDisc:h,faceHand:S,faceWing:f,faceWingHollow:r,faceDoor:a};const J=s.partName,fe=j.map((Q,Lt)=>({outName:`subpax_${J}_hand_${Lt}`,face:`${J}_faceHand`,extrudeMethod:U.eLinearOrtho,length:t.L4,rotate:[Math.PI/2,0,0],translate:[0,-Q,0]}));s.vol={extrudes:[{outName:`subpax_${J}_cone`,face:`${J}_faceCone`,extrudeMethod:U.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${J}_beam`,face:`${J}_faceBeam`,extrudeMethod:U.eLinearOrtho,length:v,rotate:[Math.PI/2,0,0],translate:[0,v/2,0]},{outName:`subpax_${J}_beamHollow`,face:`${J}_faceBeamHollow`,extrudeMethod:U.eLinearOrtho,length:v,rotate:[Math.PI/2,0,0],translate:[0,v/2,0]},{outName:`subpax_${J}_disc`,face:`${J}_faceDisc`,extrudeMethod:U.eLinearOrtho,length:t.E3,rotate:[0,0,0],translate:[0,0,t.H1-t.H3-t.E3]},{outName:`subpax_${J}_wing_right`,face:`${J}_faceWing`,extrudeMethod:U.eLinearOrtho,length:W,rotate:[-K,0,0],translate:[0,G,Y]},{outName:`subpax_${J}_wing_left`,face:`${J}_faceWing`,extrudeMethod:U.eLinearOrtho,length:W,rotate:[K,0,0],translate:[0,-G,Y]},{outName:`subpax_${J}_wing_hollow_right`,face:`${J}_faceWingHollow`,extrudeMethod:U.eLinearOrtho,length:W,rotate:[-K,0,0],translate:[0,G,Y]},{outName:`subpax_${J}_wing_hollow_left`,face:`${J}_faceWingHollow`,extrudeMethod:U.eLinearOrtho,length:W,rotate:[K,0,0],translate:[0,-G,Y]},{outName:`subpax_${J}_door`,face:`${J}_faceDoor`,extrudeMethod:U.eLinearOrtho,length:t.D1,rotate:[Math.PI/2,0,Math.PI/2],translate:[0,0,0]},...fe],volumes:[{outName:`ipax_${J}_plus`,boolMethod:st.eUnion,inList:[`subpax_${J}_cone`,`subpax_${J}_beam`,`subpax_${J}_disc`,`subpax_${J}_hand_0`,`subpax_${J}_hand_1`,`subpax_${J}_hand_2`,`subpax_${J}_hand_3`,`subpax_${J}_wing_right`,`subpax_${J}_wing_left`]},{outName:`ipax_${J}_hollow`,boolMethod:st.eUnion,inList:[`subpax_${J}_beamHollow`,`subpax_${J}_wing_hollow_right`,`subpax_${J}_wing_hollow_left`,`subpax_${J}_door`]},{outName:`pax_${J}`,boolMethod:st.eSubstraction,inList:[`ipax_${J}_plus`,`ipax_${J}_hollow`]}]},s.sub={},s.logstr+=`heliostat-rake drawn successfully!
46
- `,s.calcErr=!1}catch(_){s.logstr+=_,console.log(_)}return s}var bt={pTitle:"Heliostat rake",pDescription:"The rake on top of the V-Axis of the heliostat",pDef:oe,pGeom:Ie},Ft={partName:"spider",params:[e("D1","mm",100,1,400,1),e("L1","mm",400,1,1e3,1),e("L2","mm",400,1,1e3,1),e("L3","mm",100,1,400,1),e("L4","mm",3e3,10,8e3,10),p("longitude"),e("L5","mm",2e3,1,8e3,1),e("N1","",6,1,20,1),e("L6","mm",30,1,100,1),p("thickness"),e("E1","mm",3,1,80,1),e("E2","mm",50,1,200,1),e("E3","mm",3,1,80,1),e("R2","mm",100,0,400,10)],paramSvg:{D1:"spider_profile.svg",L1:"spider_profile.svg",L2:"spider_profile.svg",L3:"spider_profile.svg",L4:"spider_profile.svg",L5:"spider_lateral.svg",L6:"spider_lateral.svg",E1:"spider_profile.svg",E2:"spider_profile.svg",E3:"spider_profile.svg",R2:"spider_profile.svg",N1:"spider_lateral.svg"},sim:{tMax:360,tStep:.5,tUpdate:500}};function Be(i,t,u=""){const s=gt(Ft.partName+u);let n,c;const o=I(),d=I(),l=I();s.logstr+=`${s.partName} simTime: ${i}
47
- `;try{const g=t.D1/2;if(t.D1<t.E2)throw`err476: D1 ${t.D1} smaller then E2 ${t.E2}`;const h=t.E2/2,S=Math.sqrt(g**2-h**2),f=t.L1+t.L2*Math.sqrt(2),r=t.L2+t.L1*Math.sqrt(2),a=t.L4-r;if(a<t.R2)throw`err984: L4 ${t.L4} too small compare to R2 ${t.R2}`;const _=a*Math.cos(Math.PI/4),$=a*Math.sin(Math.PI/4),C=t.E2*Math.cos(Math.PI/4),D=t.E2*Math.sin(Math.PI/4),x=t.E2*Math.tan(Math.PI/8);if(g<t.E1)throw`err092: D1 ${t.D1} too small compare to E1 ${t.E1}`;if(t.L3<t.E2)throw`err994: L3 ${t.L3} smaller than E2 ${t.E2}`;if(t.L3<2*t.E3)throw`err997: L3 ${t.L3} too small compare to E3 ${t.E3}`;const w=(t.L3-t.E2)/2*Math.cos(Math.PI/4),N=f+_+w,P=-t.L1-$+w,k=P-t.E3*Math.sqrt(2);if(t.L5<t.N1*t.L6)throw`err110: L5 ${t.L5} too small compare to N1 ${t.N1} and L6 ${t.L6}`;let A=1;t.N1>1&&(A=(t.L5-t.L6)/(t.N1-1));const v=[...Array(t.N1).keys()].map(y=>y*A);n=function(y,z,j){return O(y,z).addSegStrokeA(y+j*Math.cos(Math.PI/4),z-j*Math.sin(Math.PI/4)).addSegStrokeA(y,z-2*j*Math.sin(Math.PI/4)).addSegStrokeA(y-j*Math.cos(Math.PI/4),z-j*Math.sin(Math.PI/4)).closeSegStroke()},c=function(y,z,j,Z){return O(j,Z).addSegStrokeA(j+y,Z).addSegStrokeA(j+y,Z+z).addSegStrokeA(j,Z+z).closeSegStroke()};const M=Math.sin(2*Math.PI*i/Ft.sim.tMax)*Math.PI/2;s.logstr+=`spide leg number: ${t.N1}
48
- `,s.logstr+=`spide position angle: ${H(lt(M))} degree
49
- `;const R=O(h,-S).addCornerRounded(t.R2).addSegStrokeA(h,-t.L1).addCornerRounded(t.R2).addSegStrokeA(f,-t.L1).addCornerRounded(t.R2+t.E2).addSegStrokeA(f+_,-t.L1-$).addSegStrokeA(f+_-C,-t.L1-$-D).addSegStrokeA(f-x,-t.L1-t.E2).addCornerRounded(t.R2).addSegStrokeA(-f+x,-t.L1-t.E2).addCornerRounded(t.R2).addSegStrokeA(-f-_+C,-t.L1-$-D).addSegStrokeA(-f-_,-t.L1-$).addSegStrokeA(-f,-t.L1).addCornerRounded(t.R2+t.E2).addSegStrokeA(-h,-t.L1).addCornerRounded(t.R2).addSegStrokeA(-h,-S).addCornerRounded(t.R2).closeSegArc(g,!0,!1);o.addMain(R),o.addMain(b(0,0,g-t.E1)),o.addSecond(n(N,P,t.L3)),o.addSecond(n(N,k,t.L3-2*t.E3)),o.addSecond(n(-N,P,t.L3)),o.addSecond(n(-N,k,t.L3-2*t.E3)),d.addMain(b(0,0,g)),d.addMain(b(0,0,g-t.E1)),d.addMain(n(N,P,t.L3)),d.addMain(n(N,k,t.L3-2*t.E3)),d.addMain(n(-N,P,t.L3)),d.addMain(n(-N,k,t.L3-2*t.E3)),d.addSecond(R),l.addSecond(c(t.L5,t.D1,0,-t.D1/2)),l.addSecond(c(t.L5,t.L3,0,-t.L4-t.L3));for(const y of v)l.addSecond(c(t.L6,t.L4,y,-t.L4));s.fig={faceLegs:o.rotate(0,0,M),faceTube:d.rotate(0,0,M),faceBody:l};const B=s.partName,E=v.map((y,z)=>({outName:`subpax_${B}_leg_${z}`,face:`${B}_faceLegs`,extrudeMethod:U.eLinearOrtho,length:t.L6,rotate:[0,0,0],translate:[0,0,y]})),m=v.map((y,z)=>`subpax_${B}_leg_${z}`);s.vol={extrudes:[{outName:`subpax_${B}_tube`,face:`${B}_faceTube`,extrudeMethod:U.eLinearOrtho,length:t.L5,rotate:[0,0,0],translate:[0,0,0]},...E],volumes:[{outName:`pax_${B}`,boolMethod:st.eUnion,inList:[`subpax_${B}_tube`,...m]}]},s.sub={},s.logstr+=`heliostat-spider drawn successfully!
50
- `,s.calcErr=!1}catch(g){s.logstr+=g,console.log(g)}return s}var mt={pTitle:"Heliostat spider",pDescription:"The spider part for the control of the inclination of the heliostat",pDef:Ft,pGeom:Be},ie={partName:"swing",params:[e("L1","mm",12500,100,4e4,10),e("L2","mm",6e3,100,4e4,10),p("radial"),e("D1","mm",400,1,1e3,1),e("E1","mm",5,1,80,1),e("H2","mm",100,1,400,1),e("H4","mm",100,1,400,1),e("E2","mm",3,1,80,1),e("L3","mm",500,1,4e3,1),p("radial"),e("L4","mm",600,1,4e3,1),e("L5","mm",2e3,1,1e4,1),e("L6","mm",2e3,1,1e4,1),e("H1","mm",100,1,400,1),e("H3","mm",100,1,400,1),e("E3","mm",3,1,80,1),p("buttress"),e("S1","mm",300,0,1e3,1),e("R2","mm",100,0,1e3,1),p("rod overlay"),e("rod1","",10,1,40,1),e("rod2","mm",1300,10,4e3,10),e("rod3","mm",400,10,1e3,10),e("rod4","mm",100,1,400,1)],paramSvg:{L1:"swing_top.svg",L2:"swing_top.svg",L3:"swing_top.svg",L4:"swing_top.svg",L5:"swing_top.svg",L6:"swing_top.svg",D1:"swing_top.svg",H1:"swing_top.svg",H2:"swing_top.svg",H3:"swing_side.svg",H4:"swing_side.svg",E1:"swing_side.svg",E2:"swing_side.svg",E3:"swing_face.svg",S1:"swing_buttress.svg",R2:"swing_buttress.svg",rod1:"swing_with_rod.svg",rod2:"swing_with_rod.svg",rod3:"swing_with_rod.svg",rod4:"swing_with_rod.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function ye(i,t,u=""){const s=gt(ie.partName+u),n=I(),c=I(),o=I(),d=I(),l=I();s.logstr+=`${s.partName} simTime: ${i}
51
- `;try{const g=t.D1/2;s.logstr+=`swing size: L1 ${H(t.L1)} x L2 ${H(t.L2)} mm
52
- `,n.addMain(b(0,0,g)),n.addMain(b(0,0,g-t.E1));const h=[-t.L2/2,-t.L3-t.H2,t.L3,t.L2/2-t.H2];for(const v of h)n.addMain(ct(v,g-t.H4,t.H2,t.H4)),n.addMain(ct(v+t.E2,g-t.H4+t.E2,t.H2-2*t.E2,t.H4-2*t.E2));n.addSecond(ct(-t.L2/2,g,t.L2,t.H3));const S=[];S.push(-t.L1/2),S.push(t.L1/2-t.H1);for(const v of[-t.L5/2-2*t.L4-t.L6,-t.L5/2-t.L4,t.L5/2,t.L5/2+t.L4+t.L6])for(const M of[0,t.L4-t.H1])S.push(v+M);for(const v of S)c.addMain(ct(v,g,t.H1,t.H3)),c.addMain(ct(v+t.E3,g+t.E3,t.H1-2*t.E3,t.H3-2*t.E3));c.addSecond(ct(-t.L1/2,-g,t.L1,t.D1)),c.addSecond(ct(-t.L1/2,g-t.H4,t.L1,t.H4));for(const v of S)o.addSecond(ct(v,-t.L2/2,t.H1,t.L2));for(const v of h)o.addSecond(ct(-t.L1/2,v,t.L1,t.H2));o.addSecond(ct(-t.L1/2,-g,t.L1,t.D1));const r=2*Math.atan2(t.S1,g),a=ot(0,0),$=ot(0,g).rotate(a,r),C=O(-t.L3,g).addSegStrokeA(-t.S1,g).addCornerRounded(t.R2).addSegStrokeA($.cx,$.cy).addPointA(0,-g).addPointA(-$.cx,$.cy).addSegArc2().addSegStrokeA(t.S1,g).addCornerRounded(t.R2).addSegStrokeA(t.L3,g).addSegStrokeA(t.L3,g+t.E3).addSegStrokeA(-t.L3,g+t.E3).closeSegStroke();d.addMain(C),d.addMain(b(0,0,g-t.E1));for(const v of S)l.addMain(ct(v,-t.L2/2,t.H1,t.L2));for(const v of h)l.addMain(ct(-t.L1/2,v,t.L1,t.H2));l.addMain(ct(-t.L1/2,-g,t.L1,t.D1));const D=-((t.rod1-1)*t.rod2+t.rod3)/2,x=(t.rod3-t.rod4)/2,w=t.rod3/2,N=1.2*t.L2,P=(N-w)/3,k=-N/2;for(let v=0;v<t.rod1;v++){const M=D+v*t.rod2;l.addSecond(ct(M+x,k,t.rod4,N));for(let R=0;R<4;R++)l.addSecond(ct(M,k+R*P,t.rod3,w,w/4))}s.fig={faceSide:n,faceFace:c,faceTop:o,faceButtress:d,faceTopWithRods:l};const A=s.partName;s.vol={extrudes:[{outName:`subpax_${A}_side`,face:`${A}_faceSide`,extrudeMethod:U.eLinearOrtho,length:t.L1,rotate:[0,0,0],translate:[0,0,-t.L1/2]},{outName:`subpax_${A}_face`,face:`${A}_faceFace`,extrudeMethod:U.eLinearOrtho,length:t.L2,rotate:[0,Math.PI/2,0],translate:[-t.L2/2,0,0]}],volumes:[{outName:`pax_${A}`,boolMethod:st.eUnion,inList:[`subpax_${A}_side`,`subpax_${A}_face`]}]},s.sub={},s.logstr+=`heliostat-swing drawn successfully!
53
- `,s.calcErr=!1}catch(g){s.logstr+=g,console.log(g)}return s}var kt={pTitle:"Heliostat swing",pDescription:"The swing for the heliostat inclination",pDef:ie,pGeom:ye},Ot={partName:"heliostat",params:[e("H1","mm",3e3,10,4e4,10),e("H2","mm",2500,50,4e4,10),e("D1","mm",1e3,20,4e3,10),e("D2","mm",700,20,4e3,10),e("E1","mm",30,1,80,1),p("rake"),e("H3","mm",200,1,500,1),e("H4","mm",800,1,4e3,1),e("H5","mm",3e3,50,6e3,10),e("H6","mm",200,1,4e3,1),e("H7","mm",800,1,4e3,1),e("H8","mm",200,1,4e3,1),e("D3","mm",900,20,4e3,10),e("D4","mm",400,20,4e3,10),e("D5","mm",300,20,1e3,10),e("D6","mm",200,10,1e3,10),e("D7","mm",400,10,1e3,10),p("rake diagonal"),e("D9","mm",100,1,1e3,1),e("L7","mm",100,1,1e3,1),e("L8","mm",200,1,1e3,1),p("spider"),e("D8","mm",100,1,1e3,1),e("S1","mm",250,1,800,1),e("S2","mm",200,1,800,1),e("E2","mm",50,1,80,1),p("swing"),e("L1","mm",12500,100,4e4,10),e("L2","mm",6e3,100,4e4,10),e("L3","mm",100,1,500,1),e("L4","mm",600,1,4e3,1),e("L5","mm",2e3,10,6e3,1),e("L6","mm",2e3,1,6e3,1),e("H9","mm",100,1,400,1),p("motion amplitude"),e("al","degree",80,0,95,1),e("ar","degree",80,0,95,1)],paramSvg:{H1:"heliostat_overview.svg",H2:"heliostat_side.svg",H3:"heliostat_side_sizing.svg",H4:"heliostat_side_sizing.svg",H5:"heliostat_side_sizing.svg",H6:"heliostat_side_sizing.svg",H7:"heliostat_side_sizing.svg",H8:"heliostat_side_sizing.svg",H9:"heliostat_side_sizing.svg",D1:"heliostat_side_sizing.svg",D2:"heliostat_side_sizing.svg",D3:"heliostat_side_sizing.svg",D4:"heliostat_side_sizing.svg",D5:"heliostat_side_sizing.svg",D6:"heliostat_side_sizing.svg",D7:"heliostat_side_sizing.svg",D8:"heliostat_side_sizing.svg",D9:"heliostat_face_sizing.svg",S1:"heliostat_side_sizing.svg",S2:"heliostat_side_sizing.svg",E1:"heliostat_side_sizing.svg",E2:"heliostat_side_sizing.svg",L1:"heliostat_face_sizing.svg",L2:"heliostat_side_sizing.svg",L3:"heliostat_face_sizing.svg",L4:"heliostat_face_sizing.svg",L5:"heliostat_face_sizing.svg",L6:"heliostat_face_sizing.svg",L7:"heliostat_face_sizing.svg",L8:"heliostat_face_sizing.svg",al:"heliostat_side_sizing.svg",ar:"heliostat_side_sizing.svg"},sim:{tMax:100,tStep:.5,tUpdate:500}};function Te(i,t,u=""){const s=gt(Ot.partName+u),n=I(),c=I();s.logstr+=`${s.partName} simTime: ${i}
54
- `;try{const o=t.H1+t.H2-t.H3+t.H4+t.H5-t.H6+t.H7;s.logstr+=`heliostat-height: ${H(o)}, diameter ${H(t.D1)} m
55
- `,s.logstr+=`heliostat-swing-length: ${H(t.L1)}, width ${H(t.L2)} m
56
- `;const l=(t.al-t.ar)/2-Math.sin(2*Math.PI*i/Ot.sim.tMax)*(t.al+t.ar)/2,g=$t(l);s.logstr+=`swing position angle: ${H(lt(g))} degree
57
- `;const h=t.H1+t.H2-t.H3,S=h+t.H4+t.H5-t.H6+t.H7,f=S+t.H8,r=_t(Mt.pDef),a=_t(bt.pDef),_=_t(mt.pDef),$=_t(kt.pDef);r.setVal("H1",t.H1),r.setVal("H2",t.H2),r.setVal("D1",t.D1),r.setVal("D2",t.D2),r.setVal("D3",t.D1-6*t.E1),r.setVal("E1",t.E1),r.setVal("E2",t.E1);const C=32,D=(t.D1-6*t.E1)/(C*4);r.setVal("N1",C),r.setVal("D5",D),r.setVal("L1",t.E1+D/2),r.setVal("H3",t.H1/4),r.setVal("H4",t.H1/2),r.setVal("D4",t.H1/4),r.setVal("L2",t.H1/80),r.setVal("E3",t.H1/80),r.setVal("holders",0),a.setVal("H1",t.H4),a.setVal("H2",t.H5),a.setVal("H3",t.H4-2*t.E1),a.setVal("D1",t.D3),a.setVal("D2",t.D4),a.setVal("L9",t.D3/2),a.setVal("H7",t.D3/2*1.6),a.setVal("H6",t.D3/20),a.setVal("R9",t.D3/20),a.setVal("E1",t.E1),a.setVal("E3",t.E1),a.setVal("E4",t.E1);const x=t.D2*.6,w=24,N=x/(w*4);if(a.setVal("D3",x),t.D2>t.D3-2*t.E1)throw`err153: D2 ${t.D2} too large compare to D3 ${t.D3} and E1 ${t.E1}`;if(a.setVal("N1",w),a.setVal("D7",N),a.setVal("L1",N),a.setVal("H4",t.H6),a.setVal("D4",t.D5),a.setVal("L7",t.L7),a.setVal("L8",t.L8),a.setVal("D6",t.D9),a.setVal("H5",t.H7+t.H8),a.setVal("D5",t.D6),a.setVal("D8",t.D7),t.D6>=t.D7)throw`err164: D6 ${t.D6} too large compare to D7 ${t.D7}`;const P=t.L4-2*t.L3;if(a.setVal("L4",P),P<=0)throw`err169: L3 ${t.L3} too large compare to L4 ${t.L4}`;a.setVal("L5",t.L5+2*t.L3),a.setVal("L6",t.L6+2*t.L3);const k=t.L5*.96,A=6;if(_.setVal("L5",k),_.setVal("D1",t.D8),_.setVal("L1",t.S1),_.setVal("L2",t.S2),_.setVal("L3",t.E2*2),_.setVal("E1",t.E1),_.setVal("E2",t.E2),_.setVal("E3",t.E1),_.setVal("L4",t.L2/2-t.H8),_.setVal("R2",0),_.setVal("N1",A),_.setVal("L6",k/(A*10)),$.setVal("L2",t.L2),$.setVal("D1",t.D6),$.setVal("H3",t.H9),$.setVal("H4",t.H9),$.setVal("L1",t.L1),t.L1<4*t.L4+2*t.L6+t.L5+2*t.L3)throw`err185: L1 ${t.L1} too small compare to L4 ${t.L4}, L5 ${t.L5}, L6 ${t.L6}`;$.setVal("H1",t.L3),$.setVal("H2",t.L3),$.setVal("L4",t.L4),$.setVal("L5",t.L5),$.setVal("L6",t.L6),$.setVal("L3",t.D7);const v=Mt.pGeom(0,r.getParamVal(),r.getSuffix());ft(v),s.logstr+=St(v.logstr,r.getPartNameSuffix());const M=bt.pGeom(0,a.getParamVal(),a.getSuffix());ft(M),s.logstr+=St(M.logstr,a.getPartNameSuffix());const R=mt.pGeom(0,_.getParamVal(),_.getSuffix());ft(R),s.logstr+=St(R.logstr,_.getPartNameSuffix());const B=kt.pGeom(0,$.getParamVal(),$.getSuffix());ft(B),s.logstr+=St(B.logstr,$.getPartNameSuffix()),n.mergeFigure(v.fig.poleCut),n.mergeFigure(M.fig.faceBeam.translate(0,h)),n.mergeFigure(R.fig.faceLegs.translate(0,S).rotate(0,S,g/2)),n.mergeFigure(B.fig.faceSide.translate(0,f).rotate(0,f,g)),c.mergeFigure(v.fig.poleCut),c.mergeFigure(M.fig.faceCone.translate(0,h)),c.mergeFigure(R.fig.faceBody.translate(-k/2,S)),c.mergeFigure(B.fig.faceFace.translate(0,f)),s.fig={faceSide:n,faceFace:c};const E=s.partName;s.vol={inherits:[{outName:`inpax_${E}_poleStatic`,subdesign:"pax_pole_static",subgeom:v,rotate:[0,0,0],translate:[0,0,0]},{outName:`inpax_${E}_rake`,subdesign:"pax_rake",subgeom:M,rotate:[0,0,0],translate:[0,0,h]},{outName:`inpax_${E}_swing`,subdesign:"pax_swing",subgeom:B,rotate:[Math.PI/2,0,0],translate:[0,0,f]},{outName:`inpax_${E}_spider`,subdesign:"pax_spider",subgeom:R,rotate:[Math.PI/2,0,0],translate:[0,k/2,S]}],extrudes:[],volumes:[{outName:`pax_${E}`,boolMethod:st.eUnion,inList:[`inpax_${E}_poleStatic`,`inpax_${E}_rake`,`inpax_${E}_swing`,`inpax_${E}_spider`]}]};const m={partName:r.getPartName(),dparam:r.getDesignParamList(),orientation:[0,0,0],position:[0,0,0]},y={partName:a.getPartName(),dparam:a.getDesignParamList(),orientation:[0,0,0],position:[0,0,h]},z={partName:_.getPartName(),dparam:_.getDesignParamList(),orientation:[Math.PI/2,0,0],position:[0,k/2,S]},j={partName:$.getPartName(),dparam:$.getDesignParamList(),orientation:[Math.PI/2,0,0],position:[0,0,f]};s.sub={pole_static_1:m,rake_1:y,spider_1:z,swing_1:j},s.logstr+=`heliostat-overview drawn successfully!
58
- `,s.calcErr=!1}catch(o){s.logstr+=o,console.log(o)}return s}var Fe={pTitle:"Heliostat overview",pDescription:"The heliostat inclination mechanism",pDef:Ot,pGeom:Te},ne={partName:"rake_stopper",params:[e("D1","mm",600,10,4e3,10),e("D2","mm",400,10,4e3,10),e("D3","mm",400,1,4e3,1),e("H1","mm",800,1,4e3,1),e("H2","mm",3e3,20,6e3,10),e("H3","mm",400,0,4e3,1),e("E1","mm",20,1,80,1),e("E3","mm",30,1,80,1),p("transversal"),e("H4","mm",200,1,1e3,1),e("D4","mm",300,1,1e3,1),e("E4","mm",20,1,80,1),e("H5","mm",400,1,2e3,1),e("D5","mm",200,1,1e3,1),e("L4","mm",300,1,1e3,1),e("L5","mm",2e3,1,4e3,1),e("L6","mm",2e3,1,4e3,1),e("D8","mm",400,1,1e3,1),p("diagonal"),e("D6","mm",100,1,600,1),e("E6","mm",10,1,80,1),e("L7","mm",100,1,1e3,1),e("L8","mm",200,1,1e3,1),p("base"),e("N1","",24,3,100,1),e("D7","mm",40,1,100,1),e("L1","mm",30,1,300,1),p("door"),e("H6","mm",100,1,1e3,1),e("H7","mm",600,1,2e3,1),e("L9","mm",300,1,1e3,1),e("R9","mm",50,0,300,1),p("stopper"),e("S1","mm",100,1,300,1),e("S2","mm",2e3,1,8e3,1),e("E7","mm",5,1,80,1)],paramSvg:{D1:"rake_face.svg",D2:"rake_face.svg",D3:"rake_face.svg",H1:"rake_face.svg",H2:"rake_face.svg",H3:"rake_face.svg",E1:"rake_face.svg",E3:"rake_face.svg",H4:"rake_side.svg",D4:"rake_side.svg",E4:"rake_side.svg",H5:"rake_side.svg",D5:"rake_side.svg",L4:"rake_face.svg",L5:"rake_face.svg",L6:"rake_face.svg",D6:"rake_face.svg",E6:"rake_face.svg",L7:"rake_face.svg",L8:"rake_face.svg",N1:"rake_top.svg",D7:"rake_top.svg",L1:"rake_top.svg",D8:"rake_side.svg",H6:"rake_door.svg",H7:"rake_door.svg",L9:"rake_door.svg",R9:"rake_door.svg",S1:"rake_side_stopper.svg",S2:"rake_top_stopper.svg",E7:"rake_side_stopper.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function me(i,t,u=""){const s=gt(ne.partName+u);let n;const c=I(),o=I(),d=I(),l=I(),g=I(),h=I(),S=I(),f=I(),r=I(),a=I(),_=I(),$=I(),C=I(),D=I(),x=I();s.logstr+=`${s.partName} simTime: ${i}
59
- `;try{const w=t.D1/2,N=t.H1+t.H2,P=N-t.H4+t.H5;if(s.logstr+=`cone-height: ${H(N)} mm
60
- `,s.logstr+=`cone-height total: ${H(P)} mm
61
- `,2*t.E7>=t.S1)throw`err135: E7 ${t.E7} too large compare to S1 ${t.S1}`;if(t.L5<t.D2)throw`err138: L5 ${t.L5} too small compare to D2 ${t.D2}`;const k=P-t.S2;if(k<0)throw`err143: S2 ${t.S2} too large compare to H1H5 ${H(P)}`;const A=t.H1+t.H2-t.H4+t.D4/2,v=t.H1+t.L8-t.S1;n=function(G,Y,X,nt,rt){const it=G*Math.cos(rt),at=G*Math.sin(rt),ht=-Y*Math.sin(rt),wt=Y*Math.cos(rt);return O(X,nt).addSegStrokeA(X+it,nt+at).addSegStrokeA(X+it+ht,nt+at+wt).addSegStrokeA(X+ht,nt+wt).closeSegStroke()};const M=_t(bt.pDef);M.setVal("D1",t.D1),M.setVal("D2",t.D2),M.setVal("D3",t.D3),M.setVal("H1",t.H1),M.setVal("H2",t.H2),M.setVal("H3",t.H3),M.setVal("E1",t.E1),M.setVal("E3",t.E3),M.setVal("H4",t.H4),M.setVal("D4",t.D4),M.setVal("E4",t.E4),M.setVal("H5",t.H5),M.setVal("D5",t.D5),M.setVal("L4",t.L4),M.setVal("L5",t.L5),M.setVal("L6",t.L6),M.setVal("D6",t.D6),M.setVal("E6",t.E6),M.setVal("L7",t.L7),M.setVal("L8",t.L8),M.setVal("N1",t.N1),M.setVal("D7",t.D7),M.setVal("L1",t.L1),M.setVal("D8",t.D8),M.setVal("H6",t.H6),M.setVal("H7",t.H7),M.setVal("L9",t.L9),M.setVal("R9",t.R9);const R=bt.pGeom(0,M.getParamVal(),M.getSuffix());ft(R),s.logstr+=St(R.logstr,M.getPartNameSuffix()),c.mergeFigure(R.fig.faceCone),o.mergeFigure(R.fig.faceBeam),d.mergeFigure(R.fig.faceBeamHollow),l.mergeFigure(R.fig.faceDisc),g.mergeFigure(R.fig.faceHand),h.mergeFigure(R.fig.faceWing),S.mergeFigure(R.fig.faceWingHollow),f.mergeFigure(R.fig.faceDoor),r.mergeFigure(R.fig.faceDisc,!0);const B=t.L5/2,E=t.S1/2,m=t.S1-2*t.E7,y=m/2;r.addMain(n(t.S1,t.L5,-w-t.S1,-B,0)),r.addMain(n(m,t.L5,-w-t.E7-m,-B,0)),r.addMain(n(t.S1,t.L5,t.S2-t.S1,-B,0)),r.addMain(n(m,t.L5,t.S2-t.E7-m,-B,0));const z=t.S2-t.S1/2;r.addMain(n(z,t.S1,0,-B,0)),r.addMain(n(z,m,0,-B+t.E7,0)),r.addMain(n(z,t.S1,0,B-t.S1,0)),r.addMain(n(z,m,0,B-t.S1+t.E7,0)),r.addMain(n(z,t.S1,0,-w-t.S1,0)),r.addMain(n(z,m,0,-w-t.S1+t.E7,0)),r.addMain(n(z,t.S1,0,w,0)),r.addMain(n(z,m,0,w+t.E7,0)),a.mergeFigure(R.fig.faceBeam,!0),a.addMain(b(-w-E,k+E,E)),a.addMain(b(-w-E,k+E,y)),a.addMain(b(t.S2-E,A+E,E)),a.addMain(b(t.S2-E,A+E,y)),a.addSecond(n(z,t.S1,0,A,0)),a.addSecond(n(z,m,0,A+t.E7,0));const j=A+t.S1/2-v,Z=Math.sqrt(z**2+j**2),tt=Math.atan2(j,z);s.logstr+=`stopper-rod: L ${H(Z)} mm, A ${H(lt(tt))} degree
62
- `;const F=E*Math.sin(tt),et=E*Math.cos(tt),K=v-et;a.addSecond(n(Z,t.S1,F,K,tt));const q=y*Math.sin(tt),W=y*Math.cos(tt),V=v-W;a.addSecond(n(Z,m,q,V,tt)),_.mergeFigure(R.fig.faceBeam,!0),_.addSecond(b(-w-E,k+E,E)),_.addMain(b(-w-E,k+E,y)),_.addSecond(b(t.S2-E,A+E,E)),_.addMain(b(t.S2-E,A+E,y)),$.mergeFigure(R.fig.faceCone,!0),$.addMain(b(-t.L5/2+E,A+E,E)),$.addMain(b(-t.L5/2+E,A+E,y)),$.addMain(b(t.L5/2-E,A+E,E)),$.addMain(b(t.L5/2-E,A+E,y)),C.mergeFigure(R.fig.faceCone,!0),C.addSecond(b(-t.L5/2+E,A+E,E)),C.addMain(b(-t.L5/2+E,A+E,y)),C.addSecond(b(t.L5/2-E,A+E,E)),C.addMain(b(t.L5/2-E,A+E,y)),D.mergeFigure(R.fig.faceCone,!0),D.addMain(b(-w-E,0,E)),D.addMain(b(-w-E,0,y)),D.addMain(b(w+E,0,E)),D.addMain(b(w+E,0,y)),x.mergeFigure(R.fig.faceCone,!0),x.addSecond(b(-w-E,0,E)),x.addMain(b(-w-E,0,y)),x.addSecond(b(w+E,0,E)),x.addMain(b(w+E,0,y)),s.fig={faceCone:c,faceBeam:o,faceBeamHollow:d,faceDisc:l,faceHand:g,faceWing:h,faceWingHollow:S,faceDoor:f,faceStopperTop:r,faceStopperSide:a,faceStopperSideH:_,faceStopperFaceT:$,faceStopperFaceTH:C,faceStopperFaceB:D,faceStopperFaceBH:x};const L=s.partName;s.vol={inherits:[{outName:`inpax_${L}_rake`,subdesign:"pax_rake",subgeom:R,rotate:[0,0,0],translate:[0,0,0]}],extrudes:[{outName:`subpax_${L}_stpSide`,face:`${L}_faceStopperSide`,extrudeMethod:U.eLinearOrtho,length:t.L5,rotate:[Math.PI/2,0,0],translate:[0,t.L5/2,0]},{outName:`subpax_${L}_stpSideH`,face:`${L}_faceStopperSideH`,extrudeMethod:U.eLinearOrtho,length:t.L5,rotate:[Math.PI/2,0,0],translate:[0,t.L5/2,0]},{outName:`subpax_${L}_stpFaceT`,face:`${L}_faceStopperFaceT`,extrudeMethod:U.eLinearOrtho,length:z,rotate:[Math.PI/2,0,Math.PI/2],translate:[0,0,0]},{outName:`subpax_${L}_stpFaceTH`,face:`${L}_faceStopperFaceTH`,extrudeMethod:U.eLinearOrtho,length:z,rotate:[Math.PI/2,0,Math.PI/2],translate:[0,0,0]},{outName:`subpax_${L}_stpFaceB`,face:`${L}_faceStopperFaceB`,extrudeMethod:U.eLinearOrtho,length:Z,rotate:[Math.PI/2-tt,0,Math.PI/2],translate:[0,0,v]},{outName:`subpax_${L}_stpFaceBH`,face:`${L}_faceStopperFaceBH`,extrudeMethod:U.eLinearOrtho,length:Z,rotate:[Math.PI/2-tt,0,Math.PI/2],translate:[0,0,v]}],volumes:[{outName:`ipax_${L}_plus`,boolMethod:st.eUnion,inList:[`subpax_${L}_stpSide`,`subpax_${L}_stpFaceT`,`subpax_${L}_stpFaceB`]},{outName:`ipax_${L}_hollow`,boolMethod:st.eUnion,inList:[`subpax_${L}_stpSideH`,`subpax_${L}_stpFaceTH`,`subpax_${L}_stpFaceBH`]},{outName:`ipax_${L}_stopper`,boolMethod:st.eSubstraction,inList:[`ipax_${L}_plus`,`ipax_${L}_hollow`]},{outName:`pax_${L}`,boolMethod:st.eUnion,inList:[`inpax_${L}_rake`,`ipax_${L}_stopper`]}]},s.sub={},s.logstr+=`heliostat-rake drawn successfully!
63
- `,s.calcErr=!1}catch(w){s.logstr+=w,console.log(w)}return s}var zt={pTitle:"Heliostat rake with stopper",pDescription:"The rake-stopper on top of the V-Axis of the heliostat",pDef:ne,pGeom:me},Gt={partName:"heliostat_2",params:[e("H1","mm",3e3,10,4e4,10),e("H2","mm",2500,50,4e4,10),e("D1","mm",1e3,20,4e3,10),e("D2","mm",700,20,4e3,10),e("E1","mm",30,1,80,1),p("rake"),e("H3","mm",200,1,500,1),e("H4","mm",800,1,4e3,1),e("H5","mm",3e3,50,6e3,10),e("H6","mm",200,1,4e3,1),e("H7","mm",400,1,4e3,1),e("D3","mm",900,20,4e3,10),e("D4","mm",400,20,4e3,10),e("D5","mm",300,20,1e3,10),e("D6","mm",200,10,1e3,10),e("D7","mm",400,10,1e3,10),p("rake diagonal"),e("D9","mm",100,1,1e3,1),e("L7","mm",100,1,1e3,1),e("L8","mm",200,1,1e3,1),p("rake stopper"),e("S1","mm",100,1,800,1),p("swing"),e("L1","mm",12500,100,4e4,10),e("L2","mm",6e3,100,4e4,10),e("L3","mm",100,1,500,1),e("L4","mm",600,1,4e3,1),e("L5","mm",2e3,10,6e3,10),e("L6","mm",2e3,1,6e3,1),e("H9","mm",100,1,400,1),p("motion amplitude"),e("al","degree",80,0,95,1)],paramSvg:{H1:"heliostat_overview.svg",H2:"heliostat_side.svg",H3:"heliostat2_side_sizing.svg",H4:"heliostat2_side_sizing.svg",H5:"heliostat2_side_sizing.svg",H6:"heliostat2_side_sizing.svg",H7:"heliostat2_side_sizing.svg",H9:"heliostat2_side_sizing.svg",D1:"heliostat2_side_sizing.svg",D2:"heliostat2_side_sizing.svg",D3:"heliostat2_side_sizing.svg",D4:"heliostat2_side_sizing.svg",D5:"heliostat2_side_sizing.svg",D6:"heliostat2_side_sizing.svg",D7:"heliostat2_side_sizing.svg",D9:"heliostat2_face_sizing.svg",E1:"heliostat2_side_sizing.svg",L1:"heliostat2_face_sizing.svg",L2:"heliostat2_side_sizing.svg",L3:"heliostat2_face_sizing.svg",L4:"heliostat2_face_sizing.svg",L5:"heliostat2_face_sizing.svg",L6:"heliostat2_face_sizing.svg",L7:"heliostat2_face_sizing.svg",L8:"heliostat2_face_sizing.svg",al:"heliostat2_side_sizing.svg",S1:"heliostat2_side_sizing.svg"},sim:{tMax:100,tStep:.5,tUpdate:500}};function Oe(i,t,u=""){const s=gt(Gt.partName+u),n=I(),c=I(),o=I();s.logstr+=`${s.partName} simTime: ${i}
64
- `;try{const d=t.H1+t.H2-t.H3+t.H4+t.H5-t.H6+t.H7;s.logstr+=`heliostat-height: ${H(d)}, diameter ${H(t.D1)} m
65
- `,s.logstr+=`heliostat-swing-length: ${H(t.L1)}, width ${H(t.L2)} m
66
- `;const l=t.al*i/Gt.sim.tMax,g=$t(l);s.logstr+=`swing position angle: ${H(lt(g))} degree
67
- `;const h=t.H1+t.H2-t.H3,S=h+t.H4+t.H5-t.H6+t.H7,f=_t(Mt.pDef),r=_t(zt.pDef),a=_t(kt.pDef);f.setVal("H1",t.H1),f.setVal("H2",t.H2),f.setVal("D1",t.D1),f.setVal("D2",t.D2),f.setVal("D3",t.D1-6*t.E1),f.setVal("E1",t.E1),f.setVal("E2",t.E1);const _=32,$=(t.D1-6*t.E1)/(_*4);f.setVal("N1",_),f.setVal("D5",$),f.setVal("L1",t.E1+$/2),f.setVal("H3",t.H1/4),f.setVal("H4",t.H1/2),f.setVal("D4",t.H1/4),f.setVal("L2",t.H1/80),f.setVal("E3",t.H1/80),f.setVal("holders",0),r.setVal("H1",t.H4),r.setVal("H2",t.H5),r.setVal("H3",t.H4-2*t.E1),r.setVal("D1",t.D3),r.setVal("D2",t.D4),r.setVal("L9",t.D3/2),r.setVal("H7",t.D3/2*1.6),r.setVal("H6",t.D3/20),r.setVal("R9",t.D3/20),r.setVal("E1",t.E1),r.setVal("E3",t.E1),r.setVal("E4",t.E1),r.setVal("E6",t.E1),r.setVal("E7",t.E1);const C=t.D2*.6,D=24,x=C/(D*4);if(r.setVal("D3",C),t.D2>t.D3-2*t.E1)throw`err153: D2 ${t.D2} too large compare to D3 ${t.D3} and E1 ${t.E1}`;if(r.setVal("N1",D),r.setVal("D7",x),r.setVal("L1",x),r.setVal("H4",t.H6),r.setVal("D4",t.D5),r.setVal("L7",t.L7),r.setVal("L8",t.L8),r.setVal("D6",t.D9),r.setVal("H5",t.H7),r.setVal("D5",t.D6),r.setVal("D8",t.D7),t.D6>=t.D7)throw`err164: D6 ${t.D6} too large compare to D7 ${t.D7}`;const w=t.L4-2*t.L3;if(r.setVal("L4",w),w<=0)throw`err169: L3 ${t.L3} too large compare to L4 ${t.L4}`;if(r.setVal("L5",t.L5+2*t.L3),r.setVal("L6",t.L6+2*t.L3),r.setVal("S1",t.S1),r.setVal("S2",t.L2/2),a.setVal("L2",t.L2),a.setVal("D1",t.D6),a.setVal("H3",t.H9),a.setVal("H4",t.H9),a.setVal("L1",t.L1),t.L1<4*t.L4+2*t.L6+t.L5+2*t.L3)throw`err185: L1 ${t.L1} too small compare to L4 ${t.L4}, L5 ${t.L5}, L6 ${t.L6}`;a.setVal("H1",t.L3),a.setVal("H2",t.L3),a.setVal("L4",t.L4),a.setVal("L5",t.L5),a.setVal("L6",t.L6),a.setVal("L3",t.D7);const N=Mt.pGeom(0,f.getParamVal(),f.getSuffix());ft(N),s.logstr+=St(N.logstr,f.getPartNameSuffix());const P=zt.pGeom(0,r.getParamVal(),r.getSuffix());ft(P),s.logstr+=St(P.logstr,r.getPartNameSuffix());const k=kt.pGeom(0,a.getParamVal(),a.getSuffix());ft(k),s.logstr+=St(k.logstr,a.getPartNameSuffix()),n.mergeFigure(N.fig.poleCut),n.mergeFigure(P.fig.faceStopperSide.translate(0,h)),n.mergeFigure(k.fig.faceSide.translate(0,S).rotate(0,S,g)),c.mergeFigure(N.fig.poleCut),c.mergeFigure(P.fig.faceStopperFaceT.translate(0,h)),c.mergeFigure(k.fig.faceFace.translate(0,S)),o.mergeFigure(N.fig.poleBottom.translate(0,0)),o.mergeFigure(P.fig.faceStopperTop.translate(0,0)),o.mergeFigure(k.fig.faceTop.rotate(0,0,Math.PI/2)),s.fig={faceSide:n,faceFace:c,faceTop:o};const A=s.partName;s.vol={inherits:[{outName:`inpax_${A}_poleStatic`,subdesign:"pax_pole_static",subgeom:N,rotate:[0,0,0],translate:[0,0,0]},{outName:`inpax_${A}_rake`,subdesign:"pax_rake_stopper",subgeom:P,rotate:[0,0,0],translate:[0,0,h]},{outName:`inpax_${A}_swing`,subdesign:"pax_swing",subgeom:k,rotate:[Math.PI/2,0,0],translate:[0,0,S]}],extrudes:[],volumes:[{outName:`pax_${A}`,boolMethod:st.eUnion,inList:[`inpax_${A}_poleStatic`,`inpax_${A}_rake`,`inpax_${A}_swing`]}]};const v=f.getDesignParamList(),M={partName:f.getPartName(),dparam:v,orientation:[0,0,0],position:[0,0,0]},R={partName:r.getPartName(),dparam:r.getDesignParamList(),orientation:[0,0,0],position:[0,0,h]},B={partName:a.getPartName(),dparam:a.getDesignParamList(),orientation:[0,0,0],position:[0,0,S]};s.sub={pole_static_1:M,rake_1:R,swing_1:B},s.logstr+=`heliostat-2-overview drawn successfully!
68
- `,s.calcErr=!1}catch(d){s.logstr+=d,console.log(d)}return s}var ze={pTitle:"Heliostat-2 overview",pDescription:"The heliostat-2 inclination mechanism",pDef:Gt,pGeom:Oe},le={partName:"base",params:[e("D1","mm",600,10,4e3,10),e("D2","mm",700,10,4e3,10),e("D3","mm",400,10,4e3,10),e("D4","mm",500,10,4e3,10),e("E1","mm",30,1,80,1),e("E2","mm",30,1,80,1),e("E3","mm",30,1,80,1),e("H1","mm",800,10,4e3,10),e("H2","mm",50,1,4e3,1),p("side holes"),e("H3","mm",400,10,4e3,10),e("N2","",12,1,100,1),e("L2","mm",100,1,400,1),p("base holes"),e("N1","",24,3,100,1),e("D5","mm",40,1,100,1),e("L1","mm",34,1,300,1)],paramSvg:{D1:"base_cut.svg",D2:"base_cut.svg",D3:"base_cut.svg",D4:"base_cut.svg",E1:"base_cut.svg",E2:"base_cut.svg",E3:"base_cut.svg",H1:"base_cut.svg",H2:"base_hollow.svg",H3:"base_hollow.svg",N2:"base_hollow.svg",L2:"base_hollow.svg",N1:"base_top.svg",D5:"base_top.svg",L1:"base_top.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function Ge(i,t,u=""){const s=gt(le.partName+u);let n,c,o;const d=I(),l=I(),g=I();s.logstr+=`${s.partName} simTime: ${i}
69
- `;try{const h=t.D1/2,S=t.D2/2,f=t.D3/2,r=t.D4/2,a=t.D5/2,_=t.L2/2;if(S<h)throw`err089: D2 ${t.D2} too small compare to D1 ${t.D1}`;if(r>h-t.E2)throw`err189: D4 ${t.D4} too large compare to D1 ${t.D1} and E2 ${t.E2}`;s.logstr+=`base-height: ${H(t.H1)} mm
70
- `,s.logstr+=`base-external-diameter: ${H(t.D2)} mm
71
- `;const $=t.D1*Math.PI/t.N2-t.L2;if(s.logstr+=`inter-hollow: ${H($)} mm
72
- `,n=function(R){return O(R*S,0).addSegStrokeA(R*S,t.E3).addSegStrokeA(R*h,t.E3).addSegStrokeA(R*h,t.H1).addSegStrokeA(R*(h-t.E2),t.H1).addSegStrokeA(R*(h-t.E2),t.E3).addSegStrokeA(R*r,t.E3).addSegStrokeA(R*r,0).closeSegStroke()},c=function(R){return O(R*S,0).addSegStrokeA(R*S,t.E3).addSegStrokeA(R*h,t.E3).addSegStrokeA(R*h,t.H1).addSegStrokeA(R*f,t.H1).addSegStrokeA(R*f,t.H1-t.E1).addSegStrokeA(R*(h-t.E2),t.H1-t.E1).addSegStrokeA(R*(h-t.E2),t.E3).addSegStrokeA(R*r,t.E3).addSegStrokeA(R*r,0).closeSegStroke()},t.H1<t.E3+t.H2+t.H3+t.E1)throw`err125: H1 ${t.H1} too small compare to E3 ${t.H3}, H2 ${t.H2}, H3 ${t.H3}, E1 ${t.E1}`;if(t.D5>t.H3)throw`err128: D5 ${t.D5} too large compare to H3 ${t.H3}`;const C=2*Math.asin(_/(h-t.E2));if(t.N2*C>2*Math.PI)throw`err132: N2 ${t.N2} too large compare to L2 ${t.L2}, D1 ${t.D1}, E2 ${t.E2}`;const D=t.E3+t.H2+_;if(o=function(R){return O(R*_,D).addSegStrokeA(R*_,D+t.H3-t.L2).addPointA(-R*_,D+t.H3-t.L2).addSegArc(_,!1,!0).addSegStrokeA(-R*_,D).closeSegArc(_,!1,!0)},d.addMain(n(1)),d.addSecond(c(1)),d.addSecond(c(-1)),d.addSecond(o(1)),f+t.L1+a>h-t.E2)throw`err127: D3 ${t.D3} too large compare to D1 ${t.D1}, E2 ${t.E2}, L1 ${t.L1}, R5 ${t.D5}`;if(a>t.L1)throw`err130: D5 ${t.D5} too large compare to L1 ${t.L1}`;const x=2*Math.asin(a/(S+t.L1));if(t.N1*x>2*Math.PI)throw`err134: N1 ${t.N1} too large compare to D5 ${t.D5}, L1 ${t.L1}, D2 ${t.D2}`;l.addMain(b(0,0,h)),l.addMain(b(0,0,f));const w=f+t.L1,N=2*Math.PI/t.N1;for(let R=0;R<t.N1;R++){const B=w*Math.cos(R*N),E=w*Math.sin(R*N);l.addMain(b(B,E,a))}l.addSecond(b(0,0,h-t.E1)),l.addSecond(b(0,0,S)),l.addSecond(b(0,0,r)),g.addMain(o(1)),g.addSecond(c(1)),g.addSecond(c(-1)),s.fig={faceCut:d,faceTop:l,faceHollow:g};const P=s.partName,k=2*Math.PI/t.N2,A=[...Array(t.N2).keys()],v=A.map(R=>({outName:`subpax_${P}_hollow_${R}`,face:`${P}_faceHollow`,extrudeMethod:U.eLinearOrtho,length:S+t.E2,rotate:[Math.PI/2,0,R*k],translate:[0,0,0]})),M=A.map(R=>`subpax_${P}_hollow_${R}`);s.vol={extrudes:[{outName:`subpax_${P}_cut`,face:`${P}_faceCut`,extrudeMethod:U.eRotate,rotate:[0,0,0],translate:[Math.PI/2,0,0]},{outName:`subpax_${P}_top`,face:`${P}_faceTop`,extrudeMethod:U.eLinearOrtho,length:t.E1,rotate:[0,0,0],translate:[0,0,t.H1-t.E1]},...v],volumes:[{outName:`ipax_${P}_hollows`,boolMethod:st.eUnion,inList:[...M]},{outName:`ipax_${P}_cylinder`,boolMethod:st.eSubstraction,inList:[`subpax_${P}_cut`,`ipax_${P}_hollows`]},{outName:`pax_${P}`,boolMethod:st.eUnion,inList:[`ipax_${P}_cylinder`,`subpax_${P}_top`]}]},s.sub={},s.logstr+=`heliostat-base drawn successfully!
73
- `,s.calcErr=!1}catch(h){s.logstr+=h,console.log(h)}return s}var Ue={pTitle:"Heliostat base",pDescription:"The base for the static-pole of the heliostat",pDef:le,pGeom:Ge},de={partName:"vaxis",params:[e("D1","mm",600,1,4e3,1),e("D2","mm",400,1,4e3,1),e("H1","mm",8e3,10,4e4,10),e("E1","mm",5,1,80,1),e("E2","mm",30,1,80,1),p("base holes"),e("N1","",24,3,100,1),e("D3","mm",40,1,100,1),e("L1","mm",45,1,300,1)],paramSvg:{D1:"vaxis_cut.svg",D2:"vaxis_cut.svg",H1:"vaxis_cut.svg",E1:"vaxis_cut.svg",E2:"vaxis_cut.svg",N1:"vaxis_ends.svg",D3:"vaxis_ends.svg",L1:"vaxis_ends.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function pe(i,t,u=""){const s=gt(de.partName+u);let n;const c=I(),o=I();s.logstr+=`${s.partName} simTime: ${i}
74
- `;try{const d=t.D1/2,l=t.D2/2,g=t.D3/2;s.logstr+=`vaxis-height: ${H(t.H1)} mm
75
- `;const h=O(d,0).addSegStrokeA(d,t.H1).addSegStrokeA(d-t.E1,t.H1).addSegStrokeA(d-t.E1,0).closeSegStroke();c.addMain(h),n=function(a){return O(a*d,0).addSegStrokeA(a*d,t.H1).addSegStrokeA(a*l,t.H1).addSegStrokeA(a*l,t.H1-t.E2).addSegStrokeA(a*(d-t.E1),t.H1-t.E2).addSegStrokeA(a*(d-t.E1),t.E2).addSegStrokeA(a*l,t.E2).addSegStrokeA(a*l,0).closeSegStroke()},c.addSecond(n(1)),c.addSecond(n(-1)),o.addMain(b(0,0,d)),o.addMain(b(0,0,l));const S=l+t.L1,f=2*Math.PI/t.N1;for(let a=0;a<t.N1;a++){const _=S*Math.cos(a*f),$=S*Math.sin(a*f);o.addMain(b(_,$,g))}o.addSecond(b(0,0,d-t.E1)),s.fig={faceCut:c,faceBottom:o};const r=s.partName;s.vol={extrudes:[{outName:`subpax_${r}_pole`,face:`${r}_faceCut`,extrudeMethod:U.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${r}_bottom`,face:`${r}_faceBottom`,extrudeMethod:U.eLinearOrtho,length:t.E2,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${r}_top`,face:`${r}_faceBottom`,extrudeMethod:U.eLinearOrtho,length:t.E2,rotate:[0,0,0],translate:[0,0,t.H1-t.E2]}],volumes:[{outName:`pax_${r}`,boolMethod:st.eUnion,inList:[`subpax_${r}_pole`,`subpax_${r}_bottom`,`subpax_${r}_top`]}]},s.sub={},s.logstr+=`V-Axis drawn successfully!
76
- `,s.calcErr=!1}catch(d){s.logstr+=d,console.log(d)}return s}var We={pTitle:"Heliostat V-Axis",pDescription:"The vertical axis inside the pole of an heliostat",pDef:de,pGeom:pe},ce={partName:"ring",params:[e("D1","mm",400,1,2e3,1),e("D3","mm",800,1,4e3,1),e("H1","mm",20,1,100,1),e("H2","mm",100,1,600,1),p("ring holes"),e("N2","",24,3,100,1),e("D2","mm",40,1,100,1),e("L1","mm",45,1,300,1),p("ring fake teeth"),e("N1","",100,3,1e4,1),e("L2","mm",30,1,200,1),e("L3","mm",30,1,200,1)],paramSvg:{D1:"ring_top.svg",D3:"ring_top.svg",H1:"ring_section.svg",H2:"ring_section.svg",N2:"ring_top.svg",D2:"ring_top.svg",L1:"ring_top.svg",N1:"ring_top.svg",L2:"ring_top.svg",L3:"ring_top.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function qe(i,t,u=""){const s=gt(ce.partName+u),n=I(),c=I(),o=I();s.logstr+=`${s.partName} simTime: ${i}
77
- `;try{const d=t.D1/2,l=t.D2/2,g=t.D3/2,h=t.H1+t.H2;if(t.L1<l)throw`err203: L1 ${t.L1} too small compare to D2 ${t.D2}`;if(d+t.L1+l>g-t.L2-t.L3)throw`err204: D3 ${t.D3} too small compare to D1 ${t.D1}, L1 ${t.L1}, L2 ${t.L2}, L3 ${t.L3}`;if(2*Math.atan2(l,d+t.L1)>2*Math.PI/t.N2)throw`err205: D2 ${t.D2} too large compare to N2 ${t.N2}`;s.logstr+=`ring-height: ${H(h)} mm
78
- `;const S=g-t.L2,f=S-t.L3,r=2*Math.PI/(2*t.N1),a=O(S,0);for(let P=0;P<t.N1;P++){const k=2*P+1,A=2*P+2,v=f*Math.cos(k*r),M=f*Math.sin(k*r),R=S*Math.cos(A*r),B=S*Math.sin(A*r);a.addSegStrokeA(v,M).addSegStrokeA(R,B)}n.addMain(b(0,0,g)),n.addMain(b(0,0,d));const _=d+t.L1,$=2*Math.PI/t.N2;for(let P=0;P<t.N2;P++){const k=_*Math.cos(P*$),A=_*Math.sin(P*$);n.addMain(b(k,A,l)),c.addSecond(b(k,A,l))}n.addSecond(a),c.addMain(b(0,0,g)),c.addMain(a),c.addSecond(b(0,0,d));const C=O(d,0).addSegStrokeA(-d,0).addSegStrokeA(-d,-t.H1).addSegStrokeA(d,-t.H1).closeSegStroke(),D=function(P){return O(P*(d+t.L1)+l,0).addSegStrokeR(-2*l,0).addSegStrokeR(0,-t.H1).addSegStrokeR(2*l,0).closeSegStroke()},x=function(P){return O(P*(g-t.L2),-t.H1).addSegStrokeR(-P*t.L3,0).addSegStrokeR(0,-t.H2).addSegStrokeR(P*t.L3,0).closeSegStroke()},w=function(P){return O(P*g,0).addSegStrokeR(-P*(g-d),0).addSegStrokeR(0,-t.H1).addSegStrokeR(P*(g-t.L2-t.L3-d),0).addSegStrokeR(0,-t.H2).addSegStrokeR(P*(t.L2+t.L3),0).closeSegStroke()};o.addSecond(C),o.addSecond(D(1)),o.addSecond(D(-1)),o.addSecond(x(1)),o.addSecond(x(-1)),o.addMain(w(1)),o.addSecond(w(-1)),s.fig={faceRingBase:n,faceRingTeeth:c,faceSection:o};const N=s.partName;s.vol={extrudes:[{outName:`subpax_${N}_base`,face:`${N}_faceRingBase`,extrudeMethod:U.eLinearOrtho,length:t.H1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${N}_teeth`,face:`${N}_faceRingTeeth`,extrudeMethod:U.eLinearOrtho,length:h,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${N}`,boolMethod:st.eUnion,inList:[`subpax_${N}_base`,`subpax_${N}_teeth`]}]},s.sub={},s.logstr+=`ring drawn successfully!
79
- `,s.calcErr=!1}catch(d){s.logstr+=d,console.log(d)}return s}var Ye={pTitle:"Heliostat ring",pDescription:"The gear ring for adjusting the azimuth of the heliostat",pDef:ce,pGeom:qe},re={partName:"ring_guidance",params:[e("D1","mm",700,100,2500,1),e("N1","legs",6,1,24,1),e("D2","mm",600,100,2e3,1),p("leg details"),e("D3","mm",30,1,200,1),e("D4","mm",50,1,200,1),e("L1","mm",90,1,900,1),e("R5","mm",20,0,500,1),p("inner"),e("D6","mm",300,1,1e3,1),e("N2","motors",8,1,200,1),e("L2","mm",50,1,200,1),e("D7","mm",80,1,200,1),p("thickness"),e("T1","mm",10,1,200,1)],paramSvg:{D1:"ring_guidance_top.svg",D2:"ring_guidance_top.svg",D3:"ring_guidance_top.svg",D4:"ring_guidance_top.svg",R5:"ring_guidance_top.svg",D6:"ring_guidance_top.svg",D7:"ring_guidance_top.svg",N1:"ring_guidance_top.svg",N2:"ring_guidance_top.svg",L1:"ring_guidance_top.svg",L2:"ring_guidance_top.svg",T1:"ring_guidance_top.svg"},sim:{tMax:100,tStep:.5,tUpdate:500}};function Xe(i,t,u=""){const s=gt(re.partName+u),n=I(),c=I();s.logstr+=`${s.partName} simTime: ${i}
80
- `;try{const o=t.D1/2,d=t.D3/2,l=t.D4/2,g=t.D6/2,h=t.D7/2,S=2*Math.PI/t.N2;if(h>t.L2)throw`err461: D7 ${t.D7} is too large compare to L2 ${t.L2}`;if(t.N2*t.D7>(t.D6+2*t.L2)*Math.PI)throw`err462: N2 ${t.N2} is too large compare to D6 ${t.D6}, D7 ${t.D7} and L2 ${t.L2}`;if(t.D2<t.D6+2*t.L2+2*h)throw`err463: D2 ${t.D2} is too small compare to D6 ${t.D6}, L2 ${t.L2} and D7 ${t.D7}`;s.logstr+=`ring_guidance: Dmax ${H(t.D1+2*l)} mm
81
- `;const[f,r,a]=te(t);s.logstr+=f,n.addMain(r),n.addMain(b(0,0,g));for(let x=0;x<t.N2;x++)n.addMain(b(g+t.L2,0,h).rotate(0,0,x*S));for(let x=0;x<t.N1;x++)n.addMain(b(o,0,d).rotate(0,0,x*a));const _=function(x,w,N,P){return O(x,w).addSegStrokeR(N,0).addSegStrokeR(0,P).addSegStrokeR(-N,0).closeSegStroke()},$=o-g+l;c.addMain(_(g,0,$,t.T1)),c.addMain(_(-g-$,0,$,t.T1)),c.addSecond(_(o-d,0,2*d,t.T1)),c.addSecond(_(-o-d,0,2*d,t.T1));const C=g+t.L2;c.addSecond(_(C-h,0,2*h,t.T1)),c.addSecond(_(-C-h,0,2*h,t.T1)),s.fig={faceTop:n,faceSection:c};const D=s.partName;s.vol={extrudes:[{outName:`subpax_${D}_top`,face:`${D}_faceTop`,extrudeMethod:U.eLinearOrtho,length:t.T1,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${D}`,boolMethod:st.eIdentity,inList:[`subpax_${D}_top`]}]},s.sub={},s.logstr+=`ring_guidance drawn successfully!
82
- `,s.calcErr=!1}catch(o){s.logstr+=o,console.log(o)}return s}var Ke={pTitle:"Ring-guidance",pDescription:"The guidance of the gear-ring for the heliostat azimuth",pDef:re,pGeom:Xe},ge={partName:"vaxis_guidance",params:[e("D1","mm",700,100,2500,1),e("N1","legs",6,1,24,1),e("D2","mm",600,100,2e3,1),p("leg details"),e("D3","mm",30,1,200,1),e("D4","mm",50,1,200,1),e("L1","mm",90,1,900,1),e("R5","mm",20,0,500,1),p("inner spring"),e("D6","mm",540,1,1e3,1),e("N2","springs",6,1,24,1),e("R7","mm",10,0,100,1),e("a1","degree",0,-45,45,1),e("E2","mm",50,1,200,1),e("E1","mm",10,1,200,1),e("W1","mm",20,1,200,1),e("L2","mm",100,1,900,1),e("L3","mm",40,1,900,1),e("N3","loops",2,0,8,1),e("L4","mm",40,0,900,1),p("thickness"),e("T1","mm",10,1,200,1),e("Dvaxis","mm",260,5,1e3,1)],paramSvg:{D1:"vaxis_guidance_top.svg",N1:"vaxis_guidance_top.svg",D2:"vaxis_guidance_top.svg",D3:"vaxis_guidance_top.svg",D4:"vaxis_guidance_top.svg",L1:"vaxis_guidance_top.svg",R5:"vaxis_guidance_top.svg",D6:"vaxis_guidance_top.svg",N2:"vaxis_guidance_top.svg",R7:"vaxis_guidance_top.svg",a1:"vaxis_guidance_spring.svg",E2:"vaxis_guidance_top.svg",E1:"vaxis_guidance_spring.svg",W1:"vaxis_guidance_spring.svg",L2:"vaxis_guidance_spring.svg",L3:"vaxis_guidance_spring.svg",N3:"vaxis_guidance_spring.svg",L4:"vaxis_guidance_spring.svg",T1:"vaxis_guidance_top.svg",Dvaxis:"vaxis_guidance_top.svg"},sim:{tMax:100,tStep:.5,tUpdate:500}};function je(i,t,u=""){const s=gt(ge.partName+u),n=I(),c=I();s.logstr+=`${s.partName} simTime: ${i}
83
- `;try{const o=t.D1/2,d=t.D2/2,l=t.D3/2,g=t.D4/2,h=t.D6/2;if(d<h)throw`err466: D6 ${t.D6} is too large compare to D2 ${t.D2}`;s.logstr+=`vaxis_guidance: Dmax ${H(t.D1+2*g)} mm
84
- `;const[S,f,r]=te(t);s.logstr+=S,n.addMain(f);for(let D=0;D<t.N1;D++)n.addMain(b(o,0,l).rotate(0,0,D*r));const[a,_]=Ne(t);s.logstr+=a,n.addMain(_),n.addSecond(b(0,0,t.Dvaxis/2));const $=o-h+g;c.addMain(ct(h,0,$,t.T1)),c.addMain(ct(-h-$,0,$,t.T1)),c.addSecond(ct(o-l,0,2*l,t.T1)),c.addSecond(ct(-o-l,0,2*l,t.T1)),s.fig={faceTop:n,faceSection:c};const C=s.partName;s.vol={extrudes:[{outName:`subpax_${C}_top`,face:`${C}_faceTop`,extrudeMethod:U.eLinearOrtho,length:t.T1,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${C}`,boolMethod:st.eIdentity,inList:[`subpax_${C}_top`]}]},s.sub={},s.logstr+=`vaxis_guidance drawn successfully!
85
- `,s.calcErr=!1}catch(o){s.logstr+=o,console.log(o)}return s}var Ze={pTitle:"Vaxis-guidance",pDescription:"The guidance of the V-Axis for the heliostat azimuth",pDef:ge,pGeom:je},ae={partName:"rod",params:[e("L1","mm",1e4,100,4e4,10),e("L2","mm",100,2,400,1),e("L3","mm",400,10,1e3,1),e("L4","mm",600,10,1e3,1),e("N1","",10,2,50,1),p("section"),e("H1","mm",200,5,4e3,1),e("E1","mm",2,1,80,1),e("E2","mm",10,1,80,1),p("pad"),e("N3","",2,1,20,1),e("N4","",4,1,20,1),e("R3","mm",100,1,500,1),e("D2","mm",10,1,100,1),e("L7","mm",10,1,300,1)],paramSvg:{L1:"rod_top.svg",L2:"rod_top.svg",L3:"rod_top.svg",L4:"rod_top.svg",H1:"rod_cut.svg",E1:"rod_cut.svg",E2:"rod_cut.svg",N1:"rod_top.svg",N3:"rod_top.svg",N4:"rod_top.svg",R3:"rod_top.svg",D2:"rod_plate.svg",L7:"rod_plate.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function Je(i,t,u=""){const s=gt(ae.partName+u);let n,c;const o=I(),d=I(),l=I();s.logstr+=`${s.partName} simTime: ${i}
86
- `;try{const g=t.D2/2,h=t.L3/(t.N3+1),S=t.L4/(t.N4+1);s.logstr+=`rod-length: ${H(t.L1)} mm
87
- `;const f=(t.L1-t.L3)/(t.N1-1);s.logstr+=`space-length: ${H(f)} mm
88
- `,n=function(P){const k=[],A=O(t.L4/2,P).addCornerRounded(t.R3).addSegStrokeA(t.L4/2,P+t.L3).addCornerRounded(t.R3).addSegStrokeA(-t.L4/2,P+t.L3).addCornerRounded(t.R3).addSegStrokeA(-t.L4/2,P).addCornerRounded(t.R3).closeSegStroke();k.push(A);for(let v=1;v<t.N3+1;v++)k.push(b(t.L4/2-t.L7,P+v*h,g)),k.push(b(-t.L4/2+t.L7,P+v*h,g));for(let v=1;v<t.N4+1;v++)k.push(b(-t.L4/2+v*S,P+t.L7,g)),k.push(b(-t.L4/2+v*S,P+t.L3-t.L7,g));return k},c=function(P,k){return O(t.L2/2,P).addSegStrokeA(t.L2/2,P+k).addSegStrokeA(-t.L2/2,P+k).addSegStrokeA(-t.L2/2,P).closeSegStroke()};const r=t.L2/2,a=t.L4/2,_=(t.L2-2*t.E1)/2,$=t.H1-t.E1,C=O(r,0).addSegStrokeA(r,t.H1).addSegStrokeA(-r,t.H1).addSegStrokeA(-r,0).closeSegStroke(),D=O(_,t.E1).addSegStrokeA(_,$).addSegStrokeA(-_,$).addSegStrokeA(-_,t.E1).closeSegStroke(),x=O(a,t.H1).addSegStrokeA(a,t.H1+t.E2).addSegStrokeA(-a,t.H1+t.E2).addSegStrokeA(-a,t.H1).closeSegStroke();o.addMain(C),o.addMain(D),o.addSecond(x),n(0).forEach(P=>d.addMain(P)),d.addSecond(c(-t.L3/2,2*t.L3));const w=(t.L1-t.L3)/(t.N1-1);for(let P=0;P<t.N1;P++)n(P*w).forEach(k=>l.addMain(k));l.addSecond(c(0,t.L1)),s.fig={faceCut:o,facePlate:d,faceTop:l};const N=s.partName;s.vol={extrudes:[{outName:`subpax_${N}_rod`,face:`${N}_faceCut`,extrudeMethod:U.eLinearOrtho,length:t.L1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${N}_plates`,face:`${N}_faceTop`,extrudeMethod:U.eLinearOrtho,length:t.E2,rotate:[Math.PI/2,0,0],translate:[0,t.E2+t.H1,0]}],volumes:[{outName:`pax_${N}`,boolMethod:st.eUnion,inList:[`subpax_${N}_rod`,`subpax_${N}_plates`]}]},s.sub={},s.logstr+=`heliostat-rod drawn successfully!
89
- `,s.calcErr=!1}catch(g){s.logstr+=g,console.log(g)}return s}var Qe={pTitle:"Heliostat rod",pDescription:"The rod of an heliostat-surface",pDef:ae,pGeom:Je},he={partName:"trapeze",params:[e("L1","mm",1600,10,4e3,1),e("L2","mm",1e3,10,4e3,1),e("L3","mm",400,5,800,1),e("L4","mm",300,5,800,1),p("outer frame"),e("N1","",7,1,20,1),e("N2","",4,1,20,1),e("D1","mm",10,1,40,1),e("L5","mm",100,1,400,1),e("L6","mm",20,1,400,1),e("R1","mm",60,1,400,1),e("R2","mm",20,1,400,1),p("inner pad"),e("N3","",2,1,20,1),e("N4","",2,1,20,1),e("D2","mm",10,1,40,1),e("L7","mm",20,1,400,1),e("R3","mm",20,1,400,1),p("diagonal shaft"),e("D3","mm",30,1,100,1),e("D4","mm",26,1,100,1),e("H1","mm",300,.5,800,.5),e("H2","mm",2,.5,800,.5),e("H3","mm",5,.5,800,.5)],paramSvg:{L1:"trapeze_top.svg",L2:"trapeze_top.svg",L3:"trapeze_top.svg",L4:"trapeze_top.svg",N1:"trapeze_top.svg",N2:"trapeze_top.svg",N3:"trapeze_top.svg",N4:"trapeze_top.svg",L5:"trapeze_top.svg",L6:"trapeze_top.svg",L7:"trapeze_top.svg",D1:"trapeze_top.svg",D2:"trapeze_top.svg",D3:"trapeze_rod.svg",D4:"trapeze_rod.svg",R1:"trapeze_top.svg",R2:"trapeze_top.svg",R3:"trapeze_top.svg",H1:"trapeze_side.svg",H2:"trapeze_side.svg",H3:"trapeze_side.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function ts(i,t,u=""){const s=gt(he.partName+u);let n,c;const o=I(),d=I(),l=I(),g=I(),h=I();s.logstr+=`${s.partName} simTime: ${i}
90
- `;try{if(t.L3>t.L1-t.L5)throw`err595: L3 ${t.L3} too large compare to L1 ${t.L1} and L5 ${t.L5}`;if(t.L4>t.L2-t.L5)throw`err596: L4 ${t.L4} too large compare to L2 ${t.L2} and L5 ${t.L5}`;if(t.H1-t.H2-t.H3<4*t.D3)throw`err597: H1 ${t.H1} too small compare to H2 ${t.H2}, H3 ${t.H3} and D3 ${t.D3}`;const S=t.R1*(1-1/Math.sqrt(2)),f=t.R3*(1-1/Math.sqrt(2)),r=t.L2/2-S-(t.L4/2-f),a=t.L1/2-S-(t.L3/2-f),_=Math.sqrt(r**2+a**2),$=t.H1-t.H2-t.H3,C=Math.sqrt(_**2+$**2),D=Math.atan2($,_),x=Math.atan2(a,r);s.logstr+=`rod-slope: length: ${H(C)} mm, angle: ${H(lt(D))} degree
91
- `,s.logstr+=`rod-xy-angle: ${H(lt(x))} degree
92
- `;const w=t.D3/Math.cos(Math.PI/2-D);s.logstr+=`rod-footprint-length: ${H(w)} mm
93
- `;const N=Math.sqrt((w/2)**2+(t.D3/2)**2),P=Math.atan2(t.D3,w);if(n=function(L,G,Y){return O(L,G).addPointRP(Y+Math.PI-P,N).addSeg2Arcs(Y+Math.PI/2,Y).addPointRP(Y+Math.PI+P,N).addSeg2Arcs(Y+Math.PI,Y+Math.PI/2).addPointRP(Y-P,N).addSeg2Arcs(Y+3*Math.PI/2,Y+Math.PI).addPointRP(Y+P,N).addSeg2Arcs(Y,Y-Math.PI/2)},c=function(L,G,Y){const X=L+N*Math.cos(Y+Math.PI-P),nt=G+N*Math.sin(Y+Math.PI-P);return O(X,nt).addSegStrokeRP(Y+Math.PI,_).addSegStrokeRP(Y-Math.PI/2,t.D3).addSegStrokeRP(Y,_).closeSegStroke()},t.R1>t.L1/4||t.R1>t.L2/4)throw`err614: R1 ${t.R1} too large compare to L1 ${t.L1} or L2 ${t.L2}`;const k=O(t.L2/2,t.L1/2).addSegStrokeA(-t.L2/2,t.L1/2).addCornerRounded(t.R1).addSegStrokeA(-t.L2/2,-t.L1/2).addCornerRounded(t.R1).addSegStrokeA(t.L2/2,-t.L1/2).addCornerRounded(t.R1).closeSegStroke().addCornerRounded(t.R1);if(t.R2>(t.L1-2*t.L5)/4||t.R2>(t.L2-2*t.L5)/4)throw`err627: R2 ${t.R2} too large compare to L1 ${t.L1}, L2 ${t.L2} and L5 ${t.L5}`;const A=O(t.L2/2-t.L5,t.L1/2-t.L5).addSegStrokeA(-t.L2/2+t.L5,t.L1/2-t.L5).addCornerRounded(t.R2).addSegStrokeA(-t.L2/2+t.L5,-t.L1/2+t.L5).addCornerRounded(t.R2).addSegStrokeA(t.L2/2-t.L5,-t.L1/2+t.L5).addCornerRounded(t.R2).closeSegStroke().addCornerRounded(t.R2);if(t.R3>t.L3/4||t.R3>t.L4/4)throw`err639: R3 ${t.R3} too large compare to L3 ${t.L3} or L4 ${t.L4}`;const v=O(t.L4/2,t.L3/2).addSegStrokeA(-t.L4/2,t.L3/2).addCornerRounded(t.R3).addSegStrokeA(-t.L4/2,-t.L3/2).addCornerRounded(t.R3).addSegStrokeA(t.L4/2,-t.L3/2).addCornerRounded(t.R3).closeSegStroke().addCornerRounded(t.R3);o.addMain(k),o.addMain(A),o.addSecond(v);const M=t.L1/(t.N1+1),R=t.L2/(t.N2+1),B=t.L3/(t.N3+1),E=t.L4/(t.N4+1);if(t.L5<t.D1/2+t.L6)throw`err658: L5 ${t.L5} too small compare to D1 ${t.D1} or L6 ${t.L6}`;if(B<t.D2/2+t.L7)throw`err661: D2 ${t.D2} or L7 ${t.L7} too large compare to L3 ${t.l3}`;if(E<t.D2/2+t.L7)throw`err664: D2 ${t.D2} or L7 ${t.L7} too large compare to L4 ${t.l4}`;const m=[];for(let L=1;L<t.N1+1;L++)m.push(b(t.L2/2-t.L6,-t.L1/2+L*M,t.D1/2)),m.push(b(-t.L2/2+t.L6,-t.L1/2+L*M,t.D1/2));for(let L=1;L<t.N2+1;L++)m.push(b(-t.L2/2+L*R,t.L1/2-t.L6,t.D1/2)),m.push(b(-t.L2/2+L*R,-t.L1/2+t.L6,t.D1/2));const y=[];for(let L=1;L<t.N3+1;L++)y.push(b(t.L4/2-t.L7,-t.L3/2+L*B,t.D2/2)),y.push(b(-t.L4/2+t.L7,-t.L3/2+L*B,t.D2/2));for(let L=1;L<t.N4+1;L++)y.push(b(-t.L4/2+L*E,t.L3/2-t.L7,t.D2/2)),y.push(b(-t.L4/2+L*E,-t.L3/2+t.L7,t.D2/2));m.forEach(L=>{o.addMain(L)}),y.forEach(L=>{o.addSecond(L)});const z=[];z.push(n(t.L2/2-S,t.L1/2-S,x)),z.push(n(t.L4/2-f,t.L3/2-f,x)),z.push(n(-t.L2/2+S,t.L1/2-S,Math.PI-x)),z.push(n(-t.L4/2+f,t.L3/2-f,Math.PI-x)),z.push(n(-t.L2/2+S,-t.L1/2+S,Math.PI+x)),z.push(n(-t.L4/2+f,-t.L3/2+f,Math.PI+x)),z.push(n(t.L2/2-S,-t.L1/2+S,-x)),z.push(n(t.L4/2-f,-t.L3/2+f,-x));const j=[];if(j.push(c(t.L2/2-S,t.L1/2-S,x)),j.push(c(-t.L2/2+S,t.L1/2-S,Math.PI-x)),j.push(c(-t.L2/2+S,-t.L1/2+S,Math.PI+x)),j.push(c(t.L2/2-S,-t.L1/2+S,-x)),z.forEach(L=>{o.addSecond(L)}),j.forEach(L=>{o.addSecond(L)}),d.addMain(v),y.forEach(L=>{d.addMain(L)}),d.addSecond(k),d.addSecond(A),m.forEach(L=>{d.addSecond(L)}),z.forEach(L=>{d.addSecond(L)}),j.forEach(L=>{d.addSecond(L)}),t.D4>=t.D3)throw`err218: D4 ${t.D4} larger than D3 ${t.D3}`;l.addMain(b(0,0,t.D3/2)),l.addSecond(b(0,0,t.D4/2)),g.addMain(b(0,0,t.D4/2)),g.addSecond(b(0,0,t.D3/2));const Z=t.D3*Math.cos(D),tt=Z/Math.tan(D),F=f+(w/2+tt)*Math.cos(x),et=f+(w/2+tt)*Math.sin(x),K=C+2*(w+tt+Z),q=K+t.L3+t.L4+Z,W=O(q,q).addSegStrokeA(-q,q).addSegStrokeA(-q,-q).addSegStrokeA(q,-q).closeSegStroke();h.addMain(W),s.fig={faceFrame:o,facePlate:d,faceRod:l,faceRodHollow:g,faceCutRod:h};const V=s.partName;s.vol={extrudes:[{outName:`subpax_${V}_frame`,face:`${V}_faceFrame`,extrudeMethod:U.eLinearOrtho,length:t.H2,rotate:[0,0,0],translate:[0,0,t.H1-t.H2]},{outName:`subpax_${V}_plate`,face:`${V}_facePlate`,extrudeMethod:U.eLinearOrtho,length:t.H3,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${V}_rod1`,face:`${V}_faceRod`,extrudeMethod:U.eLinearOrtho,length:K,rotate:[0,Math.PI/2-D,x],translate:[t.L4/2-F,t.L3/2-et,t.H3-Z]},{outName:`subpax_${V}_rod2`,face:`${V}_faceRod`,extrudeMethod:U.eLinearOrtho,length:K,rotate:[0,Math.PI/2-D,Math.PI-x],translate:[-t.L4/2+F,t.L3/2-et,t.H3-Z]},{outName:`subpax_${V}_rod3`,face:`${V}_faceRod`,extrudeMethod:U.eLinearOrtho,length:K,rotate:[0,Math.PI/2-D,Math.PI+x],translate:[-t.L4/2+F,-t.L3/2+et,t.H3-Z]},{outName:`subpax_${V}_rod4`,face:`${V}_faceRod`,extrudeMethod:U.eLinearOrtho,length:K,rotate:[0,Math.PI/2-D,-x],translate:[t.L4/2-F,-t.L3/2+et,t.H3-Z]},{outName:`subpax_${V}_rodH1`,face:`${V}_faceRodHollow`,extrudeMethod:U.eLinearOrtho,length:K,rotate:[0,Math.PI/2-D,x],translate:[t.L4/2-F,t.L3/2-et,t.H3-Z]},{outName:`subpax_${V}_rodH2`,face:`${V}_faceRodHollow`,extrudeMethod:U.eLinearOrtho,length:K,rotate:[0,Math.PI/2-D,Math.PI-x],translate:[-t.L4/2+F,t.L3/2-et,t.H3-Z]},{outName:`subpax_${V}_rodH3`,face:`${V}_faceRodHollow`,extrudeMethod:U.eLinearOrtho,length:K,rotate:[0,Math.PI/2-D,Math.PI+x],translate:[-t.L4/2+F,-t.L3/2+et,t.H3-Z]},{outName:`subpax_${V}_rodH4`,face:`${V}_faceRodHollow`,extrudeMethod:U.eLinearOrtho,length:K,rotate:[0,Math.PI/2-D,-x],translate:[t.L4/2-F,-t.L3/2+et,t.H3-Z]},{outName:`subpax_${V}_cut1`,face:`${V}_faceCutRod`,extrudeMethod:U.eLinearOrtho,length:q,rotate:[0,0,0],translate:[0,0,-q]},{outName:`subpax_${V}_cut2`,face:`${V}_faceCutRod`,extrudeMethod:U.eLinearOrtho,length:q,rotate:[0,0,0],translate:[0,0,t.H1]}],volumes:[{outName:`ipax_${V}_rawRod`,boolMethod:st.eUnion,inList:[`subpax_${V}_rod1`,`subpax_${V}_rod2`,`subpax_${V}_rod3`,`subpax_${V}_rod4`]},{outName:`ipax_${V}_rodHollow`,boolMethod:st.eUnion,inList:[`subpax_${V}_rodH1`,`subpax_${V}_rodH2`,`subpax_${V}_rodH3`,`subpax_${V}_rodH4`]},{outName:`ipax_${V}_halfRods`,boolMethod:st.eSubstraction,inList:[`ipax_${V}_rawRod`,`subpax_${V}_cut1`]},{outName:`ipax_${V}_rods`,boolMethod:st.eSubstraction,inList:[`ipax_${V}_halfRods`,`subpax_${V}_cut2`]},{outName:`ipax_${V}_plus`,boolMethod:st.eUnion,inList:[`subpax_${V}_frame`,`subpax_${V}_plate`,`ipax_${V}_rods`]},{outName:`pax_${V}`,boolMethod:st.eSubstraction,inList:[`ipax_${V}_plus`,`ipax_${V}_rodHollow`]}]},s.sub={},s.logstr+=`trapeze drawn successfully!
94
- `,s.calcErr=!1}catch(S){s.logstr+=S,console.log(S)}return s}var es={pTitle:"Heliostat trapeze",pDescription:"The support of one solar panel. Made out of aluminium for lightness and cooling",pDef:he,pGeom:ts},ue={partName:"surface",params:[e("LH","mm",1600,10,4e3,1),e("LV","mm",1e3,10,4e3,1),e("LZ","mm",40,0,100,1),e("nx","",9,1,40,1),e("ny","",9,1,40,1),p("main fantasia"),xt("main_direction",["horizontal","vertical"]),ut("crenel",!1),e("first_row","",9,1,40,1),e("second_row","",9,1,40,1),p("horizontal spacing"),e("EH","mm",10,0,1e3,1),ut("EH_gradient",!1),e("EH_sup","mm",500,0,1e3,1),e("EH_cycle","",1,0,3,.05),e("EH_start","",0,0,1,.05),xt("EH_shape",["sinusoid","triangle","sawUp","sawDown"]),p("vertical spacing"),e("EV","mm",10,0,1e3,1),ut("EV_gradient",!1),e("EV_sup","mm",500,0,1e3,1),e("EV_cycle","",1,0,3,.05),e("EV_start","",0,0,1,.05),xt("EV_shape",["sinusoid","triangle","sawUp","sawDown"]),p("solar power"),e("power_efficiency","%",16,0,100,.1),e("solar_power","W/m2",816,100,2e3,1)],paramSvg:{LH:"surface_main.svg",LV:"surface_main.svg",LZ:"surface_lz.svg",nx:"surface_main.svg",ny:"surface_main.svg",main_direction:"surface_crenel.svg",crenel:"surface_crenel.svg",first_row:"surface_extremities.svg",second_row:"surface_extremities.svg",EH:"surface_main.svg",EH_gradient:"surface_space_evolution.svg",EH_sup:"surface_space_evolution.svg",EH_cycle:"surface_space_evolution.svg",EH_start:"surface_space_evolution.svg",EH_shape:"surface_space_shape.svg",EV:"surface_main.svg",EV_gradient:"surface_space_evolution.svg",EV_sup:"surface_space_evolution.svg",EV_cycle:"surface_space_evolution.svg",EV_start:"surface_space_evolution.svg",EV_shape:"surface_space_shape.svg",power_efficiency:"surface_power.svg",solar_power:"surface_power.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function ss(i,t,u=""){const s=gt(ue.partName+u);let n;const c=I(),o=I();s.logstr+=`${s.partName} simTime: ${i}
95
- `;try{const d=t.LH*t.LV/1e6,l=t.solar_power*d*t.power_efficiency/100;s.logstr+=`panel surface: ${H(d)} m2
96
- `,s.logstr+=`panel power: ${H(l)} W
97
- `;const g=t.nx*t.ny;s.logstr+=`max panel number: ${g}
98
- `,s.logstr+=`max panel surface: ${H(g*d)} m2
99
- `,s.logstr+=`max panel power: ${H(g*l)} W
100
- `;const h=t.main_direction===1?t.ny:t.nx,S=t.main_direction===1?t.nx:t.ny,f=t.main_direction===1?t.EV:t.EH,r=t.main_direction===1?t.EV_gradient:t.EH_gradient,a=t.main_direction===1?t.EV_sup:t.EH_sup,_=t.main_direction===1?t.EV_cycle:t.EH_cycle,$=t.main_direction===1?t.EV_start:t.EH_start,C=t.main_direction===1?t.EV_shape:t.EH_shape,D=t.main_direction===0?t.EV:t.EH,x=t.main_direction===0?t.EV_gradient:t.EH_gradient,w=t.main_direction===0?t.EV_sup:t.EH_sup,N=t.main_direction===0?t.EV_cycle:t.EH_cycle,P=t.main_direction===0?t.EV_start:t.EH_start,k=t.main_direction===0?t.EV_shape:t.EH_shape,A=Math.max(S,t.first_row,t.second_row),v=[];for(let W=0;W<h;W++){const V=(W+1)%2,L=t.crenel?S-V:S;v.push(L)}v[0]=t.first_row,v[v.length-1]=t.first_row,h>2&&(v[1]=t.second_row,v[v.length-2]=t.second_row);let M=0;v.forEach(W=>{M+=W}),s.logstr+=`actual panel number: ${M} (${H(100*M/g)} %)
101
- `,s.logstr+=`actual panel surface: ${H(M*d)} m2
102
- `,s.logstr+=`actual panel power: ${H(M*l)} W
103
- `;const R=[];for(let W=0;W<h-1;W++){let V=f;if(r===1){const L=h>2?h-2:1,G=($+W*_/L)%1;switch(C){case 0:V+=a*(1-Math.cos(G*2*Math.PI))/2;break;case 1:V+=a*(1-2*Math.abs(G-.5));break;case 2:V+=a*G;break;case 3:V+=a*(1-G);break;default:V+=a}}R.push(V)}let B=0;const E=[];E.push(0),R.forEach(W=>{B+=W,E.push(B)});const m=[];for(let W=0;W<A-1;W++){let V=D;if(x===1){const L=A>2?A-2:1,G=(P+W*N/L)%1;switch(k){case 0:V+=w*(1-Math.cos(G*2*Math.PI))/2;break;case 1:V+=w*(1-2*Math.abs(G-.5));break;case 2:V+=w*G;break;case 3:V+=w*(1-G);break;default:V+=w}}m.push(V)}let y=0;const z=[];z.push(0),m.forEach(W=>{y+=W,z.push(y)});let j=0,Z=0;t.main_direction===0?(j=h*t.LH+B,Z=A*t.LV+y):(j=A*t.LH+y,Z=h*t.LV+B);const tt=j*Z/10**6;s.logstr+=`global horizontal width: ${H(j/1e3)} m
104
- `,s.logstr+=`global vertical height: ${H(Z/1e3)} m
105
- `,s.logstr+=`global area: ${H(tt)} m2
106
- `,s.logstr+=`area efficiency: ${H(100*M*d/tt)} %
107
- `;const F=-j/2,et=-Z/2;n=function(W,V){return O(W,V).addSegStrokeA(W+t.LH,V).addSegStrokeA(W+t.LH,V+t.LV).addSegStrokeA(W,V+t.LV).closeSegStroke()};const K=[];v.forEach((W,V)=>{const L=(A-W)%2,G=Math.floor((A-W)/2);for(let Y=0;Y<W;Y++){let X=0,nt=0;t.main_direction===0?(X=F+V*t.LH+E[V],nt=et+(G+Y)*t.LV+z[G+Y],L===1&&(nt+=(t.LV+z[G+Y+1]-z[G+Y])/2)):(nt=et+V*t.LV+E[V],X=F+(G+Y)*t.LH+z[G+Y],L===1&&(X+=(t.LH+z[G+Y+1]-z[G+Y])/2)),K.push([X,nt])}});for(const W of K)c.addMain(n(W[0],W[1]));o.addMain(n(0,0)),s.fig={faceSurface:c,faceOnePanel:o};const q=s.partName;s.vol={extrudes:K.map((W,V)=>({outName:`subpax_${q}_panel_${V}`,face:`${q}_faceOnePanel`,extrudeMethod:U.eLinearOrtho,length:t.LZ,rotate:[0,0,0],translate:[W[0],W[1],0]})),volumes:[{outName:`pax_${q}`,boolMethod:st.eUnion,inList:K.map((W,V)=>`subpax_${q}_panel_${V}`)}]},s.sub={},s.logstr+=`panel-surface drawn successfully!
108
- `,s.calcErr=!1}catch(d){s.logstr+=d,console.log(d)}return s}var os={pTitle:"Heliostat panel-surface",pDescription:"The surface collecting the solar power",pDef:ue,pGeom:ss};const _e={"gear/gear_wheel_wheel":Tt,"gear/simplified_gear_wheel":Ae,"heliostat/heliostat":Fe,"heliostat/heliostat_2":ze,"heliostat/base":Ue,"heliostat/pole_static":Mt,"heliostat/vaxis":We,"heliostat/ring":Ye,"heliostat/vaxis_holder":Dt,"heliostat/ring_guidance":Ke,"heliostat/vaxis_guidance":Ze,"heliostat/rake":bt,"heliostat/rake_stopper":zt,"heliostat/spider":mt,"heliostat/swing":kt,"heliostat/rod":Qe,"heliostat/trapeze":es,"heliostat/surface":os};function is(i){const t=/^.*\//g;return i.replace(t,"")}function ns(i){const t={};for(const u of Object.keys(i)){const s=is(u);t[s]=`/${u}`}return t}function ls(i){const t=[];for(const u of Object.keys(i))t.push(u);return t}const gs=ns(_e),as=ls(_e);export{_e as a,gs as b,as as d};
@@ -1 +0,0 @@
1
- var s;const e=((s=globalThis.__sveltekit_1csb19u)==null?void 0:s.base)??"";var a;const t=((a=globalThis.__sveltekit_1csb19u)==null?void 0:a.assets)??e;export{t as a,e as b};
@@ -1 +0,0 @@
1
- import{a as t}from"../chunks/entry.BFGRtcGn.js";export{t as start};