基于AutoCAD二次开发实现测绘横断面处理的方法转让专利

申请号 : CN201610775430.X

文献号 : CN106441221B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王月明宫帅良吕晓琪张宝华张瑶瑶

申请人 : 内蒙古科技大学

摘要 :

本发明公开了一种基于AutoCAD二次开发实现测绘横断面处理的方法。通过cass数据展点、中桩筛选,经过横断点连线,生成横断辅助线数据集并可按用户需要输出横断数据,为测绘中实现横断面的处理、计算土方量等提供技术支持,所述方法利用通用软件AutoCAD的二次开发功能VBA实现横断面的快速处理,既快捷方便,又无需经费投入,能够大幅提升测绘工作中横断数据处理效率,具有广泛的推广应用价值。

权利要求 :

1.一种基于AutoCAD二次开发实现测绘横断面处理的方法,其特征在于:所述方法通过cass数据展点,中桩筛选,经过横断点连线,生成横断辅助线数据集,按用户需要输出横断数据,为测绘中实现横断面的处理、计算土方量提供技术支持;

所述中桩筛选是指根据线路对某一方向地形剖面的测量工作,找出中桩数据展点,中桩点名为里程且在测量数据前带“+”号,通过原始数据文件对中桩点进行识别,打开数据后,对数据进行预处理,保留带“+”的数据默认为中桩,并形成中桩数据集data_zz;

所述横断点连线分为自动连线、横断线手动连线与横断点手动连线三种方式;其中横断点手动连线是采用传统的点对点的手动式连线方式;

所述横断点连线中自动连线包括以下步骤:

1)设置缓冲区数值,设置阈值,用鼠标拖拽矩形框选取横断点选择集,选取数据横断点选择集data,不用鼠标选取则默认为数据横断点全选模式;

2)定义函数,按照中桩的前后顺序,遍历中桩数据集data_zz中各个中桩点数据与位置,并依据该中桩点前后中桩数据位置,计算出中桩点与其前后中桩斜率判定该中桩点近似角平分线的斜率;根据每个中桩点与其近似角平分线的斜率构建横断点辅助线近似直线函数;

3)遍历选择集data,计算每一个横断点到其对应横断点辅助线近似直线函数的距离,根据用户设定阈值重新筛选选择集,若小于用户设定值则选入新创建的选择集GCDXZJ_HD;

4)遍历选择集GCDXZJ_HD,与其对应中桩点进行二维向量叉乘公式可判断出本条横断点辅助线全部高程点在前进方向的左右;通过与中桩点求两点距离公式即可找到横断最左的端点;

5)遍历选择集GCDXZJ_HD中所有横断点,与其对应横断最左横断点进行距离计算,利用冒泡法排序,依照从左至右,由近及远的顺序对断面高程点连线,并创建该中桩点的选择集;

6)对数据集data_zz中每一个中桩点执行上述2)至5)步,形成不同中桩点的不同选择集。

2.如权利要求1所述的一种基于AutoCAD二次开发实现测绘横断面处理的方法,其特征在于,所述横断点连线中横断线手动连线包括以下步骤:

1)设置缓冲区数值,设置阈值;选取横断线左右端点,以左右端点作为矩形框建立选择集;当选取的横断线为水平或竖直直线时,以用户设置阈值二倍宽度为矩形框建立选择集;

2)遍历选择集,利用点到直线距离公式求选择集中所有点到左右端点组成的直线的距离;

3)根据用户设定的阈值筛选,当点到直线距离小于阈值的点,将其赋值给新的选择集GCDXZJ_HD;

4)遍历选择集GCDXZJ_HD中所有横断点,与其对应横断最左横断点进行距离计算,利用冒泡法排序,依照从左至右,由近及远的顺序对断面高程点连线,并创建该中桩点的选择集。

