The formulas for Forces and Energy > Linear Mechanics show up as syntax errors for all but F=m*a. This seems to happen in a few other places (e.g. Fluids > Flow in Full Pipes)
There is a bug in your PutIt() command.
This creates a CAS program named lst. You can (partially) fix the issue with:
You'll have to force a redraw of the Symb view. Also, keep in mind that the equations list is extremely volatile, especially when users start using the CAS and modify and/or delete the variables used in the system.
I took the liberty of removing unnecessary local variables once you convert a formula such as 'F=m*a' over to "F=m*a" (since both can be stored into E0 through E9). Also, there are a few places that you did not reset all the E0-E9's (e.g. check the Fluids section) and some systems don't have all their variables declared. Some of these I fixed where I saw them.
Lastly, to speed up debugging and overall performance (though probably not noticeable to the user), you may want to use CASE blocks so that your program does not actually run through the entire list of IF THEN END statements (i.e. exit CASE as soon as an IF statement is true).
Code:
#pragma mode( separator(.,;) integer(h32) )
SUBSS();
PUTMENSU();
PuTt(lst);
mSEL;
me0;
run;
m1m;
AmA;
BmBB:=0;
mTXTs := {
{"EΩ","C_&B_","Fluids","Forces","Gases","1► 2"},
{"Heat","Magnet","Motion","Optics","Oscill","2► 3"},
{"Geom","SSD","Stress","Waves","","3► 1"}
};
eqme:={
{
"Coulomb's Law" ,"Capacitor Charge" ,"Ohm's Law and Power", "DC Inductor Voltage",
"Voltage Divider","RC Transient","Current Divider","RL Transient","Wire Resistance",
"Resonant Frequency","Plate Capacitor","Series and Parallel Resistors",
"Series and Parallel Capacitors","Series and Parallel Inductors",
"Cylindrical Capacitor","Solenoid Inductance","Capacitance Energy","Toroid Inductance",
"Inductive Energy","Sinusoidal Voltage","RLC Current Delay","Sinusoidal Current",
"DC Capacitor Current"
},
{
"Elastic Buckling", "Eccentric Columns","Cantilever Deflection","Simple Deflection",
"Cantilever Slope","Simple Slope","Cantilever Moment","Simple Moment",
"Cantilever Shear","Simple Sheer"
},
{
"Pressure at Depth","Flow with Losses","Bernoulli Equation","Flow in Full Pipes"
},
{
"Linear Mechanics","1D Elastic Collisions","Angular Mechanics","Drag Force",
"Centripetal Force","Law of Gravitation","Hooke’s Law","Mass Energy Relation"
},
{
"Ideal Gas Law","Isentropic Flow","Ideal Gas State Change","Real Gas Law",
"Isothermal Expansion","Real Gas State Change","Polytropic Processes",
"Kinetic Theory"
},
{
"Heat Capacity","Convection","Thermal Expansion","Conduction","Black Body Radiation",
"Convection+Conduction"
},
{
"Straight Wire","B Field in Solenoid","Force Between Wires","B Field in Toroid"
},
{
"Linear Motion","Circular Motion","Object in Free Fall","Terminal Velocity",
"Projectile Motion","Escape Velocity","Angular Motion"
},
{
"Law of Refraction","Critical Angle","Brewster’s Law","Spherical Reflection",
"Spherical Refraction","Thin Lens"
},
{
"Mass-Spring System","Torsional Pendulum","Simple Pendulum","Simple Harmonic",
"Conical Pendulum"
},
{
"Circle","Regular Polygon","Ellipse","Circular Ring","Rectangle","Triangle",
"Cone","Parallelepiped","Cylinder","Sphere"
},
{
"PN Step Junctions","Bipolar Transistors","NMOS Transistors","JFETs"
},
{
"Normal Stress","Stress on an Element","Shear Stress","Mohrs Circle"
},
{
"Transverse Waves","Sound Waves","Longitudinal Waves"
}
};
EXPORT toshLib()
BEGIN
AmA:=1;
run:=1;
DIMGROB_P(G1,320,224);
BLIT_P(G1,G0,0,0,320,224);
WHILE run DO
BLIT_P(0,0,320,224,G1);
LOCAL me0,m1m,mx,my, mTXT;
WHILE MOUSE(1)≥0 DO
IF GETKEY==4 THEN run:=0; CONTINUE(2); END;
END;
mTXT := mTXTs[AmA];
PUTMENSU(mTXT);
REPEAT
me0:=MOUSE;
m1m:=me0[1];
IF GETKEY==4 THEN run:=0; CONTINUE(2); END;
UNTIL SIZE(m1m)>0;
mx:=m1m[1];
my:=m1m[2];
IF my≥220 AND my≤239 THEN
CASE
IF mx≥0 AND mx≤51 THEN mSEL:=78; END;
IF mx≥53 AND mx≤104 THEN mSEL:=79; END;
IF mx≥106 AND mx≤157 THEN mSEL:=73; END;
IF mx≥159 AND mx≤210 THEN mSEL:=75; END;
IF mx≥212 AND mx≤263 THEN mSEL:=77; END;
IF mx≥265 AND mx≤319 THEN
mSEL:=0; AmA:=AmA+1;
IF AmA>size(mTXTs) THEN AmA:=1; END;
END;
END;
IF mSEL<>0 THEN SUBSS(mSEL,AmA); END;
END;
END;
END;
PUTMENSU(mTXT)
BEGIN
DRAWMENU(mTXT[1],mTXT[2],mTXT[3],mTXT[4],mTXT[5],mTXT[6]);
END;
PuTt(lst)
BEGIN
LOCAL aa;
FOR aa FROM 1 TO size(lst) DO
CAS.expr(EVAL(lst[aa] +":=" +0));
END;
END;
RESETSYMB()
BEGIN
STARTAPP("Solve");
UNCHECK({0,1,2,3,4,5,6,7,8,9});
""▶E2; ""▶E3; ""▶E4; ""▶E5;
""▶E6; ""▶E7; ""▶E8; ""▶E9; ""▶E0;
run:=0;
END;
SUBSS(mSEL,AmA)
BEGIN
LOCAL ch,cih;
IF mSEL ==78 AND AmA==1 THEN
CHOOSE(ch,"Electricity",eqme[1]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"q1","q2","r", "ξr"});
"F=(q1*q2)/(4*π*r^2*ξr*8.85418781762ᴇ−12)"▶E1;
END;
IF ch==2 THEN
PuTt({"q"});
"q=C*V"▶E1;
END;
IF ch==3 THEN
"V=I*R"▶E1; "P=I*V"▶E2; "P=I^2*R"▶E3; "P=V^2/R"▶E4;
END;
IF ch==4 THEN
PuTt({"∆t","∆I","ti","tf","lf","li"});
"V=-L*(∆I/∆t)"▶E1; "∆I=(-lf-li)"▶E2; "∆t=(tf-ti)"▶E3;
END;
IF ch==5 THEN
PuTt({"R1","R2", "Vs","v1"});
"v1=(Vs*R1)/(R1+R2)"▶E1;
END;
IF ch==6 THEN
PuTt({"vf","vi","t"});
"V=vf-(vf-vi)*e^(-t/(R*C))"▶E1;
END;
IF ch==7 THEN
PuTt({"R1","R2","Is","I2"});
"I2=(Is*R1)/(R1+R2)"▶E1;
END;
IF ch==8 THEN
PuTt({"vf","vi","t"});
"I=(1/R)*(vf-(vf-vi)*e^((-R*t)/L))"▶E1;
END;
IF ch==9 THEN
PuTt({"ρ"});
"R=ρ*(L/A)"▶E1;
END;
IF ch==10 THEN
PuTt({"ɷ0","fo","Qs","Qp"});
"Qs=(1/R)*(√(L/C))"▶E1; "Qp=(R)*(√(C/L))"▶E2; "ɷ0=2*π*fo"▶E3; "ɷ0=(1/√(C*L))"▶E4;
END;
IF ch==11 THEN
PuTt({"d","ξr"});
"C=(ξr*8.85418781762ᴇ−12*A)/d"▶E1;
END;
IF ch==12 THEN
PuTt({"R1","R2","Req"});
CHOOSE(cih,"Resistors","Series","Parallel");
IF cih==1 THEN "R1+R2=Rs"▶E1; END;
IF cih==2 THEN "(R1+R2)=Rp"▶E1; END;
END;
IF ch==13 THEN
PuTt({"c1","c2","Ceq"});
CHOOSE(cih,"Capacitors","Series","Parallel");
IF cih==1 THEN "(c1+c2)=Cs"▶E1; END;
IF cih==2 THEN "c1+c2=Cp"▶E1; END;
END;
IF ch==14 THEN
PuTt({"Ll1","Ll2","Leq"});
CHOOSE(cih,"Inductors","Series","Parallel");
IF cih==1 THEN "Ls=Ll1+Ll2=Ls"▶E1; END;
IF cih==2 THEN "(Ll1+Ll2)=Lp"▶E2; END;
END;
IF ch==15 THEN
PuTt({"ro","ri","ξr"});
"C=(2*π*L*ξr*8.85418781762ᴇ−12)/ln(ro/ri)"▶E1;
END;
IF ch==16 THEN
PuTt({"h","n","µr"});
"L=(n^2*A*h*µr*1.25663706144ᴇ−6)"▶E1;
END;
IF ch==17 THEN
"E=(C*V^2)/2"▶E1;
END;
IF ch==18 THEN
PuTt({"ri","ro","µr","h"});
"L=(h*N^2*µr*1.25663706144ᴇ−6/(2*π))*ln(ro/ri)"▶E1;
END;
IF ch==19 THEN
"E=(L*I^2)/2"▶E1;
END;
IF ch==20 THEN
PuTt({"ɷ","t", "f", "Vmax","φ"});
"V=Vmax*sin(ɷ*t+φ)"▶E1; "ɷ=2*π*f"▶E2;
END;
IF ch==21 THEN
PuTt({"Φs","Φp","f","ɷ","XC","XL"});
"TAN(Φs)=(XL-XC)/R"▶E1; "TAN(Φp)=(-(XL)+(XC))/R"▶E2;
"XC=1/(ɷ*C)"▶E3; "XL=ɷ*L"▶E4; "ɷ=2*π*f"▶E5;
END;
IF ch==22 THEN
PuTt({"ɷ","t", "f" ,"Imax"});
"I=Imax*sin(ɷ*t+φ)"▶E1; "ɷ=2*π*f"▶E2;
END;
IF ch==23 THEN
PuTt({"∆v","∆t","vf","vi", "tf","ti"});
"I=C*(∆v/∆t)"▶E1; "∆v=(-vf-vi)"▶E2; "∆t=(tf-ti)"▶E3;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==79 AND AmA==1 THEN
CHOOSE(ch,"Columns & Beams",eqme[2]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"Pcr","r","σcr"});
"Pcr=(E*A*π^2)/(K*L/r)^2"▶E1; "Pcr=(E*I*π^2)/(K*L)^2"▶E2; "σcr=(Pcr)/A"▶E3; "r=√(I/A)"▶E4;
END;
IF ch==2 THEN
PuTt({"c","r","Є","σmax"});
"σmax=P*(c*Є/(r^2*cos(1/2*K*L*√(P/(A*E))/r))+1)/A"▶E1; "r=√(I/A)"▶E2;
END;
IF ch==3 THEN
PuTt({"y","a","w","x"});
"y=-w*x^2*(-4*L*x+6*L^2+x^2)/(24*E*I)+P*x^2*(-3*a+x)/(6*E*I)+M*x^2/(2*E*I)"▶E1;
END;
IF ch==4 THEN
PuTt({"a","w","x","y"});
"y=((P*(L-a)*x/(6*L*E*I))*(x^2+(L-a)^2-L^2)-(M*x/(E*I))*(c-(x^2/(6*L))-(L/3)-(c^2/(2*L)))-(w*x/(24*E*I))*(L^3+x^2*(x-2*L)))"▶E1;
END;
IF ch==5 THEN
PuTt({"a","w","x","Θ"});
"Θ=(P*x/(2*E*I))*(x-2*a)+(M*x/(E*I))-(w*x/(6*E*I))*(3*L^2-3*L*x+x^2)"▶E1;
END;
IF ch==6 THEN
PuTt({"a","w","x","Θ","c"});
"Θ=(P*(L-a)/(6*L*E*I))*(3*x^2+(L-a)^2-L^2)-(M/(E*I))*(c-(x^2/(2*L))-(L/3)-(c^2/(2*L)))-(w/(24*E*I))*(L^3+x^2*(4*x-6*L))"▶E1;
END;
IF ch==7 THEN
PuTt({"a","w","x","Mx"});
"Mx=P*(x-a)+M-(W/2)*(L^2-2*L*x+x^2)"▶E1;
END;
IF ch==8 THEN
PuTt({"a","w","x","Mx"});
"Mx=(P*(L-a)*x/L)+(M*x/L)+(w*x/2)*(L-x)"▶E1;
END;
IF ch==9 THEN
PuTt({"x","w"});
"V=P+w*(L-x)"▶E1;
END;
IF ch==10 THEN
PuTt({"a","w","x"});
"V=(P*(L-a)/L)+(M/L)+(w/2)*(L-2*x)"▶E1;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==73 AND AmA==1 THEN
CHOOSE(ch,"Fluids",eqme[3]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"P0","ρ","h"});
"P=P0+ρ*9.80665*h"▶E1;
END;
IF ch==2 THEN
PuTt({"∆P","ρ","v1","v2","∆y","hL","A1","A2","y2","y1","D2","D1","P2","P1"});
"W=M*((∆P/ρ)+((v2^2-v1^2)/2)+9.80665*∆y+hL)"▶E1; "W=M*((∆P/ρ)+((v2^2)*(1-(A2/A1)^2)/2)+9.80665*∆y+hL)"▶E2;
"W=ρ*Q*((∆P/ρ)+((v1^2)*(1-(A1/A2)^2)/2)+9.80665*∆y+hL)"▶E3; "ρ*Q=M"▶E4;
"A1=(π*D1^2)/4"▶E5; "A2=(π*D2^2)/4"▶E6; "Q=A1*v1"▶E7; "Q=A2*v2"▶E8; "∆P=P2-P1"▶E9; "∆y=y2-y1"▶E0;
END;
IF ch==3 THEN
PuTt({"∆P","ρ","v1","v2","∆y","hL","A1","A2","y2","y1","D2","D1","P2","P1"});
"0=((∆P/ρ)+((v2^2-v1^2)/2)+9.80665*∆y+hL)"▶E1; "0=((∆P/ρ)+((v2^2)*(1-(A2/A1)^2)/2)+9.80665*∆y)"▶E2;
"0=((∆P/ρ)+((v1^2)*(1-(A1/A2)^2)/2)+9.80665*∆y)"▶E3; "ρ*Q=M"▶E4;
"A1=(π*D1^2)/4"▶E5; "A2=(π*D2^2)/4"▶E6; "Q=A1*v1"▶E7; "Q=A2*v2"▶E8; "∆P=P2-P1"▶E9; "∆y=y2-y1"▶E0;
END;
IF ch==4 THEN
PuTt({"∆P","ρ","ΣK","vavg","f","∆y","µ","Ren","n"});
"W=(1/4*D^2*π*ρ*vavg*(vavg^2*(2*L*f/D+1/2*ΣK)+9.80665*∆y+∆P/ρ))"▶E1;
"Ren=D*vavg*ρ/µ"▶E2; "n=ρ/µ"▶E3; "A=(π*D^2)/4"▶E4; "Q=A*vavg"▶E5;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==75 AND AmA==1 THEN
CHOOSE(ch,"Forces and Energy",eqme[4]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"a","m","vi","vf","Ki","Kf","x","v","t","Pavg"});
"m*a=F"▶E1; "Ki=m*vi/2"▶E2; "Kf=m*vf/2"▶E3; "W=F*x"▶E4; "Kf-Ki=W"▶E5; "W=F*v"▶E6; "Pavg=W/t"▶E7; "vf=vi+a*t"▶E8;
END;
IF ch==2 THEN
PuTt({"m1","m2","v1i","v2f"});
"v1f=((m1-m2)/(m1+m2))*v1i"▶E1; "v2f=((2*m2)/(m1+m2))*v1i"▶E2;
END;
IF ch==3 THEN
PuTt({"α","ɷf","ɷi","τ","at","Ki","Kf","Θ","r","t","Pavg","ɷ"});
"I*α=τ"▶E1; "Ki=I*ɷi/2"▶E2; "Kf=I*ɷf/2"▶E3; "W=r*Θ"▶E4; "Kf-Ki=W"▶E5; "P=ɷ*τ"▶E6; "Pavg=W/t"▶E7; "ɷf=ɷi+α*t"▶E8; "at=α*r"▶E9; "2*π*N=ɷ"▶E0;
END;
IF ch==4 THEN
PuTt({"ρ","v","Cd"});
"F=Cd*(ρ*v^2/2)*A"▶E1;
END;
IF ch==5 THEN
PuTt({"ɷ","r","m","v","ar"});
"F=m*ɷ^2*r"▶E1; "ɷ=v/r"▶E2; "ar=v^2/r"▶E3; "2*π*N=ɷ"▶E4;
END;
IF ch=6 THEN
PuTt({"m1","m2","r"});
"F=6.67384ᴇ−11*(m1*m2/r^2)"▶E1;
END;
IF ch==7 THEN
PuTt({"k","x"});
"F=-k*x"▶E1; "W=-k*x^2/2"▶E2;
END;
IF ch==8 THEN
PuTt({"m"});
"E=m*299792458^2"▶E1;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==77 AND AmA==1 THEN
CHOOSE(ch,"Gases",eqme[5]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"MW","m","n"});
"P*V=n*8.3144621*T"▶E1; "m=n*MW"▶E2;
END;
IF ch==2 THEN
PuTt({"P0","At","T0","ρ0","ρ","k"});
"(A/At)=((2/(k+1)*(1/2*M^2*(k-1)+1))^((k+1)/(2*(k-1)))/M)"▶E1; "(T/T0)=(2/(2+(k-1)*M^2))"▶E2;
"(P/P0)=((T/T0)^(k/(k-1)))"▶E3; "(ρ/ρ0)=((T/T0)^(1/(k-1)))"▶E4;
END;
IF ch==3 THEN
PuTt({"Pf","Vf","Tf","Pii","Vi","Ti"});
"Pf*Vf/Tf=Vi*Pii/Ti"▶E1;
END;
IF ch==4 THEN
PuTt({"MW","m","n"});
"P*V=n*Z*R*T"▶E1; "m=n*MW"▶E2;
END;
IF ch==5 THEN
PuTt({"Vf","Vi","h"});
"W = (8.3144621*T*n*ln(Vf/Vi))"▶E1;
END;
IF ch=6 THEN
PuTt({"Pf","Vf","Tf","Zf","Pii","Vi","Ti","Zi"});
"(Pf*Vf/(Tf*Zf))=(Vi*Pii/(Ti*Zi))"▶E1;
END;
IF ch==7 THEN
PuTt({"Pf","Vf","Tf","Zf","Pii","Vi","Ti","n"});
"Pf/Pii=(Vf/Vi)^(-n)"▶E1; "Tf/Ti=(Pf/Pii)^((n-1)/n)"▶E2;
END;
IF ch==8 THEN
PuTt({"λ","d","n","vrms","MW","n","m"});
"λ=1/(√2*d^2*π*6.02214129e23*n/V)"▶E1; "P=n*MW*vrms^2/(3*V)"▶E2; "vrms=√(3*8.3144621*T/MW)"▶E3; "m=n*MW"▶E4;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==78 AND AmA==2 THEN
CHOOSE(ch,"Heat Transfer",eqme[6]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"m","c","ΔT"});
"Q=m*c*ΔT"▶E1; "Q=m*c*(Tf-Ti)"▶E2;
END;
IF ch==2 THEN
PuTt({"q","ΔT","h","Th","Tc"});
"q=h*A*ΔT"▶E1; "q=h*A*(Th-Tc)"▶E2;
END;
IF ch==3 THEN
PuTt({"δ","ΔT","α","Tf","Ti"});
"δ=α*L*ΔT"▶E1; "δ=α*L*(Tf-Ti)"▶E2;
END;
IF ch==4 THEN
PuTt({"k","q","ΔT"});
"q=(k*A/L)*ΔT"▶E1; "q=(k*A/L)*(Th-Tc)"▶E2;
END;
IF ch==5 THEN
PuTt({"eb","f","λ2","λ1","eb12","λmax","c3","q"});
"eb =σ*T^4"▶E1; "eb12=f*eb"▶E1; "λmax*T=c3"▶E1; "q=eb*A"▶E1;
END;
IF ch=6 THEN
PuTt({"q","ΔT","h1","Th","Tc","L11","L21","L31","k1","k2","k3","h2"});
"q=(A*ΔT)/(1/h1+L11/k1+L21/k2+L31/k3+1/h3)"▶E1;
"q=(A*(Th-Tc))/(1/h1+L11/k1+L21/k2+L31/k3+1/h3)"▶E1; "U=q/(A*ΔT)"▶E1; " U=q/(A*(Th-Tc))"▶E1;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==79 AND AmA==2 THEN
CHOOSE(ch,"Magnetism",eqme[7]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"µr","r"});
"B = I*1.25663706144e−6*µr/(2*π*r)"▶E1;
END;
IF ch==2 THEN
PuTt({"µr","n"});
"B = 1.25663706144e−6*µr*I*n"▶E1;
END;
IF ch==3 THEN
PuTt({"Ia","Ib","µr","d","Fba"});
"Fba=(1.25663706144e−6*µr*L*Ib*Ia/(2*π*d))"▶E1;
END;
IF ch==4 THEN
PuTt({"ri","µr","ro"});
"B=(1.25663706144e−6*µr*I*N/(2*π))*(2/(ro+ri))"▶E1;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==73 AND AmA==2 THEN
CHOOSE(ch,"Motion",eqme[8]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"v0","x","x0","a","t","v"});
"x=x0+v0*t+(1/2)*a*t^2"▶E1; "x=x0+v*t+(1/2)*a*t^2"▶E2; "x=x0+(1/2)*(v0+v)*t"▶E3; "v=v0+a*t"▶E4;
END;
IF ch==2 THEN
PuTt({"ar","v","r","ɷ"});
"ɷ=v/r"▶E1; "ar=v^2/r"▶E2; "ɷ==2*π*N"▶E3;
END;
IF ch==3 THEN
PuTt({"y","y0","v0","t","v"});
"y=y0+v0*t+(1/2)*9.80665*t^2"▶E1; "y=y0+v*t+(1/2)*9.80665*t^2"▶E2; "v^2=v0^2+2*9.80665*(y+y0)"▶E3; "v=v0+9.80665*t"▶E4;
END;
IF ch==4 THEN
PuTt({"v","m","Cd","ρ"});
"v=√(2*m*9.80665/(Cd*ρ*A ))"▶E1;
END;
IF ch==5 THEN
PuTt({"x0","x","v0","θ0","t","y0","y","vx","vy"});
"x=x0+v0*COS(θ0)*t"▶E1; "y=y0+v0*SIN(θ0)*t-(1/2)*9.80665*t^2"▶E1; "vx =v0*COS(θ0)"▶E1;
"vy =v0*SIN(θ0)-9.80665*t"▶E1; "R=(v0^2)/9.80665*SIN(2*θ0)"▶E1;
END;
IF ch=6 THEN
PuTt({"v"});
"v=√(2*6.67384ᴇ−11*M/R)"▶E1;
END;
IF ch==7 THEN
PuTt({"θ0","ɷ0","t","α","ɷ"});
"θ=θ0+ɷ0*t+(1/2)*α*t^2"▶E1; "θ=θ0+ɷ*t+(1/2)*α*t^2"▶E1; "θ=θ0+(1/2)*(ɷ0+ɷ)*t"▶E1; "ɷ=ɷ0+α*t"▶E1;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==75 AND AmA==2 THEN
CHOOSE(ch,"Optics",eqme[9]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"θ1","θ2","n1","n2"});
"(n1*sin(θ1))=(n2*sin(θ2))"▶E1;
END;
IF ch==2 THEN
PuTt({"θc","n1","n2"});
"sin(θc)=(n1/n2)"▶E1;
END;
IF ch==3 THEN
PuTt({"θb","n1","n2"});
"TAN(θb)=(n2/n1)"▶E1; "θb+θ2=90"▶E2;
END;
IF ch==4 THEN
PuTt({"m","r"});
"1/F=(1/U)+(1/V)"▶E1; "F=r/2"▶E2; "m=-V/U"▶E3;
END;
IF ch==5 THEN
PuTt({"n1","n2","r"});
"(n1/U)+(n2/V)=(n2-n1)/r"▶E1;
END;
IF ch==6 THEN
PuTt({"n","r1","r2","m"});
"1/F=(1/U)+(1/V)"▶E1; "1/F=(n-1)*(1/r1-1/r2)"▶E2; "m=-V/U"▶E3;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==77 AND AmA==2 THEN
CHOOSE(ch,"Oscillations",eqme[10]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"ω","k","m","f"});
"ω=√(k/m)"▶E1; "T=(2*π/ω)"▶E2; "ω=2*π*f"▶E3;
END;
IF ch==2 THEN
PuTt({"ω","f","Im"});
"ω=√(G*J/(L*Im))"▶E1; "T=(2*π/ω)"▶E2; "ω=2*π*f"▶E3;
END;
IF ch==3 THEN
PuTt({"ω","f"});
"ω=√(9.80665/L)"▶E1; "T=(2*π/ω)"▶E2; "ω=2*π*f"▶E3;
END;
IF ch==4 THEN
PuTt({"ω","f","a","v","x","xm","t","φ"});
"x=(xm*cos(t*ω+φ))"▶E1; "v=(-ω*xm*sin(t*ω+φ))"▶E2; "ω=2*π*f"▶E3; "a=(-(ω^2)*xm*cos(t*ω+φ))"▶E4;
END;
IF ch==5 THEN
PuTt({"h","ω","f"});
"ω=√(9.80665/h)"▶E1; "h=L*cos(θ)"▶E2; "ω=2*π*f"▶E3; "T=2*π/ω"▶E4;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==78 AND AmA=3 THEN
CHOOSE(ch,"Geometry",eqme[11]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"r","Id","d"});
"A=π*r^2"▶E1; "C=2*π*r"▶E2; "I=π*r^4/4"▶E3; "J=π*r^4/2"▶E4; "Id=I+A*d^2"▶E5;
END;
IF ch==2 THEN
PuTt({"b","d","h","Id"});
"A=π*b*h"▶E1; "C=2*π*√((b^2+h^2)/2)"▶E2; "I=π*b*h^3/4"▶E3; "J=(π*b*h/4)*(b^2+h^2)"▶E4; "Id=I+A*d^2"▶E5;
END;
IF ch==3 THEN
PuTt({"b","d","h","Id"});
"A=π*b*h"▶E1; "C=2*π*√((b^2+h^2)/2)"▶E2; "I=π*b*h^3/4"▶E3; "J=(π*b*h/4)*(b^2+h^2)"▶E4; "Id=I+A*d^2"▶E5;
END;
IF ch==4 THEN
PuTt({"ro","ri","h","Id"});
"A=π*(ro^2-ri^2)"▶E1; "I=π*((ro^4-ri^4)/4)"▶E2; "J=π*((ro^4-ri^4)/2)"▶E3; "Id=I+A*d^2"▶E4;
END;
IF ch==5 THEN
PuTt({"b","d","h","Id"});
"A =b*h"▶E1; "P=2*b+2*h"▶E2; "I =(b*h^3)/12"▶E3; "J=(b*h)/12*(b^2+h^2)"▶E4; "Id =I+A*d^2"▶E5;
END;
IF ch=6 THEN
PuTt({"b","d","h","Id","v","Ix"});
"A =(b*h)/2"▶E1; "P=b+√(v^2+h^2)+√((b-v)^2+h^2)"▶E2; "Ix =(b*h^3)/36"▶E3;
"Iy =(b*h)/36*(b^2-b*v+v^2)"▶E4; "J=(b*h)/36*(h^2+b^2-b*v+v^2)"▶E5; "Id=Ix+A*d^2"▶E6;
END;
IF ch==7 THEN
PuTt({"r","d","h","Id","v","Ixx","m","Izz"});
"V =π/3*r^2*h"▶E1; "A=π*r^2+π*r*√(r^2+h^2 )"▶E2; "Ixx =3/20*m*r^2+3/80*m*h^2"▶E3;
"Izz =3/10*m*r^2"▶E4; "Id =Ixx+m*d^2"▶E5;
END;
IF ch==8 THEN
PuTt({"b","t","h","Id","m","d"});
"V =b*h*t"▶E1; "A =2*(b*h+b*t+h*t)"▶E2; "I =1/12*m*(h^2+t^2)"▶E3; "Id =I+m*d^2"▶E4;
END;
IF ch==9 THEN
PuTt({"r","d","h","Id","v","Ixx","m","Izz"});
"V=π*r^2*h"▶E1; "A=2*π*r^2+2*π*r*h"▶E2; "Ixx=1/4*m*r^2+1/12*m*h^2"▶E3; "Izz =1/2*m*r^2"▶E4; "Id =Ixx+m*d^2"▶E5;
END;
IF ch==10 THEN
PuTt({"r","d","h","Id","v","Ixx","m"});
"V=4/3*π*r^3"▶E1; "A=4*π*r^2"▶E2; "I=2/5*m*r^2"▶E3; "Id=I+m*d^2"▶E4;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==79 AND AmA==3 THEN
CHOOSE(ch,"Solid State Devices",eqme[12]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"Vbi","NA","ND","xd","Va","Cj","Emax","BV","Js","Aj","ΔW","ΔL","xj","Cj"});
"Vbi =(1.3806488ᴇ−23*T)/1.602176565ᴇ−19* LN((NA*ND)/(8.72ᴇ15^2))"▶E1;
"xd =√((2*1.0341691371ᴇ−10*8.85418781762ᴇ−12/1.602176565ᴇ−19)*(Vbi-Va)*(1/NA+1/ND))"▶E2;
"Cj =(1.0341691371ᴇ−10*8.85418781762ᴇ−12)/xd"▶E3; "Emax =(2*(Vbi-Va))/xd"▶E4;
"BV =(1.0341691371ᴇ−10*8.85418781762ᴇ−12*E1^2)/(2*1.602176565ᴇ−19)*(1/NA+1/ND)"▶E5;
"J=Js*(e^(Va*1.602176565ᴇ−19/(T*1.3806488ᴇ−23))-1)"▶E6; "Aj =(W+2*ΔW)*(L+2*ΔL)+π*(W+L+2*ΔW+2*ΔL)*xj+2*π*xj^2"▶E7;
"I =J*Aj"▶E8;
END;
IF ch==2 THEN
PuTt({"IE","VBE","αR","ICS","IC","ICS","VBC","IES","αF","IS","IB","ICO","ICEO","VCEsat","Cj"});
"IE=-IES*(e^((1.602176565ᴇ−19*VBE)/(1.3806488ᴇ−23*T))-1)+αR*ICS*(e^((1.602176565ᴇ−19*VBE)/(1.3806488ᴇ−23*T))-1)"▶E1;
"IC=-ICS*(e^((1.602176565ᴇ−19*VBC)/(1.3806488ᴇ−23*T))-1)+αF*IES*(e^((1.602176565ᴇ−19*VBE)/(1.3806488ᴇ−23*T))-1)"▶E2;
"IS=αR*IES"▶E3; "IS =αR*ICS"▶E4; "IB+IE+IC=0"▶E5; "ICO=ICS*(1-αF*αR)"▶E6; "ICEO=ICO/(1-αF)"▶E7;
"VCEsat=(1.3806488ᴇ−23*T)/1.602176565ᴇ−19*LN((1+IC/IB*(1-αR))/(αR*(1-IC/IB*((1-αF)/αF))))"▶E8;
END;
IF ch==3 THEN
PuTt({"We","ΔW","Le","ΔL","Cox","tox","IDS","μn","VGS","Vt","VDS","λ","ˠ","NA","Vt0","φp","VBS","gds","gm","VDsat"});
"We =W-2*ΔW"▶E1; "Le =L-2*ΔL"▶E2; "Cox=(3.9000217424*8.85418781762ᴇ−12)/tox"▶E3;
"IDS =Cox*μn*(We/Le)*((VGS-Vt)*VDS-(VDS^2)/2)*(1+λ*VDS)"▶E4;
"ˠ=(√(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12*1.602176565ᴇ−19*NA))/Cox"▶E5;
"Vt=Vt0+ˠ*(√(2*ABS(φp)-ABS(VBS))-√(2*ABS(φp)))"▶E6;
"φp=(-1.3806488ᴇ−23*T)/1.602176565ᴇ−19*LN(NA/8.72ᴇ15)"▶E7; "gds=IDS*λ"▶E8;
"gm =√(Cox*μn*(We/Le)*(1+λ*VDS)*2*IDS)"▶E9; "VDsat=VGS-Vt"▶E0;
END;
IF ch==4 THEN
PuTt({"Vbi","ND","xdmax","VGS","VDS","GO","μn","a","ID","VDsat","Vt","gm"});
"Vbi =(1.3806488ᴇ−23*T)/1.602176565ᴇ−19*LN(ND/8.72ᴇ15)"▶E1;
"xdmax =√(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12/1.602176565ᴇ−19*ND*(Vbi-VGS+VDS))"▶E2;
"GO =1.602176565ᴇ−19*ND*μn*((a*W)/L)"▶E3;
"ID=G0*(VDS-(2/3*√(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12/(1.602176565ᴇ−19*ND*a^2 )))*(((Vbi-VGS+VDS)^(3/2)-(Vbi-VGS)^(3/2))))"▶E4;
"VDsat=(1.602176565ᴇ−19*ND*a^2)/(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12)-(Vbi-VGS)"▶E5;
"Vt=Vbi-(1.602176565ᴇ−19*ND*a^2)/(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12)"▶E6;
"gm =G0*(1-√(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12/(1.602176565ᴇ−19*ND*a^2)*(Vbi-VGS)))"▶E7;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==73 AND AmA==3 THEN
CHOOSE(ch,"Stress Analysis",eqme[13]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"Є","σ","δ"});
"σ=E*Є"▶E1; "Є=δ/L"▶E2; "σ=P/A"▶E3;
END;
IF ch==2 THEN
PuTt({"σy1","σx1","σx","σy","τxy","σ1","σ2","τx1y1"});
"σx1=(σx+σy)/2+(σx-σy)/2*COS(2*θ)+τxy*SIN(2*θ)"▶E1; "σx1+σy1=σx+σy"▶E2; "τx1y1=-((σx-σy)/2)*SIN(2*θ)+τxy*COS(2*θ)"▶E3;
END;
IF ch==3 THEN
PuTt({"τ","ˠ","ф","r"});
"τ=G*ˠ"▶E1; "ˠ=r*ф/L"▶E2; "τ=(T*r)/J"▶E3;
END;
IF ch==4 THEN
PuTt({"σx","σy","τxy","σ1","σ2","θp1","θp2","τmax","θs","σavg"});
"σ1=(σx+σy)/2+√((σx-σy)/2+τxy^2 )"▶E1; "σ1+σ2=σx+σy"▶E2; "SIN(2*θp1)=τxy/√(((σx-σy)/2)^2+τxy^2)"▶E3; "θp2 =θp1+90"▶E4;
"τmax=(σ1-σ2)/2"▶E5; "θs=θp1-45"▶E6; "σavg=(σx+σy)/2"▶E7;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
IF mSEL ==75 AND AmA==3 THEN
CHOOSE(ch,"Waves",eqme[14]);
IF ch THEN RESETSYMB(); END;
CASE
IF ch==1 THEN
PuTt({"ym","y","k","t","v","f","k","ω","λ"});
"y=ym*SIN(k*x-ω*t)"▶E1; "v=λ*f"▶E2; "k=(2*π)/λ"▶E3; "ω=2*π*f"▶E4;
END;
IF ch==2 THEN
PuTt({"v","ρ","ω","sm","β","f"});
"v=√(B/ρ)"▶E1; "I=(1/2)*ρ*v*ω^2*sm^2"▶E2; "β=10*LOG(I/10)"▶E3; "ω=2*π*f"▶E1;
END;
IF ch==3 THEN
PuTt({"ym","y","k","t","v","f","k","ω","λ"});
"y=ym*COS(k*x-ω*t)"▶E1; "v=λ*f"▶E2; "k=(2*π)/λ"▶E3; "ω=2*π*f"▶E4;
END;
END;
IF ch THEN CHECK(1); STARTVIEW(2,1); END;
END;
// IF mSEL ==77 AND AmA==3 THEN
// CHOOSE(ch,"ITEM5",eqme[15]);
// END;
END;