路桥视频| 路桥隧交流论坛| 站点地图|
首页| 文库| 博客| 图库| 视频| 网摘| 路桥隧交流|
  • 行业资讯
  • 路基路面
  • 桥梁涵洞
  • 隧道工程
  • 测量绘图
  • 学术论文
  • 施组方案
  • 试验质检
  • 内业资料
  • 安全环保
网站公告: 网站新建QQ交流群 路桥吾爱第五版更新. 把QQ空间或其他博客.

您的位置: 路桥吾爱 >> 文库 >> 测量绘图 >> 程序编程 >> 查看资讯

推荐给好友 上一篇 | 下一篇

CASIO-fx5800程序源(任意平曲线极坐标与直角坐标放样,求里程及边距)

字体:  小  中  大  | 打印 发布: 2010-1-07 09:53  作者: 赵济汉  来源: 路桥吾爱搜集  查看: 9775次 评论: 13条 好评: 15分

CASIO-fx5800程序源(任意平曲线极坐标与直角坐标放样,求里程及边距).rar(73.6 KB)

CASIO-----fx5800  (任意平曲线极坐标与直角坐标放样,求里程及边距)        
湖南津市 赵济汉
主程序PQX

Deg : Fix 3 : “XZ→0:YZ→1”?A : If  A = 1: Then Goto 1 : IfEnd ↙
If  A = 0 : Then “ BS→0:XY→1:AND→2:DK→3:L(I)→4 ” ?O : IfEnd ↙
If  O = 4: Then  Goto 1 : IfEnd ↙
If  O = 3: Then  Prog  “ F.2 ” : If  X= 0 : Then  Goto 1 : IfEnd : IfEnd ↙
If  O ≠ 1: Then “ X1 ” ?X : “ Y1” ?Y : X→Z[11]: Y→Z[12]: “ X2 ” ?P : “ Y2” ?Q : Pol( P-X , Q-Y) : If  J﹤0 : Then  J + 360→J : IfEnd : Cls : “ S12= ” :  Locate 6 ,1, I : “ B12= ” : J ►DMS◣
1→B : IfEnd ↙
If  O = 1: Then “XY(0) →0: ≠﹥1” ? B: IfEnd ↙
Lbl  1 : If  A = 1  And  O = 3 :Then  Prog  “ F.2 ” : IfEnd : Prog “ Q.1 ”  


子程序PPQX             (给定综合曲线属性)

“ ZQX →0: *** →1: *** →2 ******* ” ?C ↙
If  C=0: Then 100→Z[98]: n0 →Z[99]: IfEnd ↙
If  C=1: Then  m1→Z[98]: n1 →Z[99]: IfEnd ↙
If  C=2: Then  m2→Z[98]: n2 →Z[99]: IfEnd ↙
*******
Prog “ PQX ”
其中:  mi为第i条综合曲线矩阵变量起始单元,(第1条综合曲线矩阵变量起始单元应自100开始,以便其他程序临时使用100以前的矩阵变量,综合曲线中每一基本单元需8个矩阵存储单元); ni为第i条综合曲线中基本单元数,每增加一个条综合曲线则增加一行If  C=*******→Z[99]: IfEnd↙语句。
还应注特别意,原有程序中的矩阵变量定维语句DimZ应取消,只要原有程序中的矩阵变量定维不大于100,原有程序的运行不受影响。


子程序Q . 5              (建立数据库)

Deg : Fix 5 ↙
0→I : “ N ” ? W : W →Z[99]: “Z[MIN]”? V : V→Z[98]↙
Lbl  1 : “NO.I= ”: I ◣
Lbl  C : V + 8 I→G ↙
“→DK ”?A : A→Z[G]↙
“→X ”?B : B→Z[G + 1]↙
“→Y ”?C : C→Z[G +2]↙
“→AT ”?D : D→Z[G +3]↙
“→(-1Y+1) ”?K : K→Z[G +4]↙
“→L ”?E : E→Z[G +5]↙
“→R1 ”?F : F→Z[G +6]↙
“→R2”?O : O→Z[G +7]↙
Lbl  2 : “JX→1: NO→0 : OK→2”? M : If  M = 2 : Then  Goto 3 : IfEnd : If  M = 1: Then  Goto  C : IfEnd ↙
I + 1→I : Goto  1 ↙
Lbl  3 : “END ”


