测量老覃's Blog!(停止更新) 新博客网址变更,点击前往:cehui.ren

德州仪器TI nspire CAS工程测量程序

2016-09-15
QinDong

1、高斯坐标转工程坐标系

Define a_gauss2gc()=
Prgm
setgeomode()
RequestStr "施工坐标系名=",tconame
0→stat
For i,1,dim(coname),1
 If coname[i]=tconame Then
 1→stat
 Request "待转换点X(N)=",tpx
 Request "待转换点Y(E)=",tpy
 xa[i]→txa
 ya[i]→tya
 xb[i]→txb
 yb[i]→tyb
 sa[i]→tsa
 R►Pθ(txb-txa,tyb-tya)→talpha
 EndIf
EndFor
If stat=1 Then
(tpx-txa).cos(talpha)+(tpy-tya).sin(talpha)+tsa→tstage
-(tpx-txa).sin(talpha)+(tpy-tya).cos(talpha)→toff
Disp "高斯坐标→施工坐标:",tconame
Disp "(桩号)x=",round(tstage,3)
Disp "(偏距)y=",round(roff,3)
Else
Disp "选择的坐标系未定义!"
EndIf
EndPrgm

2、工程坐标转高斯坐标系

Define a_gc2gauss()=
Prgm
Setgeomode()
RequestStr  “施工坐标系名=”,tconame
0→stat
For i,1,dim(coname),1
 If  coname[i]=tconame Then
 1→stat
 Request “待转换点桩号x=”,tpx
 Request “待转换点偏距y=”,tpy
 xa[i]→txa
 ya[i]→tya
xb[i]→txb
yb[i]→tyb
sa[i]→tsa
R►Pθ (txb-txa,tyb-tya)→talpha
EndIf
EndFor
If stat=1 Then
txa+(tpx-tsa).cos(talpha)-tpy.sim(talpha)→tpn
tya+(tpx-tsa).sin(talpha)+tpy.cos(talpha)→tpe
Disp “施工坐标→高斯坐标 坐标系:”,tconame
Disp “X(N)=”,round(tpn,3)
Disp “Y(E)=”,round(tpe,3)
Else
Disp “选择的坐标系未定义!”
EndIf
EndPrgm

3、setgeomode子程序

Define setgeomode()=
Prgm
If getMode(2)≠2 Then
setMode(1,1)
setMode(2,2)
setMode(5,2)
setMode(7,1)
setMode(8,1)
EndIf
EndPrgm

4、工程坐标系转工程坐标系

Define a_gc2gc()=
Prgm
RequestStr “源施工坐标系名=”,tconame
0→stat
For i,1,dim(coname),1
 If coname[i]=tconame Then
 1→stat
 Request “待转换点桩号x=”,tpx
 Request “待转换点偏距y=”,tpy
 xa[i]→txa
 ya[i]→tya
 xb[i]→txb
 yb[i]→tyb
 sa[i]→tsa
 R►Pθ(txb-txa,tyb-tya)→talpha
 EndIf
EndFor
If stat=1 Then
txa+(tpx-tsa).cos(talpha)-tpy.sin(talpha)→tpn
tya+(tpx-tsa).sin(talpha)+tpy.cos(talpha)→tpe
RequestStr “目标坐标系名=”,tarconame
0→stat2
For i,1,dim(coname),1
 If coname[i]=tarconame Then
 1→stat2
 xa[i]→txa
 ya[i]→tya
 xb[i]→txb
 yb[i]→tyb
 sa[i]→tsa
 R►Pθ(txb-txa,tyb-tya)→talpha
 EndIf
EndFor
If stat2=1 Then
(tpn-txa).cos(talpha)+(tpe-tya).sin(talpha)+tsa→tstage
-(tpn-txa).sin(talpha)+(tpe-tya).cos(talpha)→toff
Disp “施工坐标系间转换:”,tconame & “→”& tarconame
Disp “(桩号)x=”,round(tstage,3)
Disp “(偏距) y=”,round(roff,3)
Else
Disp “选择的目标坐标系未定义!”
EndIf
Else
Disp “选择的源坐标系未定义!”
EndIf
EndPrgm

5、坐标反算

Define a_zbfs()=
Prgm
setgeomode()
Request “起点X=”,x1
Request “起点Y=”,y1
Request “终点X=”,x2
Request “终点Y=”,y2
Disp “距离=”,R►Pr(x2-x1,y2-y1)
R►Pθ (x2-x1,y2-y1)→α
If α<0 Then
α+360→α
EndIf
Disp “方位角=”,α►DMS
EndPrgm

6、坐标正算

Define a_zbzs()=
Prgm
setgeomode()
Request “起点X=”,x1
Request “起点Y=”,y1
Request “距离=”,s
RequestStr “方位角(D.MMSS)=”,str
expr(str)→α
fdms(α)→α
Disp “计算点X=”,round(x1+s.cos(α),3)
Disp “计算点Y=”,round(y1+s.sin(α),3)
EndPrgm
 
7、转换D.MMSS格式为十进制度
Define fdms(α)=
Func
Return intDiv(α,1)+(intDiv(remain(α,1).100,1))/60+(remain(α*100,1).100)/3600
EndFunc

分享到QQ空间
  
分享给QQ好友
  
分享到新浪微博
  
分享到微信

观点评论

目录