9860测量程序共17页.docx
- 文档编号:10050088
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:21
- 大小:21.85KB
9860测量程序共17页.docx
《9860测量程序共17页.docx》由会员分享,可在线阅读,更多相关《9860测量程序共17页.docx(21页珍藏版)》请在冰豆网上搜索。
9860测量程序共17页
程序清单
AA
Do:
Deg:
ClrText
“F1Fangyang”
“F2Jiance”
“F3suidao”
‘FN:
6→V:
3→I:
Prog“GN”
‘XL:
3→V:
Prog“GN”
Prog“FN”:
ClrText
“Cont”:
1→W:
Prog“SC”
LpWhileF=1
ZZ
List7[1]→I:
List8[I]→I:
1→V
Do:
I+1→I:
List9[I+1]→Q
LpWhileK>Q-List12[I+1]
List10[I]→M:
List11[I]→N
List16[I]→S:
List17[I]→R
List9[I]→Q:
-List12[I]→J
6→W
‘QH:
Q+J→Q:
Prog“SC”:
Prog“GN”
K-Q→J:
1E-20→B:
List13[I]→O
O<0=>1÷List17[I-1]→B
AbsO→O:
(1÷R-B)÷2÷O→C
ZX:
IfJ<0:
ThenProg“SC”
Return:
IfEnd
7→W
‘HQ:
IfJ ThenProg“SC” Return: IfEnd ‘HY: O→J: Prog“SC”: Prog“GN” Q+O→Q: K-Q→J: List14[I]→O 8→W ‘YQ: IfJ ThenProg“SC” Return: IfEnd ‘YH: O→J: Prog“SC”: Prog“GN” Q+O→Q: K-Q→J: List15[I]→O 1÷R→B: 1E20→R O<0=>List17[I+1]→R AbsO→O: (1÷R-B)÷2÷O→C 7→W ‘HQ: IfJ ThenProg“SC” Return: IfEnd ‘HZ: O→J: Prog“SC”: Prog“GN” K-Q-O→J 6→W ‘ZX: Prog“SC” 主程序 设置角度单位为度 F1放样 F2检测 F3隧道 接受F1~F3功能键 选择输入线路号 执行上述按键对应的F1~F3功能 是否继续F1是F2否 按键为F1时重新开始 中桩计算子程序 获取平曲线数据行号,指定沿曲线按导线递推 读取下一曲线交点里程JD 直到里程小于下一曲线起点(JD-T) 读取交点坐标 读取切线方位角和圆半径 读取交点里程和负的切线长 直线计算功能 由交点推算到起缓 求第一缓曲测线长、默认起点曲率、缓曲长 若第一缓长为负令前曲圆曲率为起点曲率 第一缓长改为正,求缓曲变化系数 K小于曲线起点按直线计算 跳出子程序 缓曲计算功能 K小于缓圆按缓曲计算 跳出子程序 由曲线起点推算到缓圆 求圆曲段测线长及圆曲长 圆曲计算功能 K小于圆缓按圆曲计算 跳出子程序 由缓圆推算到圆缓 求第二缓曲测线长、缓曲长 求起点曲率、默认终点半径 若第二缓长为负令后曲圆半径为终点半径 第二缓长改为正,求缓曲变化系数 缓曲计算功能 K小于曲线终点按缓曲计算 跳出子程序 由圆缓推算到缓终 求直线长 直线计算功能 K大于曲终按直线计算 FN ‘FY: If: F=1: ThenDo: ClrText “Fangyang” 5→V: Prog“GN”: I=0=>Return Prog“ZZ”: Prog“GN” Do: ClrText: 4→W: 0→L “F1Daoxian”: “F2Shexian”: “F32Bian” ‘FN: 6→V: 3→I: Prog“GN”: F→V: F=3=>2→V “J”? ->r: r→J: “A”→θ: θ→A ‘SX.DX: ClrText: Prog“GN” ‘“XY”: Prog“SC” ‘SX: IfF=3: Then-J→r: A→θ Prog“GN”: Prog“SC”: IfEnd: “OK”▲ ClrText: “F1Next”: “F2K? ”: “F3Quit” ‘FN: 6→V: 3→I: Prog“GN” LpWhileF=1: LpWhileF=2 Return: IfEnd ‘JC: IfF=2: ThenDo: ClrText “Jiance”: 0→List25[1] “F1Lumian”: “F2Bianpo”: “F32D” ‘FN: 6→V: 3→I: Prog“GN”: F→U ‘K? : 5→V: Prog“GN”: I=0=>Return Do: ‘FS: “X”? →X: “Y”? →Y 7→V: Prog“GN”: I=0=>Return ‘“KJ”: ClrText: 0→L: 5→W: Prog“SC” IfU≠3: Then“Z”? →Z List7[1]→I: List8[I]→A IfList25[1]=0: Then‘ZG: 8→V: Prog“GN” 3→W: Prog“SC”: ‘DM: 0→W: Prog“SC” ‘LJ: 9→W: Prog“SC”: IfEnd IfU=1: Then“-H”? →R: ElseZ-G→R: IfEnd ‘PK: 0→V: Prog“GN” IfU=1: ThenAbsJ→r: Z-R-H-(r-K)C→R: r-K-Q→J ElseAbsJ-E-Q→J: List25[1]→Q: J→List25[1] Q≠0=>QJ÷(Q-J)→J: IfEnd ‘“dKdH”: 0→L: 2→W: Prog“SC”: “OK”▲ IfU=2: ThenClrText “NextPJ”: 1→W: Prog“SC”: F=1=>0=>List25[1] IfEnd: IfEnd: ClrText “F1Next”: “F2Menu”: “F3Quit” ‘FN: 6→V: 3→I: Prog“GN” LpWhileF=1: LpWhileF=2 Return: IfEnd 主功能子程序 放样计算 “放样” 输入里程 中桩坐标计算 指定显示坐标模式 F1导线,F2射线,F3二边 接受F1~F3功能键 读取测线长,转角 执行导线或射线计算 显示坐标 如按键是F3再算对称点 计算,显示图形第二点坐标 F1下一点,F2更换中桩,F3退出放样 接受F1~F3功能键 执行上述按键对应的F1~F2功能 如是F3退出 检测计算 “检测” F1路面,F2边坡,F32维” 接受F1~F3功能键 输入近似里程 输入待检坐标 执行反算求出里程和位置 显示里程和位置 如不是F3则输入测点高程 获取纵横断面数据行号 如第一次测断面则计算中桩高 显示中桩高,获取断面数据行号 计算硬(土)路肩高,宽, 如F1待检层距路面高,F2计算测点和土路肩高差 求测点边坡宽(相对路肩) 如F1求相对路面边的高宽超欠 如F2求相对土路肩高差和边坡宽基本超欠 如不是第一点则考虑原地面坡度修正宽超欠 显示高差,宽度超欠 如F2检测边坡时询问“下一坡脚F1是F2否” F1则将上次测点距边坡归零 如是F3不执行输入测点高及以上语句 F1继续原来功能F2返回功能选单F3退出检测 接受F1~F3按键 执行上述按键对应的F1~F2功能 如是F3退出 GN IfV=1OrV=2: ThenS+θ→θ: {M,N}+Rec(r,θ) ListAns[1]→r: ListAns[2]→θ IfV=1: Thenr→M: θ→N: S+A→S: IfEnd Return: IfEnd IfV=3: ThenDimList6→Q: Q=1=>Stop Do: ClrText: “”: ? →I: IntAbsI+1→I LpWhileI<2OrI>Q: I→List7[I] Return: IfEnd IfV=4OrV=5: ThenList7[1]→I List6[I]→Q: List7[I]→M: IfV=5: ThenClrText “XL”: “QDK”: “ZDK”: Locate4,1,I-1 Locate4,2,Q: Locate4,3,M: “K”? →K: IfEnd IfK Then0→I: “Kover”▲ ElseList8[I]→I: IfEnd: Return: IfEnd IfV=6: ThenDo: Do: 8.9-GetKey÷10→F LpWhileFracF≠0: LpWhileF>I: Return: IfEnd IfV=7: ThenDo: Prog“ZZ”: Prog“GN” Pol(X-M,Y-N): ListAns[1]→M Rec(M,ListAns[2]-S: ListAns[2]→J P*listAns[1]÷(P-J)→Q: K+Q→K 4→V: Prog“GN”: I=0=>Return LpWhileAbsQ>1milli: Return: IfEnd IfV=8=: ThenList9[A]→θ Ifθ<0: ThenClrText: “ZG”: 1→W: Prog“SC” IfF=1: Then–θ→θ: Return: Else0→θ: IfEnd: IfEnd Ifθ=0: Then“ZG”? →θ: -θ→List9[A]: Return: : IfEnd θ→I: Do: List18[I+1]→P: List21[I]→N List19[I]→Q: List18[I]→O: I+1→I: P-O→P NAbsP÷P→N: Abs(NP÷2)→P LpWhileK>Q+P: K-Q→Q: List20[I]+OQ→θ Q+P→Q: Q>0=>θ+Q2÷2÷N→θ: Return: IfEnd IfV=9: ThenIfr<0: ThenDo: List22[I]→P List23[I]→Q: I+1→I: List22[I]→N: List23[I]→O LpWhileK>N: IfEnd ElseDo: List22[I]→P: List24[I]→Q: I+1→I List22[I]→N: List24[I]→O: LpWhileK>N: IfEnd (K-P)÷(N-P)→P: 3P^(2^S)-2P^(3^S)→P Q+P(O-Q)→I: Return: IfEnd IfV=0: ThenD→I: Do: List25[I]→P: List26[I]→Q I+1→I: List25[I]→N: List26[I]→O LpWhileR (R-P)÷(N-P)→P: Q+P(O-Q)→Q: Return: IfEnd 功能子程序 计算下一点坐标 射线计算 如果V=1把终点作为起算点(导线) 输线路号,无数据时退出 输入线路号 如有数据,线路所在行号保存到List7[1] 检查里程 取得起点里程终点里程 线路起终点里程 显示已知数据,提示输入里程 如果里程不在范围则“K超范围” 否则输出平曲线数据所在行号 识别按键F1~FI 只对F1~FI有效 反算,先算出中桩坐标 求出测点到中桩距离 求出到切线垂直距离 计算切线方向改正量 检验里程是否超限 切线改正量小于1mm则结束 计算中桩高程 如果上次高程为手输,则询问是保留F1是F2否 F1用原数据,F2重输入 手工输入中桩高 自动计算中桩高,读出后坡,半径 变坡里程,前坡,求坡差 求半径和切线长 如果在竖曲线内则计算直坡各点高 在竖曲线上的加上改正量 直线或3次抛物线内插求值 查左线数据库, 查右线数据库 求出比例系数 内插求值 边坡宽直线内插求值 查询变坡点 找到高程点所在坡面 直线内插求出边坡宽 SC IfW=1: Then“F1Yes”: “F2No” 6→V: 2→I: Prog“GN”: Return: IfEnd IfW=2: Then“dG=”: ”dK=”: L+2→L Locate4,L-1,R: Locate4,L,J: Return: IfEnd IfW=3: Then“ZG=”: L+1→L Locate4,L,θ: Return: IfEnd IfW=4: Then“X=”: ”Y=”: L+2→L Locate3,L-1,r: Locate3,L,θ: Return: IfEnd IfW=5: Then“K=”: ”J=”: L+2→L Locate3,L-1,K: Locate3,L,J: Return: IfEnd IfW=6: Then0→A: 0→θ: J→r: 1E20→P: Return: IfEnd IfW=7: ThenJrList2(CJList2+B)→List3 Jlist1cosList3: SumListAns→r Jlist1sinList3: SumListAns→θ Jr(CJ+B)→A: Pol(r,θ): ListAns[1]→r ListAns[2]→θ: 1÷(2CJ+B)→P: Return: IfEnd IfW=8: ThenJr÷R→A: A÷2→θ 2Rsinθ→r: R→P: Return: IfEnd IfW=9: ThenJ→r: List10[A]→M List14[A]→R: List11[A]→T List12[A]→C: List15[A]-1→S IfS=-2: ThenClrText “NextLm”: 1→W: Prog“SC”: F-3→S: IfEnd IfS=-1: ThenS→List15[A] “CG”? →C: C→List12[A] “KD”? →M: M→List10[A] “TJ”? →T: T→List11[A] “CZ”? →R: R→List14[A] ElseIfS=0OrS=1: Then7→V: C→I Prog“GN”: I→C: T→I: Prog“GN”: I→T M→I: Prog“GN”: I→M: R→I: Prog“GN”: I→R IfR<0: ThenIfAbsC>0.02: Then–JC→r M→I: Prog“GN”: I→R: R(AbsC-0.02)+θ→θ: IfEnd 0→R: IfEnd: θ+MC→H IfC<-0.04: ThenH+TC→θ: ElseH-0.04T→θ: IfEnd R+M→K: K+T→r: Return: IfEnd IfW=0: ThenList13[A]→I IfI<0: Then2→D: IfI=-1: ThenClrText “NewDm”: 1→W: Prog“SC”: F-2→I: IfEnd IfI=0: Then“H”? →List25[D]: “W”? →List26[D] Do: D+1→D: “H”? →List25[D]: “W”? →List26[D] ClrText: “NextBp”: 1→W: Prog“SC”: LpWhileF=1 2→D: -1→List13[A]: IfEnd: Return: IfEnd 7→V: Prog“GN”: O→D: Return: IfEnd 输出等子程序 是否选项F1是F2否 接受F1,F2键 高度和宽度误差显示 显示数值 高程输出显示 显示数值 坐标输出显示 显示数值 位置输出显示 显示数值 直线延长计算,转角,偏角,弦长,半径 缓曲延长计算,分偏角计算 坐标分量计算 坐标分量计算 转角,弦长 偏角,半径 圆曲延长计算,转角,偏角 弦长,半径 路肩高宽计算,路面保存位置 分隔带,土路肩宽保存位置 超高保存位置,线路等级(内插方式)或数据写入状况 如上次数据是手工临时输入 提示是用原数据还是重输 如要求重输,则先改写数据写入状态为已输入 输入超高 输入路面宽 输入土路肩宽 输入分隔带半宽 如已知线路等级则按内插方式计算 C超高,T,土路肩宽 M路面宽,分隔带宽 如分隔带宽小于0,且超高大于2% 计算曲线内侧路面宽,改正中桩高 计算路面边高 以-4%坡为界,分别计算土路肩高 计算路面宽,土路肩宽 断面号查询 如临时断面数据已输入 提示用原断面还是重输入 如要求重输,先输入第一个边坡点 输入第二个边坡点 提示是否还输入下一点 将数据状态改为已输入,输出2为断面数据位置 否则查表找出断面数据位置. 使用说明书 一、数据准备 1、高斯公式常数表 高斯公式五节点10个常数保存在LIST第1、2列,共占5行。 如要提高运算速度或提高结果精度可改变此两列数据。 2、线路数据格式 线路数据保存在LIST的6~8列,第一行第第7列保存运行时线路选择结果。 从第二行开始保存各条线路基本情况,第6列为起点里程,第7列为终点里程,第8列为对应线路数据的详细资料的起始行号,数据必须连续存放。 3、平曲线数据格式 各条线路对应的平曲线数据分段保存在LIST的9-17列,各条线路保存顺序不限,每条线路数据连续存放。 每段的第一行各列为横断面有关数据保存的起始位置或计算参数。 第9列为竖曲线,第10列为路面宽度,第11列为土路肩宽度,第12列为超高,第13列为线路等级,第14列为超高旋转方式,第15列为边坡设计形式。 第一行第17列为第一个交点第一缓曲为不完整曲线时的起始半径,如为0表示起点是直线。 第二行起为交点资料,第9列为交点里程,第10列为交点X坐标,第11列为交点Y坐标,第12列为第一缓曲段长度(不完整时长度为负),第13列为圆曲线段长度,第14列为第二缓曲段长度(不完整时长度为负),第15列为圆曲线半径(右转为正),第16列为起点切线方位角,第17列为第一切线长度。 最后一行第9列是终点里程,第15列为最后一个交点第二缓曲为不完整曲线时的终点半径,如为0表示终点是直线,第17列必须为0。 此种数据格式可适应主线交点法及匝道线元法设计资料,主线按设计资料对应输入即可,匝道则先组合成不同的交点,每个交点为直、缓、圆、缓、直的组合,但每段长度都可为0,缓和曲线可为不完整的,令交点里程为第一缓曲起点里程,切线长为0。 有一段匝道如下线元组合,线元长略。 第1段: 直线 第2段: 缓曲 第3段: 圆R=200 第4段: 缓曲 第5段: 圆R=100 第6段: 缓曲 第7段: 直线 可以分成1、2、3、4和5、6、7两个交点也可分成1、2、3和4、5、6、7两个交点,只要算出每个交点第一个曲线元的起始坐标、方位角就行。 连续的数据库中把不完整的缓和曲线线元4的缓曲长改成负的程序就会自动处理。 4、竖曲线数据格式 各条线路对应的竖曲线数据分段保存在LIST的18-21列,各条线路保存顺序不限,每条线路数据连续存放。 第一行起为竖曲线资料,第18列为前坡度(上坡为正),第19列为变坡点里程,第20列为变坡点高程,第21列为竖曲线半径(下凹为正)。 最后一行18列为后坡度。 5、横断面数据格式 各条线路对应的路面宽度、路肩宽度、路面超高(向路肩下坡为正)、边坡形式数据(简称数据)分段保存在LIST的22-24列,各条线路保存顺序不限,每条线路数据连续存放。 各行的22列为变化点里程,23列为左侧数据,24列为右侧数据。 6、边坡详细数据 各种边坡变坡点对应的距路肩宽度、高度数据分段保存在LIST的25-26列,各种边坡形式保存顺序不限,每种边坡数据连续存放。 每种边坡形式数据的第25列为变坡点距路肩高差,第26列为变坡点距路肩宽度。 二、修改程序 为了更方便的使用,GN子程序的线路选择模块暂写了“”,双引号里在正式程序里用序号和线路名称的对照表代替,大致格式如下,每组双引号里内容不超过20字符,每7行加一▲ 例如: “1: ZHUXIAN”: “2: A-ZADAO”: “3: B-ZADAO”: “4: C-ZADAO” “5: D-ZADAO”: “6: E-ZADAO”: “7: F-ZADAO”▲ “8: G-ZADAO”: “9: H-ZADAO”: “10: I-ZADAO” 三、程序使用 ㈠运行AA程序 1、屏幕提示开始功能选项 F1Fangyang F2Jiance F3Suidao 分别代表“放样、检测、隧道”,按F1-F3选择相应功能(隧道部分尚未编写) 2、屏幕接着提示 1: 线路1 2: 线路2 XL? 输入线路号 3、进入选中线路并执行相应功能。 4、执行完上述功能后屏幕提示 Cont F1Yes F2No 按F1重新返回第一步 按F2结束运行程序 ㈡放样功能执行流程 1、屏幕提示 QD: #####.### ZD: #####.### K? 输入待测里程 里程在线路范围到下一步,否则结束本次放样计算。 2、屏幕提示 F1Daoxian F2Shexian F32Bian 分别表示以导线方式延伸测量、向周围放射测量、成对对称测量,按F1-F3执行相应计算。 J? 输入到起算点距离 A? 输入偏离起算方向角度(右转为正) 输出计算结果坐标 1: X=######.### Y=######.### [2: X=######.### Y=######.###] OK 3、执行完上述计算后屏幕提示 F1NEXT F2K? F3QUIT 按F1到2继续算下一点 按F2到1改变起算点里程从头算 按F3结束本次放样计算。 ㈢检测功能执行流程 1、屏幕提示 F1Lumian F2Bianpo F32D 分别表示检查路面层高度误差、边坡宽度误差、只显示,按F1-F3执行相应计算。 2、屏幕提示 QD: #####.### ZD: #####.### K? 输入近似里程 里程在线路范围到下一步,否则结束本次检测计算。 X? 输入实测X坐标 Y? 输入实测Y坐标 输出计算结果里程、偏距: K=######.### J=###.### 如选择的功能是F32D则到 3、Z? 输入实测Z坐标 如选择功能是F1Lumian再 -H? 输入待测面与路面的高差。 输出计算结果高度误差和宽度误差 dG=###.### dK=###.### 当选择功能是F1Lumian时输出的是相对指定层次的高度误差和测点相对所在指定层的路面外侧(全宽减土路肩)宽度超欠 当选择功能是F2Bianpo时输出的是测点相对路肩的高差和相对边坡面的宽度超欠,测点在边坡外为正。 而且询问是否换下一个坡脚点 NextPJ F1Yes F2No 关于手动输入数据 计算过程中出现数据库无路面或边坡数据时会要求输入 如无竖曲线数据时 ZG? 输入中桩高 如无路面数据时 CG? 输入超高 KD? 输入路面宽 TJ? 输入土路肩宽 CZ? 输入中央分隔带半宽 如是第二个点时会提示 NextLm F1Yes F2No 按F1重新输入路面数据 按F2使用旧路面数据 如无边坡数据时 H? 第一点相对路肩高 W? 第一点相对路肩宽 H? 第二点相对路肩高 W? 第二点相对路肩宽 NextBp F1Yes F2No 按F1再输入下一点高宽 按F2结束 希望以上资料对你有所帮助,附励志名言3条: 1、生气,就是拿别人的过错来惩罚自己。 原谅别人,就是善待自己。 2、未必钱多乐便多,财
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 9860 测量 程序 17
![提示](https://static.bdocx.com/images/bang_tan.gif)