1.程序說明:
DDSG (大地坐標轉施工坐標)
SGDD (施工坐標轉大地坐標)
↙ (回車命令"EXE")
K (施工坐標轉換原點在線性上的樁號,如果是起始點為0)
α (施工坐標縱軸與大地坐標縱軸之間的交角)
X0 、Y0 (轉換原點坐標)
注::α、K、X0 和Y0 (建議在編輯程序時把他們的取值輸入到程序里面,這樣在程序運行時,可以減少輸入這些數據的步驟,提高數據輸入的准確性,避免因數據輸入出錯而造成計算結果的錯誤)
‚: 為了統一5800里面的程序字符代碼,下面出來命令語句之外,一切字母均為大寫。
2.程序清單:
: ZBZH (在新建程序中輸入程序名字“坐標轉換”)
‚: 正文
Fix 4 (設置小數點位數4位,可以不設置)
Lbl 1:〃DDSG=1,SGDD=2,QITA=END〃?→A↙ (輸入1進入大地轉施工計算,輸入2進入施工轉大地計算,如果輸入其他數就退出ZBZH程序)
While A=1 or A=2:If A=1:Then 〃X(DD)=〃?→X:〃Y(DD)=〃?→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↙
(計算X、Y的施工坐標公式 ,如果施工坐標的原點就是線性的起點,就不用K 值參加計算,Goto n,無條件轉移到對應的Lbl n)
IfEnd:〃X(SG)=〃?→M : M-K→X:〃Y(SG)=〃?→Y↙ (如果上面的If判斷為假,也就是當A≠1時,那么程序就跳到IfEnd后面的語句。也就是這段計算施工轉大地的坐標,然后就輸入X、Y 的施工坐標)
〃X(DD)=〃: Xcos(α)-Ysin(α)+X0→N◢
〃Y(DD)=〃: Xsin(α)+Ycos(α)+Y0→E◢
Goto 1↙ (無條件轉移到Lbl 1)
While End↙(結束循環語句,如果程序一開始就輸入一個非1,或者2的數,然后運行程序就會直接跳過While End之前的所有程式,然后結束程序)
〃ZBZH=〉END〃 (結束坐標轉換程序)
編者語:
進過最后測試,以及用朋友的另一種方式編寫的程序檢驗,計算結果相同,此程序是結合我們現在的工程實際情況編寫的,需要的朋友可以把你們工程的一些設計線性參數發給我!我結合你們工程稍做些改動即可。
由於本人專業知識和學術術語有限,程序中語言難免會出現銜接邏輯不強的問題,以及其他我沒有發現的問題,還請前輩以及同仁多多指點