(坐标正反算,程序模块化设计,可自行升级,扩展功能)
建议录入程序次序
KEYLOCK 锁键程序 可独立测试能正常运行 1
DISPLAYXYZ主程序可独立测试能正常运行 2
READDAT要素数据库文件 (请改为自已路线的要素) 3
ZBJS 坐标计算程序 4
INZHANDZBJS桩号、横距输入程序 5
TURNZH 坐标反算6
INNEZ实测坐标输入程序7
如正确输入以上程序,运行DISPLAYXYZ,按“0”进行坐标反算,按“”进行坐标正算。
技术支持:Q285507730
FileName:INZHANDZBJS
//:桩号、横距输入程序://
Lbl S
Cls:Norm 1
"ZH"G ;桩求桩号
"JL"B ;输入横向距离
"JJ"W ;输入斜桩角,一般为90
Wπ÷180→W
Prog"ZBJS" ;080702晚添加
Return
FileName:ZBJS 坐标计算程序
Prog"READDAT"
Rad
G-M→Q
05(R-A)÷L→K
AQ→I
KQ2→J
00469100770→P:H+IP+JP2→O
02307653449→P:H+IP+JP2→T
05→P :H+IP+JP2→D
07692346551→P:H+IP+JP2→F
09530899230→P:H+IP+JP2→P
01184634425→I
02393143352→J
02844444444→Y
N+Q(ICos(O)+JCos(T)+YCos(D)+JCos(F)+ICos(P))→X
E+Q(ISin(O)+JSin(T)+YSin(D)+JSin(F)+ISin(P))→Y
H+AQ+KQ2→F
X+BCos(F+W)→X
Y+BSin(F+W)→Y
Return
FileName:TURNZH(坐标反算)
Prog"INNEZ"
0→B:M+L÷2→G:Prog"ZBJS"
Lbi S:Rad
U-X→I:V-Y→J
If I=0 And J=0 :Then Goto A:IfEnd
Pol(I,J)
Lbi A:Rec(I,J-F)
G+I→G:IF Abs(I)>00001 :Then Prog"ZBJS":Goto S↙
J→B
FileName:INNEZ 实测坐标输入程序
Lbl S
Norm 1:Cls
"DQD-N"U 输入待求点N坐标
"DQD-E"V 输入待求点E坐标
Return
FileName:KEYLOCK
//:本程序用于锁定键盘大部分按键,设定时间内无按键则反回默认健。只有“0”,“”,“x10x”,“(-)”这四个键可用,为了更方便说明程序,以后将分别定义这四个键为热键
“0” ===F1
“” ===F2
“x10x” ===F3
“(-)” ===F4
Exit 退出程序
://
1000→J ;无按键时间,5800设1000时大约为50秒。
Lbl S
0→I
Do:I+1→I:I≥J=>Goto E:LpWhile Not(Getkey=25 Or Getkey=26 OrGetkey=27 OrGetkey=57 OrGetkey=73)
Getkey=73=>Stop ;停止全部程序
Getkey=0=>Goto S
Getkey→I:Return
Lbl E
57→I:Retrutn ;默认按键值为F4
FileName:DISPLAYXYZ
//:<主程序>,显示:桩号,N,E,Z,横向偏移。
热键功能
F1 快捷坐标反算
F2 快捷坐标正算
F3
F4
://
7→DimZ
Z[1]→N 当前分段要素N坐标
Z[2]→E 当前分段要素E坐标
Z[3]→M 当前分段要素起点桩号
Z[4]→H 当前分段要素起点方位角(正北)单位:弧度
Z[5]→A 当前分段要素起点曲率有左偏负右偏正(注意不是半径)
Z[6]→R 当前分段要素终点曲率有左偏负右偏正(注意不是半径)
Z[7]→L 当前分段要素长度
Lbl S:Cls:Fix 3
"ZH=":Locate 4,1,G
"N=":Locate 3,2,X
"E=":Locate 3,3,Y
"Z":Locate 2,4,Z 注意,本程序无高程计算。所以这句无意义。
Locate 10,4,B
Prog "KEYLOCK"
If I=25:Then Prog "TURNZH":Goto S:IfEnd ;定义F1功能
If I=26:Then Prog "INZHANDZBJS":Goto S:IfEnd ;定义F2功能
Goto S
FileName:READDAT 要素数据库文件
π÷180→J
GM+L=>Goto 1
Return
Lbi 1
If G<30008396:Then Cls:Stop:IfEnd↙ ;判断待求桩号是否小于本要素起点,如小于就停止运行程序
If G<30661038(终点里程):Then 2851422090(起点X)→N:513896440(起点Y)→E:30008396→M:213°32′52″J(起点方位角)→H:0 (起点曲率)→A:0(终点曲率)→R:652642起点至终点长度→L:Goto E:IfEnd↙
If G<30921038:Then 2850878162→N:513535768→E:30661038→M:213°32′52″J→H:0→A:1÷1300→R:260→L:Goto E:IfEnd↙
If G<31426367:Then 2850666478→N:513385004→E:30921038→M:219°16′39″J→H:1÷1300→A:1÷1300→R:505328→L:Goto E:IfEnd↙
If G<31686367:Then 2850346483→N:512998015→E:31426367→M:241°32′56″J→H:1÷1300→A:0→R:260→L:Goto E:IfEnd↙
If G>31686367:Then Cls:Stop:IfEnd↙ ;判断待求桩号是否大于本要素终点,如大于就停止运行程序
Lbi E
N→Z[1]:E→Z[1]:M→Z[3]:H→[4]:A→Z[5]:R→Z[6]:L→Z[7] ;记忆当前要素以免重复搜索
Return
正算主程序(ZS)FIX4:S:Z:Prog “PM-SJ”: Abs(S-O) → W:Prog "SUB1": "XS=":X◢
"YS=":Y◢F-90→F(需要时可以让他显示):Prog“SQX-SJ”: Prog“SQX”:“H=”:H◢
反算主程序(FS)FIX4: S:X:?Y:Prog“PM-SJ”: X→ I: Y→ J:Prog "SUB2": "S=":O+W→S◢"Z=":Z◢
Prog“SQX-SJ”:Prog“SQX” :“H=”:H◢边坡放样主程序(BP-FY)Lb1 0:Prog“ZS”:“H-BG”(中桩与坡脚起算点高差值,比中桩高正,反之负)A:H+A →B:P(实测点高程):L(坡脚起算点到中桩的距离):075(挖方时一级坡度) →C:1 (挖方时二级坡度)→D:15 (挖方时三级坡度)→E:8(挖方时一级坡高) →G:10(挖方时二级坡高) →M:15(挖方时三级坡高) →N:2 (平台宽度)→K:1 (填方时一级坡度)→I:15(填方时二级坡度) →J:2 (填方时三级坡度)→O:2 (填方时一级坡高)→Q:8 (填方时二级坡高)→R:10 (填方时三级坡高)→T:ifP>B:thenGoto1:ElseGoto2Lb1 1:ifP>B:thenL+C(P-B)→U:P-B →F:IfEnd←┘ifP>B+G:thenL+CG+K+D(P-B-G)→U:P-B-G →F:IfEnd←┘ifP>B+G+M:thenL+GC+2k+MD+E(P-B-G-M)→U:P-B –G-M→F:IfEnd:Goto3←┘Lb1 2:ifP≤B:thenL+I(B -P)→U: B -P →F:IfEnd←┘ifP≤B-Q:thenL+IQ+K+J(B-Q-P)→U:B-Q-P→F:IfEnd←┘ifP≤B-Q-R:thenL+IQ+2k+JR+O(B-Q-R-P)→U:B-Q-R-P→F:IfEnd:Goto3←┘Lb1 3:U-AbsZ→V:ifZ<0:thenZ-V→Z:Else z+v→z:IfEnd←┘ “Z=”:Z◢ 计算得出正确的宽度,路线左为负,右为正。“V=”V◢ 宽度调整值,正为远离中线,负为向中线靠近。“PT=”:F◢ 距离即将到达的填挖方平台的高度。注:由于路基的宽度和超高情况较为复杂,因此该程序的缺点是不能自动计算路基宽度和路基边缘坡脚起算点的设计高程,需要手算坡脚起算点与中桩的宽度及与中桩的高差。算例;S 700(放样点桩号) Z?-15(试算宽度) X=198395817 Y=285155010 H=107144 H-BG? -015(边缘起算点的高程比中桩低015) p150(实测高程)L 12(起算边缘点距中桩的距离) Z=-69509(计算得出正确的宽度)V=54509(远离中线方向距测点54509米),PT=25006(距离平台高度)。 然后再次进入下一轮试算,直到V趋近于零。
隧道3心圆放样主程序(SD-3XY)Lb1 0:Prog“FS”:15→A:165→B:089→G:227→C:33→D:241→E:051→J:“H1”:F:ifF≤H+A:then E-AbsZ→W:IfEnd:ifF>H+A And F≤H+A+B:then√(D�0�5-(F-H-A)�0�5)-G-AbsZ→W:IfEnd:ifF>H+A+B:then√(C�0�5-(F-H-A-J)�0�5)-AbsZ→W:IfEnd:“W=”:W◢ (水平方向的超欠挖:正为欠,负为超)Goto0正算子程序(SUB1)
1÷P→ C: (P-R)÷(2HPR) → D: 180÷π→ E: 01739274226→ A: 03260725774→ B: 00694318442→ K: 03300094782→ L: 1-L→ F:1-K→ M: U+W(Acos(G+QEKW(C+KWD))+Bcos(G+QELW(C+LWD))+Bcos(G+QEFW(C+FWD))+Acos(G+QEMW(C+MWD))) → X: V+W(Asin(G+QEKW(C+KWD))+Bsin(G+QELW(C+LWD))+Bsin(G+QEFW(C+FWD))+Asin(G+QEMW(C+MWD))) → Y: G+QEW(C+WD)+90→ F: X+ZcosF→ X: Y+ZsinF→ Y反算子程序(SUB2)
G-90→T: Abs((Y-V)cosT-(X-U)sin(T)) → W: 0→ Z:Lbl 0:Prog "SUB1": T+QEW(C+WD) →L: (J-Y)cosL-(I-X)sinL → Z:ifAbsZ<1E-6:thenGoto1:ElssW+Z → W:Goto 0:IfEnd←┘
Lbl 1: 0→ Z:Prog "SUB1": (J-Y)÷sinF→ Z子程序(平面数据库)PM-SJifS ≥500(线元起点里程)AndS<769256(线元止点里程):Then19942837 →U(线元起点X坐标):28343561 →V(线元起点Y坐标):500 →O(线元起点里程):125°16°31°→G(线元起点方位角):269265 →H(线元长度):10^(45)→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左负右正):IfEnd←┘ifS ≥769256(线元起点里程)AndS<806748(线元止点里程):Then1978734 →U(线元起点X坐标):28563378→V(线元起点Y坐标):769256→O(线元起点里程):125°16°31°→G(线元起点方位角):37492→H(线元长度):10^(45)→P(线元起点曲率半径):22175→R(线元终点曲率半径):-1→Q(线元左右偏标志:左负右正):IfEnd←┘ifS ≥806748(线元起点里程)AndS<919527(线元止点里程):Then19766566→U(线元起点X坐标):28584574→V(线元起点Y坐标):806748→O(线元起点里程):120°25°5407°→G(线元起点方位角):112779→H(线元长度):22175→P(线元起点曲率半径):22175→R(线元终点曲率半径):-1→Q(线元左右偏标志:左负右正):IfEnd←┘ifS ≥919527(线元起点里程)AndS<999812(线元止点里程):Then19736072 →U(线元起点X坐标):28701893 →V(线元起点Y坐标):919527→O(线元起点里程):91°17°3063°→G(线元起点方位角):80285→H(线元长度):22175→P(线元起点曲率半径):9579228→R(线元终点曲率半径):-1→Q(线元左右偏标志:左负右正):IfEnd←┘ifS ≥999812(线元起点里程):Then19744038 →U(线元起点X坐标):28781659→V(线元起点Y坐标):999812→O(线元起点里程):80°40°50°→G(线元起点方位角):100→H(线元长度):10^(45)→P(线元起点曲率半径):10^(45)→R(线元终点曲率半径):0 →Q(线元左右偏标志:左负右正):IfEnd←┘子程序(竖曲线数据库)SQX-SJifS≤999812(竖曲线终点里程):then00357(前坡度:上坡正下坡负)→E:00227(后坡度:上坡正下坡负):600→R(竖曲线半径):780→G(变坡点里程):110→C(变坡点高程):IfEnd←┘子程序(竖曲线计算公式)SQXE-F→J:ifJ>0:then-R→R:ElssR→R:Abs(RJ÷2)→T:ifS≤G-T:thenG-S→L:C-LE→H:IfEnd←┘ifS>G-T And S≤G: thenG-S→L:(S+T-G)�0�5÷2÷R→N:C-LE+N → H:IfEnd←┘ifS>G And S≤G+T: then S-G→L:(G +T- S)�0�5÷2÷R→N:C-LF+N → H:IfEnd←┘ifS>G+T :thenS-G→L: C+LF → H:IfEnd←┘ 三、使用说明
1、规定
(1) 以道路中线的前进方向(即里程增大的方向)区分左右;当线元往左偏时,
Q=-1;当线元往右偏时,Q=1;当线元为直线时,Q=0。
(2) 当所求点位于中线时,Z=0;当位于中线左铡时,Z取负值;当位于中线中线右
侧时,Z取正值。
(3) 当线元为直线时,其起点、止点的曲率半径为无穷大,以10的45次代替。
(4) 当线元为圆曲线时,无论其起点、止点与什么线元相接,其曲率半径均等于圆
弧的半径。
(5) 当线元为完整缓和曲线时,起点与直线相接时,曲率半径为无穷大,以10的45
次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半
径为无穷大,以10的45次代替;与圆曲线相接时,曲率半径等于圆曲线的半径。
(6) 当线元为非完整缓和曲线时,起点与直线相接时,曲率半径等于设计规定的
值;与圆曲线相接时,曲率半径等于圆曲线的半径。止点与直线相接时,曲率半径等
于设计规定的值;与圆曲线相接时,曲率半径等于圆曲线的半径。2、输入与显示说明
S ? 正算时所求点的里程,反算时估算点里程,反算时尽量不要超出真实测点所在的线元里程终点,即尽量向小里程估计,如超出线元终点计算器将死机。
Z ?正算时所求点距中线的边距(左侧取负,值右侧取正值,在中线上取零)
X ?反算时所求点的X坐标
Y ?反算时所求点的Y坐标
显示部分:
XS=××× 正算时,计算得出的所求点的X坐标
YS=××× 正算时,计算得出的所求点的Y坐标
S=××× 反算时,计算得出的所求点的里程
Z=××× 反算时,计算得出的所求点的边距H=××× 正反算时,计算得出所求点的中桩设计高程(如弯道沿边线超高时要另外考虑超高段中桩高程)四、算例
某匝道的由五段线元(直线+完整缓和曲线+圆曲线+非完整缓和曲线+直线)组
成,各段线元的要素(起点里程S0、起点坐标X0 Y0、起点切线方位角F0、线元长度
LS、起点曲率半径R0、止点曲率半径RN、线 元左右偏标志Q)如下:
S0 X0 Y0 F0 LS R0 RN Q
500000 19942837 28343561 125 16 3100 269256 1E45 1E45 0
769256 19787340 28563378 125 16 3100 37492 1E45 22175 -1
806748 19766566 28594574 120 25 5407 112779 22175 22175 -1
919527 19736072 28701893 91 17 3063 80285 22175 9579228 -1
999812 19744038 28781659 80 40 5000 100000 1E45 1E45 0
1、正算
(注意:略去计算方式及线元要素输入,请自行根据所求点所在的线元输入线元
要素)
S=700 Z=-5 计算得 XS=1983141785 YS=2850972590 H=107144
S=700 Z=0 计算得 XS=1982733592 YS=2850683837 H=107144
S=700 Z= 5 计算得 XS=1982325398 YS=2850395084 H=107144 S=780 Z=-5 计算得 XS=1978525749 YS=2857502270 H=112759
S=780 Z=0 计算得 XS=1978115561 YS=2857216358 H=112759
S=780 Z= 5 计算得 XS=1977705373 YS=2856930446 H=112759
S=870 Z=-5 计算得 XS=1974753609 YS=2865413091 H=112759
S=870 Z=0 计算得 XS=1974268648 YS=2865291379 H=112759
S=870 Z= 5 计算得 XS=1973783688 YS=2865169668 H=112759
S=940 Z=-5123 计算得 XS=19741 59118 YS=2872205802 H=130475
S=940 Z=0 计算得 XS=1973647687 YS=2872235642 H=130475
S=940 Z= 3009 计算得 XS=1973347298 YS=2872253168 H=130475
2、 反算
X=19831418 Y=28509726 计算得 S=6999999974 Z= -5 00018164
X=19827336 Y=28506838 计算得 S=6999996493 Z= 0000145136 H=107144
X=1982325398 Y=2850395084 计算得 S=6999999985 Z= 5000003137
X=1978525749 Y=2857502270 计算得 S=7800000035 Z= -5 000001663
X=1978115561 Y=2857216358 计算得 S=7800000025 Z=- 0000002979H=112759
X=1977705373 Y=2856930446 计算得 S=7800000016 Z= 499999578
X=19747536 Y=28654131 计算得 S=8700001137 Z= -499941049
X=19742686 Y=28652914 计算得 S=8700003175 Z=- 000041814 H=130475
X=19737837 Y=28651697 计算得 S=8700002748 Z= 4999808656 X=197415912 Y=287220580 计算得 S=9399999786 Z= -5123024937
X=197364769 Y=287223564 计算得 S=9399999862 Z=- 0000027710 H=130475
X=197334730 Y=287225317 计算得 S=9400000238 Z= 300898694
5800计算机怎么调用程序,就是重新建立一个程序,主程序后面输入:Prog“你的子程序名”,卡西欧5800计算器主程序调用子程序:"ZBZS(1),ZBFS(-1)="→Z↙ (坐标正算输入1,坐标反算输入-1,把选择存入变量Z)Z =1=>Prog"ZBZS":Z=-1=>Prog"ZBFS"↙
以上就是关于可以给我个卡西欧5800计算器公路高程计算程序吗全部的内容,包括:可以给我个卡西欧5800计算器公路高程计算程序吗、求卡西欧5800计算器隧道通用超欠挖程序(正反算)、5800计算机怎么调用程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)