3.如权利要求2所述的一种基于AutoCAD二次开发实现测绘横断面处理的方法,其特征在于:该方法是利用AutoCAD、VBA二次开发实现横断面处理的方法;并在实现横断面处理环境下进行中桩筛选、建立选择集、连多线段、量取距离、摘高程数据、数据输出。

4.如权利要求3所述的一种基于AutoCAD二次开发实现测绘横断面处理的方法,其特征在于:所述生成横断辅助线数据集是通过软件生成,根据中桩号生成数据子集,输出“*.CSV”成果文件,能够用第三方软件进行横断面成图,成图后能够直观地看到每条横断面的情况,能够为下游工作业务中实现横断面的处理、计算土方量提供可靠的技术支持。

说明书 :

基于AutoCAD二次开发实现测绘横断面处理的方法

技术领域

[0001] 本发明属于测绘技术领域,具体涉及一种基于AutoCAD二次开发实现横断面数据处理的方法。

背景技术

[0002] 近年来,随着GPS RTK技术在断面测量中的普及,外业操作趋于便捷,工作效率不断提升,这也造成了内业数据量的大幅增加,目前内业处理方法基于手工操作,处理效率低下,无法满足大批量数据的处理需求。因此如何提升内业数据处理效率,已成为提升断面测量整体工作效率的关键。
[0003] 工程测量应用面广泛,在外业工作中,使用的仪器和测量的方法不断增多。在传统的工程测量中,由于生产力、生产工具、数据处理技术的落后,使得内业与外业生产严重脱节。数据结构不统一,人为环节多,处理时间长,整体质量难以监督,与测绘信息化生产的要求有差距。当下的工程测量外业工作效率比之前有了很大的提高,内业效率相对滞后,所以需要设法提高内业的工作效率。
[0004] 目前,在采用GPS RTK采集数据时,其横断数据处理方面基本采用两种方法:(1)外业采集时要求每条横断输入规定点名,来识别不同横断。该方法完全面向数据进行操作,无法实现可视化,不能从展点数据上发现横断数据采集的问题。此外,该方法在外业采集时要求输入规定点名,容易出错且会降低外业作业效率。(2)将外业数据展点,手工对每条断面连线,之后利用DWSMSK软件分别框选每一条横断,输入中桩里程计算并输出。该方法的优点是操作可视化,但内业数据处理比较繁琐,效率低,且该方法提高了产生人为误差的概率。
[0005] 本发明基于对CAD (Computer Aided Design, 计算机辅助设计)进行二次开发来处理内业数据是一种有效的方法。在AutoCAD的基础上,利用内嵌的CAD二次开发工具VBA(Visual Basic for ApplicationsVBA,是Visual Basic的一种宏语言)进行二次开发。实现了测绘中横断面数据处理的快速处理方法。可按照用户需要的数据格式进行输出,使原本繁琐的处理过程变得直观、简单从而提高测绘内业效率。

发明内容