子程序Q . 6

Lbl  1 : “S ” ? W : If  W = 0 : Then  Goto 2 : IfEnd ↙
I-W→W : Cls : “⊿S= ” : Locate 5 , 1 , W : “ BP= ” : J ►DMS◣
Goto  1 ↙
Lbl  2 : Cls : “ OK ”


子程序Q.1

If  X = 0  And  O = 3 : Then  Goto  2 : IfEnd ↙
Lbl  1 : Z[98]→ I : Z[99]→ J : “ →DKP ” ? S ↙
If  S = -1: Then  Prog  “JH . ZJ ” : Goto  1 : IfEnd ↙(加桥台转轴时)
If  S = -2: Then  Prog  “ZH . 2 ” : Goto  1 : IfEnd ↙(加涵通转轴时)
If  S = 0: Then  Goto  2 : IfEnd : If  S﹤Z[ I ]: Then “ DKP<MIN ” ◣
Goto  1 : IfEnd : If  S > Z[ I + 8 J ]: Then “ DKP>MAX ” ◣
Goto  1 : IfEnd ↙
If  O ≠ 4  And  B ≠ 0 : Then “ →B ” ? V : V : Prog “ J ” : T→U : “→(-+)D÷2 ”  ? N : Else  0 →N : IfEnd ↙
Prog “ Q.2 ” : Goto  1 ↙
Lbl  2 : “ END ”


子程序Q . 2

If  O ≠3  : Then “ →” : IfEnd ↙
0→I : Z[98]+ 8 →M ↙
If  S ≥ Z[M-8 ]And  S ≤ Z[M ]:Then  Goto  1 : IfEnd ↙
Lbl  2 : I +1 →I : M + 8 →M ↙
If  S ≤ Z[M ]:Then  Goto  1 : Else  Goto  2 : IfEnd ↙
Lbl  1 : If  O = 3  : Then  I →B :IfEnd : M→Z[27]:  If  O ≠ 4  : Then  Prog “Q. 3” : Else  “ L(I) , I = ” : I ◣
Cls : “ MIN = ” : Locate  6 , 1 , Z[Z[98]+8 I ]: “ MAX = ” : Locate  6 ,2 , Z[Z[98]+8 I +8]:I→B : IfEnd ↙


子程序Q . 3
If  O = 3  And  U = 0 : Then  B→I : IfEnd ↙
Z[98]+8 I →G ↙
Z[G]→Z ↙
Z[G +1]→Z[1]: Z[G +2]→Z[2]: Z[G +3]→Z[3]↙
Z[3]:Prog  “ J ” : T→Z[3]↙
Z[G +4]→Z[4]: Z[G +5]→M : 1÷ Z[G +6]→Z[5]: 1÷ Z[G +7]→Z[6]↙
Z[6]-Z[5]→Z[6]: S-Z→D ↙
If  O = 3  : Then  0→N : IfEnd : Prog  “Q . 4 ”↙


子程序Q .4            (正算)

