designix-uis 0.5.5 → 0.5.7

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 (64) hide show
  1. package/README.md +4 -4
  2. package/dist/designix-uis.js +10 -10
  3. package/dist/public/_app/immutable/assets/3.Bup7ghXO.css +1 -0
  4. package/dist/public/_app/immutable/assets/_page.Bup7ghXO.css +1 -0
  5. package/dist/public/_app/immutable/chunks/entry.CvQN4-CP.js +3 -0
  6. package/dist/public/_app/immutable/chunks/index.B1V6a0LN.js +114 -0
  7. package/dist/public/_app/immutable/chunks/makeList.BbRnRNo4.js +107 -0
  8. package/dist/public/_app/immutable/chunks/paths.CBp0CbcD.js +1 -0
  9. package/dist/public/_app/immutable/chunks/{stores.BKlAuQ9I.js → stores.BGMuV-X9.js} +1 -1
  10. package/dist/public/_app/immutable/entry/app.D-jlcGB6.js +7 -0
  11. package/dist/public/_app/immutable/entry/start.vT33BC3n.js +1 -0
  12. package/dist/public/_app/immutable/nodes/{0.BybmEEOs.js → 0.Q7aJGYxi.js} +1 -1
  13. package/dist/public/_app/immutable/nodes/{1.BL84drKm.js → 1.DeiZbOnb.js} +1 -1
  14. package/dist/public/_app/immutable/nodes/{2.ChgTZ3YE.js → 2.CCSKSAmq.js} +1 -1
  15. package/dist/public/_app/immutable/nodes/3.BOrBrapn.js +18 -0
  16. package/dist/public/_app/version.json +1 -1
  17. package/dist/public/gear/gear_wheel_wheel.html +20 -20
  18. package/dist/public/gear/simplified_gear_wheel.html +37 -37
  19. package/dist/public/heliostat/base.html +20 -20
  20. package/dist/public/heliostat/heliostat.html +25 -25
  21. package/dist/public/heliostat/heliostat_2.html +24 -24
  22. package/dist/public/heliostat/pole_static.html +20 -20
  23. package/dist/public/heliostat/rake.html +20 -20
  24. package/dist/public/heliostat/rake_stopper.html +20 -20
  25. package/dist/public/heliostat/ring.html +59 -0
  26. package/dist/public/heliostat/ring_guidance.html +59 -0
  27. package/dist/public/heliostat/rod.html +20 -20
  28. package/dist/public/heliostat/spider.html +20 -20
  29. package/dist/public/heliostat/surface.html +20 -20
  30. package/dist/public/heliostat/swing.html +20 -20
  31. package/dist/public/heliostat/trapeze.html +20 -20
  32. package/dist/public/heliostat/vaxis.html +59 -0
  33. package/dist/public/heliostat/vaxis_guidance.html +59 -0
  34. package/dist/public/heliostat/vaxis_holder.html +65 -0
  35. package/dist/public/index.html +19 -19
  36. package/dist/public/pgdsvg/heliostat.svg +1 -1
  37. package/dist/public/pgdsvg/heliostat_overview.svg +1 -1
  38. package/dist/public/pgdsvg/heliostat_side.svg +1 -1
  39. package/dist/public/pgdsvg/ring.svg +1 -0
  40. package/dist/public/pgdsvg/ring_guidance.svg +1 -0
  41. package/dist/public/pgdsvg/ring_guidance_top.svg +1 -0
  42. package/dist/public/pgdsvg/ring_section.svg +1 -0
  43. package/dist/public/pgdsvg/ring_top.svg +1 -0
  44. package/dist/public/pgdsvg/vaxis.svg +1 -0
  45. package/dist/public/pgdsvg/vaxis_guidance.svg +1 -0
  46. package/dist/public/pgdsvg/vaxis_guidance_spring.svg +1 -0
  47. package/dist/public/pgdsvg/vaxis_guidance_top.svg +1 -0
  48. package/dist/public/pgdsvg/vaxis_holder.svg +1 -0
  49. package/dist/public/pgdsvg/vaxis_holder_section.svg +1 -0
  50. package/dist/public/pgdsvg/vaxis_holder_top.svg +1 -0
  51. package/package.json +10 -10
  52. package/dist/public/_app/immutable/assets/3.wWOitVXS.css +0 -1
  53. package/dist/public/_app/immutable/assets/_page.wWOitVXS.css +0 -1
  54. package/dist/public/_app/immutable/chunks/entry.BnBscX9s.js +0 -3
  55. package/dist/public/_app/immutable/chunks/index.IHydPqp2.js +0 -114
  56. package/dist/public/_app/immutable/chunks/makeList.BsKrjN6b.js +0 -88
  57. package/dist/public/_app/immutable/chunks/paths.CBfpPc2G.js +0 -1
  58. package/dist/public/_app/immutable/entry/app.LQWaJM6O.js +0 -7
  59. package/dist/public/_app/immutable/entry/start.DK5hR2C-.js +0 -1
  60. package/dist/public/_app/immutable/nodes/3.C9z3viO7.js +0 -17
  61. package/dist/public/heliostat/pole_rotor.html +0 -59
  62. package/dist/public/pgdsvg/pole_rotor.svg +0 -1
  63. /package/dist/public/pgdsvg/{pole_rotor_cut.svg → vaxis_cut.svg} +0 -0
  64. /package/dist/public/pgdsvg/{pole_rotor_ends.svg → vaxis_ends.svg} +0 -0
