卡西欧5800程序问题

卡西欧5800程序问题,第1张

为什么这么麻烦?

坐标正算可以用POL(X1-X2,Y1-Y2)结果在I和J里面,I为距离、J为方位角;

坐标反算用REC(距离,方位角),结果也在I和J里面,I为X、J为Y。

不过我还是回答你上面的问题:

第一个程序在”X=〃:U 后面加个暂停符就可以了。

第二个程序因为使用了循环语句也在”I=〃:I 和”J=〃:J 后面加个暂停符。

我就教你个简单的,看你能不能举一反三!请看以下!

"X1"?X↙输入坐标1的X ( “” 这个里面的内容只要你自己看得懂就行)

"Y1"?Y↙输入坐标1的y

Lbl A "Lbl"为指令语句意思为“起点A”、和“lf ”都是指令!

"X2"?A:"Y2"?B↙ 此处用“ : ”代表了 ↙(回车EXE)

(A-X)^2+(B-Y)^2→C↙你是学习公路测量的,你应该知道这是算坐标距离的算数式的一部分!

√C◢ “ ◢ ” 这是暂停计算,结果显示的命令!

Goto A 和 “ Lbl A ” 合起来就可以无限循环。当然如果写 “ Goto B ”就错了

(坐标正反算,程序模块化设计,可自行升级,扩展功能)

建议录入程序次序

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

0.5(R-A)÷L→K

AQ→I

KQ2→J

0.0469100770→P:H+IP+JP2→O

0.2307653449→P:H+IP+JP2→T

0.5→P :H+IP+JP2→D

0.7692346551→P:H+IP+JP2→F

0.9530899230→P:H+IP+JP2→P

0.1184634425→I

0.2393143352→J

0.2844444444→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)>0.0001 :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<30008.396:Then Cls:Stop:IfEnd↙ 判断待求桩号是否小于本要素起点,如小于就停止运行程序

If G<30661.038(终点里程):Then 2851422.090(起点X)→N:513896.440(起点Y)→E:30008.396→M:213°32′52″J(起点方位角)→H:0 (起点曲率)→A:0(终点曲率)→R:652.642起点至终点长度→L:Goto E:IfEnd↙

If G<30921.038:Then 2850878.162→N:513535.768→E:30661.038→M:213°32′52″J→H:0→A:1÷1300→R:260→L:Goto E:IfEnd↙

If G<31426.367:Then 2850666.478→N:513385.004→E:30921.038→M:219°16′39″J→H:1÷1300→A:1÷1300→R:505.328→L:Goto E:IfEnd↙

If G<31686.367:Then 2850346.483→N:512998.015→E:31426.367→M:241°32′56″J→H:1÷1300→A:0→R:260→L:Goto E:IfEnd↙

If G>31686.367: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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11509271.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存