Lbl  0 : 0→I : 0→E:0→F : 0→G : 0→H ↙
Lbl  1 : I + 1→I : Z[3]+ Z[4]( ( I D÷12) ( Z[5]+ I D Z[6]÷24÷M ) ( 180÷л ) →W : If  I ﹤12: Then  If  Frac ( I÷2 ) ﹥0 : Then  E + cos ( W ) →E : F + sin ( W ) →F : Else  G + cos ( W ) → G : H + sin ( W ) → H : IfEnd : IfEnd ↙
If  I ﹤12 : Then  Goto 1:IfEnd ↙
Z[1]+(D÷36)( cos ( Z[3]) + cos ( W ) + 2G + 4E ) + N cos ( U + W ) →P ↙
Z[2]+(D÷36)( sin ( Z[3]) + sin ( W ) + 2H + 4F ) + N sin ( U + W ) →Q ↙
If  O = 3 : Then  Goto  2 : IfEnd ↙
If  O ≠ 0 : Then  Cls : “ XP = ” : Locate 5 , 1 , P : “ YP = ” : Locate 5 , 2 , Q : “ AT = ” : W►DMS◣
IfEnd ↙
Z[27]→I : If  Z[I]- S = 0  And  Z[I + 1]= 0 And  N = 0 : Then  P →Z[I + 1]: Q→Z[I + 2]: W : Prog “ H ” : T→Z[I +3]: IfEnd ↙
If  O ≠ 1: Then  Pol( P-Z[11], Q-Z[12]) : If  J < 0 : Then J+360→J : IfEnd : Cls : “ SP= ” : Locate 5 , 1 , I : “ BP= ” : J ►DMS◣
Prog  “ Q. 6 ” : IfEnd ↙
Lbl  2


子程序F . 2             (反算)

“ ZH.D(LI) →0 : NO→1” ? U ↙
Lbl  2 : If  U = 0 : Then “ I ” ? B : IfEnd ↙
Z[98]+ 8 Z[99]→M ↙
If  X = 0 : Then  Z[13]→X : IfEnd : “ X ” ? X : If  X = 0 : Then  Goto  3 : IfEnd ↙
“ Y ” ? Y : 1 →Z[8]↙
“⇒ ” ↙
If  U = 1 : Then -√ ( ( X-Z[M + 1]) ² + (Y-Z[M +2]) ² ) →Z[7]: Z[7]+Z[M]→S :  Prog“Q . 2”: IfEnd ↙
Z[98]+ 8 B→M : Z[M +3]: Prog“J ”: T-90→T ↙
( Y-Z[M +2]) cos (T) -( X-Z[M + 1]) Sin (T) →Z[7]↙
If  U =1 And  Abs ( Z[7]) ≤ 0.01: Then -0.01 →Z[7]: IfEnd ↙
Z[7]→D : Z[M]+ D →S :
If  S > Z[M +8]: Then  Z[M +8]→S ; IfEnd  ↙
If  U = 0 : Then  Prog“Q . 3”: Else  Prog“Q . 2”: IfEnd ↙
“⇒ ” ↙
Lbl  1 : ( Y-Q ) cos (W-90)-(X-P) sin (W-90) → Z[8]↙
Z + Z[7]+ Z[8]→S↙
If  Abs ( Z[8]) ≥ 0.0001: Then Z[7]+ Z[8]→D : Prog“Q .4”: D→Z[7]: Goto  1: IfEnd ↙
If  U =1: Then  If  S + 0.01< Z : Then “ DKP≠ ” : S ◣
If  B< Z[99]-1 : Then B-1→B : Z[Z[98]+ 8B ]→I : Z→J : Else Z→I : Z[Z[98]+ 8 Z[99]]→J : IfEnd : “ L(I)= ” : B ◣
Cls : “ MIN= ” : Locate 6 , 1 , I : “ MAX= ” : Locate 6 , 2 , J : “ END, ⇒ZH.D(LI)”◣
X →Z[13]: 0→X : 3→O: Goto  3 : IfEnd: IfEnd ↙
If  U =0: Then  If  S< Z- 0.01 : Then “ DK<MIN,L→(I-1) ” ◣
Goto  2 : IfEnd : If  S> Z[Z[98]+ 8(B+1) ]+ 0.01: Then “ DK>MAX , L→(I+1) ” ◣
Goto  2 : IfEnd : IfEnd ↙
Cls : “ DKP=” : Locate  6 ,1, S : X-P→P : If  P =0: Then  ×10-9→P : IfEnd : Pol( P , Y-Q) : If  sin(W-J)>0: Then -I→I : IfEnd : “ D÷2= ”: Locate 6 , 2, I : Goto  2↙
Lbl  3


子程序 J
Ans  ÷ . 36 -16 ( Int  ( Ans ) ) ÷ 9-Int (100 (Ans- Int (Ans ) )  ) ÷90→T


子程序 H
. 6 4 Int  ( Ans )+. 36 Ans + . 004 Int ( ( 60 ( Ans- ( Int (Ans ) ) →T


为了实现桥台转轴坐标计算,现(2009.04.19)加一个子程序如下:

子程序 JH . ZJ       (桥台转轴)
“⇒B ”? V : V : Prog“J : W + T→T ↙
Lbl  1 : “⇒(-Y +) D ”? N : N = 0 ⇒ Goto 2 : “⇒(-→ +) S ”? S↙
Pol(N , S ) : Rec( I ,T-J ) ↙
Cls : “X = ”: Locate  6, 1 , I + P : “Y = ”: Locate  6 , 2 , J + Q ◣
Goto 1 ↙
Lbl  2 : “ OK ” ◣


在子程序Q.1 中语句 Lbl  1 : Z[98]→ I : Z[99]→ J : “ →DKP ” ? S ↙后加
If  S = -1: Then  Prog  “JH . ZJ ” : Goto  1 : IfEnd ↙(加桥台转轴时)就可以了,(2009.04.19以加,见绿色标注语句。


                  桥台(桩基)转轴直角坐标计算 运行提示符

       直角坐标放样令DKP=-1时,转向桥台(桩基)转轴直角坐标计算

  提  示  符          说                  明

                   以上一测点中桩为中心作偏转
  ⇒ B ?           问转轴偏角(以小数点为度)
  ⇒(-Y + ) D?    问偏距(与直角坐标放样时意义一致)。赋值0时转向OK
  ⇒(-→ + ) S?   问支距(小里程方向为-,大里程方向为+)
  X=               给出点位纵坐标
  Y=               给出点位横坐标                        
  OK              本转轴各点计算结束,返回直角坐标放样。

子程序 ZH . 2       (涵通转轴)
“⇒B ”? V : V : Prog“J”: W + T→T
Lbl  1 : “⇒(-→ +)  K ”? S : S = 0 ⇒ Goto 2 : “⇒(-Y +) D ”? N ↙
N Cos ( T) + P → X : N Sin ( T) + Q→ Y  ↙
Cls : “X = ”: Locate  6, 1 ,S Cos( W ) + X : “Y = ”: Locate  6 , 2 , S Sin(W ) + Y ◣
Goto 1 ↙
Lbl  2 : “ OK ” ◣


在子程序Q.1 中语句If  S = -1: Then  Prog  “JH . ZJ ” : Goto  1 : IfEnd ↙后加
                 If  S = -2: Then  Prog  “ZH . 2 ” : Goto  1 : IfEnd ↙(加涵通转轴时)即可。
                    

      涵通转轴直角坐标计算  中桩直角坐标放样令DKP=-2时,
提  示  符 示  例 说                  明
           以上一测点中桩为中心作偏转
⇒ B ?           问涵通偏角(以小数点为度)
⇒(-→ + ) δ K?  问里程差(相对于涵通中桩,小里程为-、大里程为+),赋值0时转向OK
⇒(-Y + ) D?  问偏距(与直角坐标放样时意义一致)
X=                         给出点位纵坐标
Y=                         给出点位横坐标  
OK           本转轴各点计算结束,返回直角坐标放样。




算例1
       例某工程C匝道:

   根据算例数据确定综合曲线属性: 令名 C.ZD   令编号0   令(矩阵存起始储单元 )Z[MIN]= 100   (综合曲线段数,不含终点)N = 4
      红色数据应在Q.5程序运行时按提示赋值

  一   给矩阵存储单元定维:(COMP状态下)   140→DimZ
  
  二   编写程序PPQX(PROG状态下给定综合曲线属性)

  “ C. ZD →0 ” ? C ↙
  If  C=0: Then 起始单元100→Z[98]: 段数4 →Z[99]: IfEnd ↙
  Prog “ PQX ”

      
  三  启动Q . 5  按下列数据建立矩阵存储表  (COMP状态下按提示赋值,详见附件运行提示符)
    
      
 
       自              然                  段
 
名 称   L0      L1         L2           L3            L4
      
DK       0      190        355.927      472.168    561.791
X    20934.495  21066.119  21142.859   21076.993  20988.267
Y    89274.172  89411.182   89552.427  89640.286  89644.485
AT   47.08177  45.09322    93.33281    160.09323   185.50027
±1      -1         1          1           1          0
L     190      165.927       116.241    89.623         0
R1     5500       5500       100        100            0
R2     5500       100        100         ×10 20         0


   备注: 起始矩阵存储单元 Z[100]   终了矩阵存储单元 Z[139 ]。   (139 =100 +8 × 5-1)


四   启动程序PPQX(COMP状态下指定需计算的综合曲线编号)
   C. ZD →0 ?    提示C匝道赋值 0
        回车
  (自动转向PQX进入各项计算)

为了提高计算速度,现提供Q.4 (5点法加速),以该程序取代原有Q.4,其它无需改变。取代后按指定区间反算时间大约4秒,有兴趣的朋友可以试试。
Q.4     (5点法加速)

If  Z[4]= 0 : Then 1→Z[4]: IfEnd↙
Z[4]Z[G+6]→Z[9]: Z[4]Z[G+7]→Z[10]↙
( Z[9]-Z[10]) ÷ ( 2M  Z[9]Z[10])→Z[13]: S-Z→ Z[14]: Z[13]Z[14]→Z[13]: 1 ÷ Z[9]→Z[22]↙
0.1739274226→ Z[15]: 0.3260725774→ Z[16]: 0.0694318442→ Z[17]: 0.3300094782→ Z[18]↙
1-Z[18]→Z[19]: 1-Z[17]→Z[20]: 180 ÷ л → Z[21]↙
Z[3]+ Z[17]Z[14](Z[22]+ Z[17]Z[13]) Z[21]→Z[17]↙
Z[3]+ Z[18]Z[14](Z[22]+ Z[18]Z[13]) Z[21]→Z[18]↙
Z[3]+ Z[19]Z[14](Z[22]+ Z[19]Z[13]) Z[21]→Z[19]↙
Z[3]+ Z[20]Z[14](Z[22]+ Z[20]Z[13]) Z[21]→Z[20]↙
Z[3]+ Z[14] ( Z[22]+ Z[13]) Z[21]→W↙
Z[1]+ Z[14] ( Z[15]cos( Z[17]) + Z[16]cos( Z[18]) + Z[16]cos( Z[19]) + Z[15]cos( Z[20]) ) +N cos( U + W ) →P↙
Z[2]+ Z[14] ( Z[15]sin( Z[17]) + Z[16]sin ( Z[18]) + Z[16]sin ( Z[19]) + Z[15]sin ( Z[20]) ) + N sin (U + W) →Q↙
If  O = 3 : Then  Goto 2 : IfEnd↙
If  O ≠ 0 : Then  Cls : “ XP= ” : Locate 5 , 1 , P : “ YP= ” : Locate 5 , 2 , Q : “ AT= ” : W►DMS◣
IfEnd↙
Z[27]→I : If  Z[I]- S = 0  And  Z[I+1]= 0  And N = 0 : Then  P→Z[I+1]: Q → Z[I+2]: W : Prog “ H ” : T→ Z[I+3]: IfEnd↙
If  O ≠ 1: Then  Pol( P-Z[11], Q-Z[12]) : If  J < 0 : Then J+360→J : IfEnd : Cls : “ SP= ” : Locate 5 , 1 , I : “ BP= ” : J ►DMS◣
Prog  “ Q. 6 ” : IfEnd ↙
Lbl  2


CASIO-fx5800程序源(任意平曲线极坐标与直角坐标放样,求里程及边距).rar(73.6 KB)


需对程序有更多了解,可点击附件,看运行提示符      


Google


TAG: 程序 极坐标 里程 曲线 直角

最新评论

  • 删除 引用 被遗忘的角落 (2012-4-03 11:42:34, 评分: 0 )

    谢谢楼主分享
  • 删除 引用 sclgh (2011-8-12 08:56:24, 评分: 0 )

    看着不错,就是觉得复杂点了
  • 删除 引用 ren10209 (2011-4-23 22:01:56, 评分: 0 )

    不错平5分
  • 删除 引用 752916107 (2011-3-27 20:18:08, 评分: 0 )

    能不能下来看看
  • 删除 gug115 (2010-11-29 14:11:41, 评分: 5 )

    评 5 分
  • 删除 引用 gug115 (2010-11-29 14:11:25, 评分: 0 )

    可惜没有积分下不了啊
  • 删除 引用 8961qwer (2010-8-08 09:11:08, 评分: 0 )

    这是个好资料
  • 删除 引用 848012769 (2010-7-31 11:27:01, 评分: 0 )

    好东西啊
  • 删除 引用 cheliangxiaohuo (2010-5-05 17:58:19, 评分: 0 )

    没积分啊!下不了!
  • 删除 引用 Guest (2010-4-03 09:52:04, 评分: 0 )

    要仔细看看
  • 删除 引用 Guest (2010-4-03 09:51:53, 评分: 0 )

    要仔细看看
  • 删除 引用 wangweng31 (2010-3-31 15:11:39, 评分: 0 )

    这是个好资料
  • 删除 Guest (2010-2-05 23:22:13, 评分: 5 )

    评 5 分
查看全部13条评论
 
-5 -3 -1 - +1 +3 +5

评分:0

发表评论

【声明】 路桥吾爱刊载的资讯及其他内容均由网友提供分享 并且纯属作者个人观点,不表示路桥吾爱同意其说法或描述,仅为提供更多信息,也不构成任何建议。网友转载请注明原作者姓名及出处。如有侵犯到您的版权,请与我们联系,我们会马上进行重新整理!

信息搜索 便民服务

  • 标题:
  • 分类:

最近更新

  • CASIO fx-5800P放样程序(优化)
  • CASIO-fx5800程序源(任意平曲线极坐标与直角坐标放样,求里程及边距)
  • 5800道路三维坐标计算
  • 5800平曲线测量程序
  • CASS和MapGIS图形接口的二次开发探讨(图)
  • CAD工具妙用,深入理解CAD数据(图)
  • 关于安装的那些事儿
  • 匝道曲线中桩计算程序(CASIO 5800)-可正向算 可逆向算 精度可调
  • 公路路线高程通用程序(CASIO5800)
  • 利用VBA程序语言绘制公路纵断面图

本月热点

相关阅读

  • 5800平曲线测量程序
  • 匝道曲线中桩计算程序(CASIO 5800)-可正向算 可逆向算 精度可调
  • 公路路线高程通用程序(CASIO5800)
  • 基于通用有限元程序和微平面模型分析(图)

赞 助 商

点击这里给我发消息 加入【路桥吾爱-lq52.com】QQ群 | 交流论坛 | 站点地图 | 友情链接 | 空间列表 | 站点存档 | 手机访问 |

路桥吾爱 2001-2012 湘ICP备16018960号-1