基于ObjectARX的城市规划数字地形参数化处理方法
摘要文本
本发明公开了基于ObjectARX的城市规划数字地形参数化处理方法,包括:S1、在AutoCAD中调用APPLOAD命令加载ARX程序;S2、批量导入数字地形图;S3、定义约束条件量化的基本参数值;S4、判断约束条件的参数是否无误,是则转S5,否则返回S3;S5、取出地形图中所有实体的ID,并保存在EntArr数组中,将EntArr数组中实体按约束条件进行一致性检测,剔除约束条件不符合的实体ID;S6、判断EntArr数组中实体是否成功复制,是则转S7,否则重新绘制当前实体;S7、重复步骤S5~S6,直至处理结束。本发明实现了地形分析中的数字地形批量自动筛选与提取功能,解决了现有技术在数字地形处理过程中设计效率低以及正确率无法有效保证的问题。
申请人信息
- 申请人:上海市政工程设计研究总院(集团)有限公司
- 申请人地址:200092 上海市杨浦区中山北二路901号
- 发明人: 上海市政工程设计研究总院(集团)有限公司
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 基于ObjectARX的城市规划数字地形参数化处理方法 |
| 专利类型 | 发明授权 |
| 申请号 | CN201710935947.5 |
| 申请日 | 2017年10月10日 |
| 公告号 | CN107908813B |
| 公开日 | 2024年2月13日 |
| IPC主分类号 | G06F30/13 |
| 权利人 | 上海市政工程设计研究总院(集团)有限公司 |
| 发明人 | 曹耀东; 卫东; 黄晓清; 周孔 |
| 地址 | 上海市杨浦区中山北二路901号 |
专利主权项内容
1.一种基于ObjectARX的城市规划数字地形参数化处理方法,其特征在于:该方法包括以下步骤:S:在AutoCAD中调用APPLOAD命令加载ARX程序;1S:批量导入数字地形图,将数字地形图名称列表在列表框内按字典排序从小到大的顺序显示;2S:定义量化后的约束条件基本参数值,将参数值置于文件列表框内;3S:判断当前约束条件的基本参数是否输入无误;如果输入有误,则返回上一步骤S,如果输入无误,继续下一步骤S;435S:依次打开数字地形图,取出数字地形图中所有实体的ID,并保存在EntArr数组中,将EntArr数组的实体分别按约束条件进行一致性检测,若参数属性与约束条件完全一致,则保留当前实体,若否,则剔除当前实体;5S:对EntArr数组中的实体依次复制,判断实体是否被成功复制,若被成功复制,则继续下一步骤S,若否,则取出当前实体包含的属性数据,并根据属性数据重新绘制当前实体;67S:判断是否为最后一张数字地形图,若是,则导出当前图纸,若否,则重复步骤S~ S,循环直至最后一张CAD图纸处理结束;756所述步骤S中,具体实现方法为:2创建模态CFileDialog对话框将数字地形文件批量导入,并按数字地形图名称排序后显示在文本框内,数字地形图名称排序的方法具体为:提取名称中首个出现的不同字符,采用冒泡排序法,若为汉字,则按汉字首字母拼音的ASCII码升序排序,若为字符,则按字符ASCII码升序排序,若为数字,则按数值升序排序;所述步骤S中,具体实现方法为:3通过创建通用设置对话框,提供两种不同的方式来定义约束条件,方式一,即列表选择方式,枚举数字地形图中出现过的所有“图层”、“颜色”、“对象”、“线型”,分别选择作为约束条件的参数,确认后显示在Listbox Control扩展控件中;方式二,即手动录入方式,在编辑框中填写“图层”、“颜色”、“对象”、“线型”的准确名称,通过Edit Control扩展控件,写入约束条件参数中;基本参数值具体包括约束图层、约束颜色、约束对象、约束线型,确定约束条件的基本参数后,将其分别保存至静态变量,所述静态变量具体包括:static CStringLayerName、static int Color、static CString ObjectName、static CString LineType;所述对话框设有刷新功能,用于根据不同的约束参数生成对应的图形;所述步骤S中,具体实现方法为:4根据输入的参数值,与数字地形图中出现过的条件值相比较,如果输入的参数值类型不符合,或者未在任何一张数字地形图中出现过,则显示提示框,并返回上一步骤S ;3如果无误,继续下一步骤S;5所述步骤S中,具体实现方法为:5调用ActiveX技术中GetEntity方法,依次返回各个实体的AcadEntity类型的对象,并保存在EntArr数组中,判断EntArr数组中第i个实体与约束条件是否完全匹配,其中i=1,2,……n+1,如果不是,则直接剔除,否则令i= i+1,即对下一个区段进行判断;起始时,i=1;所述步骤S中,具体实现方法为:6利用AcDbDatabase 中的WblockCloneObjects方法对EntArr数组中的所有对象进行复制,并将它们增加至由owner指定的容器对象中,如果实体被成功复制,则直接显示在当前模型空间中,若没有成功复制,则取出当前实体包含的几何属性和物理属性,通过几何属性确定实体的位置,物理属性还原实体的特征属性,每个类型的实体在数字地形图中的属性都存储在了程序函数中,保证绘制出的实体与原实体完全一致。