为了方便现场放样,下面是本人根据李艳阳老师的程序进行的一些修改,加入了 (放样) 语句和斜交的计算。( 黑色实心为字母●,其余都为数字0)。不过正反算速度比较慢。
TYQXJS 主程序 "XC"?G :"YC"?H :“1.→XY,2.→KZ”?Q↙ Lbl 4: "K+"?S : Prog“QXJS-SUB0”↙ Lbl 0: Q=1 => Goto1:Q=2 => Goto2↙ Lbl 1: “Tao”?T : ?Z : Prog“QXJS-SUB1”:“X=”:Locate 6,4,N :“Y=”:Locate 6,4,E :F=F (F不需要显示) Pol(N-G,E-H): J<0=>360+J→J: Int(J)+0.01Int(60Frac(J))+0.006Frac(60Frac(J))→J(度分秒的转换) : "A=":Locate 6,4,J:"D=":Locate 6,4,I ◢ (全屏显示X= Y= A= D=) Goto4↙ Lbl 2: “X=”?B :“Y=”?C : B→N : C→E : Prog“QXJS-SUB2”:“K=”:S◢ “Z=”:Z◢ Goto4↙ QXJS-SUB0 数据库子程序 Goto1↙ 同时保存多个曲线时的指针 Lbl 1↙ IF S<***(输入线元终点里程):Then***→A(输入线元起点方位角):***→●(输入线元起点里程):***→U(输入线元起点X):***→V(输入线元起点Y):***→P(输入线元起点曲率半径):***→R(输入线元终点曲率半径): ***→L(输入线元起点至终点长度): Return:IfEnd↙ IF S<***:Then***→A:***→●:***→U:***→V:***→P:***→R: ***→L: Return:IfEnd↙ ………………………..为了便于解读,每增加一个线元增加一行语句,每增加一条曲线增加一个Lbl,每增加一个工程增加一个文件。 QXJS-SUB1 正算子程序 0.5(1÷R-1÷P)÷L→D:S-●→X↙ U+∫(cos(A+(X÷P+DX2)×180÷π,0,X)→N↙ (X的平方) V+∫(sin(A+(X÷P+DX2)×180÷π,0,X)→E↙ (X的平方) A+(X÷P+DX2)×180÷π→F↙ (X的平方) N+Zcos(F+T) →N:E+Zsin(F+T) →E QXJS-SUB2 反算子程序 Lbl 1:0→Z:1→Q:Prog“QXJS-SUB0”: Prog“QXJS-SUB1”↙ Pol(N-B+10^(-46), E-C+10^(-46)):Isin(F-90-J) →W:S+W→S↙ Abs(W)>0.0001 => Goto1↙ Lbl 2: 0→Z:Prog“QXJS-SUB1”:(C-E) ÷sin(F+90) →Z XC? 输入测站点 X 坐标。 YC? 输入测站点 Y 坐标。 1.→XY,2.→KZ 输入1正算。 K+? 输入所求点桩号。 Tao? 与路中线斜交角度。 Z? 边距(左-,中0,右+)。 显示结果 X= 所求点X坐标。 Y= 所求点Y坐标。 A= 测站点到待求点方位角。 D= 测站点到待求点距离。 1.→XY,2.→KZ 输入2反算。 X? 输入已知点X坐标。 Y? 输入已知点Y坐标。 显示结果 K= 显示所求桩号。 Z= 显示偏距。[ |
|