[0006] 为了提高工程测量内业工作效率,提高测绘信息化水平,本发明提供一种利用AutoCAD二次开发实现横断面处理的方法,所述方法利用内嵌的CAD二次开发工具VBA进行二次开发,实现了测绘中横断面数据的快速处理方法。
[0007] 通过cass数据展点,中桩筛选,经过横断点连线,横断点连线中采用自动连线、横断线手动连线与横断点手动连线三种方法实现,最后生成横断辅助线数据集,按用户需要输出横断数据。生成的横断数据为下游工作业务中实现横断面的处理、计算土方量等提供了技术支持。使原本繁琐的处理过程变得直观、简单且提高测绘内业效率。
[0008] 为实现上述目标,本发明在横断点连线方面采用以下技术方案:
[0009] (1).判断中桩点角平分线的斜率
[0010] 参见附图1,按照中桩的前后顺序计算每一个中桩点角平分线的斜率,角平分线近似斜率的具体计算公式如式(1-1)所示:
[0011]    (1-1)
[0012] 其中 k1为该中桩与上一中桩连线的斜率,k2为该中桩与下一中桩连线的斜率。
[0013] 利用近似斜率k和中桩点 可做直线方程,带入 的前后两个中桩点进行判断,若两点位于同一侧,则角分线斜率错误,正确的角分线斜率应为 。
若两点不在同侧则此时的角平分线斜率为所需斜率 ,以上方法可定义为函数进行判断。
[0014] 计算二维向量叉乘
[0015] 二维向量叉乘公式如式(1-2)所示:
[0016]     (1-2)
[0017] 式中 为中桩点坐标, 为前一中桩点坐标(前后按纵断前进方向区分), 为选择集GCDXZJ_HD中高程点坐标。叉乘后通过 的正负确定在中桩线的左右。
[0018] 计算点到直线距离
[0019] (3.1)横断线手动连线算法
[0020] 利用点到直线距离公式求选择集中所有点到左右端点组成的直线的距离,点到直线距离公式如式(1-3)所示:
[0021]                    (1-3)
[0022] 式中 与 为以左右端点组成的直线上的任意两点(一般为左右两端点坐标), 为选择集中的任意点。
[0023] (3.2)自动连线算法
[0024] 根据“(1)判断中桩点角平分线的斜率”构建过中桩点的角平分线的直线方程如式(1-4)所示:
[0025]      (1-4)
[0026] 利用该式计算在直线上的一点(可通过在中桩点X轴坐标加1,求出直线方程中对应的Y值)与中桩点构成直线上的两点[对应式1-3中的 与 ],利用式(1-3)进行计算选择集中其它点[对应式1-3中的 ]到该直线的距离。
[0027] 、发明要点
[0028] 一种基于AutoCAD二次开发实现测绘横断面处理的方法,其特征在于:所述方法通过cass数据展点,中桩筛选,经过横断点连线,生成横断辅助线数据集,按用户需要输出横断数据,为测绘中实现横断面的处理、计算土方量等提供技术支持。
[0029] 所述中桩筛选是指根据线路对某一方向地形剖面的测量工作,找出中桩数据展点,中桩点名为里程且在测量数据前带“+”号,例如“0+100”,通过原始数据文件对中桩点进行识别,打开数据后,对数据进行预处理,保留带“+”的数据默认为中桩,并形成中桩数据集data_zz。
[0030] 所述横断点连线分为自动连线、横断线手动连线与横断点手动连线三种方式。其中横断点手动连线是采用传统的点对点的手动式连线方式。
[0031] 所述横断点连线中自动连线包括以下步骤:
[0032] 1)设置缓冲区数值,设置阈值,用鼠标拖拽矩形框选取横断点选择集,选取数据横断点选择集data,不用鼠标选取则默认为数据横断点全选模式。
[0033] 2)定义函数,按照中桩的前后顺序,遍历数据集data_zz中各个中桩点数据与位置,并依据该中桩点前后中桩数据位置,计算出中桩点与其前后中桩斜率判定该中桩点近似角平分线的斜率;根据每个中桩点与其近似角平分线的斜率构建横断点辅助线近似直线函数。
[0034] 3)遍历选择集data,计算每一个横断点到其对应横断点辅助线近似直线函数的距离,根据用户设定阈值重新筛选选择集,若小于用户设定值则选入新创建的选择集GCDXZJ_HD;
[0035] 4)遍历选择集GCDXZJ_HD,与其对应中桩点进行二维向量叉乘公式可判断出本条横断点辅助线全部高程点在前进方向的左右;通过与中桩点求两点距离公式即可找到横断最左的端点;
[0036] 5)遍历选择集GCDXZJ_HD中所有横断点,与其对应横断最左横断点进行距离计算,利用冒泡法排序,依照从左至右,由近及远的顺序对断面高程点连线,并创建该中桩点的选择集。
[0037] 6)对数据集data_zz中每一个中桩点执行上述2)至5)步,形成不同中桩点的不同选择集。
[0038] 所述横断点连线中横断线手动连线包括以下步骤:
[0039] 1)设置缓冲区数值,设置阈值。选取横断线左右端点,以左右端点作为矩形框建立选择集;当选取的横断线为水平或竖直直线时,以用户设置阈值二倍宽度为矩形框建立选择集。
[0040] 2)遍历选择集,利用点到直线距离公式求选择集中所有点到左右端点组成的直线的距离;
[0041] 3)根据用户设定的阈值筛选,当点到直线距离小于阈值的点,将其赋值给新的选择集GCDXZJ_HD。
[0042] 4)遍历选择集GCDXZJ_HD中所有横断点,与其对应横断最左横断点进行距离计算,利用冒泡法排序,依照从左至右,由近及远的顺序对断面高程点连线,并创建该中桩点的选择集。
[0043] 该方法是利用AutoCAD、VBA二次开发实现横断面处理的方法。并在该环境下进行中桩筛选、建立选择集、连多线段、量取距离、摘高程数据、数据输出。
[0044] 所述生成横断辅助线数据集是通过软件生成,根据中桩号生成数据子集,输出“*.CSV”成果文件,可用第三方软件进行横断面成图,成图后可以直观地看到每条横断面的情况,可为下游工作业务中实现横断面的处理、计算土方量等提供可靠的技术支持。
[0045] 本发明的优点和有益效果为:利用通用软件AutoCAD的二次开发功能VBA实现横断面的快速处理,既快捷方便,又无需经费投入,能够大幅提升测绘工作中横断数据处理效率,具有广泛的推广应用价值。

