【卡西欧Fx5800-p程序】01 坐标转换程序-带注释

1.程序说明:


DDSG  (大地坐标转施工坐标)

SGDD  (施工坐标转大地坐标)

↙      回车命令"EXE"

K       (施工坐标转换原点在线性上的桩号,如果是起始点为0

α     (施工坐标纵轴与大地坐标纵轴之间的交角)

X0 Y0  (转换原点坐标

注::αKX0 Y0  (建议在编辑程序时把他们的取值输入到程序里面,这样在程序运行时,可以减少输入这些数据的步骤,提高数据输入的准确性,避免因数据输入出错而造成计算结果的错误)

    ‚: 为了统一5800里面的程序字符代码,下面出来命令语句之外,一切字母均为大写。

2.程序清单:


: ZBZH  (在新建程序中输入程序名字“坐标转换”)

‚: 正文

Fix 4  (设置小数点位数4位,可以不设置)

Lbl 1DDSG=1SGDD=2QITA=END?→A↙  (输入1进入大地转施工计算,输入2进入施工转大地计算,如果输入其他数就退出ZBZH程序)

While  A=1  or  A=2If  A=1Then XDD)=?→X:YDD)=?→Y↙(1.While 判断A的取值,如果A的取值不是1或者2那么就要跳过这段程序,进入退出程序的命令行。2.如果输入1那么就开始进入大地转施工坐标的计算,这时就要输入X(DD)Y(DD),即要转换点的大地坐标) 

X(SG)=: (Y-Y0)sin(α)+(X-X0)cos(α)+K→N◢

Y(SG)=: (Y-Y0)cos(α)-(X-X0)sin(α)→E◢

Goto 1↙  

(计算XY的施工坐标公式 ,如果施工坐标的原点就是线性的起点,就不用K 值参加计算,Goto n,无条件转移到对应的Lbl n

IfEndX(SG)=?→M : M-K→X:Y(SG)=?→Y↙ (如果上面的If判断为假,也就是当A≠1时,那么程序就跳到IfEnd后面的语句。也就是这段计算施工转大地的坐标,然后就输入XY 的施工坐标

X(DD)=: Xcos(α)-Ysin(α)+X0→N◢

Y(DD)=: Xsin(α)+Ycos(α)+Y0→E◢

Goto 1↙ (无条件转移到Lbl 1

While End↙(结束循环语句,如果程序一开始就输入一个非1,或者2的数,然后运行程序就会直接跳过While End之前的所有程式,然后结束程序

ZBZH=END (结束坐标转换程序)

编者语:


     进过最后测试,以及用朋友的另一种方式编写的程序检验,计算结果相同,此程序是结合我们现在的工程实际情况编写的,需要的朋友可以把你们工程的一些设计线性参数发给我!我结合你们工程稍做些改动即可。

    由于本人专业知识和学术术语有限,程序中语言难免会出现衔接逻辑不强的问题,以及其他我没有发现的问题,还请前辈以及同仁多多指点

原文地址:https://www.cnblogs.com/wlone/p/5902996.html