@@ -0,0 +1,107 @@
1
+ var _e=Object.defineProperty;var fe=(n,t,_)=>t in n?_e(n,t,{enumerable:!0,configurable:!0,writable:!0,value:_}):n[t]=_;var F=(n,t,_)=>(fe(n,typeof t!="symbol"?t+"":t,_),_);import{p as e,a as p,b as ct,c as vt,i as dt,d as xt,f as D,g as m,E as z,h as J,j as at,k as gt,l as ht,r as it,m as k,n as et,t as It,o as T,q as nt,s as Et,u as Rt,w as Vt,S as Dt,v as Se}from"./index.B1V6a0LN.js";var Le=class{constructor(n,t,_,s,i){F(this,"base_center_x");F(this,"base_center_y");F(this,"base_radius");F(this,"initial_angle");F(this,"right_nleft");this.base_center_x=n,this.base_center_y=t,this.base_radius=_,this.initial_angle=s,this.right_nleft=i}angleSign(){return this.right_nleft?1:-1}lFromU(n){return this.base_radius*Math.sqrt(1+n**2)}wFromU(n){if(n<0)throw`err729: involute parameter au ${n} is negative`;if(Math.abs(n)>Math.PI/2)throw`err730: involute parameter au ${n} is larger than PI/2`;return this.angleSign()*(n-Math.atan(n))}w2FromU(n){return this.initial_angle+this.wFromU(n)}ptc(n){const t=this.lFromU(n),_=this.w2FromU(n),s=this.base_center_x+Math.cos(_)*t,i=this.base_center_y+Math.sin(_)*t;return[s,i]}ptcta(n){return this.initial_angle+this.angleSign()*n}uFromL(n){return Math.sqrt(n**2/this.base_radius**2-1)}uFromWslow(n){let _=Math.PI/3,s=_/2,i=this.wFromU(_),a=0;for(;Math.abs(i-n)>1e-4;)i<n?_+=s:_-=s,i=this.wFromU(_),s=s/2,a+=1;return console.log(`dbg072: uFromWslow itcnt ${a}`),_}laptc(n,t,_,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 i=n+t,a=this.base_center_x+Math.cos(i)*this.base_radius,o=this.base_center_y+Math.sin(i)*this.base_radius,l=i-this.angleSign()*Math.PI/2,d=_*this.base_radius,f=a+Math.cos(l)*d,c=o+Math.sin(l)*d,u=this.lFromU(_)*s,r=_,g=Math.cos(r)*u,H=Math.sin(r)*u;return[f,c,g,H]}};function _t(n,t,_,s,i){return new Le(n,t,_,s,i)}var He=class{constructor(){F(this,"mod",1);F(this,"TN",23);F(this,"as",1);F(this,"cx",0);F(this,"cy",0);F(this,"brr",50);F(this,"blr",50);F(this,"ar",54);F(this,"pr",53);F(this,"dr",52);F(this,"br",51);F(this,"bRound",1);F(this,"adt",.5);F(this,"initAngle",0);F(this,"axisAngle",0);F(this,"involArcPairs",1);F(this,"skinThickness",0);F(this,"involuteR",_t(0,0,50,0,!0));F(this,"involuteL",_t(0,0,50,0,!1));F(this,"rud",0);F(this,"rup",0);F(this,"rua",0);F(this,"rwd",0);F(this,"rwp",0);F(this,"rwa",0);F(this,"lud",0);F(this,"lup",0);F(this,"lua",0);F(this,"lwd",0);F(this,"lwp",0);F(this,"lwa",0);F(this,"msg");F(this,"initStep",0);this.mod=1,this.msg="",this.initStep=0}incInitStep(n){if(this.initStep+1!==n)throw`err834: incInitStep initStep ${this.initStep} and target ${n} are not compatible`;this.initStep=n}checkInitStep(n,t){if(this.initStep<n)throw`err835: checkInitStep for ${t} initStep ${this.initStep} is too small compare to targetMin ${n}`}set1ModuleToothNumber(n,t){this.incInitStep(1),this.mod=n,this.TN=t,this.pr=this.mod*this.TN/2,this.as=2*Math.PI/this.TN}set2CenterPosition(n,t){this.incInitStep(2),this.cx=n,this.cy=t}set3CircleRadius(n,t,_,s){this.incInitStep(3),this.ar=this.pr+this.mod*n,this.dr=this.pr-this.mod*t,this.br=this.dr-this.mod*_,this.bRound=s}set4BaseCircles(n,t){this.incInitStep(4),this.brr=n,this.blr=t}set5AddendumThickness(n){this.incInitStep(5),this.adt=n/100}set6Angles(n,t){this.incInitStep(6),this.initAngle=n,this.axisAngle=t}set7InvoluteDetails(n,t){this.incInitStep(7),this.involArcPairs=n,this.skinThickness=t}getRefCircles(){return this.checkInitStep(4,"getRefCircles"),[k(this.cx,this.cy,this.ar,"Azure"),k(this.cx,this.cy,this.pr,"Azure"),k(this.cx,this.cy,this.dr,"Azure"),k(this.cx,this.cy,this.br,"Azure"),k(this.cx,this.cy,this.brr,"CornFlowerBlue"),k(this.cx,this.cy,this.blr,"Crimson")]}calcInvoluteAngles(){this.checkInitStep(4,"calcInvoluteAngles"),this.involuteR=_t(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=_t(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 n=this.as*this.adt,t=this.rwa-this.rwp,_=Math.abs(this.lwa-this.lwp),s=n-t-_;if(s<0)throw`err554: No remaining Addendum reserve ${D(s)}
2
+ `;const i=this.as*(1-this.adt),a=this.rwp-this.rwd,o=Math.abs(this.lwp-this.lwd),l=i-a-o;if(l<2*Math.atan2(this.bRound,this.br))throw`err555: No remaining Dedendum reserve ${D(l)} compare to bRound ${D(this.bRound)}
3
+ `}getToothRef(){const n=6*this.involArcPairs,t=0;this.checkInitStep(7,"getProfile"),this.calcInvoluteAngles();const _=(this.rua-this.rud)/n,s=(this.lua-this.lud)/n,i=this.initAngle+t*this.as,a=_t(this.cx,this.cy,this.brr,i-this.rwp,!0),[o,l]=a.ptc(this.rud+0*_),d=m(o,l,"Gold");for(let h=0;h<n;h++){const[u,r]=a.ptc(this.rud+(h+1)*_);d.addSegStrokeA(u,r)}const f=i+this.as*this.adt,c=_t(this.cx,this.cy,this.blr,f-this.lwp,!1);for(let h=0;h<n+1;h++){const[u,r]=c.ptc(this.lud+(n-h)*s);d.addSegStrokeA(u,r)}return d.closeSegStroke(),d}getProfile(){this.checkInitStep(7,"getProfile"),this.calcInvoluteAngles(),this.checkProfileConditions();const n=this.rwd-this.rwp,t=this.lwd-this.lwp,_=this.dr>this.brr?this.dr:this.brr,s=this.dr>this.blr?this.dr:this.blr;if(this.bRound>_-this.br)throw`err409: getProfile bRound ${D(this.bRound)} too large for erdr ${D(_)} and br ${D(this.br)}`;if(this.bRound>s-this.br)throw`err408: getProfile bRound ${D(this.bRound)} too large for eldr ${D(s)} and br ${D(this.br)}`;const i=(this.rua-this.rud)/this.involArcPairs,a=(this.lua-this.lud)/this.involArcPairs,o=et(this.cx,this.cy),l=o.translatePolar(this.initAngle+n,this.br),d=m(l.cx,l.cy);for(let f=0;f<this.TN;f++){const c=this.initAngle+f*this.as,h=o.translatePolar(c+n,this.br);d.addSegStrokeA(h.cx,h.cy).addCornerRounded(this.bRound);const u=_t(this.cx,this.cy,this.brr,c-this.rwp,!0),[r,g]=u.ptc(this.rud),H=u.ptcta(this.rud),E=et(r,g).translatePolar(H-Math.PI/2,this.skinThickness);d.addSegStrokeA(E.cx,E.cy);for(let w=0;w<this.involArcPairs;w++){const x=this.rud+w*i,[R,V]=u.ptc(x+i),A=u.ptcta(x),B=u.ptcta(x+i)+Math.PI,y=et(R,V).translatePolar(A-Math.PI/2,this.skinThickness);d.addPointA(y.cx,y.cy).addSeg2Arcs(A,B)}const I=c+this.as*this.adt,v=_t(this.cx,this.cy,this.blr,I-this.lwp,!1),$=this.lud+this.involArcPairs*a,[S,b]=v.ptc($),L=v.ptcta($)+Math.PI,P=et(S,b).translatePolar(L-Math.PI/2,this.skinThickness);d.addSegStrokeA(P.cx,P.cy);for(let w=0;w<this.involArcPairs;w++){const x=this.lud+(this.involArcPairs-w)*a,[R,V]=v.ptc(x-a),A=v.ptcta(x)+Math.PI,B=v.ptcta(x-a),y=et(R,V).translatePolar(A-Math.PI/2,this.skinThickness);d.addPointA(y.cx,y.cy).addSeg2Arcs(A,B)}const M=o.translatePolar(I+t,this.br);d.addSegStrokeA(M.cx,M.cy).addCornerRounded(this.bRound)}return d.closeSegStroke(),d}getMsg(){return this.msg}};function Xt(){return new He}function De(n,t,_,s){n.checkInitStep(1,"helper.gw2center-1"),t.checkInitStep(1,"helper.gw2center-2");const i=n.pr+t.pr+s,a=n.cx+i*Math.cos(_),o=n.cy+i*Math.sin(_);return[a,o,i]}function ve(n,t,_,s,i,a,o,l,d){n.checkInitStep(3,"helper.baseCircles-1"),t.checkInitStep(3,"helper.baseCircles-2");let f=_,c=i,h=s,u=a;const r=l,g=d;return r===0&&(t.TN>n.TN?(f=n.dr,c=f*t.TN/n.TN):(c=t.dr,f=c*n.TN/t.TN)),g===0&&(t.TN>n.TN?(h=n.dr,u=h*t.TN/n.TN):(u=t.dr,h=u*n.TN/t.TN)),o===1&&(h=f,u=c),[f,h,c,u]}var xe=class{constructor(n,t,_,s,i,a){F(this,"gw1");F(this,"gw2");F(this,"initAngle1");F(this,"angleCenterCenter");F(this,"interAxis");F(this,"rightLeftCenter2");F(this,"msg");F(this,"apr");F(this,"apl");F(this,"lBDr",0);F(this,"lBDl",0);F(this,"laStartRr1",0);F(this,"laStartRr2",0);F(this,"laStartRl1",0);F(this,"laStartRl2",0);F(this,"aFODr1",0);F(this,"aFODr2",0);F(this,"aFODl1",0);F(this,"aFODl2",0);F(this,"lasr1",0);F(this,"lasr2",0);F(this,"lasl1",0);F(this,"lasl2",0);F(this,"firstToothUr1",0);F(this,"firstToothUl1",0);F(this,"ftdr1",0);F(this,"ftdl1",0);this.gw1=n,this.gw2=t,this.initAngle1=_,this.angleCenterCenter=s,this.interAxis=i,this.rightLeftCenter2=a,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 ${D(this.interAxis)} is too large compare to gw1.ar ${D(this.gw1.ar)} and gw2.ar ${D(this.gw2.ar)}
4
+ `),nt(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} = ${D(this.gw1.TN/this.gw2.TN)} and brr1/brr2 = ${D(this.gw1.brr)}/${D(this.gw2.brr)} = ${D(this.gw1.brr/this.gw2.brr)}
5
+ `),nt(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} = ${D(this.gw1.TN/this.gw2.TN)} and blr1/blr2 = ${D(this.gw1.blr)}/${D(this.gw2.blr)} = ${D(this.gw1.blr/this.gw2.blr)}
6
+ `)}check2(){this.gw1.checkInitStep(5,"ActionLine.check2-1"),this.gw2.checkInitStep(5,"ActionLine.check2-2"),nt(this.gw1.adt+this.gw2.adt-1)>0&&(this.msg+=`warn281: addendum thickness too large: adt1 ${D(this.gw1.adt)} adt2 ${D(this.gw2.adt)}
7
+ `);const n=this.gw1.ar-this.gw1.pr,t=this.gw1.pr-this.gw1.dr,_=this.gw2.ar-this.gw2.pr,s=this.gw2.pr-this.gw2.dr;nt(s-n)<0&&(this.msg+=`warn282: addendum-1 ${D(n)} larger than dedendum-2 ${D(s)}
8
+ `),nt(t-_)<0&&(this.msg+=`warn283: addendum-2 ${D(_)} larger than dedendum-1 ${D(t)}
9
+ `)}calcActionLine(){this.gw1.checkInitStep(4,"ActionLine.calcActionLine-1"),this.gw2.checkInitStep(4,"ActionLine.calcActionLine-2"),this.gw1.calcInvoluteAngles(),this.gw2.calcInvoluteAngles();const n=this.interAxis*this.gw1.brr/(this.gw1.brr+this.gw2.brr),t=this.interAxis*this.gw1.blr/(this.gw1.blr+this.gw2.blr),_=this.interAxis-n,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: ${D(it(this.apr))} left: ${D(it(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: ${D(this.lBDr)} left: ${D(this.lBDl)} mm
11
+ `;const i=Math.PI/2+this.apr,a=Et(this.gw1.ar,n,i);this.aFODr1=Math.PI-i-a;const o=this.gw1.rua-this.apr-this.gw1.rwa;if(nt(this.aFODr1-o)!==0)throw`dbg378: aFODr1 ${this.aFODr1} and aFODr1Alt ${o} differ`;const l=Rt(n,this.gw1.ar,this.aFODr1),d=i,f=Et(this.gw2.ar,_,d);this.aFODr2=Math.PI-d-f;const c=this.gw2.rua-this.apr-this.gw2.rwa;if(nt(this.aFODr2-c)!==0)throw`dbg379: aFODr2 ${this.aFODr2} and aFODr2Alt ${c} differ`;const h=Rt(_,this.gw2.ar,this.aFODr2),u=l+h,r=u/this.gw1.brr,g=u/this.gw2.brr,H=this.gw1.rua-r,E=this.gw2.rua-g;this.laStartRr1=this.gw1.involuteR.lFromU(H),this.laStartRr2=this.gw2.involuteR.lFromU(E);const I=Math.PI/2+this.apl,v=Et(this.gw1.ar,t,I);this.aFODl1=Math.PI-I-v;const $=this.gw1.lua-this.apl+this.gw1.lwa;if(nt(this.aFODl1-$)!==0)throw`dbg388: aFODl1 ${this.aFODl1} and aFODl1Alt ${$} differ`;const S=Rt(t,this.gw1.ar,this.aFODl1),b=i,L=Et(this.gw2.ar,s,b);this.aFODl2=Math.PI-b-L;const P=this.gw2.lua-this.apl+this.gw2.lwa;if(nt(this.aFODl2-P)!==0)throw`dbg389: aFODl2 ${this.aFODl2} and aFODl2Alt ${P} differ`;const M=Rt(s,this.gw2.ar,this.aFODl2),w=S+M,x=w/this.gw1.blr,R=w/this.gw2.blr,V=this.gw1.lua-x,A=this.gw2.lua-R;this.laStartRl1=this.gw1.involuteL.lFromU(V),this.laStartRl2=this.gw2.involuteL.lFromU(A),this.msg+=`Line of Action Effective length: right: ${D(u)} left: ${D(w)} mm
12
+ `,this.msg+=`Line of Action Effective rotation angle: right-1: ${D(it(r))} right-2: ${D(it(g))} left-1: ${D(it(x))} left-2: ${D(it(R))} degree
13
+ `,this.msg+=`Line of Action Effective height: right-1: ${D(this.gw1.ar-this.laStartRr1)} right-2: ${D(this.gw2.ar-this.laStartRr2)} left-1: ${D(this.gw1.ar-this.laStartRl1)} left-2: ${D(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: ${D(this.lasr1)} 2: ${D(this.lasr2)} mm
15
+ `,this.msg+=`Line of Action right: nb of contact point: 1: ${D(u/this.lasr1)} 2: ${D(u/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: ${D(this.lasl1)} 2: ${D(this.lasl2)} mm
17
+ `,this.msg+=`Line of Action left: nb of contact point: 1: ${D(w/this.lasl1)} 2: ${D(w/this.lasl2)}
18
+ `}calcContactPoint1(){for(this.gw1.checkInitStep(5,"ActionLine.calcContactPoint1"),this.firstToothUr1=Vt(this.apr-(this.initAngle1-this.angleCenterCenter)+this.gw1.rwp);nt(this.firstToothUr1-this.gw1.as)>=0;)this.firstToothUr1=nt(this.firstToothUr1-this.gw1.as);for(this.firstToothUl1=Vt(this.apl+(this.initAngle1-this.angleCenterCenter)+this.gw1.as*this.gw1.adt-this.gw1.lwp);nt(this.firstToothUl1-this.gw1.as)>=0;)this.firstToothUl1=nt(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(n,t,_,s,i,a,o,l,d,f){const h=Math.floor(t/(2*_)),u=(s+h*_)/i,r=n?1:-1,[g,H,E,I]=a.laptc(o,r*l,u,.4);this.msg+=`speed ${d}: vx ${D(E)} vy: ${D(I)} m/s
19
+ `;const v=et(g,H),$=o+r*l,S=m(g,H,f),b=v.translatePolar($,-I);S.addSegStrokeA(b.cx,b.cy);const L=b.translatePolar($-r*Math.PI/2,E);return S.addSegStrokeA(L.cx,L.cy),S.closeSegStroke(),S}getContactSpeed(){const n=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"),_=[];return _.push(n),_.push(t),_}getContours(){const n=[];n.push(k(this.gw1.cx,this.gw1.cy,this.laStartRr1,"SkyBlue")),n.push(k(this.gw1.cx,this.gw1.cy,this.laStartRl1,"SlateBlue")),n.push(k(this.gw2.cx,this.gw2.cy,this.laStartRr2,"SkyBlue")),n.push(k(this.gw2.cx,this.gw2.cy,this.laStartRl2,"SlateBlue"));const t=et(this.gw1.cx,this.gw1.cy),_=et(this.gw2.cx,this.gw2.cy),s=t.translatePolar(this.angleCenterCenter+this.apr,this.gw1.brr),i=_.translatePolar(this.angleCenterCenter+Math.PI+this.apr,this.gw2.brr),a=m(s.cx,s.cy,"YellowGreen");a.addSegStrokeA(i.cx,i.cy),a.closeSegStroke(),n.push(a);const o=t.translatePolar(this.angleCenterCenter-this.aFODr1,this.gw1.ar),l=_.translatePolar(this.angleCenterCenter+Math.PI-this.aFODr2,this.gw2.ar),d=m(o.cx,o.cy,"Yellow");d.addSegStrokeA(l.cx,l.cy),d.closeSegStroke(),n.push(d);const f=t.translatePolar(this.angleCenterCenter-this.apl,this.gw1.blr),c=_.translatePolar(this.angleCenterCenter+Math.PI-this.apl,this.gw2.blr),h=m(f.cx,f.cy,"YellowGreen");h.addSegStrokeA(c.cx,c.cy),h.closeSegStroke(),n.push(h);const u=t.translatePolar(this.angleCenterCenter+this.aFODl1,this.gw1.ar),r=_.translatePolar(this.angleCenterCenter+Math.PI+this.aFODl2,this.gw2.ar),g=m(u.cx,u.cy,"Yellow");return g.addSegStrokeA(r.cx,r.cy),g.closeSegStroke(),n.push(g),n.push(...this.getContactSpeed()),n}getContactPoint(){const n=[],t=et(this.gw1.cx,this.gw1.cy),_=t.translatePolar(this.angleCenterCenter+this.apr,this.gw1.brr),s=t.translatePolar(this.angleCenterCenter-this.apl,this.gw1.blr);n.push(et(_.cx,_.cy,Dt.eBigSquare)),n.push(et(s.cx,s.cy,Dt.eBigSquare));const i=this.angleCenterCenter+this.apr-Math.PI/2,a=this.angleCenterCenter-this.apl+Math.PI/2,o=_.translatePolar(i,this.ftdr1),l=s.translatePolar(a,this.ftdl1);n.push(et(o.cx,o.cy,Dt.eBigSquare)),n.push(et(l.cx,l.cy,Dt.eBigSquare));let d=this.ftdr1;for(;d+this.lasr1<this.lBDr;){d+=this.lasr1;const c=_.translatePolar(i,d);n.push(et(c.cx,c.cy,Dt.eBigSquare))}let f=this.ftdl1;for(;f+this.lasl1<this.lBDl;){f+=this.lasl1;const c=s.translatePolar(a,f);n.push(et(c.cx,c.cy,Dt.eBigSquare))}return n}getMsg(){return this.msg}getInitAngle2(){let n=this.lBDr-this.ftdr1;for(;nt(n-this.lasr2)>=0;)n=nt(n-this.lasr2);let t=this.lBDl-this.ftdl1;for(;nt(t-this.lasl2)>=0;)t=nt(t-this.lasl2);const _=n/this.gw2.brr,s=t/this.gw2.blr,i=this.angleCenterCenter+Math.PI+this.apr-_+this.gw2.rwp,o=this.angleCenterCenter+Math.PI-this.apl+s+this.gw2.lwp-this.gw2.as*this.gw2.adt;let l=2*Math.PI+Vt(o);for(;nt(l-this.gw2.as-i)>=0;)l=nt(l-this.gw2.as);const d=l-i,f=d*this.gw2.brr/this.gw1.brr,c=d*this.gw2.brr,h=d*this.gw2.blr;this.msg+=`slack angle: 1: ${D(it(f))} 2: ${D(it(d))} degree
20
+ `,this.msg+=`slack on action line: right-2: ${D(c)} left-2: ${D(h)} mm
21
+ `;let u=0;if(this.rightLeftCenter2===0)u=i;else if(this.rightLeftCenter2===1)u=o;else if(this.rightLeftCenter2===2)u=i+d/2;else throw`err221: initAngle2 rightLeftCenter2 ${this.rightLeftCenter2} has an unkown value`;return Se(u)}};function we(n,t,_,s,i,a){return new xe(n,t,_,s,i,a)}function $e(n,t,_,s,i,a,o,l,d){let f=k(n,t,_);if(s>0){if(i>2*_)throw`err383: axisTorque ribWidth ${D(i)} larger than 2x axisRadius ${D(_)}`;const c=Math.asin(i/(2*_)),h=2*Math.PI/s;if(h-2.5*c<0)throw`err384: axisTorque ribWidth ${D(i)} or ribNb ${s} are too large`;if(o>i/2)throw`err385: axisTorque ribRound1 ${D(o)} too large compare to ribWidth ${D(i)}`;if(o+l>a)throw`err386: axisTorque ribRound12 ${D(o)} ${D(l)} too large compare to ribHeight ${D(i)}`;const u=h-2*c>Math.PI,r=et(n,t),H=r.translatePolar(d,_+a).translatePolar(d+Math.PI/2,i/2);f=m(H.cx,H.cy);for(let E=0;E<s;E++){const I=d+E*h,v=I+h,$=r.translatePolar(I+c,_),S=r.translatePolar(v-c,_),L=r.translatePolar(I,_+a).translatePolar(I+Math.PI/2,i/2),M=r.translatePolar(v,_+a).translatePolar(v-Math.PI/2,i/2);f.addSegStrokeA(L.cx,L.cy).addCornerRounded(o),f.addSegStrokeA($.cx,$.cy).addCornerRounded(l),f.addPointA(S.cx,S.cy).addSegArc(_,u,!0).addCornerRounded(l),f.addSegStrokeA(M.cx,M.cy).addCornerRounded(o)}f.closeSegStroke()}return f}function Me(n,t,_,s,i,a,o,l){const d=2*Math.PI/i,f=Math.asin(a/(2*s)),c=Math.asin(a/(2*_));if(a>2*s)throw`err905: hollowStraight spokeWidth ${D(a)} too large for hollowInt ${D(s)}`;if(_-s<2.1*o)throw`err906: hollowStraight hollowExt ${D(_)}, hollowInt ${D(s)} and spokeRound ${D(o)} do not fit`;if(d-2*c<2.5*Math.asin(o/_))throw`err907: hollowStraight spokeNb ${i}, spokeWidth ${D(a)} or spokeRound ${D(o)} are too large`;const h=a/(2*Math.sin(d/2)),u=d-2*f<2.1*Math.asin(o/s),r=d-2*c>Math.PI,g=et(n,t),H=[];for(let E=0;E<i;E++){const I=l+E*d,v=I+d,$=I+d/2,S=g.translatePolar(I+c,_),b=g.translatePolar(v-c,_),L=g.translatePolar(v-f,s),P=g.translatePolar(I+f,s),M=g.translatePolar($,h),w=m(S.cx,S.cy);w.addCornerRounded(o),w.addPointA(b.cx,b.cy).addSegArc(_,r,!0).addCornerRounded(o),u?w.addSegStrokeA(M.cx,M.cy).addCornerRounded(o):(w.addSegStrokeA(L.cx,L.cy).addCornerRounded(o),w.addPointA(P.cx,P.cy).addSegArc(s,r,!1).addCornerRounded(o)),w.closeSegStroke(),H.push(w)}return H}function Kt(n,t,_,s,i,a,o,l,d,f){const c=f?1:-1,h=n/2,u=h+t,r=u+_,g=m(0,-r);return g.addSegStrokeA(c*s,-r).addCornerRounded(o).addSegStrokeA(c*s,-u).addCornerRounded(l).addSegStrokeA(c*i,-u).addSegStrokeA(c*a,-h).addCornerRounded(d).addSegStrokeA(c*a,h).addCornerRounded(d).addSegStrokeA(c*i,u).addSegStrokeA(c*s,u).addCornerRounded(l).addSegStrokeA(c*s,r).addCornerRounded(o).addSegStrokeA(0,r).closeSegStroke(),g}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),ct("involSym",!0),vt("involROpt",["Optimum","Base-1","Base-2","PressureAngle","FreeBase-12"]),vt("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),vt("gw2Position",["right","left","center"]),p("Inner"),ct("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),ct("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"),ct("centralAxis",!0),ct("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 be(n,t,_=""){const s=dt(jt.partName+_),i=T(),a=T();s.logstr+=`${s.partName} simTime: ${n}
22
+ `;try{const o=Xt(),l=Xt();o.set1ModuleToothNumber(t.module,t.N1),l.set1ModuleToothNumber(t.module,t.N2),o.set2CenterPosition(t.c1x,t.c1y);const d=xt(t.angleCenterCenter),[f,c,h]=De(o,l,d,t.addInterAxis);l.set2CenterPosition(f,c),o.set3CircleRadius(t.ah1,t.dh1,t.bh1,t.bRound1),l.set3CircleRadius(t.ah2,t.dh2,t.bh2,t.bRound2);const[u,r,g,H]=ve(o,l,t.brr1,t.blr1,t.brr2,t.blr2,t.involSym,t.involROpt,t.involROpt);o.set4BaseCircles(u,r),l.set4BaseCircles(g,H),o.set5AddendumThickness(t.at1),l.set5AddendumThickness(t.at2);const E=xt(t.initAngle1)+n*3*o.as/100;o.set6Angles(E,d);const I=we(o,l,E,d,h,t.gw2Position);I.prepare();for(const P of I.getContours())i.addDynamics(P);i.addPoints(I.getContactPoint()),l.set6Angles(I.getInitAngle2(),d+Math.PI),s.logstr+=I.getMsg(),o.set7InvoluteDetails(t.involArcPairs1,t.skinThickness1),l.set7InvoluteDetails(t.involArcPairs2,t.skinThickness2);for(const P of o.getRefCircles())i.addDynamics(P);for(const P of l.getRefCircles())i.addDynamics(P);i.addDynamics(o.getToothRef()),i.addDynamics(l.getToothRef());const v=o.getProfile();if(s.logstr+=o.getMsg(),s.logstr+=v.check(),i.addMain(v),t.centralAxis===1){const P=$e(o.cx,o.cy,t.axisRadius,t.ribNb,t.ribWidth,t.ribHeight,t.ribRound1,t.ribRound2,E);s.logstr+=P.check(),i.addMain(P)}if(t.hollow===1){const P=o.br,M=t.axisRadius+t.ribHeight,w=P-t.materialHeightExt,x=M+t.materialHeightInt;if(x>w)throw`err902: hollowMaterialInt ${D(x)} bigger than hollowMaterialExt ${D(w)}`;const R=Me(o.cx,o.cy,w,x,t.spokeNb,t.spokeWidth,t.spokeRound,E);for(const V of R)s.logstr+=V.check(),i.addMain(V)}const $=l.getProfile();s.logstr+=$.check(),i.addSecond($);const S=o.ar+t.wheelRadiusExtra;if(t.wheelAxis===1){const P=Kt(t.wheelHeight,t.wheelMidExtra,t.wheelAxisLength,t.wheelAxisRadius,t.wheelMidRadius,S,t.wheelAxisExtRound,t.wheelAxisIntRound,t.wheelExtraRound,!0),M=Kt(t.wheelHeight,t.wheelMidExtra,t.wheelAxisLength,t.wheelAxisRadius,t.wheelMidRadius,S,t.wheelAxisExtRound,t.wheelAxisIntRound,t.wheelExtraRound,!1);a.addMain(P),a.addSecond(M)}else{const P=m(0,-t.wheelHeight/2).addSegStrokeR(0,t.wheelHeight).addSegStrokeR(S,0).addSegStrokeR(0,-t.wheelHeight).closeSegStroke(),M=m(0,-t.wheelHeight/2).addSegStrokeR(0,t.wheelHeight).addSegStrokeR(-S,0).addSegStrokeR(0,-t.wheelHeight).closeSegStroke();a.addMain(P),a.addSecond(M)}s.fig={teethProfile:i,axisProfile:a};const b=s.partName,L=t.wheelHeight/2+t.wheelMidExtra+t.wheelAxisLength+10;s.vol={extrudes:[{outName:`subpax_${b}_teethProfile`,face:`${b}_teethProfile`,extrudeMethod:z.eLinearOrtho,length:2*L,rotate:[0,0,0],translate:[0,0,-L]},{outName:`subpax_${b}_axisProfile`,face:`${b}_axisProfile`,extrudeMethod:z.eRotate,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${b}`,boolMethod:J.eIntersection,inList:[`subpax_${b}_teethProfile`,`subpax_${b}_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:be},Zt={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),ct("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),ct("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),ct("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 Pe(n,t,_=""){const s=dt(Zt.partName+_),i=T(),a=T();s.logstr+=`${s.partName} simTime: ${n}
24
+ `;try{const o=at(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 l=Tt.pGeom(n,o.getParamVal(),o.getSuffix());gt(l),s.logstr+=ht(l.logstr,o.getPartNameSuffix()),i.mergeFigure(l.fig.teethProfile),a.mergeFigure(l.fig.axisProfile),s.fig={teethProfile:i,axisProfile:a};const d=s.partName;s.vol={inherits:[{outName:`inpax_${d}_gearWW`,subdesign:"pax_gear_wheel_wheel_ref1",subgeom:l,rotate:[0,0,0],translate:[0,0,0]}],extrudes:[],volumes:[{outName:`pax_${d}`,boolMethod:J.eIdentity,inList:[`inpax_${d}_gearWW`]}]};const f={partName:o.getPartName(),dparam:o.getDesignParamList(),orientation:[0,0,0],position:[0,0,0]};s.sub={gear_wheel_wheel_1:f},s.logstr+=`simplified_gear_wheel drawn successfully!
25
+ `,s.calcErr=!1}catch(o){s.logstr+=o,console.log(o)}return s}var ke={pTitle:"Simplified gearwheel",pDescription:"One simplified gearwheel without details on teeth-profile",pDef:Zt,pGeom:Pe},Jt={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)],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"},sim:{tMax:180,tStep:.5,tUpdate:500}};function Ee(n,t,_=""){const s=dt(Jt.partName+_);let i,a;const o=T(),l=T(),d=T(),f=T(),c=T();s.logstr+=`${s.partName} simTime: ${n}
26
+ `;try{const h=t.D1/2,u=t.D2/2,r=t.D3/2;if(u>h)throw`err091: D2 ${t.D2} is larger than D1 ${t.D1}`;if(r+t.E2>h)throw`err095: D3 ${t.D3} and E2 ${t.E2} are too large compare to D1 ${t.D1}`;const g=t.H1+t.H2;s.logstr+=`pole-height: ${D(g)} mm
27
+ `;const H=Math.atan2(h-u,t.H2);s.logstr+=`cone-half-angle: ${D(it(H))} degree
28
+ `;const E=t.E2*Math.tan(H/2),I=t.H1-E;i=function(w,x){const R=m(w*h,0).addSegStrokeA(w*h,t.H1).addSegStrokeA(w*u,g).addSegStrokeR(-w*t.E2*Math.cos(H),-t.E2*Math.sin(H)).addSegStrokeA(w*(h-t.E2),I);return x?R.addSegStrokeA(w*(h-t.E2),t.E1).addSegStrokeA(w*r,t.E1).addSegStrokeA(w*r,0):R.addSegStrokeA(w*(h-t.E2),0),R.closeSegStroke(),R},o.addMain(i(1,!1)),o.addSecond(i(1,!0)),o.addSecond(i(-1,!0));const v=t.D4/2,$=t.H4-2*v;if($<0)throw`err121: H4 ${t.H4} is too small compare to D4 ${t.D4}`;if(v-t.L2<0)throw`err121: D4 ${t.D4} is too small compare to L2 ${t.L2}`;a=function(w){const x=v-w,R=t.H3+v;return m(x,R+$).addPointR(-x,x).addSegArc(x,!1,!0).addPointR(-x,-x).addSegArc(x,!1,!0).addSegStrokeR(0,-$).addPointR(x,-x).addSegArc(x,!1,!0).addPointR(x,x).addSegArc(x,!1,!0).closeSegStroke()},l.addMain(a(0)),l.addMain(a(t.L2));const S=m(h,0).addSegStrokeA(h,t.H1).addSegStrokeA(u,g).addSegStrokeA(-u,g).addSegStrokeA(-h,t.H1).addSegStrokeA(-h,0).closeSegStroke();l.addSecond(S);const b=m(-h,t.H3).addSegStrokeR(0,t.H4).addSegStrokeR(-t.E3,0).addSegStrokeR(0,-t.H4).closeSegStroke();l.addSecond(b),d.addMain(k(0,0,h)),d.addMain(k(0,0,r));const L=r+t.L1,P=2*Math.PI/t.N1;for(let w=0;w<t.N1;w++){const x=L*Math.cos(w*P),R=L*Math.sin(w*P);d.addMain(k(x,R,t.D5/2))}d.addSecond(k(0,0,u)),d.addSecond(k(0,0,h-t.E2)),f.addMain(k(0,0,h+t.E3)),f.addMain(k(0,0,h-t.E2)),c.addMain(a(t.L2)),s.fig={poleCut:o,poleFace:l,poleBottom:d,emptyPole:f,emptyDoor:c};const M=s.partName;s.vol={extrudes:[{outName:`subpax_${M}_pole`,face:`${M}_poleCut`,extrudeMethod:z.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${M}_bottom`,face:`${M}_poleBottom`,extrudeMethod:z.eLinearOrtho,length:t.E1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${M}_door`,face:`${M}_poleFace`,extrudeMethod:z.eLinearOrtho,length:h+t.E3,rotate:[Math.PI/2,0,0],translate:[0,0,0]},{outName:`subpax_${M}_emptyPole`,face:`${M}_emptyPole`,extrudeMethod:z.eLinearOrtho,length:t.H1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${M}_emptyDoor`,face:`${M}_emptyDoor`,extrudeMethod:z.eLinearOrtho,length:h+t.E3+10,rotate:[Math.PI/2,0,0],translate:[0,0,0]}],volumes:[{outName:`ipax_${M}_door`,boolMethod:J.eIntersection,inList:[`subpax_${M}_door`,`subpax_${M}_emptyPole`]},{outName:`ipax_${M}_pole`,boolMethod:J.eSubstraction,inList:[`subpax_${M}_pole`,`subpax_${M}_emptyDoor`]},{outName:`pax_${M}`,boolMethod:J.eUnion,inList:[`ipax_${M}_pole`,`subpax_${M}_bottom`,`ipax_${M}_door`]}]},s.sub={},s.logstr+=`pole_static drawn successfully!
29
+ `,s.calcErr=!1}catch(h){s.logstr+=h,console.log(h)}return s}var $t={pTitle:"Heliostat pole static",pDescription:"The vertical pole of an heliostat",pDef:Jt,pGeom:Ee},Qt={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 Re(n,t,_=""){const s=dt(Qt.partName+_);let i,a,o;const l=T(),d=T(),f=T(),c=T(),h=T(),u=T(),r=T(),g=T();s.logstr+=`${s.partName} simTime: ${n}
30
+ `;try{const H=t.D1/2,E=t.D2/2,I=t.D3/2,v=t.D4/2,$=t.D5/2,S=t.D6/2,b=t.D7/2,L=t.D8/2,P=t.H1+t.H2,M=P-t.H4+t.H5;if(s.logstr+=`cone-height: ${D(P)} mm
31
+ `,s.logstr+=`cone-height total: ${D(M)} mm
32
+ `,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+v>t.H2)throw`err119: H4 ${t.H4} is too large compare to H2 ${t.H2} and D4 ${t.D4}`;if(t.E4>v)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 w=4*t.L4+t.L5+2*t.L6,x=t.H1+t.H2-t.H4,R=v*Math.cos(Math.PI/6),V=v*Math.sin(Math.PI/6),A=$*Math.cos(Math.PI/6),B=$*Math.sin(Math.PI/6),y=L*Math.cos(Math.PI/6),G=L*Math.sin(Math.PI/6),Y=[-w/2,-t.L5/2-t.L4,t.L5/2,w/2-t.L4],X=t.H2-t.L8-t.H4-v;if(X<0)throw`err140: H2 ${t.H2} too small compare to L8 ${t.L8}, H4 ${t.H4} and D4 ${t.D4}`;const Z=Math.atan2(H-E,t.H2);s.logstr+=`cone-angle: ${D(it(Z))} degree
33
+ `;const O=w/2-t.L7-H+t.L8*Math.tan(Z),Q=Math.sqrt(O**2+X**2),W=Math.atan2(O,X);s.logstr+=`wing-angle: ${D(it(W))} degree
34
+ `;const ot=t.E1/Math.sin(W+Z),U=Q+t.E4/Math.cos(W)+ot,N=H-t.L8*Math.tan(Z)-ot*Math.sin(W),C=t.H1+t.L8-ot*Math.cos(W),tt=N-S*Math.cos(W),K=C+S*Math.sin(W),st=S-t.E6,lt=N-t.E6*Math.cos(W),rt=C+t.E6*Math.sin(W),ft=Math.PI/2-W,Ht=t.L9/2,St=Ht-t.H7*Math.tan(Z);if(St<t.R9)throw`err177: R9 ${t.R9} too large compare to doorHighX ${St} 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(Z),At=t.E1*Math.sin(Z),Bt=t.E1*Math.tan(Z/2);i=function(j){return m(j*H,0).addSegStrokeA(j*H,t.H1).addSegStrokeA(j*E,P).addSegStrokeA(j*(E-wt),P-At).addSegStrokeA(j*(H-t.E1),t.H1-Bt).addSegStrokeA(j*(H-t.E1),0).closeSegStroke()},a=function(j){return m(j*H,0).addSegStrokeA(j*H,t.H1).addSegStrokeA(j*E,P).addSegStrokeA(j*(E-wt),P-At).addSegStrokeA(j*(H-t.E1),t.H1-Bt).addSegStrokeA(j*(H-t.E1),t.H1-t.H3).addSegStrokeA(j*I,t.H1-t.H3).addSegStrokeA(j*I,t.H1-t.H3-t.E3).addSegStrokeA(j*(H-t.E1),t.H1-t.H3-t.E3).addSegStrokeA(j*(H-t.E1),0).closeSegStroke()},o=function(j,ut,Lt,Pt,kt){const Ut=j*Math.cos(kt),Wt=j*Math.sin(kt),qt=-ut*Math.sin(kt),Yt=ut*Math.cos(kt);return m(Lt,Pt).addSegStrokeA(Lt+Ut,Pt+Wt).addSegStrokeA(Lt+Ut+qt,Pt+Wt+Yt).addSegStrokeA(Lt+qt,Pt+Yt).closeSegStroke()};const Nt=m(Ht,t.H1+t.H6).addCornerRounded(t.R9).addSegStrokeA(St,t.H1+t.H6+t.H7).addCornerRounded(t.R9).addSegStrokeA(-St,t.H1+t.H6+t.H7).addCornerRounded(t.R9).addSegStrokeA(-Ht,t.H1+t.H6).addCornerRounded(t.R9).closeSegStroke();l.addMain(i(1)),l.addSecond(a(1)),l.addSecond(a(-1)),l.addSecond(o(w,t.D4,-w/2,x-v,0)),l.addSecond(o(w,t.D4-2*t.E4,-w/2,x-v+t.E4,0));for(const j of Y)l.addSecond(o(t.L4,t.H5-V-B,j,x+V,0));l.addSecond(o(U,2*S,N,C,ft)),l.addSecond(o(U,2*st,lt,rt,ft)),l.addSecond(o(2*S,U,-N,C,W)),l.addSecond(o(2*st,U,-lt,rt,W)),l.addSecond(Nt);const Ct=m(R,x+V).addSegStrokeA(y,x+t.H5-G).addSegStrokeA(A,x+t.H5-B).addPointA(-A,x+t.H5-B).addSegArc($,!1,!1).addSegStrokeA(-y,x+t.H5-G).addSegStrokeA(-R,x+V).closeSegArc(v,!1,!1);d.addMain(k(0,x,v)),d.addMain(k(0,x,v-t.E4)),d.addSecond(a(1)),d.addSecond(a(-1)),d.addSecond(Ct),d.addSecond(k(0,x+t.H5,$)),d.addSecond(o(2*S,X,-S,t.H1+t.L8,0)),d.addSecond(o(2*st,X,-st,t.H1+t.L8,0)),d.addSecond(Nt),f.addMain(k(0,x,v-t.E4)),f.addSecond(k(0,x,v)),f.addSecond(Ct),c.addMain(k(0,0,H)),c.addMain(k(0,0,I));const Gt=I+t.L1,pt=2*Math.PI/t.N1;for(let j=0;j<t.N1;j++){const ut=Gt*Math.cos(j*pt),Lt=Gt*Math.sin(j*pt);c.addMain(k(ut,Lt,b))}c.addSecond(k(0,0,H-t.E1)),c.addSecond(k(0,0,E)),c.addSecond(o(t.D4,w,-v,-w/2,0)),c.addSecond(o(t.D4-2*t.E4,w,-v+t.E4,-w/2,0));for(const j of Y)c.addSecond(o(2*R,t.L4,-R,j,0)),c.addSecond(o(2*A,t.L4,-A,j,0)),c.addSecond(o(2*y,t.L4,-y,j,0));c.addSecond(o(2*S,O,-S,H-t.L8*Math.tan(Z),0)),c.addSecond(o(2*st,O,-st,H-t.L8*Math.tan(Z),0)),c.addSecond(o(2*S,O,-S,-H+t.L8*Math.tan(Z)-O,0)),c.addSecond(o(2*st,O,-st,-H+t.L8*Math.tan(Z)-O,0)),h.addMain(Ct),h.addSecond(k(0,x,v)),h.addSecond(k(0,x,v-t.E4)),h.addSecond(k(0,x+t.H5,$)),u.addMain(k(0,0,S)),u.addMain(k(0,0,st)),r.addSecond(k(0,0,S)),r.addMain(k(0,0,st)),g.addMain(Nt),g.addSecond(a(1)),g.addSecond(a(-1)),g.addSecond(o(w,t.D4,-w/2,x-v,0)),g.addSecond(o(w,t.D4-2*t.E4,-w/2,x-v+t.E4,0));for(const j of Y)g.addSecond(o(t.L4,t.H5-V-B,j,x+V,0));g.addSecond(o(U,2*S,N,C,ft)),g.addSecond(o(U,2*st,lt,rt,ft)),g.addSecond(o(2*S,U,-N,C,W)),g.addSecond(o(2*st,U,-lt,rt,W)),s.fig={faceCone:l,faceBeam:d,faceBeamHollow:f,faceDisc:c,faceHand:h,faceWing:u,faceWingHollow:r,faceDoor:g};const q=s.partName,ue=Y.map((j,ut)=>({outName:`subpax_${q}_hand_${ut}`,face:`${q}_faceHand`,extrudeMethod:z.eLinearOrtho,length:t.L4,rotate:[Math.PI/2,0,0],translate:[0,-j,0]}));s.vol={extrudes:[{outName:`subpax_${q}_cone`,face:`${q}_faceCone`,extrudeMethod:z.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${q}_beam`,face:`${q}_faceBeam`,extrudeMethod:z.eLinearOrtho,length:w,rotate:[Math.PI/2,0,0],translate:[0,w/2,0]},{outName:`subpax_${q}_beamHollow`,face:`${q}_faceBeamHollow`,extrudeMethod:z.eLinearOrtho,length:w,rotate:[Math.PI/2,0,0],translate:[0,w/2,0]},{outName:`subpax_${q}_disc`,face:`${q}_faceDisc`,extrudeMethod:z.eLinearOrtho,length:t.E3,rotate:[0,0,0],translate:[0,0,t.H1-t.H3-t.E3]},{outName:`subpax_${q}_wing_right`,face:`${q}_faceWing`,extrudeMethod:z.eLinearOrtho,length:U,rotate:[-W,0,0],translate:[0,tt,K]},{outName:`subpax_${q}_wing_left`,face:`${q}_faceWing`,extrudeMethod:z.eLinearOrtho,length:U,rotate:[W,0,0],translate:[0,-tt,K]},{outName:`subpax_${q}_wing_hollow_right`,face:`${q}_faceWingHollow`,extrudeMethod:z.eLinearOrtho,length:U,rotate:[-W,0,0],translate:[0,tt,K]},{outName:`subpax_${q}_wing_hollow_left`,face:`${q}_faceWingHollow`,extrudeMethod:z.eLinearOrtho,length:U,rotate:[W,0,0],translate:[0,-tt,K]},{outName:`subpax_${q}_door`,face:`${q}_faceDoor`,extrudeMethod:z.eLinearOrtho,length:t.D1,rotate:[Math.PI/2,0,Math.PI/2],translate:[0,0,0]},...ue],volumes:[{outName:`ipax_${q}_plus`,boolMethod:J.eUnion,inList:[`subpax_${q}_cone`,`subpax_${q}_beam`,`subpax_${q}_disc`,`subpax_${q}_hand_0`,`subpax_${q}_hand_1`,`subpax_${q}_hand_2`,`subpax_${q}_hand_3`,`subpax_${q}_wing_right`,`subpax_${q}_wing_left`]},{outName:`ipax_${q}_hollow`,boolMethod:J.eUnion,inList:[`subpax_${q}_beamHollow`,`subpax_${q}_wing_hollow_right`,`subpax_${q}_wing_hollow_left`,`subpax_${q}_door`]},{outName:`pax_${q}`,boolMethod:J.eSubstraction,inList:[`ipax_${q}_plus`,`ipax_${q}_hollow`]}]},s.sub={},s.logstr+=`heliostat-rake drawn successfully!
35
+ `,s.calcErr=!1}catch(H){s.logstr+=H,console.log(H)}return s}var Mt={pTitle:"Heliostat rake",pDescription:"The rake on top of the V-Axis of the heliostat",pDef:Qt,pGeom:Re},yt={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 Ae(n,t,_=""){const s=dt(yt.partName+_);let i,a;const o=T(),l=T(),d=T();s.logstr+=`${s.partName} simTime: ${n}
36
+ `;try{const f=t.D1/2;if(t.D1<t.E2)throw`err476: D1 ${t.D1} smaller then E2 ${t.E2}`;const c=t.E2/2,h=Math.sqrt(f**2-c**2),u=t.L1+t.L2*Math.sqrt(2),r=t.L2+t.L1*Math.sqrt(2),g=t.L4-r;if(g<t.R2)throw`err984: L4 ${t.L4} too small compare to R2 ${t.R2}`;const H=g*Math.cos(Math.PI/4),E=g*Math.sin(Math.PI/4),I=t.E2*Math.cos(Math.PI/4),v=t.E2*Math.sin(Math.PI/4),$=t.E2*Math.tan(Math.PI/8);if(f<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 S=(t.L3-t.E2)/2*Math.cos(Math.PI/4),b=u+H+S,L=-t.L1-E+S,P=L-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 M=1;t.N1>1&&(M=(t.L5-t.L6)/(t.N1-1));const w=[...Array(t.N1).keys()].map(y=>y*M);i=function(y,G,Y){return m(y,G).addSegStrokeA(y+Y*Math.cos(Math.PI/4),G-Y*Math.sin(Math.PI/4)).addSegStrokeA(y,G-2*Y*Math.sin(Math.PI/4)).addSegStrokeA(y-Y*Math.cos(Math.PI/4),G-Y*Math.sin(Math.PI/4)).closeSegStroke()},a=function(y,G,Y,X){return m(Y,X).addSegStrokeA(Y+y,X).addSegStrokeA(Y+y,X+G).addSegStrokeA(Y,X+G).closeSegStroke()};const x=Math.sin(2*Math.PI*n/yt.sim.tMax)*Math.PI/2;s.logstr+=`spide leg number: ${t.N1}
37
+ `,s.logstr+=`spide position angle: ${D(it(x))} degree
38
+ `;const R=m(c,-h).addCornerRounded(t.R2).addSegStrokeA(c,-t.L1).addCornerRounded(t.R2).addSegStrokeA(u,-t.L1).addCornerRounded(t.R2+t.E2).addSegStrokeA(u+H,-t.L1-E).addSegStrokeA(u+H-I,-t.L1-E-v).addSegStrokeA(u-$,-t.L1-t.E2).addCornerRounded(t.R2).addSegStrokeA(-u+$,-t.L1-t.E2).addCornerRounded(t.R2).addSegStrokeA(-u-H+I,-t.L1-E-v).addSegStrokeA(-u-H,-t.L1-E).addSegStrokeA(-u,-t.L1).addCornerRounded(t.R2+t.E2).addSegStrokeA(-c,-t.L1).addCornerRounded(t.R2).addSegStrokeA(-c,-h).addCornerRounded(t.R2).closeSegArc(f,!0,!1);o.addMain(R),o.addMain(k(0,0,f-t.E1)),o.addSecond(i(b,L,t.L3)),o.addSecond(i(b,P,t.L3-2*t.E3)),o.addSecond(i(-b,L,t.L3)),o.addSecond(i(-b,P,t.L3-2*t.E3)),l.addMain(k(0,0,f)),l.addMain(k(0,0,f-t.E1)),l.addMain(i(b,L,t.L3)),l.addMain(i(b,P,t.L3-2*t.E3)),l.addMain(i(-b,L,t.L3)),l.addMain(i(-b,P,t.L3-2*t.E3)),l.addSecond(R),d.addSecond(a(t.L5,t.D1,0,-t.D1/2)),d.addSecond(a(t.L5,t.L3,0,-t.L4-t.L3));for(const y of w)d.addSecond(a(t.L6,t.L4,y,-t.L4));s.fig={faceLegs:o.rotate(0,0,x),faceTube:l.rotate(0,0,x),faceBody:d};const V=s.partName,A=w.map((y,G)=>({outName:`subpax_${V}_leg_${G}`,face:`${V}_faceLegs`,extrudeMethod:z.eLinearOrtho,length:t.L6,rotate:[0,0,0],translate:[0,0,y]})),B=w.map((y,G)=>`subpax_${V}_leg_${G}`);s.vol={extrudes:[{outName:`subpax_${V}_tube`,face:`${V}_faceTube`,extrudeMethod:z.eLinearOrtho,length:t.L5,rotate:[0,0,0],translate:[0,0,0]},...A],volumes:[{outName:`pax_${V}`,boolMethod:J.eUnion,inList:[`subpax_${V}_tube`,...B]}]},s.sub={},s.logstr+=`heliostat-spider drawn successfully!
39
+ `,s.calcErr=!1}catch(f){s.logstr+=f,console.log(f)}return s}var Ft={pTitle:"Heliostat spider",pDescription:"The spider part for the control of the inclination of the heliostat",pDef:yt,pGeom:Ae},te={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("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",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 Ne(n,t,_=""){const s=dt(te.partName+_);let i,a;const o=T(),l=T(),d=T(),f=T();s.logstr+=`${s.partName} simTime: ${n}
40
+ `;try{const c=t.D1/2;s.logstr+=`swing size: L1 ${D(t.L1)} x L2 ${D(t.L2)} mm
41
+ `,i=function(S,b,L,P){return m(S,b).addSegStrokeA(S+L,b).addSegStrokeA(S+L,b+P).addSegStrokeA(S,b+P).closeSegStroke()},a=function(S,b,L,P,M){return m(S,b).addCornerRounded(M).addSegStrokeA(S+L,b).addCornerRounded(M).addSegStrokeA(S+L,b+P).addCornerRounded(M).addSegStrokeA(S,b+P).addCornerRounded(M).closeSegStroke()},o.addMain(k(0,0,c)),o.addMain(k(0,0,c-t.E1));const h=[-t.L2/2,-t.L3-t.H2,t.L3,t.L2/2-t.H2];for(const S of h)o.addMain(i(S,c-t.H4,t.H2,t.H4)),o.addMain(i(S+t.E2,c-t.H4+t.E2,t.H2-2*t.E2,t.H4-2*t.E2));o.addSecond(i(-t.L2/2,c,t.L2,t.H3));const u=[];u.push(-t.L1/2),u.push(t.L1/2-t.H1);for(const S 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 b of[0,t.L4-t.H1])u.push(S+b);for(const S of u)l.addMain(i(S,c,t.H1,t.H3)),l.addMain(i(S+t.E3,c+t.E3,t.H1-2*t.E3,t.H3-2*t.E3));l.addSecond(i(-t.L1/2,-c,t.L1,t.D1)),l.addSecond(i(-t.L1/2,c-t.H4,t.L1,t.H4));for(const S of u)d.addSecond(i(S,-t.L2/2,t.H1,t.L2));for(const S of h)d.addSecond(i(-t.L1/2,S,t.L1,t.H2));d.addSecond(i(-t.L1/2,-c,t.L1,t.D1));for(const S of u)f.addMain(i(S,-t.L2/2,t.H1,t.L2));for(const S of h)f.addMain(i(-t.L1/2,S,t.L1,t.H2));f.addMain(i(-t.L1/2,-c,t.L1,t.D1));const r=-((t.rod1-1)*t.rod2+t.rod3)/2,g=(t.rod3-t.rod4)/2,H=t.rod3/2,E=1.2*t.L2,I=(E-H)/3,v=-E/2;for(let S=0;S<t.rod1;S++){const b=r+S*t.rod2;f.addSecond(i(b+g,v,t.rod4,E));for(let L=0;L<4;L++)f.addSecond(a(b,v+L*I,t.rod3,H,H/4))}s.fig={faceSide:o,faceFace:l,faceTop:d,faceTopWithRods:f};const $=s.partName;s.vol={extrudes:[{outName:`subpax_${$}_side`,face:`${$}_faceSide`,extrudeMethod:z.eLinearOrtho,length:t.L1,rotate:[0,0,0],translate:[0,0,-t.L1/2]},{outName:`subpax_${$}_face`,face:`${$}_faceFace`,extrudeMethod:z.eLinearOrtho,length:t.L2,rotate:[0,Math.PI/2,0],translate:[-t.L2/2,0,0]}],volumes:[{outName:`pax_${$}`,boolMethod:J.eUnion,inList:[`subpax_${$}_side`,`subpax_${$}_face`]}]},s.sub={},s.logstr+=`heliostat-swing drawn successfully!
42
+ `,s.calcErr=!1}catch(c){s.logstr+=c,console.log(c)}return s}var bt={pTitle:"Heliostat swing",pDescription:"The swing for the heliostat inclination",pDef:te,pGeom:Ne},mt={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 Ce(n,t,_=""){const s=dt(mt.partName+_),i=T(),a=T();s.logstr+=`${s.partName} simTime: ${n}
43
+ `;try{const o=t.H1+t.H2-t.H3+t.H4+t.H5-t.H6+t.H7;s.logstr+=`heliostat-height: ${D(o)}, diameter ${D(t.D1)} m
44
+ `,s.logstr+=`heliostat-swing-length: ${D(t.L1)}, width ${D(t.L2)} m
45
+ `;const d=(t.al-t.ar)/2-Math.sin(2*Math.PI*n/mt.sim.tMax)*(t.al+t.ar)/2,f=xt(d);s.logstr+=`swing position angle: ${D(it(f))} degree
46
+ `;const c=t.H1+t.H2-t.H3,h=c+t.H4+t.H5-t.H6+t.H7,u=h+t.H8,r=at($t.pDef),g=at(Mt.pDef),H=at(Ft.pDef),E=at(bt.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 I=32,v=(t.D1-6*t.E1)/(I*4);r.setVal("N1",I),r.setVal("D5",v),r.setVal("L1",t.E1+v/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),g.setVal("H1",t.H4),g.setVal("H2",t.H5),g.setVal("H3",t.H4-2*t.E1),g.setVal("D1",t.D3),g.setVal("D2",t.D4),g.setVal("L9",t.D3/2),g.setVal("H7",t.D3/2*1.6),g.setVal("H6",t.D3/20),g.setVal("R9",t.D3/20),g.setVal("E1",t.E1),g.setVal("E3",t.E1),g.setVal("E4",t.E1);const $=t.D2*.6,S=24,b=$/(S*4);if(g.setVal("D3",$),t.D2>t.D3-2*t.E1)throw`err153: D2 ${t.D2} too large compare to D3 ${t.D3} and E1 ${t.E1}`;if(g.setVal("N1",S),g.setVal("D7",b),g.setVal("L1",b),g.setVal("H4",t.H6),g.setVal("D4",t.D5),g.setVal("L7",t.L7),g.setVal("L8",t.L8),g.setVal("D6",t.D9),g.setVal("H5",t.H7+t.H8),g.setVal("D5",t.D6),g.setVal("D8",t.D7),t.D6>=t.D7)throw`err164: D6 ${t.D6} too large compare to D7 ${t.D7}`;const L=t.L4-2*t.L3;if(g.setVal("L4",L),L<=0)throw`err169: L3 ${t.L3} too large compare to L4 ${t.L4}`;g.setVal("L5",t.L5+2*t.L3),g.setVal("L6",t.L6+2*t.L3);const P=t.L5*.96,M=6;if(H.setVal("L5",P),H.setVal("D1",t.D8),H.setVal("L1",t.S1),H.setVal("L2",t.S2),H.setVal("L3",t.E2*2),H.setVal("E1",t.E1),H.setVal("E2",t.E2),H.setVal("E3",t.E1),H.setVal("L4",t.L2/2-t.H8),H.setVal("R2",0),H.setVal("N1",M),H.setVal("L6",P/(M*10)),E.setVal("L2",t.L2),E.setVal("D1",t.D6),E.setVal("H3",t.H9),E.setVal("H4",t.H9),E.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}`;E.setVal("H1",t.L3),E.setVal("H2",t.L3),E.setVal("L4",t.L4),E.setVal("L5",t.L5),E.setVal("L6",t.L6),E.setVal("L3",t.D7);const w=$t.pGeom(0,r.getParamVal(),r.getSuffix());gt(w),s.logstr+=ht(w.logstr,r.getPartNameSuffix());const x=Mt.pGeom(0,g.getParamVal(),g.getSuffix());gt(x),s.logstr+=ht(x.logstr,g.getPartNameSuffix());const R=Ft.pGeom(0,H.getParamVal(),H.getSuffix());gt(R),s.logstr+=ht(R.logstr,H.getPartNameSuffix());const V=bt.pGeom(0,E.getParamVal(),E.getSuffix());gt(V),s.logstr+=ht(V.logstr,E.getPartNameSuffix()),i.mergeFigure(w.fig.poleCut),i.mergeFigure(x.fig.faceBeam.translate(0,c)),i.mergeFigure(R.fig.faceLegs.translate(0,h).rotate(0,h,f/2)),i.mergeFigure(V.fig.faceSide.translate(0,u).rotate(0,u,f)),a.mergeFigure(w.fig.poleCut),a.mergeFigure(x.fig.faceCone.translate(0,c)),a.mergeFigure(R.fig.faceBody.translate(-P/2,h)),a.mergeFigure(V.fig.faceFace.translate(0,u)),s.fig={faceSide:i,faceFace:a};const A=s.partName;s.vol={inherits:[{outName:`inpax_${A}_poleStatic`,subdesign:"pax_pole_static",subgeom:w,rotate:[0,0,0],translate:[0,0,0]},{outName:`inpax_${A}_rake`,subdesign:"pax_rake",subgeom:x,rotate:[0,0,0],translate:[0,0,c]},{outName:`inpax_${A}_swing`,subdesign:"pax_swing",subgeom:V,rotate:[Math.PI/2,0,0],translate:[0,0,u]},{outName:`inpax_${A}_spider`,subdesign:"pax_spider",subgeom:R,rotate:[Math.PI/2,0,0],translate:[0,P/2,h]}],extrudes:[],volumes:[{outName:`pax_${A}`,boolMethod:J.eUnion,inList:[`inpax_${A}_poleStatic`,`inpax_${A}_rake`,`inpax_${A}_swing`,`inpax_${A}_spider`]}]};const B={partName:r.getPartName(),dparam:r.getDesignParamList(),orientation:[0,0,0],position:[0,0,0]},y={partName:g.getPartName(),dparam:g.getDesignParamList(),orientation:[0,0,0],position:[0,0,c]},G={partName:H.getPartName(),dparam:H.getDesignParamList(),orientation:[Math.PI/2,0,0],position:[0,P/2,h]},Y={partName:E.getPartName(),dparam:E.getDesignParamList(),orientation:[Math.PI/2,0,0],position:[0,0,u]};s.sub={pole_static_1:B,rake_1:y,spider_1:G,swing_1:Y},s.logstr+=`heliostat-overview drawn successfully!
47
+ `,s.calcErr=!1}catch(o){s.logstr+=o,console.log(o)}return s}var Ie={pTitle:"Heliostat overview",pDescription:"The heliostat inclination mechanism",pDef:mt,pGeom:Ce},ee={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 Ve(n,t,_=""){const s=dt(ee.partName+_);let i;const a=T(),o=T(),l=T(),d=T(),f=T(),c=T(),h=T(),u=T(),r=T(),g=T(),H=T(),E=T(),I=T(),v=T(),$=T();s.logstr+=`${s.partName} simTime: ${n}
48
+ `;try{const S=t.D1/2,b=t.H1+t.H2,L=b-t.H4+t.H5;if(s.logstr+=`cone-height: ${D(b)} mm
49
+ `,s.logstr+=`cone-height total: ${D(L)} mm
50
+ `,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 P=L-t.S2;if(P<0)throw`err143: S2 ${t.S2} too large compare to H1H5 ${D(L)}`;const M=t.H1+t.H2-t.H4+t.D4/2,w=t.H1+t.L8-t.S1;i=function(tt,K,st,lt,rt){const ft=tt*Math.cos(rt),Ht=tt*Math.sin(rt),St=-K*Math.sin(rt),wt=K*Math.cos(rt);return m(st,lt).addSegStrokeA(st+ft,lt+Ht).addSegStrokeA(st+ft+St,lt+Ht+wt).addSegStrokeA(st+St,lt+wt).closeSegStroke()};const x=at(Mt.pDef);x.setVal("D1",t.D1),x.setVal("D2",t.D2),x.setVal("D3",t.D3),x.setVal("H1",t.H1),x.setVal("H2",t.H2),x.setVal("H3",t.H3),x.setVal("E1",t.E1),x.setVal("E3",t.E3),x.setVal("H4",t.H4),x.setVal("D4",t.D4),x.setVal("E4",t.E4),x.setVal("H5",t.H5),x.setVal("D5",t.D5),x.setVal("L4",t.L4),x.setVal("L5",t.L5),x.setVal("L6",t.L6),x.setVal("D6",t.D6),x.setVal("E6",t.E6),x.setVal("L7",t.L7),x.setVal("L8",t.L8),x.setVal("N1",t.N1),x.setVal("D7",t.D7),x.setVal("L1",t.L1),x.setVal("D8",t.D8),x.setVal("H6",t.H6),x.setVal("H7",t.H7),x.setVal("L9",t.L9),x.setVal("R9",t.R9);const R=Mt.pGeom(0,x.getParamVal(),x.getSuffix());gt(R),s.logstr+=ht(R.logstr,x.getPartNameSuffix()),a.mergeFigure(R.fig.faceCone),o.mergeFigure(R.fig.faceBeam),l.mergeFigure(R.fig.faceBeamHollow),d.mergeFigure(R.fig.faceDisc),f.mergeFigure(R.fig.faceHand),c.mergeFigure(R.fig.faceWing),h.mergeFigure(R.fig.faceWingHollow),u.mergeFigure(R.fig.faceDoor),r.mergeFigure(R.fig.faceDisc,!0);const V=t.L5/2,A=t.S1/2,B=t.S1-2*t.E7,y=B/2;r.addMain(i(t.S1,t.L5,-S-t.S1,-V,0)),r.addMain(i(B,t.L5,-S-t.E7-B,-V,0)),r.addMain(i(t.S1,t.L5,t.S2-t.S1,-V,0)),r.addMain(i(B,t.L5,t.S2-t.E7-B,-V,0));const G=t.S2-t.S1/2;r.addMain(i(G,t.S1,0,-V,0)),r.addMain(i(G,B,0,-V+t.E7,0)),r.addMain(i(G,t.S1,0,V-t.S1,0)),r.addMain(i(G,B,0,V-t.S1+t.E7,0)),r.addMain(i(G,t.S1,0,-S-t.S1,0)),r.addMain(i(G,B,0,-S-t.S1+t.E7,0)),r.addMain(i(G,t.S1,0,S,0)),r.addMain(i(G,B,0,S+t.E7,0)),g.mergeFigure(R.fig.faceBeam,!0),g.addMain(k(-S-A,P+A,A)),g.addMain(k(-S-A,P+A,y)),g.addMain(k(t.S2-A,M+A,A)),g.addMain(k(t.S2-A,M+A,y)),g.addSecond(i(G,t.S1,0,M,0)),g.addSecond(i(G,B,0,M+t.E7,0));const Y=M+t.S1/2-w,X=Math.sqrt(G**2+Y**2),Z=Math.atan2(Y,G);s.logstr+=`stopper-rod: L ${D(X)} mm, A ${D(it(Z))} degree
51
+ `;const O=A*Math.sin(Z),Q=A*Math.cos(Z),W=w-Q;g.addSecond(i(X,t.S1,O,W,Z));const ot=y*Math.sin(Z),U=y*Math.cos(Z),N=w-U;g.addSecond(i(X,B,ot,N,Z)),H.mergeFigure(R.fig.faceBeam,!0),H.addSecond(k(-S-A,P+A,A)),H.addMain(k(-S-A,P+A,y)),H.addSecond(k(t.S2-A,M+A,A)),H.addMain(k(t.S2-A,M+A,y)),E.mergeFigure(R.fig.faceCone,!0),E.addMain(k(-t.L5/2+A,M+A,A)),E.addMain(k(-t.L5/2+A,M+A,y)),E.addMain(k(t.L5/2-A,M+A,A)),E.addMain(k(t.L5/2-A,M+A,y)),I.mergeFigure(R.fig.faceCone,!0),I.addSecond(k(-t.L5/2+A,M+A,A)),I.addMain(k(-t.L5/2+A,M+A,y)),I.addSecond(k(t.L5/2-A,M+A,A)),I.addMain(k(t.L5/2-A,M+A,y)),v.mergeFigure(R.fig.faceCone,!0),v.addMain(k(-S-A,0,A)),v.addMain(k(-S-A,0,y)),v.addMain(k(S+A,0,A)),v.addMain(k(S+A,0,y)),$.mergeFigure(R.fig.faceCone,!0),$.addSecond(k(-S-A,0,A)),$.addMain(k(-S-A,0,y)),$.addSecond(k(S+A,0,A)),$.addMain(k(S+A,0,y)),s.fig={faceCone:a,faceBeam:o,faceBeamHollow:l,faceDisc:d,faceHand:f,faceWing:c,faceWingHollow:h,faceDoor:u,faceStopperTop:r,faceStopperSide:g,faceStopperSideH:H,faceStopperFaceT:E,faceStopperFaceTH:I,faceStopperFaceB:v,faceStopperFaceBH:$};const C=s.partName;s.vol={inherits:[{outName:`inpax_${C}_rake`,subdesign:"pax_rake",subgeom:R,rotate:[0,0,0],translate:[0,0,0]}],extrudes:[{outName:`subpax_${C}_stpSide`,face:`${C}_faceStopperSide`,extrudeMethod:z.eLinearOrtho,length:t.L5,rotate:[Math.PI/2,0,0],translate:[0,t.L5/2,0]},{outName:`subpax_${C}_stpSideH`,face:`${C}_faceStopperSideH`,extrudeMethod:z.eLinearOrtho,length:t.L5,rotate:[Math.PI/2,0,0],translate:[0,t.L5/2,0]},{outName:`subpax_${C}_stpFaceT`,face:`${C}_faceStopperFaceT`,extrudeMethod:z.eLinearOrtho,length:G,rotate:[Math.PI/2,0,Math.PI/2],translate:[0,0,0]},{outName:`subpax_${C}_stpFaceTH`,face:`${C}_faceStopperFaceTH`,extrudeMethod:z.eLinearOrtho,length:G,rotate:[Math.PI/2,0,Math.PI/2],translate:[0,0,0]},{outName:`subpax_${C}_stpFaceB`,face:`${C}_faceStopperFaceB`,extrudeMethod:z.eLinearOrtho,length:X,rotate:[Math.PI/2-Z,0,Math.PI/2],translate:[0,0,w]},{outName:`subpax_${C}_stpFaceBH`,face:`${C}_faceStopperFaceBH`,extrudeMethod:z.eLinearOrtho,length:X,rotate:[Math.PI/2-Z,0,Math.PI/2],translate:[0,0,w]}],volumes:[{outName:`ipax_${C}_plus`,boolMethod:J.eUnion,inList:[`subpax_${C}_stpSide`,`subpax_${C}_stpFaceT`,`subpax_${C}_stpFaceB`]},{outName:`ipax_${C}_hollow`,boolMethod:J.eUnion,inList:[`subpax_${C}_stpSideH`,`subpax_${C}_stpFaceTH`,`subpax_${C}_stpFaceBH`]},{outName:`ipax_${C}_stopper`,boolMethod:J.eSubstraction,inList:[`ipax_${C}_plus`,`ipax_${C}_hollow`]},{outName:`pax_${C}`,boolMethod:J.eUnion,inList:[`inpax_${C}_rake`,`ipax_${C}_stopper`]}]},s.sub={},s.logstr+=`heliostat-rake drawn successfully!
52
+ `,s.calcErr=!1}catch(S){s.logstr+=S,console.log(S)}return s}var Ot={pTitle:"Heliostat rake with stopper",pDescription:"The rake-stopper on top of the V-Axis of the heliostat",pDef:ee,pGeom:Ve},zt={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 Te(n,t,_=""){const s=dt(zt.partName+_),i=T(),a=T(),o=T();s.logstr+=`${s.partName} simTime: ${n}
53
+ `;try{const l=t.H1+t.H2-t.H3+t.H4+t.H5-t.H6+t.H7;s.logstr+=`heliostat-height: ${D(l)}, diameter ${D(t.D1)} m
54
+ `,s.logstr+=`heliostat-swing-length: ${D(t.L1)}, width ${D(t.L2)} m
55
+ `;const d=t.al*n/zt.sim.tMax,f=xt(d);s.logstr+=`swing position angle: ${D(it(f))} degree
56
+ `;const c=t.H1+t.H2-t.H3,h=c+t.H4+t.H5-t.H6+t.H7,u=at($t.pDef),r=at(Ot.pDef),g=at(bt.pDef);u.setVal("H1",t.H1),u.setVal("H2",t.H2),u.setVal("D1",t.D1),u.setVal("D2",t.D2),u.setVal("D3",t.D1-6*t.E1),u.setVal("E1",t.E1),u.setVal("E2",t.E1);const H=32,E=(t.D1-6*t.E1)/(H*4);u.setVal("N1",H),u.setVal("D5",E),u.setVal("L1",t.E1+E/2),u.setVal("H3",t.H1/4),u.setVal("H4",t.H1/2),u.setVal("D4",t.H1/4),u.setVal("L2",t.H1/80),u.setVal("E3",t.H1/80),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 I=t.D2*.6,v=24,$=I/(v*4);if(r.setVal("D3",I),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",v),r.setVal("D7",$),r.setVal("L1",$),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 S=t.L4-2*t.L3;if(r.setVal("L4",S),S<=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),g.setVal("L2",t.L2),g.setVal("D1",t.D6),g.setVal("H3",t.H9),g.setVal("H4",t.H9),g.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}`;g.setVal("H1",t.L3),g.setVal("H2",t.L3),g.setVal("L4",t.L4),g.setVal("L5",t.L5),g.setVal("L6",t.L6),g.setVal("L3",t.D7);const b=$t.pGeom(0,u.getParamVal(),u.getSuffix());gt(b),s.logstr+=ht(b.logstr,u.getPartNameSuffix());const L=Ot.pGeom(0,r.getParamVal(),r.getSuffix());gt(L),s.logstr+=ht(L.logstr,r.getPartNameSuffix());const P=bt.pGeom(0,g.getParamVal(),g.getSuffix());gt(P),s.logstr+=ht(P.logstr,g.getPartNameSuffix()),i.mergeFigure(b.fig.poleCut),i.mergeFigure(L.fig.faceStopperSide.translate(0,c)),i.mergeFigure(P.fig.faceSide.translate(0,h).rotate(0,h,f)),a.mergeFigure(b.fig.poleCut),a.mergeFigure(L.fig.faceStopperFaceT.translate(0,c)),a.mergeFigure(P.fig.faceFace.translate(0,h)),o.mergeFigure(b.fig.poleBottom.translate(0,0)),o.mergeFigure(L.fig.faceStopperTop.translate(0,0)),o.mergeFigure(P.fig.faceTop.rotate(0,0,Math.PI/2)),s.fig={faceSide:i,faceFace:a,faceTop:o};const M=s.partName;s.vol={inherits:[{outName:`inpax_${M}_poleStatic`,subdesign:"pax_pole_static",subgeom:b,rotate:[0,0,0],translate:[0,0,0]},{outName:`inpax_${M}_rake`,subdesign:"pax_rake_stopper",subgeom:L,rotate:[0,0,0],translate:[0,0,c]},{outName:`inpax_${M}_swing`,subdesign:"pax_swing",subgeom:P,rotate:[Math.PI/2,0,0],translate:[0,0,h]}],extrudes:[],volumes:[{outName:`pax_${M}`,boolMethod:J.eUnion,inList:[`inpax_${M}_poleStatic`,`inpax_${M}_rake`,`inpax_${M}_swing`]}]};const w=u.getDesignParamList(),x={partName:u.getPartName(),dparam:w,orientation:[0,0,0],position:[0,0,0]},R={partName:r.getPartName(),dparam:r.getDesignParamList(),orientation:[0,0,0],position:[0,0,c]},V={partName:g.getPartName(),dparam:g.getDesignParamList(),orientation:[0,0,0],position:[0,0,h]};s.sub={pole_static_1:x,rake_1:R,swing_1:V},s.logstr+=`heliostat-2-overview drawn successfully!
57
+ `,s.calcErr=!1}catch(l){s.logstr+=l,console.log(l)}return s}var ye={pTitle:"Heliostat-2 overview",pDescription:"The heliostat-2 inclination mechanism",pDef:zt,pGeom:Te},se={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 Fe(n,t,_=""){const s=dt(se.partName+_);let i,a,o;const l=T(),d=T(),f=T();s.logstr+=`${s.partName} simTime: ${n}
58
+ `;try{const c=t.D1/2,h=t.D2/2,u=t.D3/2,r=t.D4/2,g=t.D5/2,H=t.L2/2;if(h<c)throw`err089: D2 ${t.D2} too small compare to D1 ${t.D1}`;if(r>c-t.E2)throw`err189: D4 ${t.D4} too large compare to D1 ${t.D1} and E2 ${t.E2}`;s.logstr+=`base-height: ${D(t.H1)} mm
59
+ `,s.logstr+=`base-external-diameter: ${D(t.D2)} mm
60
+ `;const E=t.D1*Math.PI/t.N2-t.L2;if(s.logstr+=`inter-hollow: ${D(E)} mm
61
+ `,i=function(R){return m(R*h,0).addSegStrokeA(R*h,t.E3).addSegStrokeA(R*c,t.E3).addSegStrokeA(R*c,t.H1).addSegStrokeA(R*(c-t.E2),t.H1).addSegStrokeA(R*(c-t.E2),t.E3).addSegStrokeA(R*r,t.E3).addSegStrokeA(R*r,0).closeSegStroke()},a=function(R){return m(R*h,0).addSegStrokeA(R*h,t.E3).addSegStrokeA(R*c,t.E3).addSegStrokeA(R*c,t.H1).addSegStrokeA(R*u,t.H1).addSegStrokeA(R*u,t.H1-t.E1).addSegStrokeA(R*(c-t.E2),t.H1-t.E1).addSegStrokeA(R*(c-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 I=2*Math.asin(H/(c-t.E2));if(t.N2*I>2*Math.PI)throw`err132: N2 ${t.N2} too large compare to L2 ${t.L2}, D1 ${t.D1}, E2 ${t.E2}`;const v=t.E3+t.H2+H;if(o=function(R){return m(R*H,v).addSegStrokeA(R*H,v+t.H3-t.L2).addPointA(-R*H,v+t.H3-t.L2).addSegArc(H,!1,!0).addSegStrokeA(-R*H,v).closeSegArc(H,!1,!0)},l.addMain(i(1)),l.addSecond(a(1)),l.addSecond(a(-1)),l.addSecond(o(1)),u+t.L1+g>c-t.E2)throw`err127: D3 ${t.D3} too large compare to D1 ${t.D1}, E2 ${t.E2}, L1 ${t.L1}, R5 ${t.D5}`;if(g>t.L1)throw`err130: D5 ${t.D5} too large compare to L1 ${t.L1}`;const $=2*Math.asin(g/(h+t.L1));if(t.N1*$>2*Math.PI)throw`err134: N1 ${t.N1} too large compare to D5 ${t.D5}, L1 ${t.L1}, D2 ${t.D2}`;d.addMain(k(0,0,c)),d.addMain(k(0,0,u));const S=u+t.L1,b=2*Math.PI/t.N1;for(let R=0;R<t.N1;R++){const V=S*Math.cos(R*b),A=S*Math.sin(R*b);d.addMain(k(V,A,g))}d.addSecond(k(0,0,c-t.E1)),d.addSecond(k(0,0,h)),d.addSecond(k(0,0,r)),f.addMain(o(1)),f.addSecond(a(1)),f.addSecond(a(-1)),s.fig={faceCut:l,faceTop:d,faceHollow:f};const L=s.partName,P=2*Math.PI/t.N2,M=[...Array(t.N2).keys()],w=M.map(R=>({outName:`subpax_${L}_hollow_${R}`,face:`${L}_faceHollow`,extrudeMethod:z.eLinearOrtho,length:h+t.E2,rotate:[Math.PI/2,0,R*P],translate:[0,0,0]})),x=M.map(R=>`subpax_${L}_hollow_${R}`);s.vol={extrudes:[{outName:`subpax_${L}_cut`,face:`${L}_faceCut`,extrudeMethod:z.eRotate,rotate:[0,0,0],translate:[Math.PI/2,0,0]},{outName:`subpax_${L}_top`,face:`${L}_faceTop`,extrudeMethod:z.eLinearOrtho,length:t.E1,rotate:[0,0,0],translate:[0,0,t.H1-t.E1]},...w],volumes:[{outName:`ipax_${L}_hollows`,boolMethod:J.eUnion,inList:[...x]},{outName:`ipax_${L}_cylinder`,boolMethod:J.eSubstraction,inList:[`subpax_${L}_cut`,`ipax_${L}_hollows`]},{outName:`pax_${L}`,boolMethod:J.eUnion,inList:[`ipax_${L}_cylinder`,`subpax_${L}_top`]}]},s.sub={},s.logstr+=`heliostat-base drawn successfully!
62
+ `,s.calcErr=!1}catch(c){s.logstr+=c,console.log(c)}return s}var me={pTitle:"Heliostat base",pDescription:"The base for the static-pole of the heliostat",pDef:se,pGeom:Fe},oe={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 Oe(n,t,_=""){const s=dt(oe.partName+_);let i;const a=T(),o=T();s.logstr+=`${s.partName} simTime: ${n}
63
+ `;try{const l=t.D1/2,d=t.D2/2,f=t.D3/2;s.logstr+=`vaxis-height: ${D(t.H1)} mm
64
+ `;const c=m(l,0).addSegStrokeA(l,t.H1).addSegStrokeA(l-t.E1,t.H1).addSegStrokeA(l-t.E1,0).closeSegStroke();a.addMain(c),i=function(g){return m(g*l,0).addSegStrokeA(g*l,t.H1).addSegStrokeA(g*d,t.H1).addSegStrokeA(g*d,t.H1-t.E2).addSegStrokeA(g*(l-t.E1),t.H1-t.E2).addSegStrokeA(g*(l-t.E1),t.E2).addSegStrokeA(g*d,t.E2).addSegStrokeA(g*d,0).closeSegStroke()},a.addSecond(i(1)),a.addSecond(i(-1)),o.addMain(k(0,0,l)),o.addMain(k(0,0,d));const h=d+t.L1,u=2*Math.PI/t.N1;for(let g=0;g<t.N1;g++){const H=h*Math.cos(g*u),E=h*Math.sin(g*u);o.addMain(k(H,E,f))}o.addSecond(k(0,0,l-t.E1)),s.fig={faceCut:a,faceBottom:o};const r=s.partName;s.vol={extrudes:[{outName:`subpax_${r}_pole`,face:`${r}_faceCut`,extrudeMethod:z.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${r}_bottom`,face:`${r}_faceBottom`,extrudeMethod:z.eLinearOrtho,length:t.E2,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${r}_top`,face:`${r}_faceBottom`,extrudeMethod:z.eLinearOrtho,length:t.E2,rotate:[0,0,0],translate:[0,0,t.H1-t.E2]}],volumes:[{outName:`pax_${r}`,boolMethod:J.eUnion,inList:[`subpax_${r}_pole`,`subpax_${r}_bottom`,`subpax_${r}_top`]}]},s.sub={},s.logstr+=`V-Axis drawn successfully!
65
+ `,s.calcErr=!1}catch(l){s.logstr+=l,console.log(l)}return s}var ze={pTitle:"Heliostat V-Axis",pDescription:"The vertical axis inside the pole of an heliostat",pDef:oe,pGeom:Oe},ne={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 Be(n,t,_=""){const s=dt(ne.partName+_),i=T(),a=T(),o=T();s.logstr+=`${s.partName} simTime: ${n}
66
+ `;try{const l=t.D1/2,d=t.D2/2,f=t.D3/2,c=t.H1+t.H2;if(t.L1<d)throw`err203: L1 ${t.L1} too small compare to D2 ${t.D2}`;if(l+t.L1+d>f-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(d,l+t.L1)>2*Math.PI/t.N2)throw`err205: D2 ${t.D2} too large compare to N2 ${t.N2}`;s.logstr+=`ring-height: ${D(c)} mm
67
+ `;const h=f-t.L2,u=h-t.L3,r=2*Math.PI/(2*t.N1),g=m(h,0);for(let L=0;L<t.N1;L++){const P=2*L+1,M=2*L+2,w=u*Math.cos(P*r),x=u*Math.sin(P*r),R=h*Math.cos(M*r),V=h*Math.sin(M*r);g.addSegStrokeA(w,x).addSegStrokeA(R,V)}i.addMain(k(0,0,f)),i.addMain(k(0,0,l));const H=l+t.L1,E=2*Math.PI/t.N2;for(let L=0;L<t.N2;L++){const P=H*Math.cos(L*E),M=H*Math.sin(L*E);i.addMain(k(P,M,d)),a.addSecond(k(P,M,d))}i.addSecond(g),a.addMain(k(0,0,f)),a.addMain(g),a.addSecond(k(0,0,l));const I=m(l,0).addSegStrokeA(-l,0).addSegStrokeA(-l,-t.H1).addSegStrokeA(l,-t.H1).closeSegStroke(),v=function(L){return m(L*(l+t.L1)+d,0).addSegStrokeR(-2*d,0).addSegStrokeR(0,-t.H1).addSegStrokeR(2*d,0).closeSegStroke()},$=function(L){return m(L*(f-t.L2),-t.H1).addSegStrokeR(-L*t.L3,0).addSegStrokeR(0,-t.H2).addSegStrokeR(L*t.L3,0).closeSegStroke()},S=function(L){return m(L*f,0).addSegStrokeR(-L*(f-l),0).addSegStrokeR(0,-t.H1).addSegStrokeR(L*(f-t.L2-t.L3-l),0).addSegStrokeR(0,-t.H2).addSegStrokeR(L*(t.L2+t.L3),0).closeSegStroke()};o.addSecond(I),o.addSecond(v(1)),o.addSecond(v(-1)),o.addSecond($(1)),o.addSecond($(-1)),o.addMain(S(1)),o.addSecond(S(-1)),s.fig={faceRingBase:i,faceRingTeeth:a,faceSection:o};const b=s.partName;s.vol={extrudes:[{outName:`subpax_${b}_base`,face:`${b}_faceRingBase`,extrudeMethod:z.eLinearOrtho,length:t.H1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${b}_teeth`,face:`${b}_faceRingTeeth`,extrudeMethod:z.eLinearOrtho,length:c,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${b}`,boolMethod:J.eUnion,inList:[`subpax_${b}_base`,`subpax_${b}_teeth`]}]},s.sub={},s.logstr+=`ring drawn successfully!
68
+ `,s.calcErr=!1}catch(l){s.logstr+=l,console.log(l)}return s}var Ge={pTitle:"Heliostat ring",pDescription:"The gear ring for adjusting the azimuth of the heliostat",pDef:ne,pGeom:Be};function pe(n){let t="";const _=n.PHD1/2,s=n.PHD5/2,i=2*Math.asin(n.PHR4/_),a=2*Math.asin(n.PHL2/(2*s)),o=2*Math.PI/n.PHN1-a,l=n.PHL2/2,d=Math.sqrt(s**2-l**2)-_,f=Math.sqrt(l**2+d**2),c=Math.acos(d/f),h=Math.acos(n.PHR4/f),u=Math.PI-c-h;if(s<_+n.PHR4)throw`err211: PHD5 ${n.PHD5} too small compare to PHD1 ${n.PHD1} or PHR4 ${n.PHR4}`;if(o<a)throw`err212: PHL2 ${n.PHL2} too large compare to PHN1 ${n.PHN1}`;if(n.PHD3>2*n.PHR4)throw`err213: PHD3 ${n.PHD3} too large compare to PHR4 ${n.PHR4}`;u>Math.PI/2-i&&(t+=`warn345: PHL2 is quiet small ${D(n.PHL2)} mm
69
+ `),t+=`petal angle: ${D(it(a))} degree
70
+ `,t+=`hollow angle: ${D(it(o))} degree
71
+ `;const r=et(0,0),H=et(s,0).rotate(r,-a/2),E=et(_,0),I=et(_-n.PHR4,0),v=I.rotate(E,u),$=I.rotate(E,-u),S=m(H.cx,H.cy).addCornerRounded(n.PHR6).addSegStrokeA(v.cx,v.cy).addPointA(_-n.PHR4,0).addPointA($.cx,$.cy).addSegArc2().addSegStrokeAP(a/2,s).addCornerRounded(n.PHR6).addPointAP(a/2+o/2,s).addPointAP(a/2+o,s).addSegArc2(),b=m(H.cx,H.cy),L=[...Array(n.PHN1).keys()].map(P=>P*(a+o));for(const P of L)b.addPartial(S.rotate(0,0,P));return[t,b,L]}function ie(n){const t="",_=n.D1/2,s=n.D2/2,i=n.D4/2,a=2*Math.PI/n.N1,o=n.L1/2,l=Math.sqrt(s**2-o**2),d=Math.asin(o/s),f=_-l,c=Math.atan2(o,f),h=Math.sqrt(o**2+f**2),u=Math.acos(i/h),r=c+u,g=(a-2*d)/2;if(g<0)throw`err464: N1 ${n.N1} is too large compare to D2 ${n.D2}, L1 ${n.L1}`;if(_<s)throw`err465: D2 ${n.D2} is too large compare to D1 ${n.D1}`;const H=m(l,-o),E=et(0,0),I=et(s,0),v=et(_,0),S=et(_-i,0).rotate(v,r),b=I.rotate(E,d+g),L=I.rotate(E,a-d),P=m(l,-o).addCornerRounded(n.R5).addSegStrokeA(S.cx,S.cy).addPointA(_+i,0).addPointA(S.cx,-S.cy).addSegArc2().addSegStrokeA(l,o).addCornerRounded(n.R5).addPointA(b.cx,b.cy).addPointA(L.cx,L.cy).addSegArc2();for(let M=0;M<n.N1;M++)H.addPartial(P.rotate(0,0,M*a));return[t,H,a]}function Ue(n){const t="",_=n.D6/2,s=2*Math.PI/n.N2,i=n.E2/2,a=2*Math.asin(i/_),o=(s-a)/2,l=n.N2<3?0:Math.PI/(2*n.N2),d=Math.PI/2+l+xt(n.a1);if(o<0)throw`err564: N2 ${n.N2} is too large compare to D6 ${n.D6}, E2 ${n.E2}`;const f=m(_,0),c=et(0,-_),h=et(0,0),u=c.rotate(h,-a),g=c.translatePolar(d,n.L2).translatePolar(d+Math.PI/2,n.E1),H=c.translatePolar(d,n.L2+n.L4),E=H.translatePolar(d+Math.PI/2,n.E1),I=m(u.cx,u.cy).addSegStrokeA(g.cx,g.cy);if(n.N3>0){let v=g;const $=n.W1/2,S=n.E1+$;for(let L=0;L<n.N3;L++){const M=v.translatePolar(d-Math.PI/2,S).translatePolar(d,S),w=v.translatePolar(d-Math.PI/2,2*S),x=w.translatePolar(d+Math.PI,n.L3),V=x.translatePolar(d-Math.PI/2,$).translatePolar(d+Math.PI,$),A=x.translatePolar(d-Math.PI/2,2*$);let B=0;L===n.N3-1&&(B=n.L4);const y=A.translatePolar(d,n.L3+B);I.addPointA(M.cx,M.cy).addPointA(w.cx,w.cy).addSegArc2().addSegStrokeA(x.cx,x.cy).addPointA(V.cx,V.cy).addPointA(A.cx,A.cy).addSegArc2().addSegStrokeA(y.cx,y.cy),v=y}const b=v.translatePolar(d-Math.PI/2,n.E1);I.addSegStrokeA(b.cx,b.cy),v=b;for(let L=0;L<n.N3;L++){let P=0;L===0&&(P=n.L4);const M=v.translatePolar(d+Math.PI,n.L3+P),x=M.translatePolar(d+Math.PI/2,S).translatePolar(d+Math.PI,S),R=M.translatePolar(d+Math.PI/2,2*S),V=R.translatePolar(d,n.L3),B=V.translatePolar(d+Math.PI/2,$).translatePolar(d,$),y=V.translatePolar(d+Math.PI/2,2*$);I.addSegStrokeA(M.cx,M.cy).addPointA(x.cx,x.cy).addPointA(R.cx,R.cy).addSegArc2().addSegStrokeA(V.cx,V.cy).addPointA(B.cx,B.cy).addPointA(y.cx,y.cy).addSegArc2(),v=y}}else I.addSegStrokeA(E.cx,E.cy).addSegStrokeA(H.cx,H.cy);I.addSegStrokeA(c.cx,c.cy);for(let v=0;v<n.N2;v++)f.addPointAP(v*s+o,_).addPointAP(v*s+2*o,_).addSegArc2().addCornerRounded(n.R7).addPartial(I.rotate(0,0,Math.PI/2+(v+1)*s)).addCornerRounded(n.R7);return[t,f]}var de={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 We(n,t,_=""){const s=dt(de.partName+_),i=T(),a=T(),o=T(),l=T();s.logstr+=`${s.partName} simTime: ${n}
72
+ `;try{const d=xt(t.PHA),f=t.PHD1/2,c=t.PHD2/2,h=t.PHD3/2,u=t.PHD5/2,r=c+t.PHL1/2*Math.sin(d),g=c-t.PHL1/2*Math.sin(d),H=t.PHL1*Math.cos(d),E=c-t.PHE2/Math.cos(d)+t.PHE1/2*Math.tan(d),I=c-t.PHE2/Math.cos(d)-t.PHE1/2*Math.tan(d),v=Math.min(E,I),$=(t.PHL1-t.PHE1/Math.cos(d))/2,S=c-t.PHE2/Math.cos(d);if(v<u)throw`err210: PHD5 ${t.PHD5} too large compare to PHE2 ${t.PHE2} or PHA ${t.PHA}`;s.logstr+=`vaxis_holder's height: ${D(H)} mm
73
+ `,s.logstr+=`vaxis_holder outerD1: ${D(2*r)} mm
74
+ `,s.logstr+=`vaxis_holder outerD2: ${D(2*g)} mm
75
+ `,s.logstr+=`vaxis_holder innerD: ${D(t.PHD1-2*t.PHR4)} mm
76
+ `,s.logstr+=`vaxis_holder D2-next: ${D(2*S)} mm
77
+ `;const b=function(O){return m(O*u,-t.PHE1/2).addSegStrokeR(O*(E-u),0).addSegStrokeRP(-Math.PI/2+O*d,$).addSegStrokeRP(-Math.PI/2+O*(Math.PI/2+d),t.PHE2).addSegStrokeRP(Math.PI/2+O*d,t.PHL1).addSegStrokeRP(Math.PI/2+O*(Math.PI/2+d),t.PHE2).addSegStrokeRP(-Math.PI/2+O*d,$).addSegStrokeA(O*u,t.PHE1/2).closeSegStroke()},L=function(O){return m(O*v,-t.PHE1/2).addSegStrokeA(O*v,t.PHE1/2).addSegStrokeA(O*(f-t.PHR4),t.PHE1/2).addSegStrokeA(O*(f-t.PHR4),-t.PHE1/2).closeSegStroke()},P=function(O){return m(O*(f+h),-t.PHE1/2).addSegStrokeA(O*(f+h),t.PHE1/2).addSegStrokeA(O*(f-h),t.PHE1/2).addSegStrokeA(O*(f-h),-t.PHE1/2).closeSegStroke()};i.addMain(b(1)),i.addSecond(b(-1)),i.addSecond(L(1)),i.addSecond(P(1)),i.addSecond(L(-1)),i.addSecond(P(-1));const M=function(O){return m(O*(f+t.PHR4),-t.PHE1/2).addSegStrokeA(O*E,-t.PHE1/2).addSegStrokeRP(-Math.PI/2+O*d,$).closeSegStroke()},w=function(O){return m(O*(f+t.PHR4),t.PHE1/2).addSegStrokeA(O*I,t.PHE1/2).addSegStrokeRP(Math.PI/2+O*d,$).addSegStrokeA(O*(f+t.PHR4),t.PHE1+t.PHH1).closeSegStroke()};i.addSecond(M(-1)),i.addSecond(w(-1)),o.mergeFigure(i,!0),l.mergeFigure(i,!0),i.addSecond(M(1)),i.addSecond(w(1)),o.addMain(M(1)),o.addSecond(w(1)),l.addSecond(M(1)),l.addMain(w(1)),a.addMain(k(0,0,v)),a.addSecond(k(0,0,c)),a.addSecond(k(0,0,Math.max(r,g)));const[x,R,V]=pe(t);s.logstr+=x,a.addMain(R);for(const O of V){const Q=et(0,0).translatePolar(O,f);a.addMain(k(Q.cx,Q.cy,t.PHD3/2))}const A=m(f+t.PHR4,-t.PHE3).addSegStrokeA(v,-t.PHE3).addSegStrokeA(v,t.PHE3).addSegStrokeA(f+t.PHR4,t.PHE3).closeSegStroke();for(const O of V)a.addSecond(A.rotate(0,0,O));s.fig={facePetal:a,faceOuter:i,faceButtress1:o,faceButtress2:l};const B=s.partName,y=It();y.addRotation(Math.PI/2,0,0),y.addTranslation(0,t.PHE3/2,0);const G=V.map((O,Q)=>{const W=It(y.getMatrix());return W.addRotation(0,0,O),{outName:`subpax_${B}_b1_${Q}`,face:`${B}_faceButtress1`,extrudeMethod:z.eLinearOrtho,length:t.PHE3,rotate:W.getRotation(),translate:W.getTranslation()}}),Y=V.map((O,Q)=>{const W=It(y.getMatrix());return W.addRotation(0,0,O),{outName:`subpax_${B}_b2_${Q}`,face:`${B}_faceButtress2`,extrudeMethod:z.eLinearOrtho,length:t.PHE3,rotate:W.getRotation(),translate:W.getTranslation()}}),X=V.map((O,Q)=>`subpax_${B}_b1_${Q}`),Z=V.map((O,Q)=>`subpax_${B}_b2_${Q}`);s.vol={extrudes:[{outName:`subpax_${B}_outer`,face:`${B}_faceOuter`,extrudeMethod:z.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${B}_petal`,face:`${B}_facePetal`,extrudeMethod:z.eLinearOrtho,length:t.PHE1,rotate:[0,0,0],translate:[0,0,-t.PHE1/2]},...G,...Y],volumes:[{outName:`pax_${B}`,boolMethod:J.eUnion,inList:[`subpax_${B}_petal`,`subpax_${B}_outer`,...X,...Z]}]},s.sub={},s.logstr+=`vaxis_holder drawn successfully!
78
+ `,s.calcErr=!1}catch(d){s.logstr+=d,console.log(d)}return s}var qe={pTitle:"Heliostat vaxis_holder",pDescription:"The holders of the guidance mechanism for azimuth motion",pDef:de,pGeom:We},le={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 Ye(n,t,_=""){const s=dt(le.partName+_),i=T(),a=T();s.logstr+=`${s.partName} simTime: ${n}
79
+ `;try{const o=t.D1/2,l=t.D3/2,d=t.D4/2,f=t.D6/2,c=t.D7/2,h=2*Math.PI/t.N2;if(c>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*c)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 ${D(t.D1+2*d)} mm
80
+ `;const[u,r,g]=ie(t);s.logstr+=u,i.addMain(r),i.addMain(k(0,0,f));for(let $=0;$<t.N2;$++)i.addMain(k(f+t.L2,0,c).rotate(0,0,$*h));for(let $=0;$<t.N1;$++)i.addMain(k(o,0,l).rotate(0,0,$*g));const H=function($,S,b,L){return m($,S).addSegStrokeR(b,0).addSegStrokeR(0,L).addSegStrokeR(-b,0).closeSegStroke()},E=o-f+d;a.addMain(H(f,0,E,t.T1)),a.addMain(H(-f-E,0,E,t.T1)),a.addSecond(H(o-l,0,2*l,t.T1)),a.addSecond(H(-o-l,0,2*l,t.T1));const I=f+t.L2;a.addSecond(H(I-c,0,2*c,t.T1)),a.addSecond(H(-I-c,0,2*c,t.T1)),s.fig={faceTop:i,faceSection:a};const v=s.partName;s.vol={extrudes:[{outName:`subpax_${v}_top`,face:`${v}_faceTop`,extrudeMethod:z.eLinearOrtho,length:t.T1,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${v}`,boolMethod:J.eIdentity,inList:[`subpax_${v}_top`]}]},s.sub={},s.logstr+=`ring_guidance drawn successfully!
81
+ `,s.calcErr=!1}catch(o){s.logstr+=o,console.log(o)}return s}var Xe={pTitle:"Ring-guidance",pDescription:"The guidance of the gear-ring for the heliostat azimuth",pDef:le,pGeom:Ye},ce={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 Ke(n,t,_=""){const s=dt(ce.partName+_),i=T(),a=T();s.logstr+=`${s.partName} simTime: ${n}
82
+ `;try{const o=t.D1/2,l=t.D2/2,d=t.D3/2,f=t.D4/2,c=t.D6/2;if(l<c)throw`err466: D6 ${t.D6} is too large compare to D2 ${t.D2}`;s.logstr+=`vaxis_guidance: Dmax ${D(t.D1+2*f)} mm
83
+ `;const[h,u,r]=ie(t);s.logstr+=h,i.addMain(u);for(let $=0;$<t.N1;$++)i.addMain(k(o,0,d).rotate(0,0,$*r));const[g,H]=Ue(t);s.logstr+=g,i.addMain(H),i.addSecond(k(0,0,t.Dvaxis/2));const E=function($,S,b,L){return m($,S).addSegStrokeR(b,0).addSegStrokeR(0,L).addSegStrokeR(-b,0).closeSegStroke()},I=o-c+f;a.addMain(E(c,0,I,t.T1)),a.addMain(E(-c-I,0,I,t.T1)),a.addSecond(E(o-d,0,2*d,t.T1)),a.addSecond(E(-o-d,0,2*d,t.T1)),s.fig={faceTop:i,faceSection:a};const v=s.partName;s.vol={extrudes:[{outName:`subpax_${v}_top`,face:`${v}_faceTop`,extrudeMethod:z.eLinearOrtho,length:t.T1,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${v}`,boolMethod:J.eIdentity,inList:[`subpax_${v}_top`]}]},s.sub={},s.logstr+=`vaxis_guidance drawn successfully!
84
+ `,s.calcErr=!1}catch(o){s.logstr+=o,console.log(o)}return s}var je={pTitle:"Vaxis-guidance",pDescription:"The guidance of the V-Axis for the heliostat azimuth",pDef:ce,pGeom:Ke},re={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 Ze(n,t,_=""){const s=dt(re.partName+_);let i,a;const o=T(),l=T(),d=T();s.logstr+=`${s.partName} simTime: ${n}
85
+ `;try{const f=t.D2/2,c=t.L3/(t.N3+1),h=t.L4/(t.N4+1);s.logstr+=`rod-length: ${D(t.L1)} mm
86
+ `;const u=(t.L1-t.L3)/(t.N1-1);s.logstr+=`space-length: ${D(u)} mm
87
+ `,i=function(L){const P=[],M=m(t.L4/2,L).addCornerRounded(t.R3).addSegStrokeA(t.L4/2,L+t.L3).addCornerRounded(t.R3).addSegStrokeA(-t.L4/2,L+t.L3).addCornerRounded(t.R3).addSegStrokeA(-t.L4/2,L).addCornerRounded(t.R3).closeSegStroke();P.push(M);for(let w=1;w<t.N3+1;w++)P.push(k(t.L4/2-t.L7,L+w*c,f)),P.push(k(-t.L4/2+t.L7,L+w*c,f));for(let w=1;w<t.N4+1;w++)P.push(k(-t.L4/2+w*h,L+t.L7,f)),P.push(k(-t.L4/2+w*h,L+t.L3-t.L7,f));return P},a=function(L,P){return m(t.L2/2,L).addSegStrokeA(t.L2/2,L+P).addSegStrokeA(-t.L2/2,L+P).addSegStrokeA(-t.L2/2,L).closeSegStroke()};const r=t.L2/2,g=t.L4/2,H=(t.L2-2*t.E1)/2,E=t.H1-t.E1,I=m(r,0).addSegStrokeA(r,t.H1).addSegStrokeA(-r,t.H1).addSegStrokeA(-r,0).closeSegStroke(),v=m(H,t.E1).addSegStrokeA(H,E).addSegStrokeA(-H,E).addSegStrokeA(-H,t.E1).closeSegStroke(),$=m(g,t.H1).addSegStrokeA(g,t.H1+t.E2).addSegStrokeA(-g,t.H1+t.E2).addSegStrokeA(-g,t.H1).closeSegStroke();o.addMain(I),o.addMain(v),o.addSecond($),i(0).forEach(L=>l.addMain(L)),l.addSecond(a(-t.L3/2,2*t.L3));const S=(t.L1-t.L3)/(t.N1-1);for(let L=0;L<t.N1;L++)i(L*S).forEach(P=>d.addMain(P));d.addSecond(a(0,t.L1)),s.fig={faceCut:o,facePlate:l,faceTop:d};const b=s.partName;s.vol={extrudes:[{outName:`subpax_${b}_rod`,face:`${b}_faceCut`,extrudeMethod:z.eLinearOrtho,length:t.L1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${b}_plates`,face:`${b}_faceTop`,extrudeMethod:z.eLinearOrtho,length:t.E2,rotate:[Math.PI/2,0,0],translate:[0,t.E2+t.H1,0]}],volumes:[{outName:`pax_${b}`,boolMethod:J.eUnion,inList:[`subpax_${b}_rod`,`subpax_${b}_plates`]}]},s.sub={},s.logstr+=`heliostat-rod drawn successfully!
88
+ `,s.calcErr=!1}catch(f){s.logstr+=f,console.log(f)}return s}var Je={pTitle:"Heliostat rod",pDescription:"The rod of an heliostat-surface",pDef:re,pGeom:Ze},ae={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 Qe(n,t,_=""){const s=dt(ae.partName+_);let i,a;const o=T(),l=T(),d=T(),f=T(),c=T();s.logstr+=`${s.partName} simTime: ${n}
89
+ `;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 h=t.R1*(1-1/Math.sqrt(2)),u=t.R3*(1-1/Math.sqrt(2)),r=t.L2/2-h-(t.L4/2-u),g=t.L1/2-h-(t.L3/2-u),H=Math.sqrt(r**2+g**2),E=t.H1-t.H2-t.H3,I=Math.sqrt(H**2+E**2),v=Math.atan2(E,H),$=Math.atan2(g,r);s.logstr+=`rod-slope: length: ${D(I)} mm, angle: ${D(it(v))} degree
90
+ `,s.logstr+=`rod-xy-angle: ${D(it($))} degree
91
+ `;const S=t.D3/Math.cos(Math.PI/2-v);s.logstr+=`rod-footprint-length: ${D(S)} mm
92
+ `;const b=Math.sqrt((S/2)**2+(t.D3/2)**2),L=Math.atan2(t.D3,S);if(i=function(C,tt,K){return m(C,tt).addPointRP(K+Math.PI-L,b).addSeg2Arcs(K+Math.PI/2,K).addPointRP(K+Math.PI+L,b).addSeg2Arcs(K+Math.PI,K+Math.PI/2).addPointRP(K-L,b).addSeg2Arcs(K+3*Math.PI/2,K+Math.PI).addPointRP(K+L,b).addSeg2Arcs(K,K-Math.PI/2)},a=function(C,tt,K){const st=C+b*Math.cos(K+Math.PI-L),lt=tt+b*Math.sin(K+Math.PI-L);return m(st,lt).addSegStrokeRP(K+Math.PI,H).addSegStrokeRP(K-Math.PI/2,t.D3).addSegStrokeRP(K,H).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 P=m(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 M=m(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 w=m(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(P),o.addMain(M),o.addSecond(w);const x=t.L1/(t.N1+1),R=t.L2/(t.N2+1),V=t.L3/(t.N3+1),A=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(V<t.D2/2+t.L7)throw`err661: D2 ${t.D2} or L7 ${t.L7} too large compare to L3 ${t.l3}`;if(A<t.D2/2+t.L7)throw`err664: D2 ${t.D2} or L7 ${t.L7} too large compare to L4 ${t.l4}`;const B=[];for(let C=1;C<t.N1+1;C++)B.push(k(t.L2/2-t.L6,-t.L1/2+C*x,t.D1/2)),B.push(k(-t.L2/2+t.L6,-t.L1/2+C*x,t.D1/2));for(let C=1;C<t.N2+1;C++)B.push(k(-t.L2/2+C*R,t.L1/2-t.L6,t.D1/2)),B.push(k(-t.L2/2+C*R,-t.L1/2+t.L6,t.D1/2));const y=[];for(let C=1;C<t.N3+1;C++)y.push(k(t.L4/2-t.L7,-t.L3/2+C*V,t.D2/2)),y.push(k(-t.L4/2+t.L7,-t.L3/2+C*V,t.D2/2));for(let C=1;C<t.N4+1;C++)y.push(k(-t.L4/2+C*A,t.L3/2-t.L7,t.D2/2)),y.push(k(-t.L4/2+C*A,-t.L3/2+t.L7,t.D2/2));B.forEach(C=>{o.addMain(C)}),y.forEach(C=>{o.addSecond(C)});const G=[];G.push(i(t.L2/2-h,t.L1/2-h,$)),G.push(i(t.L4/2-u,t.L3/2-u,$)),G.push(i(-t.L2/2+h,t.L1/2-h,Math.PI-$)),G.push(i(-t.L4/2+u,t.L3/2-u,Math.PI-$)),G.push(i(-t.L2/2+h,-t.L1/2+h,Math.PI+$)),G.push(i(-t.L4/2+u,-t.L3/2+u,Math.PI+$)),G.push(i(t.L2/2-h,-t.L1/2+h,-$)),G.push(i(t.L4/2-u,-t.L3/2+u,-$));const Y=[];if(Y.push(a(t.L2/2-h,t.L1/2-h,$)),Y.push(a(-t.L2/2+h,t.L1/2-h,Math.PI-$)),Y.push(a(-t.L2/2+h,-t.L1/2+h,Math.PI+$)),Y.push(a(t.L2/2-h,-t.L1/2+h,-$)),G.forEach(C=>{o.addSecond(C)}),Y.forEach(C=>{o.addSecond(C)}),l.addMain(w),y.forEach(C=>{l.addMain(C)}),l.addSecond(P),l.addSecond(M),B.forEach(C=>{l.addSecond(C)}),G.forEach(C=>{l.addSecond(C)}),Y.forEach(C=>{l.addSecond(C)}),t.D4>=t.D3)throw`err218: D4 ${t.D4} larger than D3 ${t.D3}`;d.addMain(k(0,0,t.D3/2)),d.addSecond(k(0,0,t.D4/2)),f.addMain(k(0,0,t.D4/2)),f.addSecond(k(0,0,t.D3/2));const X=t.D3*Math.cos(v),Z=X/Math.tan(v),O=u+(S/2+Z)*Math.cos($),Q=u+(S/2+Z)*Math.sin($),W=I+2*(S+Z+X),ot=W+t.L3+t.L4+X,U=m(ot,ot).addSegStrokeA(-ot,ot).addSegStrokeA(-ot,-ot).addSegStrokeA(ot,-ot).closeSegStroke();c.addMain(U),s.fig={faceFrame:o,facePlate:l,faceRod:d,faceRodHollow:f,faceCutRod:c};const N=s.partName;s.vol={extrudes:[{outName:`subpax_${N}_frame`,face:`${N}_faceFrame`,extrudeMethod:z.eLinearOrtho,length:t.H2,rotate:[0,0,0],translate:[0,0,t.H1-t.H2]},{outName:`subpax_${N}_plate`,face:`${N}_facePlate`,extrudeMethod:z.eLinearOrtho,length:t.H3,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${N}_rod1`,face:`${N}_faceRod`,extrudeMethod:z.eLinearOrtho,length:W,rotate:[0,Math.PI/2-v,$],translate:[t.L4/2-O,t.L3/2-Q,t.H3-X]},{outName:`subpax_${N}_rod2`,face:`${N}_faceRod`,extrudeMethod:z.eLinearOrtho,length:W,rotate:[0,Math.PI/2-v,Math.PI-$],translate:[-t.L4/2+O,t.L3/2-Q,t.H3-X]},{outName:`subpax_${N}_rod3`,face:`${N}_faceRod`,extrudeMethod:z.eLinearOrtho,length:W,rotate:[0,Math.PI/2-v,Math.PI+$],translate:[-t.L4/2+O,-t.L3/2+Q,t.H3-X]},{outName:`subpax_${N}_rod4`,face:`${N}_faceRod`,extrudeMethod:z.eLinearOrtho,length:W,rotate:[0,Math.PI/2-v,-$],translate:[t.L4/2-O,-t.L3/2+Q,t.H3-X]},{outName:`subpax_${N}_rodH1`,face:`${N}_faceRodHollow`,extrudeMethod:z.eLinearOrtho,length:W,rotate:[0,Math.PI/2-v,$],translate:[t.L4/2-O,t.L3/2-Q,t.H3-X]},{outName:`subpax_${N}_rodH2`,face:`${N}_faceRodHollow`,extrudeMethod:z.eLinearOrtho,length:W,rotate:[0,Math.PI/2-v,Math.PI-$],translate:[-t.L4/2+O,t.L3/2-Q,t.H3-X]},{outName:`subpax_${N}_rodH3`,face:`${N}_faceRodHollow`,extrudeMethod:z.eLinearOrtho,length:W,rotate:[0,Math.PI/2-v,Math.PI+$],translate:[-t.L4/2+O,-t.L3/2+Q,t.H3-X]},{outName:`subpax_${N}_rodH4`,face:`${N}_faceRodHollow`,extrudeMethod:z.eLinearOrtho,length:W,rotate:[0,Math.PI/2-v,-$],translate:[t.L4/2-O,-t.L3/2+Q,t.H3-X]},{outName:`subpax_${N}_cut1`,face:`${N}_faceCutRod`,extrudeMethod:z.eLinearOrtho,length:ot,rotate:[0,0,0],translate:[0,0,-ot]},{outName:`subpax_${N}_cut2`,face:`${N}_faceCutRod`,extrudeMethod:z.eLinearOrtho,length:ot,rotate:[0,0,0],translate:[0,0,t.H1]}],volumes:[{outName:`ipax_${N}_rawRod`,boolMethod:J.eUnion,inList:[`subpax_${N}_rod1`,`subpax_${N}_rod2`,`subpax_${N}_rod3`,`subpax_${N}_rod4`]},{outName:`ipax_${N}_rodHollow`,boolMethod:J.eUnion,inList:[`subpax_${N}_rodH1`,`subpax_${N}_rodH2`,`subpax_${N}_rodH3`,`subpax_${N}_rodH4`]},{outName:`ipax_${N}_halfRods`,boolMethod:J.eSubstraction,inList:[`ipax_${N}_rawRod`,`subpax_${N}_cut1`]},{outName:`ipax_${N}_rods`,boolMethod:J.eSubstraction,inList:[`ipax_${N}_halfRods`,`subpax_${N}_cut2`]},{outName:`ipax_${N}_plus`,boolMethod:J.eUnion,inList:[`subpax_${N}_frame`,`subpax_${N}_plate`,`ipax_${N}_rods`]},{outName:`pax_${N}`,boolMethod:J.eSubstraction,inList:[`ipax_${N}_plus`,`ipax_${N}_rodHollow`]}]},s.sub={},s.logstr+=`trapeze drawn successfully!
93
+ `,s.calcErr=!1}catch(h){s.logstr+=h,console.log(h)}return s}var ts={pTitle:"Heliostat trapeze",pDescription:"The support of one solar panel. Made out of aluminium for lightness and cooling",pDef:ae,pGeom:Qe},ge={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"),vt("main_direction",["horizontal","vertical"]),ct("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),ct("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),vt("EH_shape",["sinusoid","triangle","sawUp","sawDown"]),p("vertical spacing"),e("EV","mm",10,0,1e3,1),ct("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),vt("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 es(n,t,_=""){const s=dt(ge.partName+_);let i;const a=T(),o=T();s.logstr+=`${s.partName} simTime: ${n}
94
+ `;try{const l=t.LH*t.LV/1e6,d=t.solar_power*l*t.power_efficiency/100;s.logstr+=`panel surface: ${D(l)} m2
95
+ `,s.logstr+=`panel power: ${D(d)} W
96
+ `;const f=t.nx*t.ny;s.logstr+=`max panel number: ${f}
97
+ `,s.logstr+=`max panel surface: ${D(f*l)} m2
98
+ `,s.logstr+=`max panel power: ${D(f*d)} W
99
+ `;const c=t.main_direction===1?t.ny:t.nx,h=t.main_direction===1?t.nx:t.ny,u=t.main_direction===1?t.EV:t.EH,r=t.main_direction===1?t.EV_gradient:t.EH_gradient,g=t.main_direction===1?t.EV_sup:t.EH_sup,H=t.main_direction===1?t.EV_cycle:t.EH_cycle,E=t.main_direction===1?t.EV_start:t.EH_start,I=t.main_direction===1?t.EV_shape:t.EH_shape,v=t.main_direction===0?t.EV:t.EH,$=t.main_direction===0?t.EV_gradient:t.EH_gradient,S=t.main_direction===0?t.EV_sup:t.EH_sup,b=t.main_direction===0?t.EV_cycle:t.EH_cycle,L=t.main_direction===0?t.EV_start:t.EH_start,P=t.main_direction===0?t.EV_shape:t.EH_shape,M=Math.max(h,t.first_row,t.second_row),w=[];for(let U=0;U<c;U++){const N=(U+1)%2,C=t.crenel?h-N:h;w.push(C)}w[0]=t.first_row,w[w.length-1]=t.first_row,c>2&&(w[1]=t.second_row,w[w.length-2]=t.second_row);let x=0;w.forEach(U=>{x+=U}),s.logstr+=`actual panel number: ${x} (${D(100*x/f)} %)
100
+ `,s.logstr+=`actual panel surface: ${D(x*l)} m2
101
+ `,s.logstr+=`actual panel power: ${D(x*d)} W
102
+ `;const R=[];for(let U=0;U<c-1;U++){let N=u;if(r===1){const C=c>2?c-2:1,tt=(E+U*H/C)%1;switch(I){case 0:N+=g*(1-Math.cos(tt*2*Math.PI))/2;break;case 1:N+=g*(1-2*Math.abs(tt-.5));break;case 2:N+=g*tt;break;case 3:N+=g*(1-tt);break;default:N+=g}}R.push(N)}let V=0;const A=[];A.push(0),R.forEach(U=>{V+=U,A.push(V)});const B=[];for(let U=0;U<M-1;U++){let N=v;if($===1){const C=M>2?M-2:1,tt=(L+U*b/C)%1;switch(P){case 0:N+=S*(1-Math.cos(tt*2*Math.PI))/2;break;case 1:N+=S*(1-2*Math.abs(tt-.5));break;case 2:N+=S*tt;break;case 3:N+=S*(1-tt);break;default:N+=S}}B.push(N)}let y=0;const G=[];G.push(0),B.forEach(U=>{y+=U,G.push(y)});let Y=0,X=0;t.main_direction===0?(Y=c*t.LH+V,X=M*t.LV+y):(Y=M*t.LH+y,X=c*t.LV+V);const Z=Y*X/10**6;s.logstr+=`global horizontal width: ${D(Y/1e3)} m
103
+ `,s.logstr+=`global vertical height: ${D(X/1e3)} m
104
+ `,s.logstr+=`global area: ${D(Z)} m2
105
+ `,s.logstr+=`area efficiency: ${D(100*x*l/Z)} %
106
+ `;const O=-Y/2,Q=-X/2;i=function(U,N){return m(U,N).addSegStrokeA(U+t.LH,N).addSegStrokeA(U+t.LH,N+t.LV).addSegStrokeA(U,N+t.LV).closeSegStroke()};const W=[];w.forEach((U,N)=>{const C=(M-U)%2,tt=Math.floor((M-U)/2);for(let K=0;K<U;K++){let st=0,lt=0;t.main_direction===0?(st=O+N*t.LH+A[N],lt=Q+(tt+K)*t.LV+G[tt+K],C===1&&(lt+=(t.LV+G[tt+K+1]-G[tt+K])/2)):(lt=Q+N*t.LV+A[N],st=O+(tt+K)*t.LH+G[tt+K],C===1&&(st+=(t.LH+G[tt+K+1]-G[tt+K])/2)),W.push([st,lt])}});for(const U of W)a.addMain(i(U[0],U[1]));o.addMain(i(0,0)),s.fig={faceSurface:a,faceOnePanel:o};const ot=s.partName;s.vol={extrudes:W.map((U,N)=>({outName:`subpax_${ot}_panel_${N}`,face:`${ot}_faceOnePanel`,extrudeMethod:z.eLinearOrtho,length:t.LZ,rotate:[0,0,0],translate:[U[0],U[1],0]})),volumes:[{outName:`pax_${ot}`,boolMethod:J.eUnion,inList:W.map((U,N)=>`subpax_${ot}_panel_${N}`)}]},s.sub={},s.logstr+=`panel-surface drawn successfully!
107
+ `,s.calcErr=!1}catch(l){s.logstr+=l,console.log(l)}return s}var ss={pTitle:"Heliostat panel-surface",pDescription:"The surface collecting the solar power",pDef:ge,pGeom:es};const he={"gear/gear_wheel_wheel":Tt,"gear/simplified_gear_wheel":ke,"heliostat/heliostat":Ie,"heliostat/heliostat_2":ye,"heliostat/base":me,"heliostat/pole_static":$t,"heliostat/vaxis":ze,"heliostat/ring":Ge,"heliostat/vaxis_holder":qe,"heliostat/ring_guidance":Xe,"heliostat/vaxis_guidance":je,"heliostat/rake":Mt,"heliostat/rake_stopper":Ot,"heliostat/spider":Ft,"heliostat/swing":bt,"heliostat/rod":Je,"heliostat/trapeze":ts,"heliostat/surface":ss};function os(n){const t=/^.*\//g;return n.replace(t,"")}function ns(n){const t={};for(const _ of Object.keys(n)){const s=os(_);t[s]=`/${_}`}return t}function is(n){const t=[];for(const _ of Object.keys(n))t.push(_);return t}const rs=ns(he),as=is(he);export{he as a,rs as b,as as d};
@@ -0,0 +1 @@
1
+ var s;const e=((s=globalThis.__sveltekit_xv117c)==null?void 0:s.base)??"";var a;const t=((a=globalThis.__sveltekit_xv117c)==null?void 0:a.assets)??e;export{t as a,e as b};
@@ -1 +1 @@
1
- import{s as e}from"./entry.BnBscX9s.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p};
1
+ import{s as e}from"./entry.CvQN4-CP.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p};
@@ -0,0 +1,7 @@
1
+ function __vite__mapDeps(indexes) {
2
+ if (!__vite__mapDeps.viteFileDeps) {
3
+ __vite__mapDeps.viteFileDeps = ["_app/immutable/nodes/0.Q7aJGYxi.js","_app/immutable/chunks/scheduler.pWaib8rK.js","_app/immutable/chunks/index.DzDRugVt.js","_app/immutable/chunks/index.B1V6a0LN.js","_app/immutable/chunks/paths.CBp0CbcD.js","_app/immutable/assets/0.CEJMiobA.css","_app/immutable/nodes/1.DeiZbOnb.js","_app/immutable/chunks/stores.BGMuV-X9.js","_app/immutable/chunks/entry.CvQN4-CP.js","_app/immutable/nodes/2.CCSKSAmq.js","_app/immutable/chunks/makeList.BbRnRNo4.js","_app/immutable/assets/2.CTp7BhB8.css","_app/immutable/nodes/3.BOrBrapn.js","_app/immutable/assets/3.Bup7ghXO.css"]
4
+ }
5
+ return indexes.map((i) => __vite__mapDeps.viteFileDeps[i])
6
+ }
7
+ import{s as N,a as B,p as h,g as U,i as k,f as p,q as j,r as W,e as z,c as F,b as G,m as D,u as d,t as H,d as J,j as K,v as I,w as E,x as Q}from"../chunks/scheduler.pWaib8rK.js";import{S as X,i as Y,t as g,c as S,a as w,g as A,b as y,d as O,m as P,e as R}from"../chunks/index.DzDRugVt.js";const Z="modulepreload",M=function(a){return"/"+a},T={},L=function(e,n,s){let i=Promise.resolve();if(n&&n.length>0){const u=document.getElementsByTagName("link"),t=document.querySelector("meta[property=csp-nonce]"),r=(t==null?void 0:t.nonce)||(t==null?void 0:t.getAttribute("nonce"));i=Promise.all(n.map(o=>{if(o=M(o),o in T)return;T[o]=!0;const f=o.endsWith(".css"),l=f?'[rel="stylesheet"]':"";if(!!s)for(let b=u.length-1;b>=0;b--){const v=u[b];if(v.href===o&&(!f||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${o}"]${l}`))return;const _=document.createElement("link");if(_.rel=f?"stylesheet":Z,f||(_.as="script",_.crossOrigin=""),_.href=o,r&&_.setAttribute("nonce",r),document.head.appendChild(_),f)return new Promise((b,v)=>{_.addEventListener("load",b),_.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${o}`)))})}))}return i.then(()=>e()).catch(u=>{const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=u,window.dispatchEvent(t),!t.defaultPrevented)throw u})},re={};function $(a){let e,n,s;var i=a[1][0];function u(t,r){return{props:{data:t[3],form:t[2]}}}return i&&(e=E(i,u(a)),a[12](e)),{c(){e&&y(e.$$.fragment),n=h()},l(t){e&&O(e.$$.fragment,t),n=h()},m(t,r){e&&P(e,t,r),k(t,n,r),s=!0},p(t,r){if(r&2&&i!==(i=t[1][0])){if(e){A();const o=e;g(o.$$.fragment,1,0,()=>{R(o,1)}),S()}i?(e=E(i,u(t)),t[12](e),y(e.$$.fragment),w(e.$$.fragment,1),P(e,n.parentNode,n)):e=null}else if(i){const o={};r&8&&(o.data=t[3]),r&4&&(o.form=t[2]),e.$set(o)}},i(t){s||(e&&w(e.$$.fragment,t),s=!0)},o(t){e&&g(e.$$.fragment,t),s=!1},d(t){t&&p(n),a[12](null),e&&R(e,t)}}}function x(a){let e,n,s;var i=a[1][0];function u(t,r){return{props:{data:t[3],$$slots:{default:[ee]},$$scope:{ctx:t}}}}return i&&(e=E(i,u(a)),a[11](e)),{c(){e&&y(e.$$.fragment),n=h()},l(t){e&&O(e.$$.fragment,t),n=h()},m(t,r){e&&P(e,t,r),k(t,n,r),s=!0},p(t,r){if(r&2&&i!==(i=t[1][0])){if(e){A();const o=e;g(o.$$.fragment,1,0,()=>{R(o,1)}),S()}i?(e=E(i,u(t)),t[11](e),y(e.$$.fragment),w(e.$$.fragment,1),P(e,n.parentNode,n)):e=null}else if(i){const o={};r&8&&(o.data=t[3]),r&8215&&(o.$$scope={dirty:r,ctx:t}),e.$set(o)}},i(t){s||(e&&w(e.$$.fragment,t),s=!0)},o(t){e&&g(e.$$.fragment,t),s=!1},d(t){t&&p(n),a[11](null),e&&R(e,t)}}}function ee(a){let e,n,s;var i=a[1][1];function u(t,r){return{props:{data:t[4],form:t[2]}}}return i&&(e=E(i,u(a)),a[10](e)),{c(){e&&y(e.$$.fragment),n=h()},l(t){e&&O(e.$$.fragment,t),n=h()},m(t,r){e&&P(e,t,r),k(t,n,r),s=!0},p(t,r){if(r&2&&i!==(i=t[1][1])){if(e){A();const o=e;g(o.$$.fragment,1,0,()=>{R(o,1)}),S()}i?(e=E(i,u(t)),t[10](e),y(e.$$.fragment),w(e.$$.fragment,1),P(e,n.parentNode,n)):e=null}else if(i){const o={};r&16&&(o.data=t[4]),r&4&&(o.form=t[2]),e.$set(o)}},i(t){s||(e&&w(e.$$.fragment,t),s=!0)},o(t){e&&g(e.$$.fragment,t),s=!1},d(t){t&&p(n),a[10](null),e&&R(e,t)}}}function V(a){let e,n=a[6]&&q(a);return{c(){e=z("div"),n&&n.c(),this.h()},l(s){e=F(s,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,style:!0});var i=G(e);n&&n.l(i),i.forEach(p),this.h()},h(){D(e,"id","svelte-announcer"),D(e,"aria-live","assertive"),D(e,"aria-atomic","true"),d(e,"position","absolute"),d(e,"left","0"),d(e,"top","0"),d(e,"clip","rect(0 0 0 0)"),d(e,"clip-path","inset(50%)"),d(e,"overflow","hidden"),d(e,"white-space","nowrap"),d(e,"width","1px"),d(e,"height","1px")},m(s,i){k(s,e,i),n&&n.m(e,null)},p(s,i){s[6]?n?n.p(s,i):(n=q(s),n.c(),n.m(e,null)):n&&(n.d(1),n=null)},d(s){s&&p(e),n&&n.d()}}}function q(a){let e;return{c(){e=H(a[7])},l(n){e=J(n,a[7])},m(n,s){k(n,e,s)},p(n,s){s&128&&K(e,n[7])},d(n){n&&p(e)}}}function te(a){let e,n,s,i,u;const t=[x,$],r=[];function o(l,m){return l[1][1]?0:1}e=o(a),n=r[e]=t[e](a);let f=a[5]&&V(a);return{c(){n.c(),s=B(),f&&f.c(),i=h()},l(l){n.l(l),s=U(l),f&&f.l(l),i=h()},m(l,m){r[e].m(l,m),k(l,s,m),f&&f.m(l,m),k(l,i,m),u=!0},p(l,[m]){let _=e;e=o(l),e===_?r[e].p(l,m):(A(),g(r[_],1,1,()=>{r[_]=null}),S(),n=r[e],n?n.p(l,m):(n=r[e]=t[e](l),n.c()),w(n,1),n.m(s.parentNode,s)),l[5]?f?f.p(l,m):(f=V(l),f.c(),f.m(i.parentNode,i)):f&&(f.d(1),f=null)},i(l){u||(w(n),u=!0)},o(l){g(n),u=!1},d(l){l&&(p(s),p(i)),r[e].d(l),f&&f.d(l)}}}function ne(a,e,n){let{stores:s}=e,{page:i}=e,{constructors:u}=e,{components:t=[]}=e,{form:r}=e,{data_0:o=null}=e,{data_1:f=null}=e;j(s.page.notify);let l=!1,m=!1,_=null;W(()=>{const c=s.page.subscribe(()=>{l&&(n(6,m=!0),Q().then(()=>{n(7,_=document.title||"untitled page")}))});return n(5,l=!0),c});function b(c){I[c?"unshift":"push"](()=>{t[1]=c,n(0,t)})}function v(c){I[c?"unshift":"push"](()=>{t[0]=c,n(0,t)})}function C(c){I[c?"unshift":"push"](()=>{t[0]=c,n(0,t)})}return a.$$set=c=>{"stores"in c&&n(8,s=c.stores),"page"in c&&n(9,i=c.page),"constructors"in c&&n(1,u=c.constructors),"components"in c&&n(0,t=c.components),"form"in c&&n(2,r=c.form),"data_0"in c&&n(3,o=c.data_0),"data_1"in c&&n(4,f=c.data_1)},a.$$.update=()=>{a.$$.dirty&768&&s.page.set(i)},[t,u,r,o,f,l,m,_,s,i,b,v,C]}class oe extends X{constructor(e){super(),Y(this,e,ne,te,N,{stores:8,page:9,constructors:1,components:0,form:2,data_0:3,data_1:4})}}const ae=[()=>L(()=>import("../nodes/0.Q7aJGYxi.js"),__vite__mapDeps([0,1,2,3,4,5])),()=>L(()=>import("../nodes/1.DeiZbOnb.js"),__vite__mapDeps([6,1,2,7,8,4])),()=>L(()=>import("../nodes/2.CCSKSAmq.js"),__vite__mapDeps([9,1,3,2,10,4,11])),()=>L(()=>import("../nodes/3.BOrBrapn.js"),__vite__mapDeps([12,10,3,8,1,4,2,7,13]))],le=[],fe={"/":[2],"/[...design]":[3]},ce={handleError:({error:a})=>{console.error(a)},reroute:()=>{}};export{fe as dictionary,ce as hooks,re as matchers,ae as nodes,oe as root,le as server_loads};
@@ -0,0 +1 @@
1
+ import{a as t}from"../chunks/entry.CvQN4-CP.js";export{t as start};
@@ -1,4 +1,4 @@
1
- import{s as W,y as G,e as v,a as T,c as h,l as L,g as $,b as O,f as a,m as E,i as u,h as H,z as J,A as K,B as Q,o as U,t as X,d as Y,n as Z}from"../chunks/scheduler.pWaib8rK.js";import{S as ee,i as te,a as se,t as le}from"../chunks/index.DzDRugVt.js";import{e as q,v as ie}from"../chunks/index.IHydPqp2.js";import{b as ne}from"../chunks/paths.CBfpPc2G.js";const ae=!0,we=Object.freeze(Object.defineProperty({__proto__:null,prerender:ae},Symbol.toStringTag,{value:"Module"})),re="designix-ui",oe="0.5.5",ce={type:"git",url:"git+https://github.com/charlyoleg2/parametrix.git"},pe="https://charlyoleg2.github.io/parametrix/",ue={cp_pgdsvg:"shx cp -r ../../node_modules/designix/dist/pgdsvg static/",dev:"vite dev",build:"vite build",preview:"vite preview",check:"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch","test:unit":"vitest","test:unit:once":"vitest --run",lint:"prettier --check . && eslint .",ci:"run-s cp_pgdsvg build lint check test:unit:once",format:"prettier --write .",clean:"shx rm -fr .svelte-kit build node_modules static/pgdsvg"},ve={designix:"^0.5.21",geometrix:"^0.5.20",geomui:"^0.5.22"},he={"@sveltejs/adapter-auto":"^3.1.1","@sveltejs/adapter-static":"^3.0.1","@sveltejs/kit":"^2.5.1","@sveltejs/vite-plugin-svelte":"^3.0.2","@typescript-eslint/eslint-plugin":"^7.0.1","@typescript-eslint/parser":"^7.0.1",eslint:"^8.56.0","eslint-config-prettier":"^9.1.0","eslint-plugin-svelte":"^2.35.1","npm-run-all":"^4.1.5",prettier:"^3.2.5","prettier-plugin-svelte":"^3.2.1",sass:"^1.71.1",shx:"^0.3.4",svelte:"^4.2.11","svelte-check":"^3.6.4",tslib:"^2.6.2",typescript:"^5.3.3",vite:"^5.1.4",vitest:"^1.3.1"},fe="module",de={name:re,version:oe,private:!0,repository:ce,homepage:pe,scripts:ue,dependencies:ve,devDependencies:he,type:fe};function F(c,l,p){const r=c.slice();return r[3]=l[p],r}function V(c){let l=c[3]+"",p,r;return{c(){p=X(l),r=v("br")},l(s){p=Y(s,l),r=h(s,"BR",{})},m(s,m){u(s,p,m),u(s,r,m)},p:Z,d(s){s&&(a(p),a(r))}}}function me(c){let l,p="Welcome to designix-ui",r,s,m=`Showcasing the usage of the <a href="https://svelte.dev/">svelte</a> library
1
+ import{s as W,y as G,e as v,a as T,c as h,l as L,g as $,b as O,f as a,m as E,i as u,h as H,z as J,A as K,B as Q,o as U,t as X,d as Y,n as Z}from"../chunks/scheduler.pWaib8rK.js";import{S as ee,i as te,a as se,t as le}from"../chunks/index.DzDRugVt.js";import{e as q,x as ie}from"../chunks/index.B1V6a0LN.js";import{b as ne}from"../chunks/paths.CBp0CbcD.js";const ae=!0,we=Object.freeze(Object.defineProperty({__proto__:null,prerender:ae},Symbol.toStringTag,{value:"Module"})),re="designix-ui",oe="0.5.5",ce={type:"git",url:"git+https://github.com/charlyoleg2/parametrix.git"},pe="https://charlyoleg2.github.io/parametrix/",ue={cp_pgdsvg:"shx cp -r ../../node_modules/designix/dist/pgdsvg static/",dev:"vite dev",build:"vite build",preview:"vite preview",check:"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch","test:unit":"vitest","test:unit:once":"vitest --run",lint:"prettier --check . && eslint .",ci:"run-s cp_pgdsvg build lint check test:unit:once",format:"prettier --write .",clean:"shx rm -fr .svelte-kit build node_modules static/pgdsvg"},ve={designix:"^0.5.25",geometrix:"^0.5.24",geomui:"^0.5.26"},he={"@sveltejs/adapter-auto":"^3.1.1","@sveltejs/adapter-static":"^3.0.1","@sveltejs/kit":"^2.5.4","@sveltejs/vite-plugin-svelte":"^3.0.2","@typescript-eslint/eslint-plugin":"^7.0.1","@typescript-eslint/parser":"^7.0.1",eslint:"^8.57.0","eslint-config-prettier":"^9.1.0","eslint-plugin-svelte":"^2.35.1","npm-run-all":"^4.1.5",prettier:"^3.2.5","prettier-plugin-svelte":"^3.2.2",sass:"^1.72.0",shx:"^0.3.4",svelte:"^4.2.12","svelte-check":"^3.6.8",tslib:"^2.6.2",typescript:"^5.4.3",vite:"^5.2.2",vitest:"^1.4.0"},fe="module",de={name:re,version:oe,private:!0,repository:ce,homepage:pe,scripts:ue,dependencies:ve,devDependencies:he,type:fe};function F(c,l,p){const r=c.slice();return r[3]=l[p],r}function V(c){let l=c[3]+"",p,r;return{c(){p=X(l),r=v("br")},l(s){p=Y(s,l),r=h(s,"BR",{})},m(s,m){u(s,p,m),u(s,r,m)},p:Z,d(s){s&&(a(p),a(r))}}}function me(c){let l,p="Welcome to designix-ui",r,s,m=`Showcasing the usage of the <a href="https://svelte.dev/">svelte</a> library
2
2
  <a href="https://www.npmjs.com/">geomui</a>.`,_,d,I=`<a href="${`${ne}/`}" class="svelte-1v6hyjg">index: list of designs</a>`,M,g,A,f,b,B=`<a href="https://github.com/charlyoleg2/parametrix">designix-ui</a>, a minimalist showcase
3
3
  of
4
4
  <a href="https://www.npmjs.com/">geomui</a>.`,S,y,w,N="Designix-ui version",z,j,k;const D=c[2].default,o=G(D,c,c[1],null);let C=q(c[0]),i=[];for(let e=0;e<C.length;e+=1)i[e]=V(F(c,C,e));return{c(){l=v("h1"),l.textContent=p,r=T(),s=v("h6"),s.innerHTML=m,_=T(),d=v("nav"),d.innerHTML=I,M=T(),g=v("main"),o&&o.c(),A=T(),f=v("footer"),b=v("article"),b.innerHTML=B,S=T(),y=v("article"),w=v("h3"),w.textContent=N,z=T(),j=v("code");for(let e=0;e<i.length;e+=1)i[e].c();this.h()},l(e){l=h(e,"H1",{class:!0,"data-svelte-h":!0}),L(l)!=="svelte-1ow6r3d"&&(l.textContent=p),r=$(e),s=h(e,"H6",{class:!0,"data-svelte-h":!0}),L(s)!=="svelte-7mn22s"&&(s.innerHTML=m),_=$(e),d=h(e,"NAV",{class:!0,"data-svelte-h":!0}),L(d)!=="svelte-ww4mf0"&&(d.innerHTML=I),M=$(e),g=h(e,"MAIN",{class:!0});var n=O(g);o&&o.l(n),n.forEach(a),A=$(e),f=h(e,"FOOTER",{class:!0});var t=O(f);b=h(t,"ARTICLE",{"data-svelte-h":!0}),L(b)!=="svelte-1pwhz7h"&&(b.innerHTML=B),S=$(t),y=h(t,"ARTICLE",{});var x=O(y);w=h(x,"H3",{"data-svelte-h":!0}),L(w)!=="svelte-18yz28i"&&(w.textContent=N),z=$(x),j=h(x,"CODE",{});var P=O(j);for(let R=0;R<i.length;R+=1)i[R].l(P);P.forEach(a),x.forEach(a),t.forEach(a),this.h()},h(){E(l,"class","svelte-1v6hyjg"),E(s,"class","svelte-1v6hyjg"),E(d,"class","svelte-1v6hyjg"),E(g,"class","svelte-1v6hyjg"),E(f,"class","svelte-1v6hyjg")},m(e,n){u(e,l,n),u(e,r,n),u(e,s,n),u(e,_,n),u(e,d,n),u(e,M,n),u(e,g,n),o&&o.m(g,null),u(e,A,n),u(e,f,n),H(f,b),H(f,S),H(f,y),H(y,w),H(y,z),H(y,j);for(let t=0;t<i.length;t+=1)i[t]&&i[t].m(j,null);k=!0},p(e,[n]){if(o&&o.p&&(!k||n&2)&&J(o,D,e,e[1],k?Q(D,e[1],n,null):K(e[1]),null),n&1){C=q(e[0]);let t;for(t=0;t<C.length;t+=1){const x=F(e,C,t);i[t]?i[t].p(x,n):(i[t]=V(x),i[t].c(),i[t].m(j,null))}for(;t<i.length;t+=1)i[t].d(1);i.length=C.length}},i(e){k||(se(o,e),k=!0)},o(e){le(o,e),k=!1},d(e){e&&(a(l),a(r),a(s),a(_),a(d),a(M),a(g),a(A),a(f)),o&&o.d(e),U(i,e)}}}function _e(c,l,p){let{$$slots:r={},$$scope:s}=l;const m=ie(de);return c.$$set=_=>{"$$scope"in _&&p(1,s=_.$$scope)},[m,s,r]}class je extends ee{constructor(l){super(),te(this,l,_e,me,W,{})}}export{je as component,we as universal};
@@ -1 +1 @@
1
- import{s as x,e as u,t as h,a as S,c as d,b as v,d as g,f as m,g as j,i as _,h as b,j as E,n as $,k}from"../chunks/scheduler.pWaib8rK.js";import{S as q,i as y}from"../chunks/index.DzDRugVt.js";import{p as C}from"../chunks/stores.BKlAuQ9I.js";function H(i){var f;let a,s=i[0].status+"",r,o,n,p=((f=i[0].error)==null?void 0:f.message)+"",c;return{c(){a=u("h1"),r=h(s),o=S(),n=u("p"),c=h(p)},l(e){a=d(e,"H1",{});var t=v(a);r=g(t,s),t.forEach(m),o=j(e),n=d(e,"P",{});var l=v(n);c=g(l,p),l.forEach(m)},m(e,t){_(e,a,t),b(a,r),_(e,o,t),_(e,n,t),b(n,c)},p(e,[t]){var l;t&1&&s!==(s=e[0].status+"")&&E(r,s),t&1&&p!==(p=((l=e[0].error)==null?void 0:l.message)+"")&&E(c,p)},i:$,o:$,d(e){e&&(m(a),m(o),m(n))}}}function P(i,a,s){let r;return k(i,C,o=>s(0,r=o)),[r]}class B extends q{constructor(a){super(),y(this,a,P,H,x,{})}}export{B as component};
1
+ import{s as x,e as u,t as h,a as S,c as d,b as v,d as g,f as m,g as j,i as _,h as b,j as E,n as $,k}from"../chunks/scheduler.pWaib8rK.js";import{S as q,i as y}from"../chunks/index.DzDRugVt.js";import{p as C}from"../chunks/stores.BGMuV-X9.js";function H(i){var f;let a,s=i[0].status+"",r,o,n,p=((f=i[0].error)==null?void 0:f.message)+"",c;return{c(){a=u("h1"),r=h(s),o=S(),n=u("p"),c=h(p)},l(e){a=d(e,"H1",{});var t=v(a);r=g(t,s),t.forEach(m),o=j(e),n=d(e,"P",{});var l=v(n);c=g(l,p),l.forEach(m)},m(e,t){_(e,a,t),b(a,r),_(e,o,t),_(e,n,t),b(n,c)},p(e,[t]){var l;t&1&&s!==(s=e[0].status+"")&&E(r,s),t&1&&p!==(p=((l=e[0].error)==null?void 0:l.message)+"")&&E(c,p)},i:$,o:$,d(e){e&&(m(a),m(o),m(n))}}}function P(i,a,s){let r;return k(i,C,o=>s(0,r=o)),[r]}class B extends q{constructor(a){super(),y(this,a,P,H,x,{})}}export{B as component};
@@ -1 +1 @@
1
- import{s as g,e as _,a as x,c as d,l as b,g as y,b as p,f as c,m as v,i as f,n as m,o as C,t as L,d as k,h as u}from"../chunks/scheduler.pWaib8rK.js";import{e as E}from"../chunks/index.IHydPqp2.js";import{S,i as $}from"../chunks/index.DzDRugVt.js";import{d as q}from"../chunks/makeList.BsKrjN6b.js";import{b as A}from"../chunks/paths.CBfpPc2G.js";function H(r,e,l){const o=r.slice();return o[0]=e[l],o}function I(r){let e,l,o;return{c(){e=_("li"),l=_("a"),o=L(r[0]),this.h()},l(a){e=d(a,"LI",{});var n=p(e);l=d(n,"A",{href:!0});var s=p(l);o=k(s,r[0]),s.forEach(c),n.forEach(c),this.h()},h(){v(l,"href",`${A}/${r[0]}`)},m(a,n){f(a,e,n),u(e,l),u(l,o)},p:m,d(a){a&&c(e)}}}function N(r){let e,l="List of designs:",o,a,n=E(q),s=[];for(let t=0;t<n.length;t+=1)s[t]=I(H(r,n,t));return{c(){e=_("h2"),e.textContent=l,o=x(),a=_("ol");for(let t=0;t<s.length;t+=1)s[t].c();this.h()},l(t){e=d(t,"H2",{class:!0,"data-svelte-h":!0}),b(e)!=="svelte-96cxme"&&(e.textContent=l),o=y(t),a=d(t,"OL",{});var h=p(a);for(let i=0;i<s.length;i+=1)s[i].l(h);h.forEach(c),this.h()},h(){v(e,"class","svelte-1r3d1r")},m(t,h){f(t,e,h),f(t,o,h),f(t,a,h);for(let i=0;i<s.length;i+=1)s[i]&&s[i].m(a,null)},p:m,i:m,o:m,d(t){t&&(c(e),c(o),c(a)),C(s,t)}}}class B extends S{constructor(e){super(),$(this,e,null,N,g,{})}}export{B as component};
1
+ import{s as g,e as _,a as x,c as d,l as b,g as y,b as p,f as c,m as v,i as f,n as m,o as C,t as L,d as k,h as u}from"../chunks/scheduler.pWaib8rK.js";import{e as E}from"../chunks/index.B1V6a0LN.js";import{S,i as $}from"../chunks/index.DzDRugVt.js";import{d as q}from"../chunks/makeList.BbRnRNo4.js";import{b as A}from"../chunks/paths.CBp0CbcD.js";function H(r,e,l){const o=r.slice();return o[0]=e[l],o}function I(r){let e,l,o;return{c(){e=_("li"),l=_("a"),o=L(r[0]),this.h()},l(a){e=d(a,"LI",{});var n=p(e);l=d(n,"A",{href:!0});var s=p(l);o=k(s,r[0]),s.forEach(c),n.forEach(c),this.h()},h(){v(l,"href",`${A}/${r[0]}`)},m(a,n){f(a,e,n),u(e,l),u(l,o)},p:m,d(a){a&&c(e)}}}function N(r){let e,l="List of designs:",o,a,n=E(q),s=[];for(let t=0;t<n.length;t+=1)s[t]=I(H(r,n,t));return{c(){e=_("h2"),e.textContent=l,o=x(),a=_("ol");for(let t=0;t<s.length;t+=1)s[t].c();this.h()},l(t){e=d(t,"H2",{class:!0,"data-svelte-h":!0}),b(e)!=="svelte-96cxme"&&(e.textContent=l),o=y(t),a=d(t,"OL",{});var h=p(a);for(let i=0;i<s.length;i+=1)s[i].l(h);h.forEach(c),this.h()},h(){v(e,"class","svelte-1r3d1r")},m(t,h){f(t,e,h),f(t,o,h),f(t,a,h);for(let i=0;i<s.length;i+=1)s[i]&&s[i].m(a,null)},p:m,i:m,o:m,d(t){t&&(c(e),c(o),c(a)),C(s,t)}}}class B extends S{constructor(e){super(),$(this,e,null,N,g,{})}}export{B as component};