免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

查看: 2700|回复: 5
收起左侧

[技术] PC-E500公路中线BASIC程序

[复制链接]

1253

主题

1万

铜板

84

好友

钻石会员

我的起步与世界同行

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
11786

灌水勋章荣誉会员勋章活跃勋章精华勋章

发表于 2011-6-2 19:15 | 显示全部楼层 |阅读模式
摘 要:公路的线形由路线的中桩坐标决定并体现,针对这一特点编写该中桩坐标计算程序,从而方便施工放样工作。
关键词:公路,程序,BASIC语言
一:说明
该程序运行前先建立数据库文件,运行时只需输入曲线交点号和桩号即可,程序自动判断所求桩号所在曲线类型并计算出其中桩坐标,之后询问是否需要计算其边桩坐标,如是输入宽度即可得边桩坐标,为方便还显示中桩的切线方位角。该程序在PC-E500袖珍电脑PRO状态下写入,在RUN状态下运行。如有条件还可与全站仪直接交换数据。
二:程序流程图

三:程序清单
JN-交点序号
JD—交点桩号
A —转角
R —交点半径
S1—第一缓和曲线长度
S2—第二缓和曲线长度
T1 —第一切线长度
T2 —第二切线长度
L —曲线总长度
P —转角符号,右转P=1,左转P= -1
F —交点方位角

,按顺序方向
XJ—交点X坐标值
YJ—交点Y坐标值
主程序:
10:DEGREE
20:INPUT ″PN=?″;PN
21:OPEN″E:SJK″FOR INPUT AS#1
30:INPUT#1,JN,JD,A,R,S1,S2,T1,T2,L,P,F,XJ,YJ
40:IF PN=JN  THEN 50  ELSE 30
50:CLOSE#1
60:ZH=JD-T1
70:HY=ZH+S1
80:QZ=HY+(L-S1-S2)/2
90:YH=ZH+(L-S2)
100:HZ=ZH+L
110:USING″######•###″
120:PRINT″ZH=″;MDF ZH,″HY=″;MDF HY,″QZ=″;MDF QZ,″YH=″;
MDF YH,″HZ=″;MDF HZ
130:INPUT ″zhuang hao=?″;Z:IF Z<0 INPUT″do you want to exit? ″;A$:IF A$=
    ″1″ THEN 190 ELSE IF A$=″0″ THEN 20
140:IF Z<=ZH GOSUB 200
150:IF Z>ZH AND Z<=HY GOSUB 400
160:IF Z>HY AND Z170:IF Z>=YH AND Z180:IF Z>=HZ GOSUB 300
190:END
前直线中桩坐标子程序
200:REM SUBROUTINE FOR CALCULATING QZXZB
210:X=XJ+(T1+ZH-Z)*COS(F+180)
220:Y=YJ+(T1+ZH-Z)*SIN(F+180)
230:GOSUB 1500
240:INPUT″calculating border coordinates?″;R$:IF R$=″0″THEN 130  ELSE IF R$=″1″GOSUB 700
250:RETURN
后直线中桩坐标子程序
300:REM SUBROUTINE FOR CALCULATING HZXZB
310:X=XJ+(T2+Z-HZ)*COS(F+P*A)
320:Y=YJ+(T2+Z-HZ)*SIN(F+P*A)
330:GOSUB 1500
340:INPUT″calculating border coordinates?″;R$:IF R$=″0″THEN 130  ELSE IF R$=″1″GOSUB 800
350:RETURN
第一缓和曲线中桩坐标子程序
400:REM SUBROUTINE FOR CALCULATING ZH-HY
410:N=Z-ZH
420:K=N-N^5/(40*R^2*S1^2)+N^9/(3456*R^4*S1^4)
430:XZH=AER1
440:YZH=AER2
450:X=XZH+K/COS(30*N^2/(PI*R*S1))*COS(F+P*30*N^2/(PI*R*S1))
460:Y=YZH+K/COS(30*N^2/(PI*R*S1))*SIN(F+P*30*N^2/(PI*R*S1))
470:GOSUB1500
480:INPUT″calculating border coordinates?″;R$:IF R$=″0

