【摘 要】 本文介绍如何在微机上利用编程语言设计连续弯道计算程序,通过在计算机上输入弯道信息,利用程序自动计算出线路各里程坐标,把全站仪与计算机联机,将数据传输至仪器中,在野外作业时充分利用全站仪的放样功能,使得全站仪与计算机融为一体,实现整个线路放样的高效率。
【关键词】 多弯道编程 全站仪放样
假定JD1的里程为1+196.525、ZY里程为1+352.613、ZH里程为1+821.350、间距20米,则线路里程如下:
1+196.525(JD1)、1+200、1+220、… 、1+352.613(ZY)、1+360、… 、QZ、… 、YZ、… 、1+821.350(ZH)、1+841.350、… 、HY、…… 、JD5…。
由于线路含有圆曲线和缓和曲线,它们各为二次和二次以上曲线类型,其计算过程复杂,而线路里程桩位间距较小,线路较长时,里程坐标数据多,外业放样工作量较大。
3、连续弯道编程基本思路
设计连续弯道计算程序时,首先要考虑满足线路放样的基本要求,即里程坐标数据要符合规范,做到计算成果的一致性。由于圆曲线和缓和曲线计算方法各有很多种,为了能够顺利实现连续弯道计算,最好采用圆曲线和缓和曲线相统一的计算方法,体现出计算公式规律性较强,容易编写子程序。从这个角度出发,笔者认为最好采用切线支距法,因为这种方法比较适合这种要求,下面笔者以VB编程为例,介绍这种方法。
(1)理论基础
对于直线段、折线计算比较简单,在此只讨论圆曲线和缓和曲线计算。
(说明)IPO变量为数据结束标志符,当IPO=“END”时,表明全部弯道计算完毕,JDX1,JDY1,JDX2,JDY2,JDX3,JDY3为交点坐标,R为曲线半径,LO为缓和曲线长度;当JDX3=0、JDY3=0时,定义为直线段,当R=0、LO=0,且JDX3>0时,定义为折线,当R>0、L0=0时定义为圆曲线,当R>0、L0>0时,定义为缓和曲线;IP变量表明本弯道与下一弯道如何联系,当IP>0时,弯道计算至切点,折线计算至第二个交点,当IP=0时,计算到弯道最后一个交点。
② 以圆曲线段计算为例介绍如何编写子程序。
a、里程计算子程序
| 0+113.546,1094.000,1288.000,0 |
0+480,1391.714,1305.297,0 |
| 0+120,1098.966,1292.123,0 |
0+486.572,1398.274,1305.054,0 |
| 0+130,1106.660,1298.510,0 |
0+490,1401.688,1305.355,0 |
| 0+140,1114.354,1304.898,0 |
0+500,1411.337,1307.880,0 |
| 0+150,1122.048,1311.285,0 |
0+510,1420.062,1312.713,0 |
| 0+160,1129.742,1317.673,0 |
0+517.631,1425.759,1317.773,0 |
| 0+170,1137.436,1324.060,0 |
0+494.805,1399.000,1289.000,0 |
| 0+180,1145.130,1330.448,0 |
0+517.631,1425.759,1317.773,0 |
| 0+190,1152.824,1336.835,0 |
0+520,1427.372,1319.508,0 |
| 0+200,1160.519,1343.223,0 |
0+530,1434.182,1326.830,0 |
| 0+210,1168.213,1349.611,0 |
0+540,1440.992,1334.153,0 |
| 0+220,1175.907,1355.998,0 |
0+550,1447.803,1341.476,0 |
| 0+230,1183.601,1362.386,0 |
0+560,1454.613,1348.799,0 |
| 0+240,1191.295,1368.773,0 |
0+570,1461.423,1356.121,0 |
| 0+249.578,1198.664,1374.891,0 |
0+580,1468.233,1363.444,0 |
| 0+259.578,1206.433,1381.186,0 |
0+590,1475.043,1370.767,0 |
| 0+269.578,1214.628,1386.908,0 |
0+600,1481.853,1378.089,0 |
| 0+270,1214.989,1387.128,0 |
0+610,1488.663,1385.412,0 |
| 0+280,1223.886,1391.676,0 |
0+614.900,1492.000,1389.000,0 |
| 0+290,1233.339,1394.911,0 |
0+620,1496.600,1386.796,0 |
| 0+300,1243.157,1396.767,0 |
0+630,1505.618,1382.475,0 |
| 0+309.424,1252.562,1397.219,0 |
0+640,1514.636,1378.154,0 |
| 0+310,1253.138,1397.206,0 |
0+650,1523.654,1373.832,0 |
| 0+320,1263.081,1396.220,0 |
0+660,1532.672,1369.511,0 |
| 0+330,1272.782,1393.828,0 |
0+670,1541.690,1365.190,0 |
| 0+340,1282.044,1390.079,0 |
0+680,1550.709,1360.869,0 |
| 0+349.270,1290.072,1385.459,0 |
0+690,1559.727,1356.548,0 |
| 0+359.270,1298.042,1379.426,0 |
0+700,1568.745,1352.226,0 |
| 0+369.270,1305.563,1372.837,0 |
0+710,1577.763,1347.905,0 |
| 0+320.198,1253.000,1420.000,0 |
0+720,1586.781,1343.584,0 |
| 0+369.270,1305.563,1372.837,0 |
0+721.352,1588.000,1343.000,0 |
| 0+370,1306.107,1372.350,0 |
|
| 0+380,1313.550,1365.671,0 |
|
| 0+390,1320.993,1358.993,0 |
|
| 0+400,1328.436,1352.314,0 |
|
| 0+410,1335.879,1345.636,0 |
|
| 0+420,1343.322,1338.958,0 |
|
| 0+430,1350.765,1332.279,0 |
|
| 0+440,1358.208,1325.601,0 |
|
| 0+450,1365.651,1318.923,0 |
|
| 0+455.513,1369.754,1315.241,0 |
|
| 0+460,1373.255,1312.438,0 |
|
| 0+470,1382.036,1307.707,0 |
|