附图说明

[0046] 下面结合附图和实施例对本发明作进一步说明。
[0047] 图1为本发明所述的横断点自动连线结果图。
[0048] 图2为本发明所述的横断点自动连线运行宏对话栏屏幕截图。
[0049] 图3为本发明所述横断点自动连线时数据错误提示图。
[0050] 图4为本发明所述横断数据输出结果生成的横断成图示例。
[0051] 图5为本发明所述横断面处理方法的流程图。

具体实施方式

实施例
[0052] 参见附图1-5,根据上述步骤与方法,我们采用某设计院测绘处的数据进行横断面处理。
[0053] 一种基于AutoCAD二次开发实现测绘横断面处理的方法,所述方法通过cass数据展点,中桩筛选,经过横断点连线,生成横断辅助线数据集,按用户需要输出横断数据,为测绘中实现横断面的处理、计算土方量等提供技术支持。
[0054] 一种基于AutoCAD二次开发实现测绘横断面处理的方法,所述方法包括以下步骤:
[0055] 1)GPS RTK采集的原始数据
[0056] GPS RTK采集的原始数据形成cass数据展点如表1所示。
[0057] 表1.CASS展点格式示例
[0058]
[0059] 表1.中左起第1列至第5列依次为GPS RTK所采数据的:点名、属性、Y坐标 、X坐标、高程(正常高),每一行为一个碎部点数据。
[0060] 2)中桩筛选
[0061] 中桩筛选是指根据线路对某一方向地形剖面的测量工作,找出中桩数据展点,中桩点名为里程且在测量数据前带“+”号,例如“0+100”,通过原始数据文件对中桩点进行识别,打开数据后,对数据进行预处理,保留带“+”的数据默认为中桩。
[0062] 3)横断点连线
[0063] 横断点连线分为三种连线方式,自动连线、横断线手动连线与横断点手动连线。一般而言工程中,首先进行自动连线(工作效率高),当自动连线某些地方易出现错误时,例如在某些中桩点号较近且中桩点位置为急弯拐点,可部分测量点采用横断线手动连线或横断点手动连线,对错误实施修复。
[0064] 3.1)自动连线
[0065] 参见附图1和附图5,自动连线过程是:
[0066] 首先在CAD命令行输入Appload命令加载VBA程序(也可实现自动加载程序),再输入vbarun命令启动宏(VBA编写的程序若需要在命令行中运行则需结合VLISP进行编写),如图2所示,选择“横断画线Auto”选项。此时弹出选择文件对话框,需要用户选择外业采集的原始数据文件,数据格式为表1.CASS展点格式。选择好文件后即可完成自动连线。
[0067] 3.2)横断线手动连线
[0068] 若使用自动连线功能时某些横断线易出现错误,可通过横断线手动连线功能对有错误的段线进行重新连线。
[0069] 3.3)横断点手动连线
[0070] 使用自动连线功能或横断线手动连线功能某些横断点出现错误时,可通过横断点手动连线功能对有错误的横断点进行重新连线。
[0071] 4)横断数据计算及错误提示
[0072] 输入vbarun命令启动宏,选择计算横断数据选项,软件将提示用户选取原始数据文件,格式同表1。之后框选全部多段线进行计算,计算完毕二维多段线将变为蓝色,若多段线有节点未捕捉到高程点圆心或节点距本条横断过远则程序会自动画圈并弹出对话框进行提示。效果如附图3所示。
[0073] 5)格式输出
[0074] 横断数据生成后可按不同用户需求输出,输出后可利用计算机成图软件的成图、面积计算、体积计算等功能进行横断面成图、断面面积计算、土方量计算等。
[0075] 5.1)输出*.CSV成图格式的横断数据
[0076] *.CSV成图格式横断成果是生成横断面图需要的测绘成果,具体数据格式如表2。
[0077] 表2.*.CSV格式示例
[0078]
[0079] 注:*项为中桩桩号,置于首行
[0080] 表2中第一列为横断各点离中桩的距离,“-”代表该点在前进方向左,“0”代表中桩,正数代表该点在前进方向右。第二列为该点对应的高程值。除首行外每一行均为0+041横断上一个点的成果数据。
[0081] 数据预处理,只保留点名带“+”的数据,默认为纵断数据。建立选择集,选取所有横断线。通过纵断线(按Polyline二维多段线的坐标顺序进行遍历)的平面坐标 查找横断中有无平面坐标相同的点,若有则该点必为本条横断线的中桩。
[0082] 输出到*.CSV格式时的顺序如表2,首先为桩号,此中桩的桩号即为Excel原始数据中的点名。之后的行为横断点的中桩距和高程。具体获得这两项数据的方法为:从横断二维多段线的*.Coordinates()属性按顺序(从左到右)提取坐标 ,以中桩 为一点,用两点间距离公式,可求出中桩到横断线上指定顺序点的距离,同时用*.Coordinates()属性摘出每一点相应的高程值。
[0083] 5.2)输出*.txt格式的横断数据
[0084] *.txt格式是某设计院测绘处提供测绘成果的另一种格式,此格式供设计、规划等处室进行成图、计算土方量等使用。*.CSV格式文件和*.txt格式文件的不同之处在于后者对横断中桩左右点的个数进行了计数,左右不再用“-”进行区分。具体数据格式如表3所示。
[0085]
[0086] 表3 *.txt格式示例
[0087] 表3格式为:
[0088] A  X   Y
[0089] a1 b1  a2 b2 a3 b3...
[0090] 其中A为中桩桩号,X为在前进方向左边点的个数(包括中桩点),Y为在前进方向右边点的个数,a为所有高程点从左至右相对中桩的距离,b为该高程点的高程值。
[0091] 通过*.CSV格式的文件,可获得中桩号、距离和高程信息。中桩左右高程点的个数可以用循环语句,通过变量自加进行计数。而距离和高程信息也可以用字符串变量进行自加,累计所有字符后进行输出。每一条横断按照既定格式输出即可得到*.txt格式的数据。
[0092] 6)横断面成图
[0093] *.CSV成果文件可用第三方软件进行横断面成图,成图后可以直观的看到每条横断面的情况,参见附图4。图中,桩号位于图顶端,倒三角代表本条横断中桩位置。
[0094] 最后应说明的是:显然,上述实施例仅仅是为清楚地说明本发明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明的保护范围之中。