CASIOfx5800程序源湖南津市 赵济汉.docx
《CASIOfx5800程序源湖南津市 赵济汉.docx》由会员分享,可在线阅读,更多相关《CASIOfx5800程序源湖南津市 赵济汉.docx(18页珍藏版)》请在冰豆网上搜索。
CASIOfx5800程序源湖南津市赵济汉
CASIO-fx5800程序源
(任意平曲线极坐标与直角坐标放样,求里程及边距)
程序源 2009.04.08校对件
2009.04.09附算例
已有朋友成功,请与成功的朋友多沟通。
2009.04.12
加桥台转轴计算,2009.04.19
加涵通转轴计算2009.05.05
附可替换子程序Q.4(5点法加速)2009.05.23
重新上转附件,附图,算例,及平分中矢法布桩坐标计算方法,2009.07.21
CASIO-fx5800 (任意平曲线极坐标与直角坐标放样,求里程及边距)
湖南津市赵济汉
主程序PQX
Deg:
Fix3:
“XZ→0:
YZ→1”?
A:
If A=1:
ThenGoto1:
IfEnd↙
If A=0:
Then“BS→0:
XY→1:
AND→2:
DK→3:
L(I)→4”?
O:
IfEnd↙
If O=4:
Then Goto1:
IfEnd↙
If O=3:
Then Prog “F.2”:
If X=0:
Then Goto1:
IfEnd:
IfEnd↙
If O≠1:
Then“X1”?
X:
“Y1”?
Y:
X→Z[11]:
Y→Z[12]:
“X2”?
P:
“Y2”?
Q:
Pol(P-X,Q-Y):
If J﹤0:
Then J+360→J:
IfEnd:
Cls:
“S12=”:
Locate6,1,I:
“B12=”:
J►DMS◣
1→B:
IfEnd↙
If O=1:
Then“XY(0)→0:
≠﹥1”?
B:
IfEnd↙
Lbl 1:
If A=1 And O=3:
Then Prog “F.2”:
IfEnd:
Prog“Q.1”
子程序PPQX (给定综合曲线属性)
“ZQX→0:
***→1:
***→2*******”?
C↙
If C=0:
Then100→Z[98]:
n0→Z[99]:
IfEnd↙
If C=1:
Then m1→Z[98]:
n1→Z[99]:
IfEnd↙
If C=2:
Then m2→Z[98]:
n2→Z[99]:
IfEnd↙
*******
Prog“PQX”
其中:
mi为第i条综合曲线矩阵变量起始单元,(第1条综合曲线矩阵变量起始单元应自100开始,以便其他程序临时使用100以前的矩阵变量,综合曲线中每一基本单元需8个矩阵存储单元);ni为第i条综合曲线中基本单元数,每增加一个条综合曲线则增加一行If C=*******→Z[99]:
IfEnd↙语句。
还应注特别意,原有程序中的矩阵变量定维语句DimZ应取消,只要原有程序中的矩阵变量定维不大于100,原有程序的运行不受影响。
子程序Q.5 (建立数据库)
Deg:
Fix5↙
0→I:
“N”?
W:
W→Z[99]:
“Z[MIN]”?
V:
V→Z[98]↙
Lbl 1:
“NO.I=”:
I◣
Lbl C:
V+8I→G↙
“→DK”?
A:
A→Z[G]↙
“→X”?
B:
B→Z[G+1]↙
“→Y”?
C:
C→Z[G+2]↙
“→AT”?
D:
D→Z[G+3]↙
“→(-1Y+1)”?
K:
K→Z[G+4]↙
“→L”?
E:
E→Z[G+5]↙
“→R1”?
F:
F→Z[G+6]↙
“→R2”?
O:
O→Z[G+7]↙
Lbl 2:
“JX→1:
NO→0:
OK→2”?
M:
If M=2:
Then Goto3:
IfEnd:
If M=1:
Then Goto C:
IfEnd↙
I+1→I:
Goto 1↙
Lbl 3:
“END”
子程序Q.6
Lbl 1:
“S”?
W:
If W=0:
Then Goto2:
IfEnd↙
I-W→W:
Cls:
“⊿S=”:
Locate5,1,W:
“BP=”:
J►DMS◣
Goto 1↙
Lbl 2:
Cls:
“OK”
子程序Q.1
If X=0 And O=3:
Then Goto 2:
IfEnd↙
Lbl 1:
Z[98]→I:
Z[99]→J:
“→DKP”?
S↙
If S=-1:
Then Prog “JH.ZJ”:
Goto 1:
IfEnd↙(加桥台转轴时)
If S=-2:
Then Prog “ZH.2”:
Goto 1:
IfEnd↙(加涵通转轴时)
If S=0:
Then Goto 2:
IfEnd:
If S﹤Z[I]:
Then“DKPGoto 1:
IfEnd:
If S>Z[I+8J]:
Then“DKP>MAX”◣
Goto 1:
IfEnd↙
If O≠4 And B≠0:
Then“→B”?
V:
V:
Prog“J”:
T→U:
“→(-+)D÷2” ?
N:
Else 0→N:
IfEnd↙
Prog“Q.2”:
Goto 1↙
Lbl 2:
“END”
子程序Q.2
If O≠3 :
Then“→”:
IfEnd↙
0→I:
Z[98]+8→M↙
If S≥Z[M-8]And S≤Z[M]:
Then Goto 1:
IfEnd↙
Lbl 2:
I+1→I:
M+8→M↙
If S≤Z[M]:
Then Goto 1:
Else Goto 2:
IfEnd↙
Lbl 1:
If O=3 :
Then I→B:
IfEnd:
M→Z[27]:
If O≠4 :
Then Prog“Q.3”:
Else “L(I),I=”:
I◣
Cls:
“MIN=”:
Locate 6,1,Z[Z[98]+8I]:
“MAX=”:
Locate 6,2,Z[Z[98]+8I+8]:
I→B:
IfEnd↙
子程序Q.3
If O=3 And U=0:
Then B→I:
IfEnd↙
Z[98]+8I→G↙
Z[G]→Z↙
Z[G+1]→Z[1]:
Z[G+2]→Z[2]:
Z[G+3]→Z[3]↙
Z[3]:
Prog “J”:
T→Z[3]↙
Z[G+4]→Z[4]:
Z[G+5]→M:
1÷Z[G+6]→Z[5]:
1÷Z[G+7]→Z[6]↙
Z[6]-Z[5]→Z[6]:
S-Z→D↙
If O=3 :
Then 0→N:
IfEnd:
Prog “Q.4”↙
子程序Q.4 (正算)
Lbl 0:
0→I:
0→E:
0→F:
0→G:
0→H↙
Lbl 1:
I+1→I:
Z[3]+Z[4]((ID÷12)(Z[5]+IDZ[6]÷24÷M)(180÷л)→W:
If I﹤12:
Then If Frac(I÷2)﹥0:
Then E+cos(W)→E:
F+sin(W)→F:
Else G+cos(W)→G:
H+sin(W)→H:
IfEnd:
IfEnd↙
If I﹤12:
Then Goto1:
IfEnd↙
Z[1]+(D÷36)(cos(Z[3])+cos(W)+2G+4E)+Ncos(U+W)→P↙
Z[2]+(D÷36)(sin(Z[3])+sin(W)+2H+4F)+Nsin(U+W)→Q↙
If O=3:
Then Goto 2:
IfEnd↙
If O≠0:
Then Cls:
“XP=”:
Locate5,1,P:
“YP=”:
Locate5,2,Q:
“AT=”:
W►DMS◣
IfEnd↙
Z[27]→I:
If Z[I]-S=0 And Z[I+1]=0And N=0:
Then P→Z[I+1]:
Q→Z[I+2]:
W:
Prog“H”:
T→Z[I+3]:
IfEnd↙
If O≠1:
Then Pol(P-Z[11],Q-Z[12]):
If J<0:
ThenJ+360→J:
IfEnd:
Cls:
“SP=”:
Locate5,1,I:
“BP=”:
J►DMS◣
Prog “Q.6”:
IfEnd↙
Lbl 2
子程序F.2 (反算)
“ZH.D(LI)→0:
NO→1”?
U↙
Lbl 2:
If U=0:
Then“I”?
B:
IfEnd↙
Z[98]+8Z[99]→M↙
If X=0:
Then Z[13]→X:
IfEnd:
“X”?
X:
If X=0:
Then Goto 3:
IfEnd↙
“Y”?
Y:
1→Z[8]↙
“⇒”↙
If U=1:
Then-√((X-Z[M+1])²+(Y-Z[M+2])²)→Z[7]:
Z[7]+Z[M]→S:
Prog“Q.2”:
IfEnd↙
Z[98]+8B→M:
Z[M+3]:
Prog“J”:
T-90→T↙
(Y-Z[M+2])cos(T)-(X-Z[M+1])Sin(T)→Z[7]↙
If U=1And Abs(Z[7])≤0.01:
Then-0.01→Z[7]:
IfEnd↙
Z[7]→D:
Z[M]+D→S:
If S>Z[M+8]:
Then Z[M+8]→S;IfEnd ↙
If U=0:
Then Prog“Q.3”:
Else Prog“Q.2”:
IfEnd↙
“⇒”↙
Lbl 1:
(Y-Q)cos(W-90)-(X-P)sin(W-90)→Z[8]↙
Z+Z[7]+Z[8]→S↙
If Abs(Z[8])≥0.0001:
ThenZ[7]+Z[8]→D:
Prog“Q.4”:
D→Z[7]:
Goto 1:
IfEnd↙
If U=1:
Then If S+0.01Then“