designix-uis 0.5.20 → 0.5.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/designix-uis.js +3 -3
- package/dist/public/_app/immutable/chunks/{entry.BFaAd9jL.js → entry.BD5qRZ97.js} +2 -2
- package/dist/public/_app/immutable/chunks/index.Bw6mlubY.js +157 -0
- package/dist/public/_app/immutable/chunks/makeList.CFiTz2zg.js +120 -0
- package/dist/public/_app/immutable/chunks/paths.e5GUCUh_.js +1 -0
- package/dist/public/_app/immutable/chunks/{stores.CNgkQH-j.js → stores.Chsu13vt.js} +1 -1
- package/dist/public/_app/immutable/entry/{app.C6672aWl.js → app.H9tIVzP-.js} +2 -2
- package/dist/public/_app/immutable/entry/start.Bbej_rDO.js +1 -0
- package/dist/public/_app/immutable/nodes/{0.CsAWk4mK.js → 0.Ca8Vso6D.js} +1 -1
- package/dist/public/_app/immutable/nodes/{1.DDwhwPCl.js → 1.UAklb8Ok.js} +1 -1
- package/dist/public/_app/immutable/nodes/{2.1cPiKGbF.js → 2.CbRS1Viw.js} +1 -1
- package/dist/public/_app/immutable/nodes/3.aBNHnVGg.js +18 -0
- package/dist/public/_app/version.json +1 -1
- package/dist/public/gear/gear_wheel_wheel.html +15 -15
- package/dist/public/gear/simplified_gear_wheel.html +15 -15
- package/dist/public/heliostat/base.html +15 -15
- package/dist/public/heliostat/haxis_guidance.html +15 -15
- package/dist/public/heliostat/heliostat.html +15 -15
- package/dist/public/heliostat/heliostat_2.html +15 -15
- package/dist/public/heliostat/pole_static.html +15 -15
- package/dist/public/heliostat/rake.html +15 -15
- package/dist/public/heliostat/rake_stopper.html +15 -15
- package/dist/public/heliostat/ring.html +15 -15
- package/dist/public/heliostat/ring_guidance.html +15 -15
- package/dist/public/heliostat/rod.html +15 -15
- package/dist/public/heliostat/spider.html +15 -15
- package/dist/public/heliostat/surface.html +15 -15
- package/dist/public/heliostat/swing.html +15 -15
- package/dist/public/heliostat/trapeze.html +15 -15
- package/dist/public/heliostat/vaxis.html +15 -15
- package/dist/public/heliostat/vaxis_guidance.html +15 -15
- package/dist/public/heliostat/vaxis_holder.html +15 -15
- package/dist/public/index.html +12 -12
- package/package.json +3 -3
- package/dist/public/_app/immutable/chunks/index.FRem4NB_.js +0 -127
- package/dist/public/_app/immutable/chunks/makeList.D9WwT8E8.js +0 -120
- package/dist/public/_app/immutable/chunks/paths.CmHCI0tQ.js +0 -1
- package/dist/public/_app/immutable/entry/start.DfzDaxWI.js +0 -1
- package/dist/public/_app/immutable/nodes/3.BlyuNevc.js +0 -18
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
var ve=Object.defineProperty;var $e=(s,t,u)=>t in s?ve(s,t,{enumerable:!0,configurable:!0,writable:!0,value:u}):s[t]=u;var J=(s,t,u)=>($e(s,typeof t!="symbol"?t+"":t,u),u);import{p as e,a as W,b as St,c as xt,i as ut,d as wt,f as S,g as U,E as p,h as nt,j as Lt,k as Ht,l as Dt,m as v,n as lt,t as mt,r as at,o as we,q as Me,s as K,u as gt,v as vt,w as B,x as ht,y as It,z as Bt,A as Ot,S as kt,B as be}from"./index.FRem4NB_.js";var ke=class{constructor(s,t,u,o,n){J(this,"base_center_x");J(this,"base_center_y");J(this,"base_radius");J(this,"initial_angle");J(this,"right_nleft");this.base_center_x=s,this.base_center_y=t,this.base_radius=u,this.initial_angle=o,this.right_nleft=n}angleSign(){return this.right_nleft?1:-1}lFromU(s){return this.base_radius*Math.sqrt(1+s**2)}wFromU(s){if(s<0)throw`err729: involute parameter au ${s} is negative`;if(Math.abs(s)>Math.PI/2)throw`err730: involute parameter au ${s} is larger than PI/2`;return this.angleSign()*(s-Math.atan(s))}w2FromU(s){return this.initial_angle+this.wFromU(s)}ptc(s){const t=this.lFromU(s),u=this.w2FromU(s),o=this.base_center_x+Math.cos(u)*t,n=this.base_center_y+Math.sin(u)*t;return[o,n]}ptcta(s){return this.initial_angle+this.angleSign()*s}uFromL(s){return Math.sqrt(s**2/this.base_radius**2-1)}uFromWslow(s){let u=Math.PI/3,o=u/2,n=this.wFromU(u),g=0;for(;Math.abs(n-s)>1e-4;)n<s?u+=o:u-=o,n=this.wFromU(u),o=o/2,g+=1;return console.log(`dbg072: uFromWslow itcnt ${g}`),u}laptc(s,t,u,o){if(Math.sign(t)*this.angleSign()<0)throw`err904: Invole.laptc angle-of-pressure ${t} not compatible with right_nleft ${this.right_nleft}`;const n=s+t,g=this.base_center_x+Math.cos(n)*this.base_radius,i=this.base_center_y+Math.sin(n)*this.base_radius,c=n-this.angleSign()*Math.PI/2,d=u*this.base_radius,a=g+Math.cos(c)*d,h=i+Math.sin(c)*d,r=this.lFromU(u)*o,l=u,_=Math.cos(l)*r,L=Math.sin(l)*r;return[a,h,_,L]}};function $t(s,t,u,o,n){return new ke(s,t,u,o,n)}var Ee=class{constructor(){J(this,"mod",1);J(this,"TN",23);J(this,"as",1);J(this,"cx",0);J(this,"cy",0);J(this,"brr",50);J(this,"blr",50);J(this,"ar",54);J(this,"pr",53);J(this,"dr",52);J(this,"br",51);J(this,"bRound",1);J(this,"adt",.5);J(this,"initAngle",0);J(this,"axisAngle",0);J(this,"involArcPairs",1);J(this,"skinThickness",0);J(this,"involuteR",$t(0,0,50,0,!0));J(this,"involuteL",$t(0,0,50,0,!1));J(this,"rud",0);J(this,"rup",0);J(this,"rua",0);J(this,"rwd",0);J(this,"rwp",0);J(this,"rwa",0);J(this,"lud",0);J(this,"lup",0);J(this,"lua",0);J(this,"lwd",0);J(this,"lwp",0);J(this,"lwa",0);J(this,"msg");J(this,"initStep",0);this.mod=1,this.msg="",this.initStep=0}incInitStep(s){if(this.initStep+1!==s)throw`err834: incInitStep initStep ${this.initStep} and target ${s} are not compatible`;this.initStep=s}checkInitStep(s,t){if(this.initStep<s)throw`err835: checkInitStep for ${t} initStep ${this.initStep} is too small compare to targetMin ${s}`}set1ModuleToothNumber(s,t){this.incInitStep(1),this.mod=s,this.TN=t,this.pr=this.mod*this.TN/2,this.as=2*Math.PI/this.TN}set2CenterPosition(s,t){this.incInitStep(2),this.cx=s,this.cy=t}set3CircleRadius(s,t,u,o){this.incInitStep(3),this.ar=this.pr+this.mod*s,this.dr=this.pr-this.mod*t,this.br=this.dr-this.mod*u,this.bRound=o}set4BaseCircles(s,t){this.incInitStep(4),this.brr=s,this.blr=t}set5AddendumThickness(s){this.incInitStep(5),this.adt=s/100}set6Angles(s,t){this.incInitStep(6),this.initAngle=s,this.axisAngle=t}set7InvoluteDetails(s,t){this.incInitStep(7),this.involArcPairs=s,this.skinThickness=t}getRefCircles(){return this.checkInitStep(4,"getRefCircles"),[v(this.cx,this.cy,this.ar,"Azure"),v(this.cx,this.cy,this.pr,"Azure"),v(this.cx,this.cy,this.dr,"Azure"),v(this.cx,this.cy,this.br,"Azure"),v(this.cx,this.cy,this.brr,"CornFlowerBlue"),v(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 s=this.as*this.adt,t=this.rwa-this.rwp,u=Math.abs(this.lwa-this.lwp),o=s-t-u;if(o<0)throw`err554: No remaining Addendum reserve ${S(o)}
|
|
2
|
-
`;const n=this.as*(1-this.adt),g=this.rwp-this.rwd,i=Math.abs(this.lwp-this.lwd),c=n-g-i;if(c<2*Math.atan2(this.bRound,this.br))throw`err555: No remaining Dedendum reserve ${S(c)} compare to bRound ${S(this.bRound)}
|
|
3
|
-
`}getToothRef(){const s=6*this.involArcPairs,t=0;this.checkInitStep(7,"getProfile"),this.calcInvoluteAngles();const u=(this.rua-this.rud)/s,o=(this.lua-this.lud)/s,n=this.initAngle+t*this.as,g=$t(this.cx,this.cy,this.brr,n-this.rwp,!0),[i,c]=g.ptc(this.rud+0*u),d=U(i,c,"Gold");for(let f=0;f<s;f++){const[r,l]=g.ptc(this.rud+(f+1)*u);d.addSegStrokeA(r,l)}const a=n+this.as*this.adt,h=$t(this.cx,this.cy,this.blr,a-this.lwp,!1);for(let f=0;f<s+1;f++){const[r,l]=h.ptc(this.lud+(s-f)*o);d.addSegStrokeA(r,l)}return d.closeSegStroke(),d}getProfile(){this.checkInitStep(7,"getProfile"),this.calcInvoluteAngles(),this.checkProfileConditions();const s=this.rwd-this.rwp,t=this.lwd-this.lwp,u=this.dr>this.brr?this.dr:this.brr,o=this.dr>this.blr?this.dr:this.blr;if(this.bRound>u-this.br)throw`err409: getProfile bRound ${S(this.bRound)} too large for erdr ${S(u)} and br ${S(this.br)}`;if(this.bRound>o-this.br)throw`err408: getProfile bRound ${S(this.bRound)} too large for eldr ${S(o)} and br ${S(this.br)}`;const n=(this.rua-this.rud)/this.involArcPairs,g=(this.lua-this.lud)/this.involArcPairs,i=lt(this.cx,this.cy),c=i.translatePolar(this.initAngle+s,this.br),d=U(c.cx,c.cy);for(let a=0;a<this.TN;a++){const h=this.initAngle+a*this.as,f=i.translatePolar(h+s,this.br);d.addSegStrokeA(f.cx,f.cy).addCornerRounded(this.bRound);const r=$t(this.cx,this.cy,this.brr,h-this.rwp,!0),[l,_]=r.ptc(this.rud),L=r.ptcta(this.rud),D=lt(l,_).translatePolar(L-Math.PI/2,this.skinThickness);d.addSegStrokeA(D.cx,D.cy);for(let M=0;M<this.involArcPairs;M++){const G=this.rud+M*n,[x,C]=r.ptc(G+n),Z=r.ptcta(G),m=r.ptcta(G+n)+Math.PI,R=lt(x,C).translatePolar(Z-Math.PI/2,this.skinThickness);d.addPointA(R.cx,R.cy).addSeg2Arcs(Z,m)}const A=h+this.as*this.adt,w=$t(this.cx,this.cy,this.blr,A-this.lwp,!1),H=this.lud+this.involArcPairs*g,[k,$]=w.ptc(H),P=w.ptcta(H)+Math.PI,b=lt(k,$).translatePolar(P-Math.PI/2,this.skinThickness);d.addSegStrokeA(b.cx,b.cy);for(let M=0;M<this.involArcPairs;M++){const G=this.lud+(this.involArcPairs-M)*g,[x,C]=w.ptc(G-g),Z=w.ptcta(G)+Math.PI,m=w.ptcta(G-g),R=lt(x,C).translatePolar(Z-Math.PI/2,this.skinThickness);d.addPointA(R.cx,R.cy).addSeg2Arcs(Z,m)}const V=i.translatePolar(A+t,this.br);d.addSegStrokeA(V.cx,V.cy).addCornerRounded(this.bRound)}return d.closeSegStroke(),d}getMsg(){return this.msg}};function Zt(){return new Ee}function Ae(s,t,u,o){s.checkInitStep(1,"helper.gw2center-1"),t.checkInitStep(1,"helper.gw2center-2");const n=s.pr+t.pr+o,g=s.cx+n*Math.cos(u),i=s.cy+n*Math.sin(u);return[g,i,n]}function Re(s,t,u,o,n,g,i,c,d){s.checkInitStep(3,"helper.baseCircles-1"),t.checkInitStep(3,"helper.baseCircles-2");let a=u,h=n,f=o,r=g;const l=c,_=d;return l===0&&(t.TN>s.TN?(a=s.dr,h=a*t.TN/s.TN):(h=t.dr,a=h*s.TN/t.TN)),_===0&&(t.TN>s.TN?(f=s.dr,r=f*t.TN/s.TN):(r=t.dr,f=r*s.TN/t.TN)),i===1&&(f=a,r=h),[a,f,h,r]}var Ne=class{constructor(s,t,u,o,n,g){J(this,"gw1");J(this,"gw2");J(this,"initAngle1");J(this,"angleCenterCenter");J(this,"interAxis");J(this,"rightLeftCenter2");J(this,"msg");J(this,"apr");J(this,"apl");J(this,"lBDr",0);J(this,"lBDl",0);J(this,"laStartRr1",0);J(this,"laStartRr2",0);J(this,"laStartRl1",0);J(this,"laStartRl2",0);J(this,"aFODr1",0);J(this,"aFODr2",0);J(this,"aFODl1",0);J(this,"aFODl2",0);J(this,"lasr1",0);J(this,"lasr2",0);J(this,"lasl1",0);J(this,"lasl2",0);J(this,"firstToothUr1",0);J(this,"firstToothUl1",0);J(this,"ftdr1",0);J(this,"ftdl1",0);this.gw1=s,this.gw2=t,this.initAngle1=u,this.angleCenterCenter=o,this.interAxis=n,this.rightLeftCenter2=g,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 ${S(this.interAxis)} is too large compare to gw1.ar ${S(this.gw1.ar)} and gw2.ar ${S(this.gw2.ar)}
|
|
4
|
-
`),ht(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} = ${S(this.gw1.TN/this.gw2.TN)} and brr1/brr2 = ${S(this.gw1.brr)}/${S(this.gw2.brr)} = ${S(this.gw1.brr/this.gw2.brr)}
|
|
5
|
-
`),ht(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} = ${S(this.gw1.TN/this.gw2.TN)} and blr1/blr2 = ${S(this.gw1.blr)}/${S(this.gw2.blr)} = ${S(this.gw1.blr/this.gw2.blr)}
|
|
6
|
-
`)}check2(){this.gw1.checkInitStep(5,"ActionLine.check2-1"),this.gw2.checkInitStep(5,"ActionLine.check2-2"),ht(this.gw1.adt+this.gw2.adt-1)>0&&(this.msg+=`warn281: addendum thickness too large: adt1 ${S(this.gw1.adt)} adt2 ${S(this.gw2.adt)}
|
|
7
|
-
`);const s=this.gw1.ar-this.gw1.pr,t=this.gw1.pr-this.gw1.dr,u=this.gw2.ar-this.gw2.pr,o=this.gw2.pr-this.gw2.dr;ht(o-s)<0&&(this.msg+=`warn282: addendum-1 ${S(s)} larger than dedendum-2 ${S(o)}
|
|
8
|
-
`),ht(t-u)<0&&(this.msg+=`warn283: addendum-2 ${S(u)} larger than dedendum-1 ${S(t)}
|
|
9
|
-
`)}calcActionLine(){this.gw1.checkInitStep(4,"ActionLine.calcActionLine-1"),this.gw2.checkInitStep(4,"ActionLine.calcActionLine-2"),this.gw1.calcInvoluteAngles(),this.gw2.calcInvoluteAngles();const s=this.interAxis*this.gw1.brr/(this.gw1.brr+this.gw2.brr),t=this.interAxis*this.gw1.blr/(this.gw1.blr+this.gw2.blr),u=this.interAxis-s,o=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: ${S(at(this.apr))} left: ${S(at(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: ${S(this.lBDr)} left: ${S(this.lBDl)} mm
|
|
11
|
-
`;const n=Math.PI/2+this.apr,g=It(this.gw1.ar,s,n);this.aFODr1=Math.PI-n-g;const i=this.gw1.rua-this.apr-this.gw1.rwa;if(ht(this.aFODr1-i)!==0)throw`dbg378: aFODr1 ${this.aFODr1} and aFODr1Alt ${i} differ`;const c=Bt(s,this.gw1.ar,this.aFODr1),d=n,a=It(this.gw2.ar,u,d);this.aFODr2=Math.PI-d-a;const h=this.gw2.rua-this.apr-this.gw2.rwa;if(ht(this.aFODr2-h)!==0)throw`dbg379: aFODr2 ${this.aFODr2} and aFODr2Alt ${h} differ`;const f=Bt(u,this.gw2.ar,this.aFODr2),r=c+f,l=r/this.gw1.brr,_=r/this.gw2.brr,L=this.gw1.rua-l,D=this.gw2.rua-_;this.laStartRr1=this.gw1.involuteR.lFromU(L),this.laStartRr2=this.gw2.involuteR.lFromU(D);const A=Math.PI/2+this.apl,w=It(this.gw1.ar,t,A);this.aFODl1=Math.PI-A-w;const H=this.gw1.lua-this.apl+this.gw1.lwa;if(ht(this.aFODl1-H)!==0)throw`dbg388: aFODl1 ${this.aFODl1} and aFODl1Alt ${H} differ`;const k=Bt(t,this.gw1.ar,this.aFODl1),$=n,P=It(this.gw2.ar,o,$);this.aFODl2=Math.PI-$-P;const b=this.gw2.lua-this.apl+this.gw2.lwa;if(ht(this.aFODl2-b)!==0)throw`dbg389: aFODl2 ${this.aFODl2} and aFODl2Alt ${b} differ`;const V=Bt(o,this.gw2.ar,this.aFODl2),M=k+V,G=M/this.gw1.blr,x=M/this.gw2.blr,C=this.gw1.lua-G,Z=this.gw2.lua-x;this.laStartRl1=this.gw1.involuteL.lFromU(C),this.laStartRl2=this.gw2.involuteL.lFromU(Z),this.msg+=`Line of Action Effective length: right: ${S(r)} left: ${S(M)} mm
|
|
12
|
-
`,this.msg+=`Line of Action Effective rotation angle: right-1: ${S(at(l))} right-2: ${S(at(_))} left-1: ${S(at(G))} left-2: ${S(at(x))} degree
|
|
13
|
-
`,this.msg+=`Line of Action Effective height: right-1: ${S(this.gw1.ar-this.laStartRr1)} right-2: ${S(this.gw2.ar-this.laStartRr2)} left-1: ${S(this.gw1.ar-this.laStartRl1)} left-2: ${S(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: ${S(this.lasr1)} 2: ${S(this.lasr2)} mm
|
|
15
|
-
`,this.msg+=`Line of Action right: nb of contact point: 1: ${S(r/this.lasr1)} 2: ${S(r/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: ${S(this.lasl1)} 2: ${S(this.lasl2)} mm
|
|
17
|
-
`,this.msg+=`Line of Action left: nb of contact point: 1: ${S(M/this.lasl1)} 2: ${S(M/this.lasl2)}
|
|
18
|
-
`}calcContactPoint1(){for(this.gw1.checkInitStep(5,"ActionLine.calcContactPoint1"),this.firstToothUr1=Ot(this.apr-(this.initAngle1-this.angleCenterCenter)+this.gw1.rwp);ht(this.firstToothUr1-this.gw1.as)>=0;)this.firstToothUr1=ht(this.firstToothUr1-this.gw1.as);for(this.firstToothUl1=Ot(this.apl+(this.initAngle1-this.angleCenterCenter)+this.gw1.as*this.gw1.adt-this.gw1.lwp);ht(this.firstToothUl1-this.gw1.as)>=0;)this.firstToothUl1=ht(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(s,t,u,o,n,g,i,c,d,a){const f=Math.floor(t/(2*u)),r=(o+f*u)/n,l=s?1:-1,[_,L,D,A]=g.laptc(i,l*c,r,.4);this.msg+=`speed ${d}: vx ${S(D)} vy: ${S(A)} m/s
|
|
19
|
-
`;const w=lt(_,L),H=i+l*c,k=U(_,L,a),$=w.translatePolar(H,-A);k.addSegStrokeA($.cx,$.cy);const P=$.translatePolar(H-l*Math.PI/2,D);return k.addSegStrokeA(P.cx,P.cy),k.closeSegStroke(),k}getContactSpeed(){const s=this.oneContactSpeed(!0,this.lBDr,this.lasr1,this.ftdr1,this.gw1.brr,this.gw1.involuteR,this.angleCenterCenter,this.apr,"R1","Black"),t=this.oneContactSpeed(!1,this.lBDl,this.lasl1,this.ftdl1,this.gw1.blr,this.gw1.involuteL,this.angleCenterCenter,this.apl,"L1","Black"),u=[];return u.push(s),u.push(t),u}getContours(){const s=[];s.push(v(this.gw1.cx,this.gw1.cy,this.laStartRr1,"SkyBlue")),s.push(v(this.gw1.cx,this.gw1.cy,this.laStartRl1,"SlateBlue")),s.push(v(this.gw2.cx,this.gw2.cy,this.laStartRr2,"SkyBlue")),s.push(v(this.gw2.cx,this.gw2.cy,this.laStartRl2,"SlateBlue"));const t=lt(this.gw1.cx,this.gw1.cy),u=lt(this.gw2.cx,this.gw2.cy),o=t.translatePolar(this.angleCenterCenter+this.apr,this.gw1.brr),n=u.translatePolar(this.angleCenterCenter+Math.PI+this.apr,this.gw2.brr),g=U(o.cx,o.cy,"YellowGreen");g.addSegStrokeA(n.cx,n.cy),g.closeSegStroke(),s.push(g);const i=t.translatePolar(this.angleCenterCenter-this.aFODr1,this.gw1.ar),c=u.translatePolar(this.angleCenterCenter+Math.PI-this.aFODr2,this.gw2.ar),d=U(i.cx,i.cy,"Yellow");d.addSegStrokeA(c.cx,c.cy),d.closeSegStroke(),s.push(d);const a=t.translatePolar(this.angleCenterCenter-this.apl,this.gw1.blr),h=u.translatePolar(this.angleCenterCenter+Math.PI-this.apl,this.gw2.blr),f=U(a.cx,a.cy,"YellowGreen");f.addSegStrokeA(h.cx,h.cy),f.closeSegStroke(),s.push(f);const r=t.translatePolar(this.angleCenterCenter+this.aFODl1,this.gw1.ar),l=u.translatePolar(this.angleCenterCenter+Math.PI+this.aFODl2,this.gw2.ar),_=U(r.cx,r.cy,"Yellow");return _.addSegStrokeA(l.cx,l.cy),_.closeSegStroke(),s.push(_),s.push(...this.getContactSpeed()),s}getContactPoint(){const s=[],t=lt(this.gw1.cx,this.gw1.cy),u=t.translatePolar(this.angleCenterCenter+this.apr,this.gw1.brr),o=t.translatePolar(this.angleCenterCenter-this.apl,this.gw1.blr);s.push(lt(u.cx,u.cy,kt.eBigSquare)),s.push(lt(o.cx,o.cy,kt.eBigSquare));const n=this.angleCenterCenter+this.apr-Math.PI/2,g=this.angleCenterCenter-this.apl+Math.PI/2,i=u.translatePolar(n,this.ftdr1),c=o.translatePolar(g,this.ftdl1);s.push(lt(i.cx,i.cy,kt.eBigSquare)),s.push(lt(c.cx,c.cy,kt.eBigSquare));let d=this.ftdr1;for(;d+this.lasr1<this.lBDr;){d+=this.lasr1;const h=u.translatePolar(n,d);s.push(lt(h.cx,h.cy,kt.eBigSquare))}let a=this.ftdl1;for(;a+this.lasl1<this.lBDl;){a+=this.lasl1;const h=o.translatePolar(g,a);s.push(lt(h.cx,h.cy,kt.eBigSquare))}return s}getMsg(){return this.msg}getInitAngle2(){let s=this.lBDr-this.ftdr1;for(;ht(s-this.lasr2)>=0;)s=ht(s-this.lasr2);let t=this.lBDl-this.ftdl1;for(;ht(t-this.lasl2)>=0;)t=ht(t-this.lasl2);const u=s/this.gw2.brr,o=t/this.gw2.blr,n=this.angleCenterCenter+Math.PI+this.apr-u+this.gw2.rwp,i=this.angleCenterCenter+Math.PI-this.apl+o+this.gw2.lwp-this.gw2.as*this.gw2.adt;let c=2*Math.PI+Ot(i);for(;ht(c-this.gw2.as-n)>=0;)c=ht(c-this.gw2.as);const d=c-n,a=d*this.gw2.brr/this.gw1.brr,h=d*this.gw2.brr,f=d*this.gw2.blr;this.msg+=`slack angle: 1: ${S(at(a))} 2: ${S(at(d))} degree
|
|
20
|
-
`,this.msg+=`slack on action line: right-2: ${S(h)} left-2: ${S(f)} mm
|
|
21
|
-
`;let r=0;if(this.rightLeftCenter2===0)r=n;else if(this.rightLeftCenter2===1)r=i;else if(this.rightLeftCenter2===2)r=n+d/2;else throw`err221: initAngle2 rightLeftCenter2 ${this.rightLeftCenter2} has an unkown value`;return be(r)}};function Ve(s,t,u,o,n,g){return new Ne(s,t,u,o,n,g)}function Ce(s,t,u,o,n,g,i,c,d){let a=v(s,t,u);if(o>0){if(n>2*u)throw`err383: axisTorque ribWidth ${S(n)} larger than 2x axisRadius ${S(u)}`;const h=Math.asin(n/(2*u)),f=2*Math.PI/o;if(f-2.5*h<0)throw`err384: axisTorque ribWidth ${S(n)} or ribNb ${o} are too large`;if(i>n/2)throw`err385: axisTorque ribRound1 ${S(i)} too large compare to ribWidth ${S(n)}`;if(i+c>g)throw`err386: axisTorque ribRound12 ${S(i)} ${S(c)} too large compare to ribHeight ${S(n)}`;const r=f-2*h>Math.PI,l=lt(s,t),L=l.translatePolar(d,u+g).translatePolar(d+Math.PI/2,n/2);a=U(L.cx,L.cy);for(let D=0;D<o;D++){const A=d+D*f,w=A+f,H=l.translatePolar(A+h,u),k=l.translatePolar(w-h,u),P=l.translatePolar(A,u+g).translatePolar(A+Math.PI/2,n/2),V=l.translatePolar(w,u+g).translatePolar(w-Math.PI/2,n/2);a.addSegStrokeA(P.cx,P.cy).addCornerRounded(i),a.addSegStrokeA(H.cx,H.cy).addCornerRounded(c),a.addPointA(k.cx,k.cy).addSegArc(u,r,!0).addCornerRounded(c),a.addSegStrokeA(V.cx,V.cy).addCornerRounded(i)}a.closeSegStroke()}return a}function Ie(s,t,u,o,n,g,i,c){const d=2*Math.PI/n,a=Math.asin(g/(2*o)),h=Math.asin(g/(2*u));if(g>2*o)throw`err905: hollowStraight spokeWidth ${S(g)} too large for hollowInt ${S(o)}`;if(u-o<2.1*i)throw`err906: hollowStraight hollowExt ${S(u)}, hollowInt ${S(o)} and spokeRound ${S(i)} do not fit`;if(d-2*h<2.5*Math.asin(i/u))throw`err907: hollowStraight spokeNb ${n}, spokeWidth ${S(g)} or spokeRound ${S(i)} are too large`;const f=g/(2*Math.sin(d/2)),r=d-2*a<2.1*Math.asin(i/o),l=d-2*h>Math.PI,_=lt(s,t),L=[];for(let D=0;D<n;D++){const A=c+D*d,w=A+d,H=A+d/2,k=_.translatePolar(A+h,u),$=_.translatePolar(w-h,u),P=_.translatePolar(w-a,o),b=_.translatePolar(A+a,o),V=_.translatePolar(H,f),M=U(k.cx,k.cy);M.addCornerRounded(i),M.addPointA($.cx,$.cy).addSegArc(u,l,!0).addCornerRounded(i),r?M.addSegStrokeA(V.cx,V.cy).addCornerRounded(i):(M.addSegStrokeA(P.cx,P.cy).addCornerRounded(i),M.addPointA(b.cx,b.cy).addSegArc(o,l,!1).addCornerRounded(i)),M.closeSegStroke(),L.push(M)}return L}function Kt(s,t,u,o,n,g,i,c,d,a){const h=a?1:-1,f=s/2,r=f+t,l=r+u,_=U(0,-l);return _.addSegStrokeA(h*o,-l).addCornerRounded(i).addSegStrokeA(h*o,-r).addCornerRounded(c).addSegStrokeA(h*n,-r).addSegStrokeA(h*g,-f).addCornerRounded(d).addSegStrokeA(h*g,f).addCornerRounded(d).addSegStrokeA(h*n,r).addSegStrokeA(h*o,r).addCornerRounded(c).addSegStrokeA(h*o,l).addCornerRounded(i).addSegStrokeA(0,l).closeSegStroke(),_}var Qt={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),W("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),St("involSym",!0),xt("involROpt",["Optimum","Base-1","Base-2","PressureAngle","FreeBase-12"]),xt("involLOpt",["Optimum","Base-1","Base-2","PressureAngle","FreeBase-12"]),e("brr1","mm",50,10,2e3,.05),e("brr2","mm",50,10,2e3,.05),e("blr1","mm",50,10,2e3,.05),e("blr2","mm",50,10,2e3,.05),e("involArcPairs1","scalar",2,1,40,1),e("involArcPairs2","scalar",2,1,40,1),e("skinThickness1","mm",0,-3,3,.01),e("skinThickness2","mm",0,-3,3,.01),e("initAngle1","degree",0,-180,180,1),xt("gw2Position",["right","left","center"]),W("Inner"),St("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),St("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),W("Axis"),St("centralAxis",!0),St("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(s,t,u=""){const o=ut(Qt.partName+u),n=B(),g=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
22
|
-
`;try{const i=Zt(),c=Zt();i.set1ModuleToothNumber(t.module,t.N1),c.set1ModuleToothNumber(t.module,t.N2),i.set2CenterPosition(t.c1x,t.c1y);const d=wt(t.angleCenterCenter),[a,h,f]=Ae(i,c,d,t.addInterAxis);c.set2CenterPosition(a,h),i.set3CircleRadius(t.ah1,t.dh1,t.bh1,t.bRound1),c.set3CircleRadius(t.ah2,t.dh2,t.bh2,t.bRound2);const[r,l,_,L]=Re(i,c,t.brr1,t.blr1,t.brr2,t.blr2,t.involSym,t.involROpt,t.involROpt);i.set4BaseCircles(r,l),c.set4BaseCircles(_,L),i.set5AddendumThickness(t.at1),c.set5AddendumThickness(t.at2);const D=wt(t.initAngle1)+s*3*i.as/100;i.set6Angles(D,d);const A=Ve(i,c,D,d,f,t.gw2Position);A.prepare();for(const b of A.getContours())n.addDynamics(b);n.addPoints(A.getContactPoint()),c.set6Angles(A.getInitAngle2(),d+Math.PI),o.logstr+=A.getMsg(),i.set7InvoluteDetails(t.involArcPairs1,t.skinThickness1),c.set7InvoluteDetails(t.involArcPairs2,t.skinThickness2);for(const b of i.getRefCircles())n.addDynamics(b);for(const b of c.getRefCircles())n.addDynamics(b);n.addDynamics(i.getToothRef()),n.addDynamics(c.getToothRef());const w=i.getProfile();if(o.logstr+=i.getMsg(),o.logstr+=w.check(),n.addMain(w),t.centralAxis===1){const b=Ce(i.cx,i.cy,t.axisRadius,t.ribNb,t.ribWidth,t.ribHeight,t.ribRound1,t.ribRound2,D);o.logstr+=b.check(),n.addMain(b)}if(t.hollow===1){const b=i.br,V=t.axisRadius+t.ribHeight,M=b-t.materialHeightExt,G=V+t.materialHeightInt;if(G>M)throw`err902: hollowMaterialInt ${S(G)} bigger than hollowMaterialExt ${S(M)}`;const x=Ie(i.cx,i.cy,M,G,t.spokeNb,t.spokeWidth,t.spokeRound,D);for(const C of x)o.logstr+=C.check(),n.addMain(C)}const H=c.getProfile();o.logstr+=H.check(),n.addSecond(H);const k=i.ar+t.wheelRadiusExtra;if(t.wheelAxis===1){const b=Kt(t.wheelHeight,t.wheelMidExtra,t.wheelAxisLength,t.wheelAxisRadius,t.wheelMidRadius,k,t.wheelAxisExtRound,t.wheelAxisIntRound,t.wheelExtraRound,!0),V=Kt(t.wheelHeight,t.wheelMidExtra,t.wheelAxisLength,t.wheelAxisRadius,t.wheelMidRadius,k,t.wheelAxisExtRound,t.wheelAxisIntRound,t.wheelExtraRound,!1);g.addMain(b),g.addSecond(V)}else{const b=U(0,-t.wheelHeight/2).addSegStrokeR(0,t.wheelHeight).addSegStrokeR(k,0).addSegStrokeR(0,-t.wheelHeight).closeSegStroke(),V=U(0,-t.wheelHeight/2).addSegStrokeR(0,t.wheelHeight).addSegStrokeR(-k,0).addSegStrokeR(0,-t.wheelHeight).closeSegStroke();g.addMain(b),g.addSecond(V)}o.fig={teethProfile:n,axisProfile:g};const $=o.partName,P=t.wheelHeight/2+t.wheelMidExtra+t.wheelAxisLength+10;o.vol={extrudes:[{outName:`subpax_${$}_teethProfile`,face:`${$}_teethProfile`,extrudeMethod:p.eLinearOrtho,length:2*P,rotate:[0,0,0],translate:[0,0,-P]},{outName:`subpax_${$}_axisProfile`,face:`${$}_axisProfile`,extrudeMethod:p.eRotate,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${$}`,boolMethod:nt.eIntersection,inList:[`subpax_${$}_teethProfile`,`subpax_${$}_axisProfile`]}]},o.logstr+=`gear_wheel_wheel drawn successfully!
|
|
23
|
-
`,o.calcErr=!1}catch(i){o.logstr+=i,console.log(i)}return o}var Jt={pTitle:"Gearwheel-gearwheel",pDescription:"Gear-system with two wheels",pDef:Qt,pGeom:Be},te={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),St("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),St("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),St("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 ye(s,t,u=""){const o=ut(te.partName+u),n=B(),g=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
24
|
-
`;try{const i=Lt(Jt.pDef,"_ref1");i.setVal("module",t.module),i.setVal("N1",t.N1),i.setVal("c1x",t.c1x),i.setVal("c1y",t.c1y),i.setVal("centralAxis",t.centralAxis),i.setVal("axisRadius",t.axisRadius),i.setVal("ribNb",t.ribNb),i.setVal("ribWidth",t.ribWidth),i.setVal("ribHeight",t.ribHeight),i.setVal("ribRound1",t.ribRound1),i.setVal("ribRound2",t.ribRound2),i.setVal("hollow",t.hollow),i.setVal("materialHeightExt",t.materialHeightExt),i.setVal("materialHeightInt",t.materialHeightInt),i.setVal("spokeNb",t.spokeNb),i.setVal("spokeWidth",t.spokeWidth),i.setVal("spokeRound",t.spokeRound),i.setVal("wheelAxis",t.wheelAxis),i.setVal("wheelHeight",t.wheelHeight),i.setVal("wheelMidExtra",t.wheelMidExtra),i.setVal("wheelAxisLength",t.wheelAxisLength),i.setVal("wheelAxisRadius",t.wheelAxisRadius),i.setVal("wheelMidRadius",t.wheelMidRadius),i.setVal("wheelRadiusExtra",t.wheelRadiusExtra),i.setVal("wheelAxisExtRound",t.wheelAxisExtRound),i.setVal("wheelAxisIntRound",t.wheelAxisIntRound),i.setVal("wheelExtraRound",t.wheelExtraRound);const c=Jt.pGeom(s,i.getParamVal(),i.getSuffix());Ht(c),o.logstr+=Dt(c.logstr,i.getPartNameSuffix()),n.mergeFigure(c.fig.teethProfile),g.mergeFigure(c.fig.axisProfile),o.fig={teethProfile:n,axisProfile:g};const d=o.partName;o.vol={inherits:[{outName:`inpax_${d}_gearWW`,subdesign:"pax_gear_wheel_wheel_ref1",subgeom:c,rotate:[0,0,0],translate:[0,0,0]}],extrudes:[],volumes:[{outName:`pax_${d}`,boolMethod:nt.eIdentity,inList:[`inpax_${d}_gearWW`]}]};const a={partName:i.getPartName(),dparam:i.getDesignParamList(),orientation:[0,0,0],position:[0,0,0]};o.sub={gear_wheel_wheel_1:a},o.logstr+=`simplified_gear_wheel drawn successfully!
|
|
25
|
-
`,o.calcErr=!1}catch(i){o.logstr+=i,console.log(i)}return o}var Te={pTitle:"Simplified gearwheel",pDescription:"One simplified gearwheel without details on teeth-profile",pDef:te,pGeom:ye};function Fe(s){let t="";const u=s.PHD1/2,o=s.PHD5/2,n=2*Math.asin(s.PHR4/u),g=2*Math.asin(s.PHL2/(2*o)),i=2*Math.PI/s.PHN1-g,c=s.PHL2/2,d=Math.sqrt(o**2-c**2)-u,a=Math.sqrt(c**2+d**2),h=Math.acos(d/a),f=Math.acos(s.PHR4/a),r=Math.PI-h-f;if(o<u+s.PHR4)throw`err211: PHD5 ${s.PHD5} too small compare to PHD1 ${s.PHD1} or PHR4 ${s.PHR4}`;if(i<g)throw`err212: PHL2 ${s.PHL2} too large compare to PHN1 ${s.PHN1}`;if(s.PHD3>2*s.PHR4)throw`err213: PHD3 ${s.PHD3} too large compare to PHR4 ${s.PHR4}`;r>Math.PI/2-n&&(t+=`warn345: PHL2 is quiet small ${S(s.PHL2)} mm
|
|
26
|
-
`),t+=`petal angle: ${S(at(g))} degree
|
|
27
|
-
`,t+=`hollow angle: ${S(at(i))} degree
|
|
28
|
-
`;const l=lt(0,0),L=lt(o,0).rotate(l,-g/2),D=lt(u,0),A=lt(u-s.PHR4,0),w=A.rotate(D,r),H=A.rotate(D,-r),k=U(L.cx,L.cy).addCornerRounded(s.PHR6).addSegStrokeA(w.cx,w.cy).addPointA(u-s.PHR4,0).addPointA(H.cx,H.cy).addSegArc2().addSegStrokeAP(g/2,o).addCornerRounded(s.PHR6).addPointAP(g/2+i/2,o).addPointAP(g/2+i,o).addSegArc2(),$=U(L.cx,L.cy),P=[...Array(s.PHN1).keys()].map(b=>b*(g+i));for(const b of P)$.addPartial(k.rotate(0,0,b));return[t,$,P]}function ee(s){const t="",u=s.D1/2,o=s.D2/2,n=s.D4/2,g=2*Math.PI/s.N1,i=s.L1/2,c=Math.sqrt(o**2-i**2),d=Math.asin(i/o),a=u-c,h=Math.atan2(i,a),f=Math.sqrt(i**2+a**2),r=Math.acos(n/f),l=h+r,_=(g-2*d)/2;if(_<0)throw`err464: N1 ${s.N1} is too large compare to D2 ${s.D2}, L1 ${s.L1}`;if(u<o)throw`err465: D2 ${s.D2} is too large compare to D1 ${s.D1}`;const L=U(c,-i),D=lt(0,0),A=lt(o,0),w=lt(u,0),k=lt(u-n,0).rotate(w,l),$=A.rotate(D,d+_),P=A.rotate(D,g-d),b=U(c,-i).addCornerRounded(s.R5).addSegStrokeA(k.cx,k.cy).addPointA(u+n,0).addPointA(k.cx,-k.cy).addSegArc2().addSegStrokeA(c,i).addCornerRounded(s.R5).addPointA($.cx,$.cy).addPointA(P.cx,P.cy).addSegArc2();for(let V=0;V<s.N1;V++)L.addPartial(b.rotate(0,0,V*g));return[t,L,g]}function yt(s,t){let u="";const o=s.SD2/2,n=o+s.SE1,g=2*n;let i=!1,c=-o,d=-n;if(t&&(i=!0,c=n,d=o),s.SL2<n)throw`err421: SL2 ${s.SL2} is too small compare to SD2 ${s.SD2} and SE1 ${s.SE1}`;u+=`info309: spring height: ${S(s.SL1+g)} length: ${S(s.SN1*2*(s.SD2+s.SE1))}
|
|
29
|
-
`;const a=U(0,0);for(let h=0;h<s.SN1;h++)a.addSegStrokeR(0,-s.SL1).addPointR(2*c,0).addSegArc(Math.abs(c),!1,i),h<s.SN1-1?a.addSegStrokeR(0,s.SL1).addPointR(2*d,0).addSegArc(Math.abs(d),!1,!i):s.Send===1?a.addSegStrokeR(0,s.SL2):a.addSegStrokeR(0,s.SL2-n).addPointR(2*d,0).addSegArc(Math.abs(d),!1,!i);s.Send===1?a.addSegStrokeR(-s.SE1,0):a.addSegStrokeR(s.SE1,0);for(let h=0;h<s.SN1;h++)h>0?a.addPointR(-2*c,0).addSegArc(Math.abs(c),!1,i).addSegStrokeR(0,-s.SL1):s.Send===1?a.addSegStrokeR(0,-s.SL2):a.addPointR(-2*c,0).addSegArc(Math.abs(c),!1,i).addSegStrokeR(0,-s.SL2+n),a.addPointR(-2*d,0).addSegArc(Math.abs(d),!1,!i).addSegStrokeR(0,s.SL1);return[u,a]}function me(s){let t="";const u=s.D6/2,o=2*Math.PI/s.N2,n=s.E2/2,g=2*Math.asin(n/u),i=(o-g)/2,d=(s.N2<3?0:Math.PI/s.N2)+wt(s.SA1),a=Math.PI/2-d,h=-Math.PI/2+d,f=s.SD1/2;if(i<0)throw`err564: N2 ${s.N2} is too large compare to D6 ${s.D6}, E2 ${s.E2}`;if(s.orientation===2&&s.N2%2===1)throw`err565: N2 ${s.N2} is odd and orientation is alt`;const[r,l]=yt(s,!1),[,_]=yt(s,!0);t+=r;const L=lt(0,-u),D=lt(0,0),A=L.rotate(D,g),w=L.translate(0,s.L2),H=w.translate(-f,0),k=H.translate(0,f),$=H.translate(0,f+s.SE1),P=$.rotate(H,a),b=w.translate(0,f+s.SE1).translate(s.SE1,0),V=L.rotate(D,-g),M=w.translate(f,0),G=M.translate(0,f),x=G.rotate(M,h),C=M.translate(0,f+s.SE1),Z=w.translate(0,f+s.SE1).translate(-s.SE1,0),m=U(A.cx,A.cy).addSegStrokeA(b.cx,b.cy).addSegStrokeA($.cx,$.cy),R=U($.cx,$.cy).addPointA(P.cx,P.cy).addSegArc(f+s.SE1,!1,!0);R.addPartial(l.rotate(0,0,-d).translate(P.cx,P.cy)),R.addPointA(k.cx,k.cy).addPointA(w.cx,w.cy).addSegArc2().addSegStrokeA(L.cx,L.cy),m.addPartial(R);const T=U(L.cx,L.cy).addSegStrokeA(w.cx,w.cy).addPointA(G.cx,G.cy).addPointA(x.cx,x.cy).addSegArc2();T.addPartial(_.rotate(0,0,d).translate(x.cx,x.cy)),T.addPointA(C.cx,C.cy).addSegArc(f+s.SE1,!1,!0);const q=U(C.cx,C.cy).addSegStrokeA(Z.cx,Z.cy).addSegStrokeA(V.cx,V.cy),Q=U(L.cx,L.cy).addPartial(T).addPartial(q),I=U(u,0);if(s.orientation===2)for(let y=0;y<s.N2/2;y++){I.addPointAP(-2*y*o-2*i,u).addPointAP(-2*y*o-4*i,u).addSegArc2(),I.addCornerRounded(s.R7);const Y=Math.PI/2-(2*y+2)*o,j=Y+2*g;I.addPartial(T.rotate(0,0,j));const X=R.rotate(0,0,Y),O=X.getFirstPoint();I.addCornerRounded(s.R7),I.addSegStrokeA(O.cx,O.cy),I.addCornerRounded(s.R7),I.addPartial(X),I.addCornerRounded(s.R7)}else for(let y=0;y<s.N2;y++)I.addPointAP(-y*o-i,u).addPointAP(-y*o-2*i,u).addSegArc2().addCornerRounded(s.R7),s.orientation===0?I.addPartial(Q.rotate(0,0,Math.PI/2-(y+1)*o+g)):s.orientation===1&&I.addPartial(m.rotate(0,0,Math.PI/2-(y+1)*o)),I.addCornerRounded(s.R7);return[t,I]}var oe={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),W("screw holes"),e("PHD3","mm",40,1,100,1),e("PHR4","mm",40,1,100,1),e("PHL2","mm",120,1,400,1),e("PHR6","mm",20,0,400,1),W("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 Oe(s,t,u=""){const o=ut(oe.partName+u),n=B(),g=B(),i=B(),c=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
30
|
-
`;try{const d=wt(t.PHA),a=t.PHD1/2,h=t.PHD2/2,f=t.PHD3/2,r=t.PHD5/2,l=h+t.PHL1/2*Math.sin(d),_=h-t.PHL1/2*Math.sin(d),L=t.PHL1*Math.cos(d),D=h-t.PHE2/Math.cos(d)+t.PHE1/2*Math.tan(d),A=h-t.PHE2/Math.cos(d)-t.PHE1/2*Math.tan(d),w=Math.min(D,A),H=(t.PHL1-t.PHE1/Math.cos(d))/2,k=h-t.PHE2/Math.cos(d);if(w<r)throw`err210: PHD5 ${t.PHD5} too large compare to PHE2 ${t.PHE2} or PHA ${t.PHA}`;o.logstr+=`vaxis_holder's height: ${S(L)} mm
|
|
31
|
-
`,o.logstr+=`vaxis_holder outerD1: ${S(2*l)} mm
|
|
32
|
-
`,o.logstr+=`vaxis_holder outerD2: ${S(2*_)} mm
|
|
33
|
-
`,o.logstr+=`vaxis_holder innerD: ${S(t.PHD1-2*t.PHR4)} mm
|
|
34
|
-
`,o.logstr+=`vaxis_holder D2-next: ${S(2*k)} mm
|
|
35
|
-
`;const $=function(y){return U(y*r,-t.PHE1/2).addSegStrokeR(y*(D-r),0).addSegStrokeRP(-Math.PI/2+y*d,H).addSegStrokeRP(-Math.PI/2+y*(Math.PI/2+d),t.PHE2).addSegStrokeRP(Math.PI/2+y*d,t.PHL1).addSegStrokeRP(Math.PI/2+y*(Math.PI/2+d),t.PHE2).addSegStrokeRP(-Math.PI/2+y*d,H).addSegStrokeA(y*r,t.PHE1/2).closeSegStroke()},P=function(y){return U(y*w,-t.PHE1/2).addSegStrokeA(y*w,t.PHE1/2).addSegStrokeA(y*(a-t.PHR4),t.PHE1/2).addSegStrokeA(y*(a-t.PHR4),-t.PHE1/2).closeSegStroke()},b=function(y){return U(y*(a+f),-t.PHE1/2).addSegStrokeA(y*(a+f),t.PHE1/2).addSegStrokeA(y*(a-f),t.PHE1/2).addSegStrokeA(y*(a-f),-t.PHE1/2).closeSegStroke()};n.addMain($(1)),n.addSecond($(-1)),n.addSecond(P(1)),n.addSecond(b(1)),n.addSecond(P(-1)),n.addSecond(b(-1));const V=function(y){return U(y*(a+t.PHR4),-t.PHE1/2).addSegStrokeA(y*D,-t.PHE1/2).addSegStrokeRP(-Math.PI/2+y*d,H).closeSegStroke()},M=function(y){return U(y*(a+t.PHR4),t.PHE1/2).addSegStrokeA(y*A,t.PHE1/2).addSegStrokeRP(Math.PI/2+y*d,H).addSegStrokeA(y*(a+t.PHR4),t.PHE1+t.PHH1).closeSegStroke()};n.addSecond(V(-1)),n.addSecond(M(-1)),i.mergeFigure(n,!0),c.mergeFigure(n,!0),n.addSecond(V(1)),n.addSecond(M(1)),i.addMain(V(1)),i.addSecond(M(1)),c.addSecond(V(1)),c.addMain(M(1)),g.addMain(v(0,0,w)),g.addSecond(v(0,0,h)),g.addSecond(v(0,0,Math.max(l,_)));const[G,x,C]=Fe(t);o.logstr+=G,g.addMain(x);for(const y of C){const Y=lt(0,0).translatePolar(y,a);g.addMain(v(Y.cx,Y.cy,t.PHD3/2))}const Z=U(a+t.PHR4,-t.PHE3).addSegStrokeA(w,-t.PHE3).addSegStrokeA(w,t.PHE3).addSegStrokeA(a+t.PHR4,t.PHE3).closeSegStroke();for(const y of C)g.addSecond(Z.rotate(0,0,y));o.fig={facePetal:g,faceOuter:n,faceButtress1:i,faceButtress2:c};const m=o.partName,R=mt();R.addRotation(Math.PI/2,0,0),R.addTranslation(0,t.PHE3/2,0);const T=C.map((y,Y)=>{const j=mt(R.getMatrix());return j.addRotation(0,0,y),{outName:`subpax_${m}_b1_${Y}`,face:`${m}_faceButtress1`,extrudeMethod:p.eLinearOrtho,length:t.PHE3,rotate:j.getRotation(),translate:j.getTranslation()}}),q=C.map((y,Y)=>{const j=mt(R.getMatrix());return j.addRotation(0,0,y),{outName:`subpax_${m}_b2_${Y}`,face:`${m}_faceButtress2`,extrudeMethod:p.eLinearOrtho,length:t.PHE3,rotate:j.getRotation(),translate:j.getTranslation()}}),Q=C.map((y,Y)=>`subpax_${m}_b1_${Y}`),I=C.map((y,Y)=>`subpax_${m}_b2_${Y}`);o.vol={extrudes:[{outName:`subpax_${m}_outer`,face:`${m}_faceOuter`,extrudeMethod:p.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${m}_petal`,face:`${m}_facePetal`,extrudeMethod:p.eLinearOrtho,length:t.PHE1,rotate:[0,0,0],translate:[0,0,-t.PHE1/2]},...T,...q],volumes:[{outName:`pax_${m}`,boolMethod:nt.eUnion,inList:[`subpax_${m}_petal`,`subpax_${m}_outer`,...Q,...I]}]},o.sub={},o.logstr+=`vaxis_holder drawn successfully!
|
|
36
|
-
`,o.calcErr=!1}catch(d){o.logstr+=d,console.log(d)}return o}var Mt={pTitle:"Heliostat vaxis_holder",pDescription:"The holders of the guidance mechanism for azimuth motion",pDef:oe,pGeom:Oe},se={partName:"pole_static",params:[e("D1","mm",1e3,20,4e3,1),e("D2","mm",700,10,4e3,1),e("D3","mm",800,10,4e3,1),e("H1","mm",3e3,10,4e4,10),e("H2","mm",7e3,50,4e4,10),W("thickness"),e("E1","mm",30,1,80,1),e("E2","mm",5,1,80,1),W("base holes"),e("N1","",32,3,100,1),e("D5","mm",40,1,100,1),e("L1","mm",45,1,300,1),W("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),W("holders"),St("holders",!0),e("PHL1A","mm",400,1,1e3,1),e("PHL1B","mm",400,1,1e3,1),e("PHB","mm",5e3,1,2e4,1),e("PHD1A","mm",600,1,4e3,1),e("PHD1B","mm",380,1,4e3,1),e("PHN1AB","petal",6,1,24,1),W("holder-B"),e("PHD5B2","mm",600,1,4e3,1),e("PHD5B1","mm",600,1,4e3,1),e("PHR4B","mm",30,1,400,1),e("PHD3B","mm",40,1,400,1),e("PHL2B","mm",140,1,400,1),e("PHE3B","mm",10,1,50,1),e("PHR6B","mm",20,0,400,1),e("PHE1B","mm",10,1,50,1),e("PHH1B","mm",10,1,50,1),W("holder-A"),e("PHD5A","mm",900,1,4e3,1),e("PHR4A","mm",30,1,400,1),e("PHD3A","mm",40,1,400,1),e("PHL2A","mm",200,1,400,1),e("PHE3A","mm",10,1,50,1),e("PHR6A","mm",20,0,400,1),e("PHE1A","mm",10,1,50,1),e("PHH1A","mm",10,1,50,1)],paramSvg:{D1:"pole_stator_cut.svg",D2:"pole_stator_cut.svg",D3:"pole_stator_cut.svg",H1:"pole_stator_cut.svg",H2:"pole_stator_cut.svg",E1:"pole_stator_cut.svg",E2:"pole_stator_E2.svg",N1:"pole_stator_bottom.svg",D5:"pole_stator_bottom.svg",L1:"pole_stator_bottom.svg",D4:"pole_stator_face.svg",H3:"pole_stator_face.svg",H4:"pole_stator_face.svg",L2:"pole_stator_face.svg",E3:"pole_stator_right.svg",holders:"pole_stator_holders.svg",PHL1A:"pole_stator_holders.svg",PHL1B:"pole_stator_holders.svg",PHB:"pole_stator_holders.svg",PHD1A:"pole_stator_holders.svg",PHD1B:"pole_stator_holders.svg",PHN1AB:"pole_stator_holderB_top.svg",PHD5A:"pole_stator_holderB_top.svg",PHR4A:"pole_stator_holderB_top.svg",PHD3A:"pole_stator_holderB_top.svg",PHL2A:"pole_stator_holderB_top.svg",PHE3A:"pole_stator_holderB_top.svg",PHR6A:"pole_stator_holderB_top.svg",PHE1A:"pole_stator_holderB_section.svg",PHH1A:"pole_stator_holderB_section.svg",PHD5B1:"pole_stator_holderB_top.svg",PHD5B2:"pole_stator_holderB_top.svg",PHR4B:"pole_stator_holderB_top.svg",PHD3B:"pole_stator_holderB_top.svg",PHL2B:"pole_stator_holderB_top.svg",PHE3B:"pole_stator_holderB_top.svg",PHR6B:"pole_stator_holderB_top.svg",PHE1B:"pole_stator_holderB_section.svg",PHH1B:"pole_stator_holderB_section.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function Je(s,t,u=""){const o=ut(se.partName+u),n=B(),g=B(),i=B(),c=B(),d=B(),a=B(),h=B(),f=B(),r=B(),l=B(),_=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
37
|
-
`;try{const L=t.D1/2,D=t.D2/2,A=t.D3/2,w=t.H1+t.H2,H=Math.atan2(L-D,t.H2),k=t.E2*Math.tan(H/2),$=t.H1-k,P=t.PHL1B/Math.cos(H),b=D+t.PHL1B/2*Math.tan(H),V=t.H1+t.H2-t.PHL1B/2,M=D+(t.PHL1B/2+t.PHB)*Math.tan(H),G=t.H1+t.H2-t.PHL1B/2-t.PHB,x=t.PHL1A/Math.cos(H),C=L-t.PHL1A/2*Math.tan(H),Z=t.H1+t.PHL1A/2;if(D>L)throw`err091: D2 ${t.D2} is larger than D1 ${t.D1}`;if(A+t.E2>L)throw`err095: D3 ${t.D3} and E2 ${t.E2} are too large compare to D1 ${t.D1}`;if(t.holders){if(t.PHB<t.PHL1B)throw`err131: PHB ${t.PHB} is too small compare to PHL1B ${t.PHL1B}`;if(t.PHB>t.H2-t.PHL1B-t.PHL1A)throw`err132: PHB ${t.PHB} is too large compare to H2 ${t.H2}, PHL1B ${t.PHL1B} and PHL1A ${t.PHL1A}`}o.logstr+=`pole-height: ${S(w)} mm
|
|
38
|
-
`,o.logstr+=`cone-half-angle: ${S(at(H))} degree
|
|
39
|
-
`,o.logstr+=`holder position: A: ${S(Z)} B1: ${S(G)} B2: ${S(V)} mm
|
|
40
|
-
`;const m=function(N){let z=D-t.E2*Math.cos(H);return z+=(w-t.E2*Math.sin(H)-N)*Math.tan(H),z},R=function(N,z){const ct=U(N*L,0).addSegStrokeA(N*L,t.H1).addSegStrokeA(N*D,w).addSegStrokeR(-N*t.E2*Math.cos(H),-t.E2*Math.sin(H));if(z&&t.holders){const st=t.H1+t.PHL1A/2-t.PHE1A/2,rt=st+t.PHE1A,ot=w-t.PHL1B/2+t.PHE1B/2,tt=ot-t.PHE1B,_t=ot-t.PHB,ft=_t-t.PHE1B;ct.addSegStrokeA(N*m(ot),ot).addSegStrokeA(N*(t.PHD1B/2-t.PHR4B),ot).addSegStrokeA(N*(t.PHD1B/2-t.PHR4B),tt).addSegStrokeA(N*m(tt),tt).addSegStrokeA(N*m(_t),_t).addSegStrokeA(N*(t.PHD1B/2-t.PHR4B),_t).addSegStrokeA(N*(t.PHD1B/2-t.PHR4B),ft).addSegStrokeA(N*m(ft),ft).addSegStrokeA(N*m(rt),rt).addSegStrokeA(N*(t.PHD1A/2-t.PHR4A),rt).addSegStrokeA(N*(t.PHD1A/2-t.PHR4A),st).addSegStrokeA(N*m(st),st)}return ct.addSegStrokeA(N*(L-t.E2),$),z?ct.addSegStrokeA(N*(L-t.E2),t.E1).addSegStrokeA(N*A,t.E1).addSegStrokeA(N*A,0):ct.addSegStrokeA(N*(L-t.E2),0),ct.closeSegStroke(),ct};n.addMain(R(1,!1)),n.addSecond(R(1,!0)),n.addSecond(R(-1,!0));const T=t.D4/2,q=t.H4-2*T;if(q<0)throw`err121: H4 ${t.H4} is too small compare to D4 ${t.D4}`;if(T-t.L2<0)throw`err121: D4 ${t.D4} is too small compare to L2 ${t.L2}`;const Q=function(N){const z=T-N;return we(0,t.H3+T-z,2*z,q+2*z,Math.PI/2)};g.addMain(Q(0)),g.addMain(Q(t.L2));const I=U(L,0).addSegStrokeA(L,t.H1).addSegStrokeA(D,w).addSegStrokeA(-D,w).addSegStrokeA(-L,t.H1).addSegStrokeA(-L,0).closeSegStroke();g.addSecond(I);const y=U(-L,t.H3).addSegStrokeR(0,t.H4).addSegStrokeR(-t.E3,0).addSegStrokeR(0,-t.H4).closeSegStroke();g.addSecond(y),i.addMain(v(0,0,L)),i.addMain(v(0,0,A));const Y=A+t.L1,j=2*Math.PI/t.N1;for(let N=0;N<t.N1;N++){const z=Y*Math.cos(N*j),ct=Y*Math.sin(N*j);i.addMain(v(z,ct,t.D5/2))}i.addSecond(v(0,0,D)),i.addSecond(v(0,0,L-t.E2)),c.addMain(v(0,0,L+t.E3)),c.addMain(v(0,0,L-t.E2)),d.addMain(Q(t.L2));const X=o.partName,O=[],E=[];let F={};if(t.holders){const N=Lt(Mt.pDef,"B2");N.setVal("PHD1",t.PHD1B),N.setVal("PHD2",2*b),N.setVal("PHD5",t.PHD5B2),N.setVal("PHN1",t.PHN1AB),N.setVal("PHD3",t.PHD3B),N.setVal("PHR4",t.PHR4B),N.setVal("PHL2",t.PHL2B),N.setVal("PHR6",t.PHR6B),N.setVal("PHE1",t.PHE1B),N.setVal("PHH1",t.PHH1B),N.setVal("PHA",at(H)),N.setVal("PHL1",P),N.setVal("PHE2",t.E2),N.setVal("PHE3",t.PHE3B);const z=Mt.pGeom(0,N.getParamVal(),N.getSuffix());Ht(z),o.logstr+=Dt(z.logstr,N.getPartNameSuffix()),a.mergeFigure(z.fig.faceOuter),h.mergeFigure(z.fig.facePetal);const ct={outName:`inpax_${X}_hB2`,subdesign:"pax_vaxis_holderB2",subgeom:z,rotate:[0,0,0],translate:[0,0,V]};O.push(ct),E.push(`inpax_${X}_hB2`);const st=Lt(Mt.pDef,"B1");st.setVal("PHD1",t.PHD1B),st.setVal("PHD2",2*M),st.setVal("PHD5",t.PHD5B1),st.setVal("PHN1",t.PHN1AB),st.setVal("PHD3",t.PHD3B),st.setVal("PHR4",t.PHR4B),st.setVal("PHL2",t.PHL2B),st.setVal("PHR6",t.PHR6B),st.setVal("PHE1",t.PHE1B),st.setVal("PHH1",t.PHH1B),st.setVal("PHA",at(H)),st.setVal("PHL1",P),st.setVal("PHE2",t.E2),st.setVal("PHE3",t.PHE3B);const rt=Mt.pGeom(0,st.getParamVal(),st.getSuffix());Ht(rt),o.logstr+=Dt(rt.logstr,st.getPartNameSuffix()),f.mergeFigure(rt.fig.faceOuter),r.mergeFigure(rt.fig.facePetal);const ot={outName:`inpax_${X}_hB1`,subdesign:"pax_vaxis_holderB1",subgeom:rt,rotate:[0,0,0],translate:[0,0,G]};O.push(ot),E.push(`inpax_${X}_hB1`);const tt=Lt(Mt.pDef,"A");tt.setVal("PHD1",t.PHD1A),tt.setVal("PHD2",2*C),tt.setVal("PHD5",t.PHD5A),tt.setVal("PHN1",t.PHN1AB),tt.setVal("PHD3",t.PHD3A),tt.setVal("PHR4",t.PHR4A),tt.setVal("PHL2",t.PHL2A),tt.setVal("PHR6",t.PHR6A),tt.setVal("PHE1",t.PHE1A),tt.setVal("PHH1",t.PHH1A),tt.setVal("PHA",at(H)),tt.setVal("PHL1",x),tt.setVal("PHE2",t.E2),tt.setVal("PHE3",t.PHE3A);const _t=Mt.pGeom(0,tt.getParamVal(),tt.getSuffix());Ht(_t),o.logstr+=Dt(_t.logstr,tt.getPartNameSuffix()),l.mergeFigure(_t.fig.faceOuter),_.mergeFigure(_t.fig.facePetal);const ft={outName:`inpax_${X}_hA`,subdesign:"pax_vaxis_holderA",subgeom:_t,rotate:[0,0,0],translate:[0,0,Z]};O.push(ft),E.push(`inpax_${X}_hA`),F={vaxis_holder_B2:{partName:N.getPartName(),dparam:N.getDesignParamList(),orientation:[0,0,0],position:[0,0,V]},vaxis_holder_B1:{partName:st.getPartName(),dparam:st.getDesignParamList(),orientation:[0,0,0],position:[0,0,G]},vaxis_holder_A:{partName:tt.getPartName(),dparam:tt.getDesignParamList(),orientation:[0,0,0],position:[0,0,Z]}}}o.fig={poleCut:n,poleFace:g,poleBottom:i,emptyPole:c,emptyDoor:d,holderB2Section:a,holderB2Top:h,holderB1Section:f,holderB1Top:r,holderASection:l,holderATop:_},o.vol={inherits:O,extrudes:[{outName:`subpax_${X}_pole`,face:`${X}_poleCut`,extrudeMethod:p.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${X}_bottom`,face:`${X}_poleBottom`,extrudeMethod:p.eLinearOrtho,length:t.E1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${X}_door`,face:`${X}_poleFace`,extrudeMethod:p.eLinearOrtho,length:L+t.E3,rotate:[Math.PI/2,0,0],translate:[0,0,0]},{outName:`subpax_${X}_emptyPole`,face:`${X}_emptyPole`,extrudeMethod:p.eLinearOrtho,length:t.H1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${X}_emptyDoor`,face:`${X}_emptyDoor`,extrudeMethod:p.eLinearOrtho,length:L+t.E3+10,rotate:[Math.PI/2,0,0],translate:[0,0,0]}],volumes:[{outName:`ipax_${X}_door`,boolMethod:nt.eIntersection,inList:[`subpax_${X}_door`,`subpax_${X}_emptyPole`]},{outName:`ipax_${X}_pole`,boolMethod:nt.eSubstraction,inList:[`subpax_${X}_pole`,`subpax_${X}_emptyDoor`]},{outName:`pax_${X}`,boolMethod:nt.eUnion,inList:[`ipax_${X}_pole`,`subpax_${X}_bottom`,`ipax_${X}_door`,...E]}]},o.sub=F,o.logstr+=`pole_static drawn successfully!
|
|
41
|
-
`,o.calcErr=!1}catch(L){o.logstr+=L,console.log(L)}return o}var At={pTitle:"Heliostat pole static",pDescription:"The vertical pole of an heliostat",pDef:se,pGeom:Je},ie={partName:"rake",params:[e("D1","mm",600,10,4e3,1),e("D2","mm",400,10,4e3,1),e("D3","mm",400,10,4e3,1),e("H1","mm",800,1,4e3,1),e("H2","mm",3e3,20,6e3,1),e("H3","mm",400,0,4e3,1),e("E1","mm",20,1,80,1),e("E3","mm",30,1,80,1),W("transversal"),e("H4","mm",400,10,1e3,1),e("D4","mm",300,10,1e3,1),e("E4","mm",20,1,80,1),e("H5","mm",1e3,10,2e3,1),e("D5","mm",200,1,1e3,1),e("L4","mm",300,1,1e3,1),e("L5","mm",2e3,10,4e3,1),e("L6","mm",2e3,1,4e3,1),e("D8","mm",400,1,1e3,1),W("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),W("base"),e("N1","",24,3,100,1),e("D7","mm",40,1,100,1),e("L1","mm",30,1,300,1),W("door"),e("H6","mm",100,1,1e3,1),e("H7","mm",600,10,2e3,1),e("L9","mm",300,1,1e3,1),e("R9","mm",50,0,300,1),e("doorOrientation","degree",0,-180,180,1)],paramSvg:{D1:"rake_face.svg",D2:"rake_side.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",doorOrientation:"rake_door.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function ze(s,t,u=""){const o=ut(ie.partName+u),n=B(),g=B(),i=B(),c=B(),d=B(),a=B(),h=B(),f=B(),r=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
42
|
-
`;try{const _=Math.PI/2,L=-Math.PI/2,D=t.D1/2,A=t.D2/2,w=t.D3/2,H=t.D4/2,k=t.D5/2,$=t.D6/2,P=t.D7/2,b=t.D8/2,V=t.D4-2*t.E4,M=t.H1+t.H2,G=M-t.H4+t.H5,x=4*t.L4+t.L5+2*t.L6,C=t.H1+t.H2-t.H4,Z=H*Math.cos(Math.PI/6),m=H*Math.sin(Math.PI/6),R=k*Math.cos(Math.PI/6),T=k*Math.sin(Math.PI/6),q=b*Math.cos(Math.PI/6),Q=b*Math.sin(Math.PI/6),I=[-x/2,-t.L5/2-t.L4,t.L5/2,x/2-t.L4],y=t.H2-t.L8-t.H4-H,Y=Math.atan2(D-A,t.H2),j=x/2-t.L7-D+t.L8*Math.tan(Y),X=Math.sqrt(j**2+y**2),O=Math.atan2(j,y),E=t.E1/Math.sin(O+Y),F=X+t.E4/Math.cos(O)+E,N=D-t.L8*Math.tan(Y)-E*Math.sin(O),z=t.H1+t.L8-E*Math.cos(O),ct=N-$*Math.cos(O),st=z+$*Math.sin(O),rt=$-t.E6,ot=N-t.E6*Math.cos(O),tt=z+t.E6*Math.sin(O),_t=Math.PI/2-O,ft=t.L9/2,Pt=ft-t.H7*Math.tan(Y);if(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+H>t.H2)throw`err119: H4 ${t.H4} is too large compare to H2 ${t.H2} and D4 ${t.D4}`;if(t.E4>H)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}`;if(y<0)throw`err140: H2 ${t.H2} too small compare to L8 ${t.L8}, H4 ${t.H4} and D4 ${t.D4}`;if(Pt<t.R9)throw`err177: R9 ${t.R9} too large compare to doorHighX ${Pt} and L9 ${t.L9}`;if(t.L9>t.D1)throw`err180: L9 ${t.L9} too large compare to D1 ${t.D1}`;if(t.E6>t.D6/2)throw`err197: E6 ${t.E6} is too large compare to D6 ${t.D6}`;o.logstr+=`rake-L4: ${S(t.L4)} mm (compare with swing)
|
|
43
|
-
`,o.logstr+=`rake-L5: ${S(t.L5)} mm (compare with swing)
|
|
44
|
-
`,o.logstr+=`rake-L6: ${S(t.L6)} mm (compare with swing)
|
|
45
|
-
`,o.logstr+=`rake-beamL (4*L4+L5+2*L6): ${S(x)} mm (compare with swing)
|
|
46
|
-
`,o.logstr+=`cone-height: ${S(M)} mm
|
|
47
|
-
`,o.logstr+=`cone-height total: ${S(G)} mm
|
|
48
|
-
`,o.logstr+=`cone-angle: ${S(at(Y))} degree
|
|
49
|
-
`,o.logstr+=`wing-angle: ${S(at(O))} degree
|
|
50
|
-
`;const et=t.E1*Math.cos(Y),qt=t.E1*Math.sin(Y),Vt=t.E1*Math.tan(Y/2),Le=function(dt){return U(dt*D,0).addSegStrokeA(dt*D,t.H1).addSegStrokeA(dt*A,M).addSegStrokeA(dt*(A-et),M-qt).addSegStrokeA(dt*(D-t.E1),t.H1-Vt).addSegStrokeA(dt*(D-t.E1),0).closeSegStroke()},bt=function(dt){return U(dt*D,0).addSegStrokeA(dt*D,t.H1).addSegStrokeA(dt*A,M).addSegStrokeA(dt*(A-et),M-qt).addSegStrokeA(dt*(D-t.E1),t.H1-Vt).addSegStrokeA(dt*(D-t.E1),t.H1-t.H3).addSegStrokeA(dt*w,t.H1-t.H3).addSegStrokeA(dt*w,t.H1-t.H3-t.E3).addSegStrokeA(dt*(D-t.E1),t.H1-t.H3-t.E3).addSegStrokeA(dt*(D-t.E1),0).closeSegStroke()},He=C-H-(t.H1-Vt),De=D-t.E1-Math.tan(Y)*He,Pe=U(0,C-H).addSegStrokeA(De,C-H).addSegStrokeA(D-t.E1,t.H1-Vt).addSegStrokeA(D-t.E1,t.H1-t.H3).addSegStrokeA(0,t.H1-t.H3).closeSegStroke(),Tt=Me(-ft,t.H1+t.H6,t.L9,2*Pt,t.H7,t.R9);n.addMain(Le(1)),n.addSecond(bt(1)),n.addSecond(bt(-1)),n.addSecond(K(-x/2,C,x,t.D4,0)),n.addSecond(K(-x/2,C,x,V,0));for(const dt of I)n.addSecond(gt(dt,C+m,t.L4,t.H5-m-T));n.addSecond(vt(N,z,F,2*$,_t)),n.addSecond(vt(ot,tt,F,2*rt,_t)),n.addSecond(vt(-N,z,2*$,F,O)),n.addSecond(vt(-ot,tt,2*rt,F,O)),n.addSecond(Tt),g.mergeFigure(n,!0),g.addMain(Pe);const Ft=U(Z,C+m).addSegStrokeA(q,C+t.H5-Q).addSegStrokeA(R,C+t.H5-T).addPointA(-R,C+t.H5-T).addSegArc(k,!1,!1).addSegStrokeA(-q,C+t.H5-Q).addSegStrokeA(-Z,C+m).closeSegArc(H,!1,!1);i.addMain(v(0,C,H)),i.addMain(v(0,C,H-t.E4)),i.addSecond(bt(1)),i.addSecond(bt(-1)),i.addSecond(Ft),i.addSecond(v(0,C+t.H5,k)),i.addSecond(K(0,t.H1+t.L8,y,2*$,_)),i.addSecond(K(0,t.H1+t.L8,y,2*rt,_)),i.addSecond(Tt),c.addMain(v(0,C,H-t.E4)),c.addSecond(v(0,C,H)),c.addSecond(Ft),d.addMain(v(0,0,D)),d.addMain(v(0,0,w));const Yt=w+t.L1,Xt=2*Math.PI/t.N1;for(let dt=0;dt<t.N1;dt++){const Et=Yt*Math.cos(dt*Xt),jt=Yt*Math.sin(dt*Xt);d.addMain(v(Et,jt,P))}d.addSecond(v(0,0,D-t.E1)),d.addSecond(v(0,0,A)),d.addSecond(K(0,-x/2,x,t.D4,_)),d.addSecond(K(0,-x/2,x,V,_));for(const dt of I)d.addSecond(K(0,dt,t.L4,2*Z,_)),d.addSecond(K(0,dt,t.L4,2*R,_)),d.addSecond(K(0,dt,t.L4,2*q,_));const Ct=D-t.L8*Math.tan(Y);d.addSecond(K(0,Ct,j,2*$,_)),d.addSecond(K(0,Ct,j,2*rt,_)),d.addSecond(K(0,-Ct,j,2*$,L)),d.addSecond(K(0,-Ct,j,2*rt,L)),a.addMain(Ft),a.addSecond(v(0,C,H)),a.addSecond(v(0,C,H-t.E4)),a.addSecond(v(0,C+t.H5,k)),h.addMain(v(0,0,$)),h.addMain(v(0,0,rt)),f.addSecond(v(0,0,$)),f.addMain(v(0,0,rt)),r.addMain(Tt),r.addSecond(bt(1)),r.addSecond(bt(-1)),r.addSecond(K(-x/2,C,x,t.D4,0)),r.addSecond(K(-x/2,C,x,V,0));for(const dt of I)r.addSecond(gt(dt,C+m,t.L4,t.H5-m-T));r.addSecond(vt(N,z,F,2*$,_t)),r.addSecond(vt(ot,tt,F,2*rt,_t)),r.addSecond(vt(-N,z,2*$,F,O)),r.addSecond(vt(-ot,tt,2*rt,F,O)),o.fig={faceCone:n,faceConeHollow:g,faceBeam:i,faceBeamHollow:c,faceDisc:d,faceHand:a,faceWing:h,faceWingHollow:f,faceDoor:r};const it=o.partName,xe=I.map((dt,Et)=>({outName:`subpax_${it}_hand_${Et}`,face:`${it}_faceHand`,extrudeMethod:p.eLinearOrtho,length:t.L4,rotate:[Math.PI/2,0,0],translate:[0,-dt,0]}));o.vol={extrudes:[{outName:`subpax_${it}_cone`,face:`${it}_faceCone`,extrudeMethod:p.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${it}_coneHollow`,face:`${it}_faceConeHollow`,extrudeMethod:p.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${it}_beam`,face:`${it}_faceBeam`,extrudeMethod:p.eLinearOrtho,length:x,rotate:[Math.PI/2,0,0],translate:[0,x/2,0]},{outName:`subpax_${it}_beamHollow`,face:`${it}_faceBeamHollow`,extrudeMethod:p.eLinearOrtho,length:x,rotate:[Math.PI/2,0,0],translate:[0,x/2,0]},{outName:`subpax_${it}_disc`,face:`${it}_faceDisc`,extrudeMethod:p.eLinearOrtho,length:t.E3,rotate:[0,0,0],translate:[0,0,t.H1-t.H3-t.E3]},{outName:`subpax_${it}_wing_right`,face:`${it}_faceWing`,extrudeMethod:p.eLinearOrtho,length:F,rotate:[-O,0,0],translate:[0,ct,st]},{outName:`subpax_${it}_wing_left`,face:`${it}_faceWing`,extrudeMethod:p.eLinearOrtho,length:F,rotate:[O,0,0],translate:[0,-ct,st]},{outName:`subpax_${it}_wing_hollow_right`,face:`${it}_faceWingHollow`,extrudeMethod:p.eLinearOrtho,length:F,rotate:[-O,0,0],translate:[0,ct,st]},{outName:`subpax_${it}_wing_hollow_left`,face:`${it}_faceWingHollow`,extrudeMethod:p.eLinearOrtho,length:F,rotate:[O,0,0],translate:[0,-ct,st]},{outName:`subpax_${it}_door`,face:`${it}_faceDoor`,extrudeMethod:p.eLinearOrtho,length:t.D1,rotate:[Math.PI/2,0,-Math.PI/2+wt(t.doorOrientation)],translate:[0,0,0]},...xe],volumes:[{outName:`ipax_${it}_plus`,boolMethod:nt.eUnion,inList:[`subpax_${it}_cone`,`subpax_${it}_beam`,`subpax_${it}_disc`,`subpax_${it}_hand_0`,`subpax_${it}_hand_1`,`subpax_${it}_hand_2`,`subpax_${it}_hand_3`,`subpax_${it}_wing_right`,`subpax_${it}_wing_left`]},{outName:`ipax_${it}_hollow`,boolMethod:nt.eUnion,inList:[`subpax_${it}_coneHollow`,`subpax_${it}_beamHollow`,`subpax_${it}_wing_hollow_right`,`subpax_${it}_wing_hollow_left`,`subpax_${it}_door`]},{outName:`pax_${it}`,boolMethod:nt.eSubstraction,inList:[`ipax_${it}_plus`,`ipax_${it}_hollow`]}]},o.sub={},o.logstr+=`heliostat-rake drawn successfully!
|
|
51
|
-
`,o.calcErr=!1}catch(l){o.logstr+=l,console.log(l)}return o}var Rt={pTitle:"Heliostat rake",pDescription:"The rake on top of the V-Axis of the heliostat",pDef:ie,pGeom:ze},zt={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),W("longitude"),e("L5","mm",2e3,1,8e3,1),e("N1","",6,1,20,1),e("L6","mm",30,1,100,1),W("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 Ge(s,t,u=""){const o=ut(zt.partName+u);let n,g;const i=B(),c=B(),d=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
52
|
-
`;try{const a=t.D1/2;if(t.D1<t.E2)throw`err476: D1 ${t.D1} smaller then E2 ${t.E2}`;const h=t.E2/2,f=Math.sqrt(a**2-h**2),r=t.L1+t.L2*Math.sqrt(2),l=t.L2+t.L1*Math.sqrt(2),_=t.L4-l;if(_<t.R2)throw`err984: L4 ${t.L4} too small compare to R2 ${t.R2}`;const L=_*Math.cos(Math.PI/4),D=_*Math.sin(Math.PI/4),A=t.E2*Math.cos(Math.PI/4),w=t.E2*Math.sin(Math.PI/4),H=t.E2*Math.tan(Math.PI/8);if(a<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 k=(t.L3-t.E2)/2*Math.cos(Math.PI/4),$=r+L+k,P=-t.L1-D+k,b=P-t.E3*Math.sqrt(2);if(t.L5<t.N1*t.L6)throw`err110: L5 ${t.L5} too small compare to N1 ${t.N1} and L6 ${t.L6}`;let V=1;t.N1>1&&(V=(t.L5-t.L6)/(t.N1-1));const M=[...Array(t.N1).keys()].map(R=>R*V);n=function(R,T,q){return U(R,T).addSegStrokeA(R+q*Math.cos(Math.PI/4),T-q*Math.sin(Math.PI/4)).addSegStrokeA(R,T-2*q*Math.sin(Math.PI/4)).addSegStrokeA(R-q*Math.cos(Math.PI/4),T-q*Math.sin(Math.PI/4)).closeSegStroke()},g=function(R,T,q,Q){return U(q,Q).addSegStrokeA(q+R,Q).addSegStrokeA(q+R,Q+T).addSegStrokeA(q,Q+T).closeSegStroke()};const G=Math.sin(2*Math.PI*s/zt.sim.tMax)*Math.PI/2;o.logstr+=`spide leg number: ${t.N1}
|
|
53
|
-
`,o.logstr+=`spide position angle: ${S(at(G))} degree
|
|
54
|
-
`;const x=U(h,-f).addCornerRounded(t.R2).addSegStrokeA(h,-t.L1).addCornerRounded(t.R2).addSegStrokeA(r,-t.L1).addCornerRounded(t.R2+t.E2).addSegStrokeA(r+L,-t.L1-D).addSegStrokeA(r+L-A,-t.L1-D-w).addSegStrokeA(r-H,-t.L1-t.E2).addCornerRounded(t.R2).addSegStrokeA(-r+H,-t.L1-t.E2).addCornerRounded(t.R2).addSegStrokeA(-r-L+A,-t.L1-D-w).addSegStrokeA(-r-L,-t.L1-D).addSegStrokeA(-r,-t.L1).addCornerRounded(t.R2+t.E2).addSegStrokeA(-h,-t.L1).addCornerRounded(t.R2).addSegStrokeA(-h,-f).addCornerRounded(t.R2).closeSegArc(a,!0,!1);i.addMain(x),i.addMain(v(0,0,a-t.E1)),i.addSecond(n($,P,t.L3)),i.addSecond(n($,b,t.L3-2*t.E3)),i.addSecond(n(-$,P,t.L3)),i.addSecond(n(-$,b,t.L3-2*t.E3)),c.addMain(v(0,0,a)),c.addMain(v(0,0,a-t.E1)),c.addMain(n($,P,t.L3)),c.addMain(n($,b,t.L3-2*t.E3)),c.addMain(n(-$,P,t.L3)),c.addMain(n(-$,b,t.L3-2*t.E3)),c.addSecond(x),d.addSecond(g(t.L5,t.D1,0,-t.D1/2)),d.addSecond(g(t.L5,t.L3,0,-t.L4-t.L3));for(const R of M)d.addSecond(g(t.L6,t.L4,R,-t.L4));o.fig={faceLegs:i.rotate(0,0,G),faceTube:c.rotate(0,0,G),faceBody:d};const C=o.partName,Z=M.map((R,T)=>({outName:`subpax_${C}_leg_${T}`,face:`${C}_faceLegs`,extrudeMethod:p.eLinearOrtho,length:t.L6,rotate:[0,0,0],translate:[0,0,R]})),m=M.map((R,T)=>`subpax_${C}_leg_${T}`);o.vol={extrudes:[{outName:`subpax_${C}_tube`,face:`${C}_faceTube`,extrudeMethod:p.eLinearOrtho,length:t.L5,rotate:[0,0,0],translate:[0,0,0]},...Z],volumes:[{outName:`pax_${C}`,boolMethod:nt.eUnion,inList:[`subpax_${C}_tube`,...m]}]},o.sub={},o.logstr+=`heliostat-spider drawn successfully!
|
|
55
|
-
`,o.calcErr=!1}catch(a){o.logstr+=a,console.log(a)}return o}var Gt={pTitle:"Heliostat spider",pDescription:"The spider part for the control of the inclination of the heliostat",pDef:zt,pGeom:Ge},ne={partName:"swing",params:[e("L1","mm",12500,100,4e4,1),e("L2","mm",6e3,100,4e4,1),W("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),W("longitudinal"),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),W("buttress"),e("S1","mm",300,0,3e3,1),e("S2","mm",10,0,2e3,1),e("R2","mm",100,0,1e3,1),W("rod overlay"),e("rod1","",10,1,40,1),e("rod2","mm",1300,10,4e3,1),e("rod3","mm",400,10,1e3,1),e("rod4","mm",100,1,400,1)],paramSvg:{L1:"swing_top.svg",L2:"swing_top.svg",L3:"swing_top.svg",L4:"swing_top.svg",L5:"swing_top.svg",L6:"swing_top.svg",D1:"swing_top.svg",H1:"swing_top.svg",H2:"swing_top.svg",H3:"swing_side.svg",H4:"swing_side.svg",E1:"swing_side.svg",E2:"swing_side.svg",E3:"swing_face.svg",S1:"swing_buttress.svg",S2:"swing_buttress.svg",R2:"swing_buttress.svg",rod1:"swing_with_rod.svg",rod2:"swing_with_rod.svg",rod3:"swing_with_rod.svg",rod4:"swing_with_rod.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function Ue(s,t,u=""){const o=ut(ne.partName+u),n=B(),g=B(),i=B(),c=B(),d=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
56
|
-
`;try{const a=t.D1/2,h=a+t.S2,f=4*t.L4+t.L5+2*t.L6-2*t.H1,r=t.L4-2*t.H1,l=t.L5+2*t.H1,_=t.L6+2*t.H1;o.logstr+=`swing size: L1 ${S(t.L1)} x L2 ${S(t.L2)} mm
|
|
57
|
-
`,o.logstr+=`rake-L4: ${S(r)} mm (compare with rake)
|
|
58
|
-
`,o.logstr+=`rake-L5: ${S(l)} mm (compare with rake)
|
|
59
|
-
`,o.logstr+=`rake-L6: ${S(_)} mm (compare with rake)
|
|
60
|
-
`,o.logstr+=`rake-beamL: (4*L4+L5+2*L6-2*H1) ${S(f)} mm (compare with rake)
|
|
61
|
-
`,n.addMain(v(0,0,a)),n.addMain(v(0,0,a-t.E1));const L=[-t.L2/2,-t.L3-t.H2,t.L3,t.L2/2-t.H2];for(const R of L)n.addMain(gt(R,h-t.H4,t.H2,t.H4)),n.addMain(gt(R+t.E2,h-t.H4+t.E2,t.H2-2*t.E2,t.H4-2*t.E2));n.addSecond(gt(-t.L2/2,h,t.L2,t.H3));const D=[];D.push(-t.L1/2),D.push(t.L1/2-t.H1);for(const R 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 T of[0,t.L4-t.H1])D.push(R+T);for(const R of D)g.addMain(gt(R,h,t.H1,t.H3)),g.addMain(gt(R+t.E3,h+t.E3,t.H1-2*t.E3,t.H3-2*t.E3));g.addSecond(gt(-t.L1/2,-a,t.L1,t.D1)),g.addSecond(gt(-t.L1/2,h-t.H4,t.L1,t.H4));for(const R of D)i.addSecond(gt(R,-t.L2/2,t.H1,t.L2));for(const R of L)i.addSecond(gt(-t.L1/2,R,t.L1,t.H2));i.addSecond(gt(-t.L1/2,-a,t.L1,t.D1));const A=Math.sqrt(h**2+t.S1**2),w=Math.acos(a/A),H=Math.atan2(t.S1,h),k=lt(0,0),P=k.translatePolar(Math.PI/2+H,a).rotate(k,w),b=U(-t.L3,h).addSegStrokeA(-t.S1,h).addCornerRounded(t.R2).addSegStrokeA(P.cx,P.cy).addPointA(0,-a).addPointA(-P.cx,P.cy).addSegArc2().addSegStrokeA(t.S1,h).addCornerRounded(t.R2).addSegStrokeA(t.L3,h).addSegStrokeA(t.L3,h+t.E3).addSegStrokeA(-t.L3,h+t.E3).closeSegStroke();c.addMain(b),c.addMain(v(0,0,a-t.E1)),n.addSecond(b);for(const R of D)d.addMain(gt(R,-t.L2/2,t.H1,t.L2));for(const R of L)d.addMain(gt(-t.L1/2,R,t.L1,t.H2));d.addMain(gt(-t.L1/2,-a,t.L1,t.D1));const V=-((t.rod1-1)*t.rod2+t.rod3)/2,M=(t.rod3-t.rod4)/2,G=t.rod3/2,x=1.2*t.L2,C=(x-G)/3,Z=-x/2;for(let R=0;R<t.rod1;R++){const T=V+R*t.rod2;d.addSecond(gt(T+M,Z,t.rod4,x));for(let q=0;q<4;q++)d.addSecond(gt(T,Z+q*C,t.rod3,G,G/4))}o.fig={faceSide:n,faceFace:g,faceTop:i,faceButtress:c,faceTopWithRods:d};const m=o.partName;o.vol={extrudes:[{outName:`subpax_${m}_side`,face:`${m}_faceSide`,extrudeMethod:p.eLinearOrtho,length:t.L1,rotate:[0,0,0],translate:[0,0,-t.L1/2]},{outName:`subpax_${m}_face`,face:`${m}_faceFace`,extrudeMethod:p.eLinearOrtho,length:t.L2,rotate:[0,Math.PI/2,0],translate:[-t.L2/2,0,0]},...D.map((R,T)=>({outName:`subpax_${m}_buttress_${T}`,face:`${m}_faceButtress`,extrudeMethod:p.eLinearOrtho,length:t.H1,rotate:[0,0,0],translate:[0,0,R]}))],volumes:[{outName:`pax_${m}`,boolMethod:nt.eUnion,inList:[`subpax_${m}_side`,`subpax_${m}_face`,...D.map((R,T)=>`subpax_${m}_buttress_${T}`)]}]},o.sub={},o.logstr+=`heliostat-swing drawn successfully!
|
|
62
|
-
`,o.calcErr=!1}catch(a){o.logstr+=a,console.log(a)}return o}var Nt={pTitle:"Heliostat swing",pDescription:"The swing for the heliostat inclination",pDef:ne,pGeom:Ue},Ut={partName:"heliostat",params:[e("H1","mm",3e3,10,4e4,1),e("H2","mm",2500,50,4e4,1),e("D1","mm",1e3,20,4e3,1),e("D2","mm",700,20,4e3,1),e("E1","mm",30,1,80,1),W("rake"),e("H3","mm",200,1,500,1),e("H4","mm",800,1,4e3,1),e("H5","mm",3e3,50,6e3,1),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,1),e("D4","mm",400,20,4e3,1),e("D5","mm",300,20,1e3,1),e("D6","mm",200,10,1e3,1),e("D7","mm",400,10,1e3,1),W("rake diagonal"),e("D9","mm",100,1,1e3,1),e("L7","mm",100,1,1e3,1),e("L8","mm",200,1,1e3,1),W("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),W("swing"),e("L1","mm",12500,100,4e4,1),e("L2","mm",6e3,100,4e4,1),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),W("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 pe(s,t,u=""){const o=ut(Ut.partName+u),n=B(),g=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
63
|
-
`;try{const i=t.H1+t.H2-t.H3+t.H4+t.H5-t.H6+t.H7;o.logstr+=`heliostat-height: ${S(i)}, diameter ${S(t.D1)} m
|
|
64
|
-
`,o.logstr+=`heliostat-swing-length: ${S(t.L1)}, width ${S(t.L2)} m
|
|
65
|
-
`;const d=(t.al-t.ar)/2-Math.sin(2*Math.PI*s/Ut.sim.tMax)*(t.al+t.ar)/2,a=wt(d);o.logstr+=`swing position angle: ${S(at(a))} degree
|
|
66
|
-
`;const h=t.H1+t.H2-t.H3,f=h+t.H4+t.H5-t.H6+t.H7,r=f+t.H8,l=Lt(At.pDef),_=Lt(Rt.pDef),L=Lt(Gt.pDef),D=Lt(Nt.pDef);l.setVal("H1",t.H1),l.setVal("H2",t.H2),l.setVal("D1",t.D1),l.setVal("D2",t.D2),l.setVal("D3",t.D1-6*t.E1),l.setVal("E1",t.E1),l.setVal("E2",t.E1);const A=32,w=(t.D1-6*t.E1)/(A*4);l.setVal("N1",A),l.setVal("D5",w),l.setVal("L1",t.E1+w/2),l.setVal("H3",t.H1/4),l.setVal("H4",t.H1/2),l.setVal("D4",t.H1/4),l.setVal("L2",t.H1/80),l.setVal("E3",t.H1/80),l.setVal("holders",0),_.setVal("H1",t.H4),_.setVal("H2",t.H5),_.setVal("H3",t.H4-2*t.E1),_.setVal("D1",t.D3),_.setVal("D2",t.D4),_.setVal("L9",t.D3/2),_.setVal("H7",t.D3/2*1.6),_.setVal("H6",t.D3/20),_.setVal("R9",t.D3/20),_.setVal("E1",t.E1),_.setVal("E3",t.E1),_.setVal("E4",t.E1),_.setVal("E6",t.E1);const H=t.D2*.6,k=24,$=H/(k*4);if(_.setVal("D3",H),t.D2>t.D3-2*t.E1)throw`err153: D2 ${t.D2} too large compare to D3 ${t.D3} and E1 ${t.E1}`;if(_.setVal("N1",k),_.setVal("D7",$),_.setVal("L1",$),_.setVal("H4",t.H6),_.setVal("D4",t.D5),_.setVal("L7",t.L7),_.setVal("L8",t.L8),_.setVal("D6",t.D9),_.setVal("H5",t.H7+t.H8),_.setVal("D5",t.D6),_.setVal("D8",t.D7),t.D6>=t.D7)throw`err164: D6 ${t.D6} too large compare to D7 ${t.D7}`;const P=t.L4-2*t.L3;if(_.setVal("L4",P),P<=0)throw`err169: L3 ${t.L3} too large compare to L4 ${t.L4}`;_.setVal("L5",t.L5+2*t.L3),_.setVal("L6",t.L6+2*t.L3);const b=t.L5*.96,V=6;if(L.setVal("L5",b),L.setVal("D1",t.D8),L.setVal("L1",t.S1),L.setVal("L2",t.S2),L.setVal("L3",t.E2*2),L.setVal("E1",t.E1),L.setVal("E2",t.E2),L.setVal("E3",t.E1),L.setVal("L4",t.L2/2-t.H8),L.setVal("R2",0),L.setVal("N1",V),L.setVal("L6",b/(V*10)),D.setVal("L2",t.L2),D.setVal("D1",t.D6),D.setVal("H3",t.H9),D.setVal("H4",t.H9),D.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}`;D.setVal("H1",t.L3),D.setVal("H2",t.L3),D.setVal("L4",t.L4),D.setVal("L5",t.L5),D.setVal("L6",t.L6),D.setVal("L3",t.D7),D.setVal("S1",t.D6/2),D.setVal("R2",0);const M=At.pGeom(0,l.getParamVal(),l.getSuffix());Ht(M),o.logstr+=Dt(M.logstr,l.getPartNameSuffix());const G=Rt.pGeom(0,_.getParamVal(),_.getSuffix());Ht(G),o.logstr+=Dt(G.logstr,_.getPartNameSuffix());const x=Gt.pGeom(0,L.getParamVal(),L.getSuffix());Ht(x),o.logstr+=Dt(x.logstr,L.getPartNameSuffix());const C=Nt.pGeom(0,D.getParamVal(),D.getSuffix());Ht(C),o.logstr+=Dt(C.logstr,D.getPartNameSuffix()),n.mergeFigure(M.fig.poleCut),n.mergeFigure(G.fig.faceBeam.translate(0,h)),n.mergeFigure(x.fig.faceLegs.translate(0,f).rotate(0,f,a/2)),n.mergeFigure(C.fig.faceSide.translate(0,r).rotate(0,r,a)),g.mergeFigure(M.fig.poleCut),g.mergeFigure(G.fig.faceCone.translate(0,h)),g.mergeFigure(x.fig.faceBody.translate(-b/2,f)),g.mergeFigure(C.fig.faceFace.translate(0,r)),o.fig={faceSide:n,faceFace:g};const Z=o.partName;o.vol={inherits:[{outName:`inpax_${Z}_poleStatic`,subdesign:"pax_pole_static",subgeom:M,rotate:[0,0,0],translate:[0,0,0]},{outName:`inpax_${Z}_rake`,subdesign:"pax_rake",subgeom:G,rotate:[0,0,0],translate:[0,0,h]},{outName:`inpax_${Z}_swing`,subdesign:"pax_swing",subgeom:C,rotate:[Math.PI/2,0,0],translate:[0,0,r]},{outName:`inpax_${Z}_spider`,subdesign:"pax_spider",subgeom:x,rotate:[Math.PI/2,0,0],translate:[0,b/2,f]}],extrudes:[],volumes:[{outName:`pax_${Z}`,boolMethod:nt.eUnion,inList:[`inpax_${Z}_poleStatic`,`inpax_${Z}_rake`,`inpax_${Z}_swing`,`inpax_${Z}_spider`]}]};const m={partName:l.getPartName(),dparam:l.getDesignParamList(),orientation:[0,0,0],position:[0,0,0]},R={partName:_.getPartName(),dparam:_.getDesignParamList(),orientation:[0,0,0],position:[0,0,h]},T={partName:L.getPartName(),dparam:L.getDesignParamList(),orientation:[Math.PI/2,0,0],position:[0,b/2,f]},q={partName:D.getPartName(),dparam:D.getDesignParamList(),orientation:[Math.PI/2,0,0],position:[0,0,r]};o.sub={pole_static_1:m,rake_1:R,spider_1:T,swing_1:q},o.logstr+=`heliostat-overview drawn successfully!
|
|
67
|
-
`,o.calcErr=!1}catch(i){o.logstr+=i,console.log(i)}return o}var We={pTitle:"Heliostat overview",pDescription:"The heliostat inclination mechanism",pDef:Ut,pGeom:pe},de={partName:"rake_stopper",params:[e("D1","mm",600,10,4e3,1),e("D2","mm",400,10,4e3,1),e("D3","mm",400,1,4e3,1),e("H1","mm",800,1,4e3,1),e("H2","mm",3e3,20,6e3,1),e("H3","mm",400,0,4e3,1),e("E1","mm",20,1,80,1),e("E3","mm",30,1,80,1),W("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),W("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),W("base"),e("N1","",24,3,100,1),e("D7","mm",40,1,100,1),e("L1","mm",30,1,300,1),W("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),e("doorOrientation","degree",0,-180,180,1),W("stoppers"),e("S1","mm",100,1,300,1),e("S2","mm",2e3,1,8e3,1),e("S3","mm",100,0,8e3,1),e("E7","mm",5,1,80,1),W("low stopper"),e("JD1","mm",200,1,500,1),e("JE1","mm",5,1,80,1),e("JL1","mm",260,1,2e3,1),e("JH1","mm",20,-500,500,1),e("JS1","mm",100,1,500,1),e("JS2","mm",200,1,500,1),W("high stopper"),e("JD3","mm",200,1,500,1),e("JE3","mm",5,1,80,1),e("JS3","mm",120,1,500,1),e("JD4","mm",200,1,500,1),e("JE4","mm",5,1,80,1),e("JS4","mm",120,1,500,1)],paramSvg:{D1:"rake_face.svg",D2:"rake_side.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",doorOrientation:"rake_door.svg",S1:"rake_side_stopper.svg",S2:"rake_top_stopper.svg",S3:"rake_side_stopper.svg",E7:"rake_side_stopper.svg",JD1:"rake_low_stopper_holder.svg",JE1:"rake_low_stopper_holder.svg",JL1:"rake_low_stopper_holder.svg",JH1:"rake_low_stopper_holder.svg",JS1:"rake_side_stopper.svg",JS2:"rake_top_stopper.svg",JD3:"rake_side_stopper.svg",JE3:"rake_side_stopper.svg",JS3:"rake_top_stopper.svg",JD4:"rake_top_stopper.svg",JE4:"rake_top_stopper.svg",JS4:"rake_side_stopper.svg"},sim:{tMax:180,tStep:.5,tUpdate:500}};function qe(s,t,u=""){const o=ut(de.partName+u),n=B(),g=B(),i=B(),c=B(),d=B(),a=B(),h=B(),f=B(),r=B(),l=B(),_=B(),L=B(),D=B(),A=B(),w=B(),H=B(),k=B(),$=B(),P=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
68
|
-
`;try{const V=Math.PI,M=Math.PI/2,G=-Math.PI/2,x=t.D1/2,C=t.H1+t.H2,Z=C-t.H4+t.H5,m=Z-t.S2,R=t.H1+t.H2-t.H4,T=R+t.D4/2,q=t.H1+t.S3,Q=t.L5/2,I=t.S1/2,y=t.S1-2*t.E7,Y=y/2,j=t.S2-I,X=m-t.JH1,O=t.JD1/2,E=O-t.JE1,F=x+t.JS2,N=Q-I,z=x+t.JS3,ct=t.JD3-2*t.JE3,st=t.D4/2+t.JS4,rt=t.JD4-2*t.JE4;if(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}`;if(m-t.JH1-t.JD1/2<0)throw`err143: S2 ${t.S2} too large compare to H1H5 ${S(Z)}`;if(t.JS1<t.S1/2)throw`err144: JS1 ${t.JS1} too small compare to S1 ${t.S1}`;if(t.JE1>t.JD1/2)throw`err145: JE1 ${t.JE1} too large compare to JD1 ${t.JD1}`;if(t.JL1>t.D1)throw`err146: JL1 ${t.JL1} too large compare to D1 ${t.D1}`;if(t.JL1<t.JD1)throw`err147: JL1 ${t.JL1} too small compare to JD1 ${t.JD1}`;if(Math.abs(t.JH1)>t.JD1/2+I)throw`err148: JH1 ${t.JH1} too large compare to JD1 ${t.JD1} and S1 ${t.S1}`;if(t.JS2<t.JS1-I)throw`err149: JS2 ${t.JS2} too small compare to JS1 ${t.JS1} and S1 ${t.S1}`;if(t.S3>t.H2-t.H4)throw`err150: S3 ${t.S3} too large compare to H2 ${t.H2} and H4 ${t.H4}`;if(t.JE3>t.JD3/2)throw`err151: JE3 ${t.JE3} too large compare to JD3 ${t.JD3}`;if(t.JE4>t.JD4/2)throw`err152: JE4 ${t.JE4} too large compare to JD4 ${t.JD4}`;o.logstr+=`cone-height: ${S(C)} mm
|
|
69
|
-
`,o.logstr+=`cone-height total: ${S(Z)} mm
|
|
70
|
-
`,H.addSecond(K(-Q,m,t.L5,t.S1,0)),H.addSecond(K(-Q,m,t.L5,y,0)),H.addMain(v(-t.JL1/2,X,O)),H.addMain(v(-t.JL1/2,X,E)),H.addMain(v(t.JL1/2,X,O)),H.addMain(v(t.JL1/2,X,E));const ot=Lt(Rt.pDef);ot.setVal("D1",t.D1),ot.setVal("D2",t.D2),ot.setVal("D3",t.D3),ot.setVal("H1",t.H1),ot.setVal("H2",t.H2),ot.setVal("H3",t.H3),ot.setVal("E1",t.E1),ot.setVal("E3",t.E3),ot.setVal("H4",t.H4),ot.setVal("D4",t.D4),ot.setVal("E4",t.E4),ot.setVal("H5",t.H5),ot.setVal("D5",t.D5),ot.setVal("L4",t.L4),ot.setVal("L5",t.L5),ot.setVal("L6",t.L6),ot.setVal("D6",t.D6),ot.setVal("E6",t.E6),ot.setVal("L7",t.L7),ot.setVal("L8",t.L8),ot.setVal("N1",t.N1),ot.setVal("D7",t.D7),ot.setVal("L1",t.L1),ot.setVal("D8",t.D8),ot.setVal("H6",t.H6),ot.setVal("H7",t.H7),ot.setVal("L9",t.L9),ot.setVal("R9",t.R9),ot.setVal("doorOrientation",t.doorOrientation);const tt=Rt.pGeom(0,ot.getParamVal(),ot.getSuffix());Ht(tt),o.logstr+=Dt(tt.logstr,ot.getPartNameSuffix()),n.mergeFigure(tt.fig.faceCone),n.mergeFigure(H,!0),g.mergeFigure(tt.fig.faceBeam),i.mergeFigure(tt.fig.faceBeamHollow),c.mergeFigure(tt.fig.faceDisc),d.mergeFigure(tt.fig.faceHand),a.mergeFigure(tt.fig.faceWing),h.mergeFigure(tt.fig.faceWingHollow),f.mergeFigure(tt.fig.faceDoor),f.mergeFigure(H,!0),r.mergeFigure(tt.fig.faceDisc,!0),r.addMain(K(-x-t.JS1,-Q,t.L5,t.S1,M)),r.addMain(K(-x-t.JS1,-Q,t.L5,y,M)),r.addMain(K(j,-Q,t.L5,t.S1,M)),r.addMain(K(j,-Q,t.L5,y,M)),r.addMain(K(0,-Q+I,j,t.S1,0)),r.addMain(K(0,-Q+I,j,y,0)),r.addMain(K(0,Q-I,j,t.S1,0)),r.addMain(K(0,Q-I,j,y,0)),r.addMain(K(0,-x-I,j,t.S1,0)),r.addMain(K(0,-x-I,j,y,0)),r.addMain(K(0,x+I,j,t.S1,0)),r.addMain(K(0,x+I,j,y,0)),r.addSecond(K(0,-t.JL1/2,F,2*O,V)),r.addSecond(K(0,-t.JL1/2,F,2*E,V)),r.addSecond(K(0,t.JL1/2,F,2*O,V)),r.addSecond(K(0,t.JL1/2,F,2*E,V)),r.addSecond(K(0,0,z,t.JD3,G)),r.addSecond(K(0,0,z,ct,G)),r.addSecond(K(0,0,z,t.JD3,M)),r.addSecond(K(0,0,z,ct,M)),l.mergeFigure(tt.fig.faceBeam,!0),l.addMain(v(-x-t.JS1,m,I)),l.addMain(v(-x-t.JS1,m,Y)),l.addMain(v(j,T+I,I)),l.addMain(v(j,T+I,Y)),l.addSecond(K(0,T+I,j,t.S1,0)),l.addSecond(K(0,T+I,j,y,0));const _t=T+I-q,ft=Math.sqrt(j**2+_t**2),Pt=Math.atan2(_t,j);o.logstr+=`stopper-rod: L ${S(ft)} mm, A ${S(at(Pt))} degree
|
|
71
|
-
`,l.addSecond(K(0,q,ft,t.S1,Pt)),l.addSecond(K(0,q,ft,y,Pt)),l.addSecond(K(0,X,F,2*O,V)),l.addSecond(K(0,X,F,2*E,V)),l.addSecond(v(0,q,t.JD3/2)),l.addSecond(v(0,q,t.JD3/2-t.JE3)),l.addSecond(K(0,R,st,t.JD4,M)),l.addSecond(K(0,R,st,rt,M)),_.mergeFigure(l,!0),_.addMain(v(-x-t.JS1,m,Y)),_.addMain(v(t.S2-I,T+I,Y)),L.mergeFigure(tt.fig.faceCone,!0),L.mergeFigure(H,!0),L.addMain(v(-t.L5/2+I,T+I,I)),L.addMain(v(-t.L5/2+I,T+I,Y)),L.addMain(v(t.L5/2-I,T+I,I)),L.addMain(v(t.L5/2-I,T+I,Y)),D.mergeFigure(tt.fig.faceCone,!0),D.mergeFigure(H,!0),D.addSecond(v(-t.L5/2+I,T+I,I)),D.addMain(v(-t.L5/2+I,T+I,Y)),D.addSecond(v(t.L5/2-I,T+I,I)),D.addMain(v(t.L5/2-I,T+I,Y)),A.mergeFigure(tt.fig.faceCone,!0),A.mergeFigure(H,!0),A.addMain(v(-x-I,0,I)),A.addMain(v(-x-I,0,Y)),A.addMain(v(x+I,0,I)),A.addMain(v(x+I,0,Y)),w.mergeFigure(tt.fig.faceCone,!0),w.mergeFigure(H,!0),w.addSecond(v(-x-I,0,I)),w.addMain(v(-x-I,0,Y)),w.addSecond(v(x+I,0,I)),w.addMain(v(x+I,0,Y)),k.mergeFigure(tt.fig.faceCone,!0),k.mergeFigure(H),k.addSecond(K(-N,R,st,t.JD4,M)),k.addSecond(K(-N,R,st,rt,M)),k.addSecond(K(N,R,st,t.JD4,M)),k.addSecond(K(N,R,st,rt,M)),k.addSecond(K(0,q,z,t.JD3,V)),k.addSecond(K(0,q,z,ct,V)),k.addSecond(K(0,q,z,t.JD3,0)),k.addSecond(K(0,q,z,ct,0)),$.mergeFigure(l,!0),$.addMain(v(0,q,t.JD3/2)),$.addMain(v(0,q,t.JD3/2-t.JE3)),P.mergeFigure(r,!0),P.addMain(v(0,-N,t.JD4/2)),P.addMain(v(0,-N,t.JD4/2-t.JE4)),P.addMain(v(0,N,t.JD4/2)),P.addMain(v(0,N,t.JD4/2-t.JE4)),o.fig={faceCone:n,faceBeam:g,faceBeamHollow:i,faceDisc:c,faceHand:d,faceWing:a,faceWingHollow:h,faceDoor:f,faceStopperTop:r,faceStopperSide:l,faceStopperSideH:_,faceStopperFaceT:L,faceStopperFaceTH:D,faceStopperFaceB:A,faceStopperFaceBH:w,faceLowStopperHolder:k,faceHi1StopperHolder:$,faceHi2StopperHolder:P};const et=o.partName;o.vol={inherits:[{outName:`inpax_${et}_rake`,subdesign:"pax_rake",subgeom:tt,rotate:[0,0,0],translate:[0,0,0]},{outName:`inpax_${et}_coneHollow`,subdesign:"subpax_rake_coneHollow",subgeom:tt,rotate:[0,0,0],translate:[0,0,0]},{outName:`inpax_${et}_beamHollow`,subdesign:"subpax_rake_beamHollow",subgeom:tt,rotate:[0,0,0],translate:[0,0,0]}],extrudes:[{outName:`subpax_${et}_stpSide`,face:`${et}_faceStopperSide`,extrudeMethod:p.eLinearOrtho,length:t.L5,rotate:[Math.PI/2,0,0],translate:[0,t.L5/2,0]},{outName:`subpax_${et}_stpSideH`,face:`${et}_faceStopperSideH`,extrudeMethod:p.eLinearOrtho,length:t.L5,rotate:[Math.PI/2,0,0],translate:[0,t.L5/2,0]},{outName:`subpax_${et}_stpFaceT`,face:`${et}_faceStopperFaceT`,extrudeMethod:p.eLinearOrtho,length:j,rotate:[Math.PI/2,0,Math.PI/2],translate:[0,0,0]},{outName:`subpax_${et}_stpFaceTH`,face:`${et}_faceStopperFaceTH`,extrudeMethod:p.eLinearOrtho,length:j,rotate:[Math.PI/2,0,Math.PI/2],translate:[0,0,0]},{outName:`subpax_${et}_stpFaceB`,face:`${et}_faceStopperFaceB`,extrudeMethod:p.eLinearOrtho,length:ft,rotate:[Math.PI/2-Pt,0,Math.PI/2],translate:[0,0,q]},{outName:`subpax_${et}_stpFaceBH`,face:`${et}_faceStopperFaceBH`,extrudeMethod:p.eLinearOrtho,length:ft,rotate:[Math.PI/2-Pt,0,Math.PI/2],translate:[0,0,q]},{outName:`subpax_${et}_lowSH`,face:`${et}_faceLowStopperHolder`,extrudeMethod:p.eLinearOrtho,length:F,rotate:[Math.PI/2,0,-Math.PI/2],translate:[0,0,0]},{outName:`subpax_${et}_Hi1SH1`,face:`${et}_faceHi1StopperHolder`,extrudeMethod:p.eLinearOrtho,length:z,rotate:[Math.PI/2,0,0],translate:[0,0,0]},{outName:`subpax_${et}_Hi1SH2`,face:`${et}_faceHi1StopperHolder`,extrudeMethod:p.eLinearOrtho,length:z,rotate:[Math.PI/2,0,Math.PI],translate:[0,0,0]},{outName:`subpax_${et}_Hi2SH`,face:`${et}_faceHi2StopperHolder`,extrudeMethod:p.eLinearOrtho,length:st,rotate:[0,0,0],translate:[0,0,R]}],volumes:[{outName:`ipax_${et}_plus`,boolMethod:nt.eUnion,inList:[`subpax_${et}_stpSide`,`subpax_${et}_stpFaceT`,`subpax_${et}_stpFaceB`,`subpax_${et}_lowSH`,`subpax_${et}_Hi1SH1`,`subpax_${et}_Hi1SH2`,`subpax_${et}_Hi2SH`]},{outName:`ipax_${et}_hollow`,boolMethod:nt.eUnion,inList:[`inpax_${et}_coneHollow`,`inpax_${et}_beamHollow`,`subpax_${et}_stpSideH`,`subpax_${et}_stpFaceTH`,`subpax_${et}_stpFaceBH`]},{outName:`ipax_${et}_stopper`,boolMethod:nt.eSubstraction,inList:[`ipax_${et}_plus`,`ipax_${et}_hollow`]},{outName:`pax_${et}`,boolMethod:nt.eUnion,inList:[`inpax_${et}_rake`,`ipax_${et}_stopper`]}]},o.sub={},o.logstr+=`heliostat-rake drawn successfully!
|
|
72
|
-
`,o.calcErr=!1}catch(b){o.logstr+=b,console.log(b)}return o}var pt={pTitle:"Heliostat rake with stopper",pDescription:"The rake-stopper on top of the V-Axis of the heliostat",pDef:de,pGeom:qe},Wt={partName:"heliostat_2",params:[e("H1","mm",3e3,10,4e4,1),e("H2","mm",2500,50,4e4,1),e("D1","mm",1e3,20,4e3,1),e("D2","mm",700,20,4e3,1),e("E1","mm",30,1,80,1),W("rake"),e("H3","mm",200,1,500,1),e("H4","mm",800,1,4e3,1),e("H5","mm",3e3,50,6e3,1),e("H6","mm",200,1,4e3,1),e("H7","mm",400,1,4e3,1),e("D3","mm",900,20,4e3,1),e("D4","mm",400,20,4e3,1),e("D5","mm",300,20,1e3,1),e("D6","mm",200,10,1e3,1),e("D7","mm",400,10,1e3,1),W("rake diagonal"),e("D9","mm",100,1,1e3,1),e("L7","mm",100,1,1e3,1),e("L8","mm",200,1,1e3,1),W("rake stopper"),e("S1","mm",100,1,800,1),W("swing"),e("L1","mm",12500,100,4e4,1),e("L2","mm",6e3,100,4e4,1),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),e("S2","mm",10,0,2e3,1),W("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",S1:"heliostat2_side_sizing.svg",S2:"heliostat2_side_sizing.svg",al:"heliostat2_side_sizing.svg"},sim:{tMax:100,tStep:.5,tUpdate:500}};function Ye(s,t,u=""){const o=ut(Wt.partName+u),n=B(),g=B(),i=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
73
|
-
`;try{const c=t.H1+t.H2-t.H3+t.H4+t.H5-t.H6+t.H7;o.logstr+=`heliostat-height: ${S(c)}, diameter ${S(t.D1)} m
|
|
74
|
-
`,o.logstr+=`heliostat-swing-length: ${S(t.L1)}, width ${S(t.L2)} m
|
|
75
|
-
`;const d=t.al*s/Wt.sim.tMax,a=wt(d);o.logstr+=`swing position angle: ${S(at(a))} degree
|
|
76
|
-
`;const h=t.H1+t.H2-t.H3,f=h+t.H4+t.H5-t.H6+t.H7,r=Lt(At.pDef),l=Lt(pt.pDef),_=Lt(Nt.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 L=32,D=(t.D1-6*t.E1)/(L*4);r.setVal("N1",L),r.setVal("D5",D),r.setVal("L1",t.E1+D/2),r.setVal("H3",t.H1/4),r.setVal("H4",t.H1/2),r.setVal("D4",t.H1/4),r.setVal("L2",t.H1/80),r.setVal("E3",t.H1/80),r.setVal("holders",0),l.setVal("H1",t.H4),l.setVal("H2",t.H5),l.setVal("H3",t.H4-2*t.E1),l.setVal("D1",t.D3),l.setVal("D2",t.D4),l.setVal("L9",t.D3/2),l.setVal("H7",t.D3/2*1.6),l.setVal("H6",t.D3/20),l.setVal("R9",t.D3/20),l.setVal("E1",t.E1),l.setVal("E3",t.E1),l.setVal("E4",t.E1),l.setVal("E6",t.E1),l.setVal("E7",t.E1);const A=t.D2*.6,w=24,H=A/(w*4);if(l.setVal("D3",A),t.D2>t.D3-2*t.E1)throw`err153: D2 ${t.D2} too large compare to D3 ${t.D3} and E1 ${t.E1}`;if(l.setVal("N1",w),l.setVal("D7",H),l.setVal("L1",H),l.setVal("H4",t.H6),l.setVal("D4",t.D5),l.setVal("L7",t.L7),l.setVal("L8",t.L8),l.setVal("D6",t.D9),l.setVal("H5",t.H7),l.setVal("D5",t.D6),l.setVal("D8",t.D7),t.D6>=t.D7)throw`err164: D6 ${t.D6} too large compare to D7 ${t.D7}`;const k=t.L4-2*t.L3;if(l.setVal("L4",k),k<=0)throw`err169: L3 ${t.L3} too large compare to L4 ${t.L4}`;if(l.setVal("L5",t.L5+2*t.L3),l.setVal("L6",t.L6+2*t.L3),l.setVal("S1",t.S1),l.setVal("S2",t.L2/2),l.setVal("S3",0),l.setVal("S3",0),l.setVal("JD1",t.D3/4),l.setVal("JE1",t.E1),l.setVal("JL1",t.D3/3),l.setVal("JH1",0),l.setVal("JS1",t.S1/2),l.setVal("JS2",t.S1/2),l.setVal("JD3",t.D4/4),l.setVal("JE3",t.E1),l.setVal("JS3",t.D4/4),l.setVal("JD4",t.D4/4),l.setVal("JE4",t.E1),l.setVal("JS4",t.D4/4),_.setVal("L2",t.L2),_.setVal("D1",t.D6),_.setVal("H3",t.H9),_.setVal("H4",t.H9),_.setVal("L1",t.L1),t.L1<4*t.L4+2*t.L6+t.L5+2*t.L3)throw`err185: L1 ${t.L1} too small compare to L4 ${t.L4}, L5 ${t.L5}, L6 ${t.L6}`;_.setVal("H1",t.L3),_.setVal("H2",t.L3),_.setVal("L4",t.L4),_.setVal("L5",t.L5),_.setVal("L6",t.L6),_.setVal("L3",t.D7),_.setVal("S1",t.D6/2),_.setVal("S2",t.S2),_.setVal("R2",0);const $=At.pGeom(0,r.getParamVal(),r.getSuffix());Ht($),o.logstr+=Dt($.logstr,r.getPartNameSuffix());const P=pt.pGeom(0,l.getParamVal(),l.getSuffix());Ht(P),o.logstr+=Dt(P.logstr,l.getPartNameSuffix());const b=Nt.pGeom(0,_.getParamVal(),_.getSuffix());Ht(b),o.logstr+=Dt(b.logstr,_.getPartNameSuffix()),n.mergeFigure($.fig.poleCut),n.mergeFigure(P.fig.faceStopperSide.translate(0,h)),n.mergeFigure(b.fig.faceSide.translate(0,f).rotate(0,f,a)),g.mergeFigure($.fig.poleCut),g.mergeFigure(P.fig.faceStopperFaceT.translate(0,h)),g.mergeFigure(b.fig.faceFace.translate(0,f)),i.mergeFigure($.fig.poleBottom.translate(0,0)),i.mergeFigure(P.fig.faceStopperTop.translate(0,0)),i.mergeFigure(b.fig.faceTop.rotate(0,0,Math.PI/2)),o.fig={faceSide:n,faceFace:g,faceTop:i};const V=o.partName;o.vol={inherits:[{outName:`inpax_${V}_poleStatic`,subdesign:"pax_pole_static",subgeom:$,rotate:[0,0,0],translate:[0,0,0]},{outName:`inpax_${V}_rake`,subdesign:"pax_rake_stopper",subgeom:P,rotate:[0,0,0],translate:[0,0,h]},{outName:`inpax_${V}_swing`,subdesign:"pax_swing",subgeom:b,rotate:[Math.PI/2,0,0],translate:[0,0,f]}],extrudes:[],volumes:[{outName:`pax_${V}`,boolMethod:nt.eUnion,inList:[`inpax_${V}_poleStatic`,`inpax_${V}_rake`,`inpax_${V}_swing`]}]};const M=r.getDesignParamList(),G={partName:r.getPartName(),dparam:M,orientation:[0,0,0],position:[0,0,0]},x={partName:l.getPartName(),dparam:l.getDesignParamList(),orientation:[0,0,0],position:[0,0,h]},C={partName:_.getPartName(),dparam:_.getDesignParamList(),orientation:[0,0,0],position:[0,0,f]};o.sub={pole_static_1:G,rake_1:x,swing_1:C},o.logstr+=`heliostat-2-overview drawn successfully!
|
|
77
|
-
`,o.calcErr=!1}catch(c){o.logstr+=c,console.log(c)}return o}var Xe={pTitle:"Heliostat-2 overview",pDescription:"The heliostat-2 inclination mechanism",pDef:Wt,pGeom:Ye},le={partName:"base",params:[e("D1","mm",600,10,4e3,10),e("D2","mm",700,10,4e3,10),e("D3","mm",400,10,4e3,10),e("D4","mm",500,10,4e3,10),e("E1","mm",30,1,80,1),e("E2","mm",30,1,80,1),e("E3","mm",30,1,80,1),e("H1","mm",800,10,4e3,10),e("H2","mm",50,1,4e3,1),W("side holes"),e("H3","mm",400,10,4e3,10),e("N2","",12,1,100,1),e("L2","mm",100,1,400,1),W("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 je(s,t,u=""){const o=ut(le.partName+u);let n,g,i;const c=B(),d=B(),a=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
78
|
-
`;try{const h=t.D1/2,f=t.D2/2,r=t.D3/2,l=t.D4/2,_=t.D5/2,L=t.L2/2;if(f<h)throw`err089: D2 ${t.D2} too small compare to D1 ${t.D1}`;if(l>h-t.E2)throw`err189: D4 ${t.D4} too large compare to D1 ${t.D1} and E2 ${t.E2}`;o.logstr+=`base-height: ${S(t.H1)} mm
|
|
79
|
-
`,o.logstr+=`base-external-diameter: ${S(t.D2)} mm
|
|
80
|
-
`;const D=t.D1*Math.PI/t.N2-t.L2;if(o.logstr+=`inter-hollow: ${S(D)} mm
|
|
81
|
-
`,n=function(x){return U(x*f,0).addSegStrokeA(x*f,t.E3).addSegStrokeA(x*h,t.E3).addSegStrokeA(x*h,t.H1).addSegStrokeA(x*(h-t.E2),t.H1).addSegStrokeA(x*(h-t.E2),t.E3).addSegStrokeA(x*l,t.E3).addSegStrokeA(x*l,0).closeSegStroke()},g=function(x){return U(x*f,0).addSegStrokeA(x*f,t.E3).addSegStrokeA(x*h,t.E3).addSegStrokeA(x*h,t.H1).addSegStrokeA(x*r,t.H1).addSegStrokeA(x*r,t.H1-t.E1).addSegStrokeA(x*(h-t.E2),t.H1-t.E1).addSegStrokeA(x*(h-t.E2),t.E3).addSegStrokeA(x*l,t.E3).addSegStrokeA(x*l,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 A=2*Math.asin(L/(h-t.E2));if(t.N2*A>2*Math.PI)throw`err132: N2 ${t.N2} too large compare to L2 ${t.L2}, D1 ${t.D1}, E2 ${t.E2}`;const w=t.E3+t.H2+L;if(i=function(x){return U(x*L,w).addSegStrokeA(x*L,w+t.H3-t.L2).addPointA(-x*L,w+t.H3-t.L2).addSegArc(L,!1,!0).addSegStrokeA(-x*L,w).closeSegArc(L,!1,!0)},c.addMain(n(1)),c.addSecond(g(1)),c.addSecond(g(-1)),c.addSecond(i(1)),r+t.L1+_>h-t.E2)throw`err127: D3 ${t.D3} too large compare to D1 ${t.D1}, E2 ${t.E2}, L1 ${t.L1}, R5 ${t.D5}`;if(_>t.L1)throw`err130: D5 ${t.D5} too large compare to L1 ${t.L1}`;const H=2*Math.asin(_/(f+t.L1));if(t.N1*H>2*Math.PI)throw`err134: N1 ${t.N1} too large compare to D5 ${t.D5}, L1 ${t.L1}, D2 ${t.D2}`;d.addMain(v(0,0,h)),d.addMain(v(0,0,r));const k=r+t.L1,$=2*Math.PI/t.N1;for(let x=0;x<t.N1;x++){const C=k*Math.cos(x*$),Z=k*Math.sin(x*$);d.addMain(v(C,Z,_))}d.addSecond(v(0,0,h-t.E1)),d.addSecond(v(0,0,f)),d.addSecond(v(0,0,l)),a.addMain(i(1)),a.addSecond(g(1)),a.addSecond(g(-1)),o.fig={faceCut:c,faceTop:d,faceHollow:a};const P=o.partName,b=2*Math.PI/t.N2,V=[...Array(t.N2).keys()],M=V.map(x=>({outName:`subpax_${P}_hollow_${x}`,face:`${P}_faceHollow`,extrudeMethod:p.eLinearOrtho,length:f+t.E2,rotate:[Math.PI/2,0,x*b],translate:[0,0,0]})),G=V.map(x=>`subpax_${P}_hollow_${x}`);o.vol={extrudes:[{outName:`subpax_${P}_cut`,face:`${P}_faceCut`,extrudeMethod:p.eRotate,rotate:[0,0,0],translate:[Math.PI/2,0,0]},{outName:`subpax_${P}_top`,face:`${P}_faceTop`,extrudeMethod:p.eLinearOrtho,length:t.E1,rotate:[0,0,0],translate:[0,0,t.H1-t.E1]},...M],volumes:[{outName:`ipax_${P}_hollows`,boolMethod:nt.eUnion,inList:[...G]},{outName:`ipax_${P}_cylinder`,boolMethod:nt.eSubstraction,inList:[`subpax_${P}_cut`,`ipax_${P}_hollows`]},{outName:`pax_${P}`,boolMethod:nt.eUnion,inList:[`ipax_${P}_cylinder`,`subpax_${P}_top`]}]},o.sub={},o.logstr+=`heliostat-base drawn successfully!
|
|
82
|
-
`,o.calcErr=!1}catch(h){o.logstr+=h,console.log(h)}return o}var Ze={pTitle:"Heliostat base",pDescription:"The base for the static-pole of the heliostat",pDef:le,pGeom:je},ce={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),W("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 Ke(s,t,u=""){const o=ut(ce.partName+u);let n;const g=B(),i=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
83
|
-
`;try{const c=t.D1/2,d=t.D2/2,a=t.D3/2;o.logstr+=`vaxis-height: ${S(t.H1)} mm
|
|
84
|
-
`;const h=U(c,0).addSegStrokeA(c,t.H1).addSegStrokeA(c-t.E1,t.H1).addSegStrokeA(c-t.E1,0).closeSegStroke();g.addMain(h),n=function(_){return U(_*c,0).addSegStrokeA(_*c,t.H1).addSegStrokeA(_*d,t.H1).addSegStrokeA(_*d,t.H1-t.E2).addSegStrokeA(_*(c-t.E1),t.H1-t.E2).addSegStrokeA(_*(c-t.E1),t.E2).addSegStrokeA(_*d,t.E2).addSegStrokeA(_*d,0).closeSegStroke()},g.addSecond(n(1)),g.addSecond(n(-1)),i.addMain(v(0,0,c)),i.addMain(v(0,0,d));const f=d+t.L1,r=2*Math.PI/t.N1;for(let _=0;_<t.N1;_++){const L=f*Math.cos(_*r),D=f*Math.sin(_*r);i.addMain(v(L,D,a))}i.addSecond(v(0,0,c-t.E1)),o.fig={faceCut:g,faceBottom:i};const l=o.partName;o.vol={extrudes:[{outName:`subpax_${l}_pole`,face:`${l}_faceCut`,extrudeMethod:p.eRotate,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${l}_bottom`,face:`${l}_faceBottom`,extrudeMethod:p.eLinearOrtho,length:t.E2,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${l}_top`,face:`${l}_faceBottom`,extrudeMethod:p.eLinearOrtho,length:t.E2,rotate:[0,0,0],translate:[0,0,t.H1-t.E2]}],volumes:[{outName:`pax_${l}`,boolMethod:nt.eUnion,inList:[`subpax_${l}_pole`,`subpax_${l}_bottom`,`subpax_${l}_top`]}]},o.sub={},o.logstr+=`V-Axis drawn successfully!
|
|
85
|
-
`,o.calcErr=!1}catch(c){o.logstr+=c,console.log(c)}return o}var Qe={pTitle:"Heliostat V-Axis",pDescription:"The vertical axis inside the pole of an heliostat",pDef:ce,pGeom:Ke},re={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),W("ring holes"),e("N2","",24,3,100,1),e("D2","mm",40,1,100,1),e("L1","mm",45,1,300,1),W("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 to(s,t,u=""){const o=ut(re.partName+u),n=B(),g=B(),i=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
86
|
-
`;try{const c=t.D1/2,d=t.D2/2,a=t.D3/2,h=t.H1+t.H2;if(t.L1<d)throw`err203: L1 ${t.L1} too small compare to D2 ${t.D2}`;if(c+t.L1+d>a-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,c+t.L1)>2*Math.PI/t.N2)throw`err205: D2 ${t.D2} too large compare to N2 ${t.N2}`;o.logstr+=`ring-height: ${S(h)} mm
|
|
87
|
-
`;const f=a-t.L3,r=f-t.L2,l=2*Math.PI/(2*t.N1),_=U(f,0);for(let P=0;P<t.N1;P++){const b=2*P+1,V=2*P+2,M=r*Math.cos(b*l),G=r*Math.sin(b*l),x=f*Math.cos(V*l),C=f*Math.sin(V*l);_.addSegStrokeA(M,G).addSegStrokeA(x,C)}n.addMain(v(0,0,a)),n.addMain(v(0,0,c));const L=c+t.L1,D=2*Math.PI/t.N2;for(let P=0;P<t.N2;P++){const b=L*Math.cos(P*D),V=L*Math.sin(P*D);n.addMain(v(b,V,d)),g.addSecond(v(b,V,d))}n.addSecond(_),g.addMain(v(0,0,a)),g.addMain(_),g.addSecond(v(0,0,c));const A=U(c,0).addSegStrokeA(-c,0).addSegStrokeA(-c,-t.H1).addSegStrokeA(c,-t.H1).closeSegStroke(),w=function(P){return U(P*(c+t.L1)+d,0).addSegStrokeR(-2*d,0).addSegStrokeR(0,-t.H1).addSegStrokeR(2*d,0).closeSegStroke()},H=function(P){return U(P*(a-t.L3),-t.H1).addSegStrokeR(-P*t.L2,0).addSegStrokeR(0,-t.H2).addSegStrokeR(P*t.L2,0).closeSegStroke()},k=function(P){return U(P*a,0).addSegStrokeR(-P*(a-c),0).addSegStrokeR(0,-t.H1).addSegStrokeR(P*(a-t.L2-t.L3-c),0).addSegStrokeR(0,-t.H2).addSegStrokeR(P*(t.L2+t.L3),0).closeSegStroke()};i.addSecond(A),i.addSecond(w(1)),i.addSecond(w(-1)),i.addSecond(H(1)),i.addSecond(H(-1)),i.addMain(k(1)),i.addSecond(k(-1)),o.fig={faceRingBase:n,faceRingTeeth:g,faceSection:i};const $=o.partName;o.vol={extrudes:[{outName:`subpax_${$}_base`,face:`${$}_faceRingBase`,extrudeMethod:p.eLinearOrtho,length:t.H1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${$}_teeth`,face:`${$}_faceRingTeeth`,extrudeMethod:p.eLinearOrtho,length:h,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${$}`,boolMethod:nt.eUnion,inList:[`subpax_${$}_base`,`subpax_${$}_teeth`]}]},o.sub={},o.logstr+=`ring drawn successfully!
|
|
88
|
-
`,o.calcErr=!1}catch(c){o.logstr+=c,console.log(c)}return o}var eo={pTitle:"Heliostat ring",pDescription:"The gear ring for adjusting the azimuth of the heliostat",pDef:re,pGeom:to},ge={partName:"ring_guidance",params:[e("D1","mm",700,5,2500,1),e("N1","legs",6,1,24,1),e("D2","mm",600,5,2e3,1),W("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),W("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),W("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 oo(s,t,u=""){const o=ut(ge.partName+u),n=B(),g=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
89
|
-
`;try{const i=t.D1/2,c=t.D3/2,d=t.D4/2,a=t.D6/2,h=t.D7/2,f=2*Math.PI/t.N2;if(h>t.L2)throw`err461: D7 ${t.D7} is too large compare to L2 ${t.L2}`;if(t.N2*t.D7>(t.D6+2*t.L2)*Math.PI)throw`err462: N2 ${t.N2} is too large compare to D6 ${t.D6}, D7 ${t.D7} and L2 ${t.L2}`;if(t.D2<t.D6+2*t.L2+2*h)throw`err463: D2 ${t.D2} is too small compare to D6 ${t.D6}, L2 ${t.L2} and D7 ${t.D7}`;o.logstr+=`ring_guidance: Dmax ${S(t.D1+2*d)} mm
|
|
90
|
-
`;const[r,l,_]=ee(t);o.logstr+=r,n.addMain(l),n.addMain(v(0,0,a));for(let H=0;H<t.N2;H++)n.addMain(v(a+t.L2,0,h).rotate(0,0,H*f));for(let H=0;H<t.N1;H++)n.addMain(v(i,0,c).rotate(0,0,H*_));const L=function(H,k,$,P){return U(H,k).addSegStrokeR($,0).addSegStrokeR(0,P).addSegStrokeR(-$,0).closeSegStroke()},D=i-a+d;g.addMain(L(a,0,D,t.T1)),g.addMain(L(-a-D,0,D,t.T1)),g.addSecond(L(i-c,0,2*c,t.T1)),g.addSecond(L(-i-c,0,2*c,t.T1));const A=a+t.L2;g.addSecond(L(A-h,0,2*h,t.T1)),g.addSecond(L(-A-h,0,2*h,t.T1)),o.fig={faceTop:n,faceSection:g};const w=o.partName;o.vol={extrudes:[{outName:`subpax_${w}_top`,face:`${w}_faceTop`,extrudeMethod:p.eLinearOrtho,length:t.T1,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${w}`,boolMethod:nt.eIdentity,inList:[`subpax_${w}_top`]}]},o.sub={},o.logstr+=`ring_guidance drawn successfully!
|
|
91
|
-
`,o.calcErr=!1}catch(i){o.logstr+=i,console.log(i)}return o}var so={pTitle:"Ring-guidance",pDescription:"The guidance of the gear-ring for the heliostat azimuth",pDef:ge,pGeom:oo},ae={partName:"vaxis_guidance",params:[e("D1","mm",700,5,2500,1),e("N1","legs",6,1,24,1),e("D2","mm",600,5,2e3,1),W("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),W("inner"),e("D6","mm",540,1,1e3,1),e("N2","springs",6,1,24,1),xt("orientation",["ccw","cw","alt"]),e("R7","mm",10,0,100,1),e("L2","mm",100,1,900,1),e("E2","mm",20,1,200,1),W("spring"),e("SA1","degree",0,-45,45,1),e("SE1","mm",10,.1,200,.1),e("SD1","mm",20,1,200,1),e("SD2","mm",10,1,200,1),e("SN1","loops",2,0,8,1),e("SL1","mm",40,1,900,1),e("SL2","mm",70,0,900,1),xt("Send",["round","pike"]),W("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",orientation:"vaxis_guidance_top.svg",R7:"vaxis_guidance_top.svg",L2:"vaxis_guidance_spring.svg",E2:"vaxis_guidance_spring.svg",SA1:"vaxis_guidance_spring.svg",SE1:"vaxis_guidance_spring.svg",SD1:"vaxis_guidance_spring.svg",SD2:"vaxis_guidance_spring.svg",SN1:"vaxis_guidance_spring.svg",SL1:"vaxis_guidance_spring.svg",SL2:"vaxis_guidance_spring.svg",Send:"vaxis_guidance_spring.svg",T1:"vaxis_guidance_top.svg",Dvaxis:"vaxis_guidance_top.svg"},sim:{tMax:100,tStep:.5,tUpdate:500}};function io(s,t,u=""){const o=ut(ae.partName+u),n=B(),g=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
92
|
-
`;try{const i=t.D1/2,c=t.D2/2,d=t.D3/2,a=t.D4/2,h=t.D6/2;if(c<h)throw`err466: D6 ${t.D6} is too large compare to D2 ${t.D2}`;o.logstr+=`vaxis_guidance: Dmax ${S(t.D1+2*a)} mm
|
|
93
|
-
`;const[f,r,l]=ee(t);o.logstr+=f,n.addMain(r);for(let w=0;w<t.N1;w++)n.addMain(v(i,0,d).rotate(0,0,w*l));const[_,L]=me(t);o.logstr+=_,n.addMain(L),n.addSecond(v(0,0,t.Dvaxis/2));const D=i-h+a;g.addMain(gt(h,0,D,t.T1)),g.addMain(gt(-h-D,0,D,t.T1)),g.addSecond(gt(i-d,0,2*d,t.T1)),g.addSecond(gt(-i-d,0,2*d,t.T1)),o.fig={faceTop:n,faceSection:g};const A=o.partName;o.vol={extrudes:[{outName:`subpax_${A}_top`,face:`${A}_faceTop`,extrudeMethod:p.eLinearOrtho,length:t.T1,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${A}`,boolMethod:nt.eIdentity,inList:[`subpax_${A}_top`]}]},o.sub={},o.logstr+=`vaxis_guidance drawn successfully!
|
|
94
|
-
`,o.calcErr=!1}catch(i){o.logstr+=i,console.log(i)}return o}var no={pTitle:"Vaxis-guidance",pDescription:"The guidance of the V-Axis for the heliostat azimuth",pDef:ae,pGeom:io},he={partName:"haxis_guidance",params:[e("D5","mm",600,1,2e3,1),e("D8","mm",1e3,1,2e3,1),W("outer details"),e("E5","mm",1,0,200,1),e("E8","mm",20,1,200,1),e("L5","mm",20,1,200,1),e("R9","mm",20,0,500,1),W("inner spring"),e("SA1","degree",0,-45,45,1),e("SE1","mm",2,.1,100,.1),e("SD1","mm",20,1,200,1),e("SD2","mm",10,1,200,1),e("SN1","springs",7,1,24,1),e("SL1","mm",60,0,500,1),e("SL2","mm",100,0,500,1),xt("Send",["round","pike"]),W("thickness"),e("L4","mm",400,1,2e3,1)],paramSvg:{D5:"haxis_guidance_outer.svg",D8:"haxis_guidance_outer.svg",E5:"haxis_guidance_outer.svg",E8:"haxis_guidance_outer.svg",L5:"haxis_guidance_outer.svg",R9:"haxis_guidance_outer.svg",SA1:"haxis_guidance_spring.svg",SE1:"haxis_guidance_spring.svg",SD1:"haxis_guidance_spring.svg",SD2:"haxis_guidance_spring.svg",SN1:"haxis_guidance_spring.svg",SL1:"haxis_guidance_spring.svg",SL2:"haxis_guidance_spring.svg",Send:"haxis_guidance_spring.svg",L4:"haxis_guidance_outer.svg"},sim:{tMax:100,tStep:.5,tUpdate:500}};function lo(s,t,u=""){const o=ut(he.partName+u),n=B(),g=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
95
|
-
`;try{const i=t.D5/2,c=t.D8/2,d=t.SD1/2,a=i+t.E5,h=c-t.E8,f=2*Math.asin(t.L5/(2*a)),r=Math.PI/12+wt(t.SA1),l=Math.PI/2+f-r,_=Math.PI-r,L=Math.PI/2-Math.PI/6+r;if(a+d+t.SE1>h)throw`err411: D8 ${t.D8} is too small compare to D5 ${t.D5}, E5 ${t.E5}, E8 ${t.E8}`;if(2*Math.PI/3-2*f<t.R9/h)throw`err412: L5 ${t.L5} is too large compare to R9 ${t.R9}`;o.logstr+=`haxis_guidance: Dinner ${S(2*a)} mm
|
|
96
|
-
`,n.addSecond(v(0,0,i)),n.addSecond(v(0,0,c));const[D,A]=yt(t,!1),[,w]=yt(t,!0);o.logstr+=D;const H=Math.PI/2-f,k=-Math.PI/6+f,$=lt(0,0),P=$.translatePolar(H,a+t.SE1+d),b=P.translatePolar(H-Math.PI/2,d),V=b.translatePolar(H+Math.PI,d+t.SE1),M=b.translatePolar(H+Math.PI,d),G=V.rotate(b,l),x=$.translatePolar(k,a+t.SE1+d),C=x.translatePolar(k+Math.PI/2,d),Z=C.translatePolar(k+Math.PI,d+t.SE1),m=C.translatePolar(k+Math.PI,d),R=m.rotate(C,-l),T=U(0,a).addSegStrokeA(V.cx,V.cy).addPointA(G.cx,G.cy).addSegArc(d+t.SE1,!1,!0);T.addPartial(A.rotate(0,0,_).translate(G.cx,G.cy)),T.addPointA(M.cx,M.cy).addPointA(P.cx,P.cy).addSegArc2().addSegStrokeAP(H,h).addCornerRounded(t.R9).addPointAP(k,h).addSegArc(h,!1,!1).addCornerRounded(t.R9).addSegStrokeA(x.cx,x.cy).addPointA(m.cx,m.cy).addPointA(R.cx,R.cy).addSegArc2(),T.addPartial(w.rotate(0,0,L).translate(R.cx,R.cy)),T.addPointA(Z.cx,Z.cy).addSegArc(d+t.SE1,!1,!0).addSegStrokeAP(-Math.PI/6,a).addSegStrokeAP(-Math.PI/6,c).addPointAP(Math.PI/2,c).addSegArc(c,!1,!0).closeSegStroke(),n.addMain(T);const q=c*Math.sin(Math.PI/6);g.addMain(gt(0,-q,t.L4,c+q)),g.addSecond(gt(0,-c,t.L4,2*c)),g.addSecond(gt(0,-i,t.L4,2*i)),o.fig={faceProfile:n,faceSide:g};const Q=o.partName;o.vol={extrudes:[{outName:`subpax_${Q}_profile`,face:`${Q}_faceProfile`,extrudeMethod:p.eLinearOrtho,length:t.L4,rotate:[0,0,0],translate:[0,0,0]}],volumes:[{outName:`pax_${Q}`,boolMethod:nt.eIdentity,inList:[`subpax_${Q}_profile`]}]},o.sub={},o.logstr+=`haxis_guidance drawn successfully!
|
|
97
|
-
`,o.calcErr=!1}catch(i){o.logstr+=i,console.log(i)}return o}var co={pTitle:"Haxis-guidance",pDescription:"The guidance of the H-Axis for the heliostat inclination",pDef:he,pGeom:lo},ue={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),W("section"),e("H1","mm",200,5,4e3,1),e("E1","mm",2,1,80,1),e("E2","mm",10,1,80,1),W("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 ro(s,t,u=""){const o=ut(ue.partName+u);let n,g;const i=B(),c=B(),d=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
98
|
-
`;try{const a=t.D2/2,h=t.L3/(t.N3+1),f=t.L4/(t.N4+1);o.logstr+=`rod-length: ${S(t.L1)} mm
|
|
99
|
-
`;const r=(t.L1-t.L3)/(t.N1-1);o.logstr+=`space-length: ${S(r)} mm
|
|
100
|
-
`,n=function(P){const b=[],V=U(t.L4/2,P).addCornerRounded(t.R3).addSegStrokeA(t.L4/2,P+t.L3).addCornerRounded(t.R3).addSegStrokeA(-t.L4/2,P+t.L3).addCornerRounded(t.R3).addSegStrokeA(-t.L4/2,P).addCornerRounded(t.R3).closeSegStroke();b.push(V);for(let M=1;M<t.N3+1;M++)b.push(v(t.L4/2-t.L7,P+M*h,a)),b.push(v(-t.L4/2+t.L7,P+M*h,a));for(let M=1;M<t.N4+1;M++)b.push(v(-t.L4/2+M*f,P+t.L7,a)),b.push(v(-t.L4/2+M*f,P+t.L3-t.L7,a));return b},g=function(P,b){return U(t.L2/2,P).addSegStrokeA(t.L2/2,P+b).addSegStrokeA(-t.L2/2,P+b).addSegStrokeA(-t.L2/2,P).closeSegStroke()};const l=t.L2/2,_=t.L4/2,L=(t.L2-2*t.E1)/2,D=t.H1-t.E1,A=U(l,0).addSegStrokeA(l,t.H1).addSegStrokeA(-l,t.H1).addSegStrokeA(-l,0).closeSegStroke(),w=U(L,t.E1).addSegStrokeA(L,D).addSegStrokeA(-L,D).addSegStrokeA(-L,t.E1).closeSegStroke(),H=U(_,t.H1).addSegStrokeA(_,t.H1+t.E2).addSegStrokeA(-_,t.H1+t.E2).addSegStrokeA(-_,t.H1).closeSegStroke();i.addMain(A),i.addMain(w),i.addSecond(H),n(0).forEach(P=>c.addMain(P)),c.addSecond(g(-t.L3/2,2*t.L3));const k=(t.L1-t.L3)/(t.N1-1);for(let P=0;P<t.N1;P++)n(P*k).forEach(b=>d.addMain(b));d.addSecond(g(0,t.L1)),o.fig={faceCut:i,facePlate:c,faceTop:d};const $=o.partName;o.vol={extrudes:[{outName:`subpax_${$}_rod`,face:`${$}_faceCut`,extrudeMethod:p.eLinearOrtho,length:t.L1,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${$}_plates`,face:`${$}_faceTop`,extrudeMethod:p.eLinearOrtho,length:t.E2,rotate:[Math.PI/2,0,0],translate:[0,t.E2+t.H1,0]}],volumes:[{outName:`pax_${$}`,boolMethod:nt.eUnion,inList:[`subpax_${$}_rod`,`subpax_${$}_plates`]}]},o.sub={},o.logstr+=`heliostat-rod drawn successfully!
|
|
101
|
-
`,o.calcErr=!1}catch(a){o.logstr+=a,console.log(a)}return o}var go={pTitle:"Heliostat rod",pDescription:"The rod of an heliostat-surface",pDef:ue,pGeom:ro},_e={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),W("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),W("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),W("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 ao(s,t,u=""){const o=ut(_e.partName+u);let n,g;const i=B(),c=B(),d=B(),a=B(),h=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
102
|
-
`;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 f=t.R1*(1-1/Math.sqrt(2)),r=t.R3*(1-1/Math.sqrt(2)),l=t.L2/2-f-(t.L4/2-r),_=t.L1/2-f-(t.L3/2-r),L=Math.sqrt(l**2+_**2),D=t.H1-t.H2-t.H3,A=Math.sqrt(L**2+D**2),w=Math.atan2(D,L),H=Math.atan2(_,l);o.logstr+=`rod-slope: length: ${S(A)} mm, angle: ${S(at(w))} degree
|
|
103
|
-
`,o.logstr+=`rod-xy-angle: ${S(at(H))} degree
|
|
104
|
-
`;const k=t.D3/Math.cos(Math.PI/2-w);o.logstr+=`rod-footprint-length: ${S(k)} mm
|
|
105
|
-
`;const $=Math.sqrt((k/2)**2+(t.D3/2)**2),P=Math.atan2(t.D3,k);if(n=function(F,N,z){return U(F,N).addPointRP(z+Math.PI-P,$).addSeg2Arcs(z+Math.PI/2,z).addPointRP(z+Math.PI+P,$).addSeg2Arcs(z+Math.PI,z+Math.PI/2).addPointRP(z-P,$).addSeg2Arcs(z+3*Math.PI/2,z+Math.PI).addPointRP(z+P,$).addSeg2Arcs(z,z-Math.PI/2)},g=function(F,N,z){const ct=F+$*Math.cos(z+Math.PI-P),st=N+$*Math.sin(z+Math.PI-P);return U(ct,st).addSegStrokeRP(z+Math.PI,L).addSegStrokeRP(z-Math.PI/2,t.D3).addSegStrokeRP(z,L).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 b=U(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 V=U(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 M=U(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);i.addMain(b),i.addMain(V),i.addSecond(M);const G=t.L1/(t.N1+1),x=t.L2/(t.N2+1),C=t.L3/(t.N3+1),Z=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(C<t.D2/2+t.L7)throw`err661: D2 ${t.D2} or L7 ${t.L7} too large compare to L3 ${t.l3}`;if(Z<t.D2/2+t.L7)throw`err664: D2 ${t.D2} or L7 ${t.L7} too large compare to L4 ${t.l4}`;const m=[];for(let F=1;F<t.N1+1;F++)m.push(v(t.L2/2-t.L6,-t.L1/2+F*G,t.D1/2)),m.push(v(-t.L2/2+t.L6,-t.L1/2+F*G,t.D1/2));for(let F=1;F<t.N2+1;F++)m.push(v(-t.L2/2+F*x,t.L1/2-t.L6,t.D1/2)),m.push(v(-t.L2/2+F*x,-t.L1/2+t.L6,t.D1/2));const R=[];for(let F=1;F<t.N3+1;F++)R.push(v(t.L4/2-t.L7,-t.L3/2+F*C,t.D2/2)),R.push(v(-t.L4/2+t.L7,-t.L3/2+F*C,t.D2/2));for(let F=1;F<t.N4+1;F++)R.push(v(-t.L4/2+F*Z,t.L3/2-t.L7,t.D2/2)),R.push(v(-t.L4/2+F*Z,-t.L3/2+t.L7,t.D2/2));m.forEach(F=>{i.addMain(F)}),R.forEach(F=>{i.addSecond(F)});const T=[];T.push(n(t.L2/2-f,t.L1/2-f,H)),T.push(n(t.L4/2-r,t.L3/2-r,H)),T.push(n(-t.L2/2+f,t.L1/2-f,Math.PI-H)),T.push(n(-t.L4/2+r,t.L3/2-r,Math.PI-H)),T.push(n(-t.L2/2+f,-t.L1/2+f,Math.PI+H)),T.push(n(-t.L4/2+r,-t.L3/2+r,Math.PI+H)),T.push(n(t.L2/2-f,-t.L1/2+f,-H)),T.push(n(t.L4/2-r,-t.L3/2+r,-H));const q=[];if(q.push(g(t.L2/2-f,t.L1/2-f,H)),q.push(g(-t.L2/2+f,t.L1/2-f,Math.PI-H)),q.push(g(-t.L2/2+f,-t.L1/2+f,Math.PI+H)),q.push(g(t.L2/2-f,-t.L1/2+f,-H)),T.forEach(F=>{i.addSecond(F)}),q.forEach(F=>{i.addSecond(F)}),c.addMain(M),R.forEach(F=>{c.addMain(F)}),c.addSecond(b),c.addSecond(V),m.forEach(F=>{c.addSecond(F)}),T.forEach(F=>{c.addSecond(F)}),q.forEach(F=>{c.addSecond(F)}),t.D4>=t.D3)throw`err218: D4 ${t.D4} larger than D3 ${t.D3}`;d.addMain(v(0,0,t.D3/2)),d.addSecond(v(0,0,t.D4/2)),a.addMain(v(0,0,t.D4/2)),a.addSecond(v(0,0,t.D3/2));const Q=t.D3*Math.cos(w),I=Q/Math.tan(w),y=r+(k/2+I)*Math.cos(H),Y=r+(k/2+I)*Math.sin(H),j=A+2*(k+I+Q),X=j+t.L3+t.L4+Q,O=U(X,X).addSegStrokeA(-X,X).addSegStrokeA(-X,-X).addSegStrokeA(X,-X).closeSegStroke();h.addMain(O),o.fig={faceFrame:i,facePlate:c,faceRod:d,faceRodHollow:a,faceCutRod:h};const E=o.partName;o.vol={extrudes:[{outName:`subpax_${E}_frame`,face:`${E}_faceFrame`,extrudeMethod:p.eLinearOrtho,length:t.H2,rotate:[0,0,0],translate:[0,0,t.H1-t.H2]},{outName:`subpax_${E}_plate`,face:`${E}_facePlate`,extrudeMethod:p.eLinearOrtho,length:t.H3,rotate:[0,0,0],translate:[0,0,0]},{outName:`subpax_${E}_rod1`,face:`${E}_faceRod`,extrudeMethod:p.eLinearOrtho,length:j,rotate:[0,Math.PI/2-w,H],translate:[t.L4/2-y,t.L3/2-Y,t.H3-Q]},{outName:`subpax_${E}_rod2`,face:`${E}_faceRod`,extrudeMethod:p.eLinearOrtho,length:j,rotate:[0,Math.PI/2-w,Math.PI-H],translate:[-t.L4/2+y,t.L3/2-Y,t.H3-Q]},{outName:`subpax_${E}_rod3`,face:`${E}_faceRod`,extrudeMethod:p.eLinearOrtho,length:j,rotate:[0,Math.PI/2-w,Math.PI+H],translate:[-t.L4/2+y,-t.L3/2+Y,t.H3-Q]},{outName:`subpax_${E}_rod4`,face:`${E}_faceRod`,extrudeMethod:p.eLinearOrtho,length:j,rotate:[0,Math.PI/2-w,-H],translate:[t.L4/2-y,-t.L3/2+Y,t.H3-Q]},{outName:`subpax_${E}_rodH1`,face:`${E}_faceRodHollow`,extrudeMethod:p.eLinearOrtho,length:j,rotate:[0,Math.PI/2-w,H],translate:[t.L4/2-y,t.L3/2-Y,t.H3-Q]},{outName:`subpax_${E}_rodH2`,face:`${E}_faceRodHollow`,extrudeMethod:p.eLinearOrtho,length:j,rotate:[0,Math.PI/2-w,Math.PI-H],translate:[-t.L4/2+y,t.L3/2-Y,t.H3-Q]},{outName:`subpax_${E}_rodH3`,face:`${E}_faceRodHollow`,extrudeMethod:p.eLinearOrtho,length:j,rotate:[0,Math.PI/2-w,Math.PI+H],translate:[-t.L4/2+y,-t.L3/2+Y,t.H3-Q]},{outName:`subpax_${E}_rodH4`,face:`${E}_faceRodHollow`,extrudeMethod:p.eLinearOrtho,length:j,rotate:[0,Math.PI/2-w,-H],translate:[t.L4/2-y,-t.L3/2+Y,t.H3-Q]},{outName:`subpax_${E}_cut1`,face:`${E}_faceCutRod`,extrudeMethod:p.eLinearOrtho,length:X,rotate:[0,0,0],translate:[0,0,-X]},{outName:`subpax_${E}_cut2`,face:`${E}_faceCutRod`,extrudeMethod:p.eLinearOrtho,length:X,rotate:[0,0,0],translate:[0,0,t.H1]}],volumes:[{outName:`ipax_${E}_rawRod`,boolMethod:nt.eUnion,inList:[`subpax_${E}_rod1`,`subpax_${E}_rod2`,`subpax_${E}_rod3`,`subpax_${E}_rod4`]},{outName:`ipax_${E}_rodHollow`,boolMethod:nt.eUnion,inList:[`subpax_${E}_rodH1`,`subpax_${E}_rodH2`,`subpax_${E}_rodH3`,`subpax_${E}_rodH4`]},{outName:`ipax_${E}_halfRods`,boolMethod:nt.eSubstraction,inList:[`ipax_${E}_rawRod`,`subpax_${E}_cut1`]},{outName:`ipax_${E}_rods`,boolMethod:nt.eSubstraction,inList:[`ipax_${E}_halfRods`,`subpax_${E}_cut2`]},{outName:`ipax_${E}_plus`,boolMethod:nt.eUnion,inList:[`subpax_${E}_frame`,`subpax_${E}_plate`,`ipax_${E}_rods`]},{outName:`pax_${E}`,boolMethod:nt.eSubstraction,inList:[`ipax_${E}_plus`,`ipax_${E}_rodHollow`]}]},o.sub={},o.logstr+=`trapeze drawn successfully!
|
|
106
|
-
`,o.calcErr=!1}catch(f){o.logstr+=f,console.log(f)}return o}var ho={pTitle:"Heliostat trapeze",pDescription:"The support of one solar panel. Made out of aluminium for lightness and cooling",pDef:_e,pGeom:ao},fe={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),W("main fantasia"),xt("main_direction",["horizontal","vertical"]),St("crenel",!1),e("first_row","",9,1,40,1),e("second_row","",9,1,40,1),W("horizontal spacing"),e("EH","mm",10,0,1e3,1),St("EH_gradient",!1),e("EH_sup","mm",500,0,1e3,1),e("EH_cycle","",1,0,3,.05),e("EH_start","",0,0,1,.05),xt("EH_shape",["sinusoid","triangle","sawUp","sawDown"]),W("vertical spacing"),e("EV","mm",10,0,1e3,1),St("EV_gradient",!1),e("EV_sup","mm",500,0,1e3,1),e("EV_cycle","",1,0,3,.05),e("EV_start","",0,0,1,.05),xt("EV_shape",["sinusoid","triangle","sawUp","sawDown"]),W("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 uo(s,t,u=""){const o=ut(fe.partName+u);let n;const g=B(),i=B();o.logstr+=`${o.partName} simTime: ${s}
|
|
107
|
-
`;try{const c=t.LH*t.LV/1e6,d=t.solar_power*c*t.power_efficiency/100;o.logstr+=`panel surface: ${S(c)} m2
|
|
108
|
-
`,o.logstr+=`panel power: ${S(d)} W
|
|
109
|
-
`;const a=t.nx*t.ny;o.logstr+=`max panel number: ${a}
|
|
110
|
-
`,o.logstr+=`max panel surface: ${S(a*c)} m2
|
|
111
|
-
`,o.logstr+=`max panel power: ${S(a*d)} W
|
|
112
|
-
`;const h=t.main_direction===1?t.ny:t.nx,f=t.main_direction===1?t.nx:t.ny,r=t.main_direction===1?t.EV:t.EH,l=t.main_direction===1?t.EV_gradient:t.EH_gradient,_=t.main_direction===1?t.EV_sup:t.EH_sup,L=t.main_direction===1?t.EV_cycle:t.EH_cycle,D=t.main_direction===1?t.EV_start:t.EH_start,A=t.main_direction===1?t.EV_shape:t.EH_shape,w=t.main_direction===0?t.EV:t.EH,H=t.main_direction===0?t.EV_gradient:t.EH_gradient,k=t.main_direction===0?t.EV_sup:t.EH_sup,$=t.main_direction===0?t.EV_cycle:t.EH_cycle,P=t.main_direction===0?t.EV_start:t.EH_start,b=t.main_direction===0?t.EV_shape:t.EH_shape,V=Math.max(f,t.first_row,t.second_row),M=[];for(let O=0;O<h;O++){const E=(O+1)%2,F=t.crenel?f-E:f;M.push(F)}M[0]=t.first_row,M[M.length-1]=t.first_row,h>2&&(M[1]=t.second_row,M[M.length-2]=t.second_row);let G=0;M.forEach(O=>{G+=O}),o.logstr+=`actual panel number: ${G} (${S(100*G/a)} %)
|
|
113
|
-
`,o.logstr+=`actual panel surface: ${S(G*c)} m2
|
|
114
|
-
`,o.logstr+=`actual panel power: ${S(G*d)} W
|
|
115
|
-
`;const x=[];for(let O=0;O<h-1;O++){let E=r;if(l===1){const F=h>2?h-2:1,N=(D+O*L/F)%1;switch(A){case 0:E+=_*(1-Math.cos(N*2*Math.PI))/2;break;case 1:E+=_*(1-2*Math.abs(N-.5));break;case 2:E+=_*N;break;case 3:E+=_*(1-N);break;default:E+=_}}x.push(E)}let C=0;const Z=[];Z.push(0),x.forEach(O=>{C+=O,Z.push(C)});const m=[];for(let O=0;O<V-1;O++){let E=w;if(H===1){const F=V>2?V-2:1,N=(P+O*$/F)%1;switch(b){case 0:E+=k*(1-Math.cos(N*2*Math.PI))/2;break;case 1:E+=k*(1-2*Math.abs(N-.5));break;case 2:E+=k*N;break;case 3:E+=k*(1-N);break;default:E+=k}}m.push(E)}let R=0;const T=[];T.push(0),m.forEach(O=>{R+=O,T.push(R)});let q=0,Q=0;t.main_direction===0?(q=h*t.LH+C,Q=V*t.LV+R):(q=V*t.LH+R,Q=h*t.LV+C);const I=q*Q/10**6;o.logstr+=`global horizontal width: ${S(q/1e3)} m
|
|
116
|
-
`,o.logstr+=`global vertical height: ${S(Q/1e3)} m
|
|
117
|
-
`,o.logstr+=`global area: ${S(I)} m2
|
|
118
|
-
`,o.logstr+=`area efficiency: ${S(100*G*c/I)} %
|
|
119
|
-
`;const y=-q/2,Y=-Q/2;n=function(O,E){return U(O,E).addSegStrokeA(O+t.LH,E).addSegStrokeA(O+t.LH,E+t.LV).addSegStrokeA(O,E+t.LV).closeSegStroke()};const j=[];M.forEach((O,E)=>{const F=(V-O)%2,N=Math.floor((V-O)/2);for(let z=0;z<O;z++){let ct=0,st=0;t.main_direction===0?(ct=y+E*t.LH+Z[E],st=Y+(N+z)*t.LV+T[N+z],F===1&&(st+=(t.LV+T[N+z+1]-T[N+z])/2)):(st=Y+E*t.LV+Z[E],ct=y+(N+z)*t.LH+T[N+z],F===1&&(ct+=(t.LH+T[N+z+1]-T[N+z])/2)),j.push([ct,st])}});for(const O of j)g.addMain(n(O[0],O[1]));i.addMain(n(0,0)),o.fig={faceSurface:g,faceOnePanel:i};const X=o.partName;o.vol={extrudes:j.map((O,E)=>({outName:`subpax_${X}_panel_${E}`,face:`${X}_faceOnePanel`,extrudeMethod:p.eLinearOrtho,length:t.LZ,rotate:[0,0,0],translate:[O[0],O[1],0]})),volumes:[{outName:`pax_${X}`,boolMethod:nt.eUnion,inList:j.map((O,E)=>`subpax_${X}_panel_${E}`)}]},o.sub={},o.logstr+=`panel-surface drawn successfully!
|
|
120
|
-
`,o.calcErr=!1}catch(c){o.logstr+=c,console.log(c)}return o}var _o={pTitle:"Heliostat panel-surface",pDescription:"The surface collecting the solar power",pDef:fe,pGeom:uo};const Se={"gear/gear_wheel_wheel":Jt,"gear/simplified_gear_wheel":Te,"heliostat/heliostat":We,"heliostat/heliostat_2":Xe,"heliostat/base":Ze,"heliostat/pole_static":At,"heliostat/vaxis":Qe,"heliostat/ring":eo,"heliostat/vaxis_holder":Mt,"heliostat/ring_guidance":so,"heliostat/vaxis_guidance":no,"heliostat/rake":Rt,"heliostat/rake_stopper":pt,"heliostat/haxis_guidance":co,"heliostat/spider":Gt,"heliostat/swing":Nt,"heliostat/rod":go,"heliostat/trapeze":ho,"heliostat/surface":_o};function fo(s){const t=/^.*\//g;return s.replace(t,"")}function So(s){const t={};for(const u of Object.keys(s)){const o=fo(u);t[o]=`/${u}`}return t}function Lo(s){const t=[];for(const u of Object.keys(s))t.push(u);return t}const Po=So(Se),xo=Lo(Se);export{Se as a,Po as b,xo as d};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var s;const a=((s=globalThis.__sveltekit_1novllp)==null?void 0:s.base)??"";var l;const e=((l=globalThis.__sveltekit_1novllp)==null?void 0:l.assets)??a;export{e as a,a as b};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as t}from"../chunks/entry.BFaAd9jL.js";export{t as start};
|