″THEN 130  ELSE IF R$=″1″GOSUB 1100
490:RETURN
第二缓和曲线中桩坐标子程序
500:REM SUBROUTINE FOR CALCULATING YH-HZ
510:N=HZ-Z
520:K=N-N^5/(40*R^2*S2^2)+N^9/(3456*R^4*S2^4)
530:XHZ=AER3
540:YHZ=AER4
550:X=XHZ+K/COS(30*N^2/(PI*R*S2))*COS(F+P*A+180-P*30*N^2/(PI*R*S2))
560:Y=YHZ+K/COS(30*N^2/(PI*R*S2))*SIN(F+P*A+180-P*30*N^2/(PI*R*S2))
570:GOSUB1500
580:INPUT″calculating border coordinates?″;R$:IF R$=″0″THEN 130  ELSE IF R$=″1″GOSUB 1300
590:RETURN
圆曲线中桩坐标子程序
600:REM SUBROUTINE FOR CALCULATING  HY-YH
610:K=LH-S1^3/(40*R^2)+S1^5/(3456*R^4)
620:XHY=AER1+K/COS(30*S1/(PI*R))*COS(F+P*30*S1/(PI*R))  
630:YHY=AER2+K/COS(30*S1/(PI*R))*SIN(F+P*30*S1/(PI*R))
640:N=Z-HY
650:X=XHY+2*R*SIN(90*N/(PI*R))*COS(F+P*90*(N+S1)/(PI*R))
660:Y=YHY+2*R*SIN(90*N/(PI*R))*SIN(F+P*90*(N+S1)/(PI*R))
670:GOSUB 1500
680:INPUT″calculating border coordinates?″;R$:IF R$=″0″THEN 130  ELSE IF R$=″1″GOSUB 900
690:RETURN
前直线边桩坐标子程序
700:REM SUBROUTINE FOR CALCULATING  QZXBZZB
710:INPUT ″width=?″;W
720:LET J=1
730:IF W=0  THEN  130
740:IF W<0  LET J= -J
750:XW=X+J*W*COS(F+J*90):YW=Y+J*W*SIN(F+J*90)
760:GOSUB 1600
770:GOTO 710
780:RETURN
后直线边桩坐标子程序
800:REM SUBROUTINE FOR CALCULATING  HZXBZZB
810:INPUT ″width=?″;W
820:LET J=1
830:IF W=0  THEN  130
840:IF W<0  LET J= -J
850:XW=X+J*W*COS(F+P*A+J*90):YW=Y+J*W*SIN(F+P*A+J*90)
860:GOSUB 1600
870:GOTO 810
880:RETURN
圆曲线边桩坐标子程序
900:REM SUBROUTINE FOR CALCULATING  YQXBZZB
910:N=Z-HY
920:G=F+P*S1*180/(2*PI*R)
930:Q=G+N*P*180/(PI*R)
940:USING″####&#8226;####″
950:PRINT″qi xian fwj=″;

MDF(DMS Q)
960:INPUT″width=?″;W
970:LET J=1
980:IF W<0 LET J= -J
990:IF W=0 THEN 130
1000:XW=X+J*W*COS(Q+J*90):YW=Y+J*W*SIN(Q+J*90)
1010:GOSUB 1600
1020:GOTO 960
1030:RETUTN
第一缓和曲线边桩坐标子程序
1100 :REM SUBROUTINE FOR CALCULATING  ZH-HY BZZB
1110:N=Z-ZH
1120:Q=N^2*90*P/(PI*R*S1)+F
1130:USING″####&#8226;####″
1140:PRINT″qi xian fwj=″;MDF(DMS Q)
1150:INPUT″width=?″;W
1160:LET J=1
1170:IF W<0 LET J= -J
1180:IF W=0 THEN 130
1190:XW=X+J*W*COS(Q+J*90):YW=Y+J*W*SIN(Q+J*90)
1200:GOSUB 1600
1210:GOTO 1150
1220:RETURN
第二缓和曲线边桩坐标子程序
1300:REM SUBROUTINE FOR CALCULATING  HZ-YH BZZB
1310:N=HZ-Z
1320:Q=N^2*90*(-P)/(PI*R*S2)+(F+P*A)
1330:USING″####&#8226;####″
1340:PRINT″qi xian fwj=″;MDF(DMS Q)
1350:INPUT″width=?″;W
1360:LET J=1
1370:IF W<0 LET J= -J
1380:IF W=0 THEN 130
1390:XW=X+J*W*COS(Q+J*90):YW=Y+J*W*SIN(Q+J*90)
1400:GOSUB 1600
1410:GOTO 1350
1420:RETURN
中桩坐标输出子程序
1500:REM SUBROUTINE FOR CALCULATING  ZSC
1510:PRINT″zhuang hao:″;Z
1520:USING″#######&#8226;###″
1530:PRINT″X=″;MDF X
1540:PRINT″Y=″;MDF Y
1550:RETURN
边桩坐标输出子程序
1600:REM SUBROUTINE FOR CALCULATING  BSC
1610:PRINT″width=″;W
1620: USING″#######&#8226;###″
1630:PRINT″XW=″;MDF XW
1640:PRINT″YW=″;MDF YW
1650:RETURN



AER状态下输入以下:
AER1:XJ+T1*COS(F+180)
AER2:YJ+T1*SIN(F+180)
AER3:XJ+T2*COS(F+P*A)
AER4:YJ+T2*SIN(F+P*A)

数据库文件没有给出,了解PC-E500的人都知道怎样编写数据库文件

581

主题

1376

铜板

220

好友

钻石会员

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
14197

宣传勋章爱心勋章优秀斑主灌水勋章活跃勋章贡献勋章

发表于 2011-6-6 09:56 | 显示全部楼层
好资料,谢谢分享啦,呵呵
该会员没有填写今日想说内容.

8

主题

7083

铜板

0

好友

高级工程师

Rank: 9Rank: 9Rank: 9

积分
662
发表于 2013-2-7 15:02 | 显示全部楼层
好样的,谢谢
回复 支持 反对

使用道具 举报

0

主题

638

铜板

0

好友

助理工程师

Rank: 5Rank: 5

积分
174
发表于 2015-5-17 15:15 | 显示全部楼层
学习了,感谢提供
回复 支持 反对

使用道具 举报

22

主题

5万

铜板

18

好友

传奇会员

YK

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
37711

灌水勋章

发表于 2018-12-28 13:39 | 显示全部楼层
看看,,,,
回复

使用道具 举报

22

主题

5万

铜板

18

好友

传奇会员

YK

Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

积分
37711

灌水勋章

发表于 2018-12-28 13:39 | 显示全部楼层
谢谢,,,,,
该会员没有填写今日想说内容.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

在线客服
快速回复 返回顶部 返回列表