各位同行,本人领悟yshf的程序后,进行了以下改编,达到以下目标:
1.加编数据库,计算中不必逐项输入"线元要素",提高运算速度,避免现场忙中出错
2.计算直观,人性化
3.正算直接输入里程和边距,反算输入近似里程便可
4.增加了“计算点与测站点”的距离和方位角计算语句,方便直接放样
5.愿收获与大家共享
一.改动后的程序清单:
1.主程序(TYQXJS)
"1.SZ => XY":"2.XY => SZ":U"X0":V"Y0":O"S0":G"F0":H"LS":P"R0":R"
RN":Q:D=(P-R)÷(2HPR):N=1=>Goto 1:≠>Goto 2Δ←┘
Lbl 1:{Z}:Z:W=Abs(S-O):Prog "SUB1":X"XS"=X◢
Y"YS"=Y◢
F"FS"=F-90◢
C“XC”:E“YC”:I=0:J=0:Pol(X-C,Y-E):I“I=” ◢
J∠0=>J“J=”+360◢
≠>J“J=” ◢
ΔProg"SJK"←┘
Lbl 2:{XY}:XY:I=X:J=Y:Prog "SUB2":S"S"=O+W◢
Z"Z"=Z◢
Prog"SJK"
2. 正算子程序(SUB1) A=0.1739274226:B=0.3260725774:K=0.0694318442:L=0.3300094782:F=1-L:
M=1-K:X=U+W(Acos(G+57.2958QKW(1/P+KWD))+Bcos(G+57.2958QLW(1/P+LWD))+Bcos(G+57.2958QFW
(1/P+FWD))+Acos(G+57.2958QMW(1/P+MWD))):Y=V+W(Asin(G+57.2958QKW(1/P+KWD))+Bsin(G+
57.2958QLW(1/P+LWD))+Bsin(G+57.2958QFW(1/P+FWD))+Asin(G+57.2958QMW(1/P+MWD))):F=G+57.2958QW(1/P+
WD)+90:X=X+ZcosF:Y=Y+ZsinF
3. 反算子程序(SUB2)
T=G-90:W=Abs((Y-V)cosT-(X-U)sinT):Z=0:Lbl 0:Prog "SUB1":L=T+Q57.2958W(1/P+
WD):Z=(J-Y)cosL-(I-X)sinL:AbsZ<1E-6=>Goto1:≠>W=W+Z:Goto 0Δ←┘
Lbl 1:Z=0:Prog "SUB1":Z=(J-Y)÷sinF
二.增设数据库程序(SJK)
Lbo4:{S}:S∠下一线元起点里程≡>O=本线元起点里程:U=本线元起点X:V=本线元起点Y:G=本线元起算方位角:H=本线元长度:P=起点曲率半径:R=终点曲率半径:Q=0或1、-1:Prog“TYQXJS”:Goto4Δ←┘
S∠下一线元起点里程=>O=。。。。。。。。。。。。。。。。。。。。。。。Prog“TYQXJS”: Goto4Δ←┘
三. 使用说明:
1.把所有相关的”线元要素“依次输入”SJK“
2.运算时直接调用“SJK”运行,程序提示输入里程“S”?时,正算直接输入待求点里程,反算输入所求点“近似“里程
3.如果在正算中途想进行反算,请退出程序,重新调用”SJK“,并重新给”N“?赋值"2"便可
4.程序中“XC、YC、”为测站坐标,“I=”、“J=”为放样距离和方位角
5.其它输入与"yshf"原程序一致(程序中1/P表示1÷P)