5800p正反算0.docx
- 文档编号:7910252
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:14
- 大小:24.69KB
5800p正反算0.docx
《5800p正反算0.docx》由会员分享,可在线阅读,更多相关《5800p正反算0.docx(14页珍藏版)》请在冰豆网上搜索。
5800p正反算0
casiofx-5800P坐标正反算
Lbl3:
"1→ZS,2→FS"?
Q
Q=1=>Goto1:
Q=2=>Goto2
Lbl1:
"CE:
X"?
M:
"CE:
Y"?
F:
"JL"?
L:
"FWJ"?
A:
Rec(L,A):
M+I→C:
F+J→D
Cls
"X=":
Locate3,1,C:
"Y=":
Locate3,2,D◢
Goto3
Lbl2:
:
"CE:
X"?
G:
"CE:
Y"?
H:
"(HOU)FY:
X"?
N:
"(HOU)FY:
Y"?
E
Pol(N-G,E-H)
IfJ<0:
ThenJ+360→Y:
ElseJ→Y:
IfEnd
Cls
"FYJL=":
Locate10,1,I:
"FYFWJ=":
Y◆DMS◢
Goto3
进入程序运行如下:
1→ZS,2→FS?
输入1为正算,2为反算.
以输入1为例:
CE:
X?
测站点X(5796.717)
CE:
Y?
测站点Y(5212.569)
JL?
仪器测得的距离(321.889)
FWJ?
仪器测得的方位角(193-41-07)
得到:
X=5483.966
Y=5136.414
再按EXE,输2为例:
CE:
X?
测站点X(5796.717)
CE:
Y?
测站点Y(5212.569)
(HOU)FY:
X?
后视或放样的X(5483.966)
(HOU)FY:
Y?
后视或放样的Y(5136.414)
得到:
FYJL=321.889
FYFWJ=193-41-6.79
CASIO-fx5800程序源(任意平曲线极坐标与直角坐标放样,求里程及边距)
附件(点击下载):
(在线预览)
程序源 2009.04.08校对件
2009.04.09附算例
原稿子程序J有误见此件红色为真2009.04.14 已有朋友成功,请与成功的朋友多沟通。
2009.04.12
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=0:
Then Goto 2:
IfEnd:
If S﹤Z[I]:
Then“DKP Goto 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[1]-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.01 Then“DKP≠”: S◣ If B ThenB-1→B: Z[Z[98]+8B]→I: Z→J: ElseZ→I: Z[Z[98]+8Z[99]]→J: IfEnd: “L(I)=”: B◣ Cls: “MIN=”: Locate6,1,I: “MAX=”: Locate6,2,J: “END,⇒ZH.D(LI)”◣ X→Z[13]: 0→X: 3→O: Goto 3: IfEnd: IfEnd↙ If U=0: Then If S Then“DK Goto 2: IfEnd: If S>Z[Z[98]+8(B+1)]+0.01: Then“DK>MAX,L→(I+1)”◣ Goto 2: IfEnd: IfEnd↙ Cls: “DKP=”: Locate 6,1,S: X-P→P: If P=0: Then ×10-9→P: IfEnd: Pol(P,Y-Q): If sin(W-J)>0: Then-I→I: IfEnd: “D÷2=”: Locate6,2,I: Goto 2↙ Lbl 3 子程序J Ans ÷.36-16(Int (Ans))÷9-Int(100(Ans-Int(Ans)) )÷90→T 子程序H .64Int (Ans)+.36Ans+.004Int((60(Ans-(Int(Ans))→T 算例1 例某工程C匝道: 一 启动Q.5 按下列数据建立矩阵存储表 给矩阵存储单元定维: 140→DimZ 综合曲线属性: 名C.ZD 编号0 Z[MIN]=100 N=4 自 然 段 名称 L0 L1 L2 L3 L4 DK 0 190 355.927 472.168 561.791 X 20934.495 21066.119 21142.859 21076.993 20988.267 Y 89274.172 89411.182 89552.427 89640.286 89644.485 AT 47.08177 45.09322 93.33281 160.09323 185.50027 ±1 -1 1 1 1 0 L 190 165.927 116.241 89.623 0 R1 5500 5500 100 100 0 R2 5500 100 100 ×1020 0 备注: 起始矩阵存储单元Z[100] 终了矩阵存储单元Z[139]。 (139=100+8×5-1) 二 编写程序PPQX(给定综合曲线属性) “C.ZD→0”? C↙ If C=0: Then100→Z[98]: 4→Z[99]: IfEnd↙ Prog“PQX” 三 启动程序PPQX(指定需计算的综合曲线编号) C.ZD→0? 提示C匝道赋值0 回车 (自动转向PQX进入各项计算) 平曲线程序运行提示符 CASIOfx—5800P湖南津市赵济汉 启动Q.5建立曲线要素矩阵存储表 提示符 示例 说明 N? 问综合曲线自然段数 Z[MIN]? 问矩阵存储起始单元 NO.I= 提示现在自然段 →DK? 问本段起点里程 →X? 问本段起点纵坐标 →Y? 问本段起点横坐标 →AT? 问本段起点切线方位(以小数点为度) →(-1Y+1)? 问曲线偏向,左赋值-1,右赋值+1,直线可赋0. →L? 问本段曲线长 →R1? 问本段起点曲率半径 →R2? 问本段终点曲率半径 JX→1: NO→0: OK→2? 问是否校对,是赋值1,否赋值0,本综合段结束赋值2。 (校对有误时可直接对显示值进行修改) END 重复以上拾序步,直至本综合曲线各自然段赋值结束(赋值2)。 特别提示: 除起始自然段外,其后,各自然段X,Y,AT可缺省,其值均赋值为0,程序在首次运行时,依次计算各接点中桩坐标一次,则能自动补齐各缺省值。 这一功能在匝道曲线方程建立时,十分有利。 启动PPQX选择需计算的综合曲线 提示符 示例 说明 ZQX→0: ZD→1****→M? 问在PPQX程序编写过程中,自定义的综合曲线属性,如: 主曲线赋值0,匝道赋值1,等等。 选择确定后,程序自动转向PQX,无需选择时可直接启动PQX。 启动PQX进入坐标计算阶段 XZ→0: YZ→1? 问是否改变以前设定的工作状态,新工作状态赋值0,原工作状态赋值1。 (选择原工作状态时,程序直接进入上阶段运行状态,无需再次设置工作与计算状态) BS→0: XY→1: AND→2: DK→3: →L(I)4? 选择新状态时: 问计算状态,极坐标放样赋值0,直角坐标赋值1,两种坐标都需要赋值2,求里程、边距赋值3,由里程求所在曲线段号赋值4。 选择原工作状态时不问。 极坐标放样 问计算状态,赋值0时 提示符 示例 说明 →X1? 问设站点纵坐标 →Y1? 问设站点横坐标 →X2? 问定向点纵坐标 →Y2? 问定向点横坐标, 由原状态进入时,以上不问。 S= B12= 给出已知点间边长 给出定向角 →DKP? 问测点里程(赋值0时转向程序运行终止) →B? 问测点偏角(以小数点为度) →(-+)D÷2? 问测点偏距 BP= SP= 给出测点方向 给出测点边长 S? 问测点实测边长(赋值0时,转向测设下一点,问测点里程) BP= S= 给出测点方向 给出修正值(-为退回、+为延伸) DKP>MAX 提示测点里程超出本综合段终点里程 DKP 提示测点里程小于本综合段起点里程 END 程序运行终止(DKP=0时) 直角坐标放样 问计算状态,赋值1时 XY(0)⇒0: ≠⇒1? 中桩赋值0,边桩赋值1 →DKP? 问测点里程(赋值0时转向程序运行终止) →B? 问测点偏角(以小数点为度),中桩不问 →(-+)D÷2? 问测点偏距,中桩不问 XP= YP= AT= 给出测点纵坐标 给出测点横坐标 给出测点切线方向 END 序运行程终止(DKP=0时) 两种坐标都需要 问计算状态,赋值2时 →DKP? 同上 * 从略 * 同时给出以上两种结果 END 程序运行终止(DKP=0时) 由里程求所在曲线段号 问计算状态,赋值4时 提示符 示例 说明 →DKP? 同上 L(I),I= DK(MIN)= DK(MAX)= 给出里程所在曲线段号。 给出本曲线段最小里程 给出本曲线段最大里程 本功能只是反求里程的一个辅助功能,以便程序按指定所在曲线段方式进行反算,快速获得计算结果。 反求里程边距 问计算状态,赋值3时 ZH.D(LI)→0: NO→1 问反算形式,指定曲线段赋值0、不指定曲线段赋值1。 按指定曲线段反算 问反算形式,赋值0时。 I? 问曲线段(可慨略指定) X? 问纵坐标(X=0时,程序运行终止) Y? 问横坐标 ⇒ 程序运行等待符 DKP= D÷2= I? 给出求点里程 给出求点边距(正交) 问下点曲线段 END 程序运行终止。 (X=0时) 特殊情况提示: DK 提示所求点不在本曲线区间,原段号应减1 DK﹥MIN,→L(I+1) 提示所求点不在本曲线区间,原段号应加1 这一功能的设置,便于反算点曲线区间位置不明确时,也能按指定曲线段形式进行反算。 特别提示: 按指定曲线段形式进行反算,有计算速度快,不存在程序判断盲点的问题,是反算形式的首选。 按不指定曲线段反算 问反算形式,赋值1时 X? 问纵坐标。 (X=0时,程序运行终止) Y? 问横坐标 ⇒ 程序运行等待符 DKP= D÷2= X? 给出求点里程 给出求点边距(正交) 问下点纵坐标 特殊情况提示: DKP≠ 提示本里程有误,在程序判断盲区,不可采用。 L(I),I= 给出本点所在曲线段号。 DK(MIN)= DK(MAX)= END,⇒ZH.D(LI) 给出本曲线段最小里程 给出本曲线段最大里程 提示中断运行程序,转向按指定曲线段形式进行反算。 END 程序运行终止。 (X=0时) 2009-3-31 5800计算器全线坐标计算放样程序(修改版) 彭赐明 “XLZBJSCX”◢ LB1 0↙ CLS: FIX4: 30→DIMZ↙ “XHS="? G(后视点X): "YHS="? L(后视点Y): "XZJ="? M(置镜点X): "YZJ="? N(置镜点Y): Pol(G-M,L-N): "DH=": I(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 5800 正反