测绘地理信息   2019, Vol. 44 Issue (4): 125-126
0
坐标标注和散点高程标注功能的CAD实现[PDF全文]
刘建华1    
1. 广东省国土资源测绘院, 广东 广州, 510500
摘要: 利用VBA二次开发的计算机辅助设计(computer aided design, CAD)实现工程需求的坐标标注和散点高程标注功能。坐标标注的开发弥补了现有软件的不足,散点标注功能满足了专项工程的应用需求, 解决了开发过程中的关键技术,为进一步功能拓展提供了技术支持。
关键词: 计算机辅助设计     坐标标注     图层     象限     参数    
CAD Implementation of Coordinate Annotation and Scattering Elevation Annotation Function
LIU Jianhua1    
1. Guangdong Land Resources Surveying and Mapping Institute, Guangzhou 510500, China
Abstract: This paper briefly introduces the use of VBA secondary development CAD to achieve the coordinate annotation and scatter elevation labeling functions of engineering requirements. The development of coordinate annotation makes up for the shortcomings of existing software. The scatter annotation function satisfies the application requirements of special projects, solves the key technologies in the development process, and paves the way for further development.
Key words: omputer aided design (CAD)     coordinate annotation     layer     quadrant     parameter    

坐标标注和散点标注是测绘工作人员经常使用的绘图功能。原版的计算机辅助设计(computer aided design, CAD)不具备XY坐标同时标注功能,虽然网上也有很多零散的插件,但是格式千差万别。测绘人员使用较多的、具备坐标标注统一格式的商用软件是南方CASS,但CASS中的坐标标注不能选择图层、颜色和标注文字的样式和高度等属性[1]。散点高程标注功能因各设计院和施工单位的需求不同,对应的格式要求也不尽相同,目前没有统一的格式和商用软件。鉴于上述原因,进行这两项功能的应用性开发。

1 坐标标注

1) 设计思路。坐标标注首先要具备设置图层、颜色、标注样式和文字高度以及标注坐标的精度等参数设置。参数设置完成后,进入标注功能界面判断象限,选择所要标注的位置点,再选择标注信息所在位置判断象限,执行标注功能。

2) 界面设置。根据设计思路,将图层名称、图层颜色、文字样式和文字高度以及标注坐标精度等参数统一考虑,进行初始参数对话框设计。

3) 标注象限的判断和处理。在选择标注点位置和标注信息位置后,会形成标注象限。按照阅读习惯,程序设置如下:若标注方位角位于第1和第4象限,那么坐标信息会在右侧显示;位于第2和第3象限,坐标信息在左侧显示。涉及象限判断,方位角的解算必不可少。根据正切函数的特性,计算得到的角度需要进行CAD坐标差dx和dy的符号判断和处理[2]:①当dx>0,dy>0时,结果不处理;②当dx>0或dx < 0,dy < 0时,结果加180°处理;③当dx < 0,dy>0时,结果加360°处理。

为了防止分母为0(dy=0)的特殊情况出现,加入了“If dy=0 Then dy=0.000 001”代码,防止溢出错误。同时也考虑了dx=0的情况,加入了“If dx=0 Then fw1=PI”进行方位角的处理。

标注横线的长度处理。标注时,根据选择坐标位置、标注精度、以及标注文字高度的不同,XY的坐标标注信息文字长度不一致,所以不能用固定的长度来绘制中间的隔离横线。因此,利用应用程序接口(application program interface,API)中的GetBoundingBox函数[3],来巧妙地处理横线长度。

选定所要标注的点位,根据获取的坐标值,按照设定好的标注参数(如高度、精度)进行XY的文本输出。通过GetBoundingBox函数,获取XY标注文本框的最大和最小坐标值。利用最大和最小差值,可分别得到XY标注文本的长度,取其长者绘制隔离横线,在不同象限,隔离横线绘制的方向也随之不同。

2 散点高程标注

在管线测量和特征物测量时,经常需要用到散点高程标注等数据,提前测量并整理出散点高程数据文件。其格式为:“点号, 高程(11, 3.929)”,含义是11号点,高程为3.929 m。

1) 界面设计。根据工程使用方要求,对散点标高和散点标号的排列位置在上、下、左、右、左前、右前共6种组合方式可供选择。

根据工程使用方的要求,首先,开发散点高程标注功能需要考虑标注的起始散点号(默认为数据文件第一个点号)。为防止重复标注,预留了一个数据文件阅览窗口,以便选择起始点号。其次,有图层参数的设置(散点标高图层和标号图层)和对应的图层颜色设置,默认分别新建图层sdbg、sdbh,分别对应颜色白色、红色。最后,标注文字的高度和样式也可根据实际比例尺和工程需求进行设置[4]

2) 关键处理。以块为基准插入进行散点标注的点标识。假如之前CAD执行过此功能或有相同命名的图块存在,可能会出现未知错误。为了防止此类错误发生,在每次开启该功能后首先遍历块库是否存在同名块,有则删除后新建[5];没有则直接定义。

3 工程应用

1) 坐标标注。根据某调查工程使用要求,对该项目区中的房角点进行坐标标注。为了测试效果,对同一点用不同精度和不同文字高度的坐标标注对比。经使用,均能很好地执行并准确表示坐标,且大小能自适应缩放,满足了工程需求[6, 7],效果如图 1所示。

图 1 坐标标注工程应用图 Fig.1 Coordinate Annotation Engineering Application Diagram

2) 散点高程标注。某市政工程,管线测量中窨井盖已在室内编号完成,井盖标高在野外实测并整理成相应数据文件[8]。对其中部分窨井盖采用不同对齐方式和字高,并对该功能进行测试,均能准确表达,满足工程的专项功能需求。散点高程标注应用效果如图 2所示。

图 2 散点标高标注应用 Fig.2 Application of Scatter Mark

4 结束语

坐标标注和散点高程标注功能的设计和开发,满足了专项工程的使用需求。同时,坐标标注功能相对市面上的插件和商用软件,参数设置更加全面,具备良好的通用性和延展性[9]。散点高程标注功能虽是专项性功能开发,但也为后续类似的工程应用打下了基础。

参考文献
[1]
刘凯. AutoCAD坐标标注在工程图中的应用[J]. 软件导刊, 2015, 14(1): 52-53.
[2]
赵焰平. 基于AutoLISP的点坐标标注[J]. 机械工程师, 2010(9): 111-112. DOI:10.3969/j.issn.1002-2333.2010.09.051
[3]
胡现辉, 马少君, 潘国荣. 用VB在AutoCAD中绘制地形图程序开发[J]. 北京测绘, 2007(4): 48-49. DOI:10.3969/j.issn.1007-3000.2007.04.014
[4]
王怀球, 蒋月姣. AutoCAD中用VBA进行二次开发在工程测量中的应用[J]. 数字技术与应用, 2011(5): 119-120.
[5]
胡祝敏, 刘星, 艾鸿敏. CAD二次开发在宗地数据处理中的应用[J]. 测绘工程, 2014, 23(5): 62-65. DOI:10.3969/j.issn.1006-7949.2014.05.016
[6]
方成龙. 利用CAD二次开发程序计算超欠挖的研究[J]. 测绘地理信息, 2014, 39(1): 67-68.
[7]
关昆, 刘小飞. CAD规划成果空间数据的自动化入库实现[J]. 测绘地理信息, 2012, 37(6): 40-42.
[8]
王鹏, 范亚男, 赵言. 探地雷达在城市管线测量中的应用研究[J]. 测绘地理信息, 2013, 38(6): 30-32.
[9]
李志超, 余杉钰, 章波, 等. 基于.NET API的CAD二次开发技术在工程中的应用[J]. 制造业自动化, 2013, 35(15): 122-124. DOI:10.3969/j.issn.1009-0134.2013.15.038