一种批量插入AutoCAD图块的方法技术领域
本发明涉及AutoCAD程序架构和ObjectARX的二次开发技术,特别涉及一种批量插
入AutoCAD图块的方法。
背景技术
AutoCAD是美国Autodesk公司研制开发的一款计算机辅助设计软件。是目前
Windows系统中应用最广泛、使用人数最多的CAD软件。
ObjectARX本质上是Windows系统的一个动态链接库(DLL),可直接共享AutoCAD的
地址空间,也可直接利用AutoCAD的核心数据结构和代码,使得二次开发者可以直接访问
AutoCAD的数据库结构、图形系统以及CAD几何造型核心。
在绘制AutoCAD图纸时,经常将一个复杂的器件图形组合成一个图块,使用图块可
以提高绘制重复图形的效率,大大减少重复性操作,节省存储空间,便于修改AutoCAD图纸。
当需要对AutoCAD图纸进行修改时,经常需要在某些图块周围添加其他的图块,此
时如果利用AutoCAD软件中自带的插入命令(可通过“insert”调用)对每个图块都进行一遍
插入和参数设置的过程,工作量巨大,效率极低。
有鉴于此,有必要提出了一种基于ObjectARX的AutoCAD图块批量插入的方法,以
解决上述问题。
发明内容
本发明目的在于:解决了修改图纸过程中,以选定图块的参数为基准,在选定图块
的周围批量插入图块的问题。
本发明的技术方案是:一种批量插入AutoCAD图块的方法,其特征在于,该方法包
括:
步骤1、打开AutoCAD图纸并加载应用程序:
在AutoCAD环境下打开已有的AutoCAD图纸,选择工具并加载编写生成的“.arx”应
用程序文件,在AutoCAD命令行输入相应的操作命令对图纸进行操作;
步骤2、选定并记录参考图块信息:
选定AutoCAD图纸上的一个图块,使其作为所述参考图块,重复这一步骤,选定N个
参考图块,创建四个动态数组Ai:
第一动态数组A1,记录N个所述参考图块的X轴坐标;
第二动态数组A2,记录N个所述参考图块的Y轴坐标;
第三动态数组A3,记录N个所述参考图块的缩放比例;
第四动态数组A4,记录N个所述参考图块的旋转弧度;
步骤3、计算并记录插入图块信息:
在AutoCAD中输入X轴上的偏移量DX、Y轴上的偏移量DY、缩放比例系数DS、旋转角度
DA;
a、利用第一动态数组A1中存储的N个所述参考图块的X轴坐标,计算所述插入图块
的X轴坐标A1′=A1+DXe,其中e为N维单位列向量![]()
b、利用第二动态数组A2中存储的N个所述参考图块的Y轴坐标,计算所述插入图块
的Y轴坐标A2′=A2+DYe,其中e为N维单位列向量![]()
c、利用第三动态数组A3中存储的N个所述参考图块的缩放比例,计算所述插入图
块的缩放比例A3′=A3×DSe,其中e为N维单位列向量![]()
d、利用第四动态数组A4中存储的N个所述参考图块的旋转弧度,计算所述插入图
块的旋转弧度
其中e为N维单位列向量![]()
此时,四个动态数组Ai′中记录的存储数据如下:
第一动态数组A1′,记录N个所述插入图块的X轴坐标;
第二动态数组A2′,记录N个所述插入图块的Y轴坐标;
第三动态数组A3′,记录N个所述插入图块的缩放比例;
第四动态数组A4′,记录N个所述插入图块的旋转弧度。
步骤4、选择插入图块并批量插入到AutoCAD图纸上
从AutoCAD图纸数据库中选择一种图块对象,将该图块对象实例化N次,使其作为N
个所述插入图块,将四个动态数组Ai′中的数据信息对应的添加到N个所述插入图块中,并
将N个所述插入图块批量插入到AutoCAD图纸中;
进一步地,步骤4中:对于在AutoCAD图纸数据库可以是当前AutoCAD图纸数据库也
可以是外部AutoCAD图纸数据库;
在AutoCAD图纸数据库中选择的图块对象,和所述参考图块中的图块类型相同或
不同。
本发明的有益效果是:本发明与现有技术在图纸修改具有以下积极效果:能以所
述参考图块信息为基准,在参考图块的周围任意位置批量插入系统存在的任意图块,并可
以自定义所述插入图块的缩放比例和旋转角度,极大的提高了工作效率。
附图说明
图1本发明公开的一种批量插入AutoCAD图块方法的流程图;
图2本发明实施例中的图块批量插入对话框;
图3(a)是批量插入前的原始图;
图3(b)是批量插入后的修改图。
具体实施方式
以下将参照图1-3对本发明的具体实施方式进行说明。
如图1所示,本发明实施例提供了一种批量插入AutoCAD图块的方法,其包括下列
步骤:
步骤1、打开AutoCAD图纸并加载应用程序:
在AutoCAD环境下打开已有的AutoCAD图纸,选择工具并加载编写生成的“.arx”应
用程序文件,在AutoCAD命令行输入相应的操作命令对图纸进行操作。
步骤2、选定并记录参考图块信息;
选定AutoCAD图纸上的一个图块,使其作为所述参考图块,重复这一步骤,选定N个
参考图块,创建四个动态数组Ai:
第一动态数组A1,记录N个所述参考图块的X轴坐标;
第二动态数组A2,记录N个所述参考图块的Y轴坐标;
第三动态数组A3,记录N个所述参考图块的缩放比例;
第四动态数组A4,记录N个所述参考图块的旋转弧度。
步骤3、计算并记录插入图块信息;
在AutoCAD中输入X轴上的偏移量DX、Y轴上的偏移量DY、缩放比例系数DS、旋转角度
DA;
a、利用第一动态数组A1中存储的N个所述参考图块的X轴坐标,计算所述插入图块
的X轴坐标A1′=A1+DXe,其中e为N维单位列向量![]()
b、利用第二动态数组A2中存储的N个所述参考图块的Y轴坐标,计算所述插入图块
的Y轴坐标A2′=A2+DYe,其中e为N维单位列向量![]()
c、利用第三动态数组A3中存储的N个所述参考图块的缩放比例,计算所述插入图
块的缩放比例A3′=A3×DSe,其中e为N维单位列向量![]()
d、利用第四动态数组A4中存储的N个所述参考图块的旋转弧度,计算所述插入图
块的旋转弧度
其中e为N维单位列向量![]()
此时,四个动态数组Ai′中记录的存储数据如下:
第一动态数组A1′,记录N个所述插入图块的X轴坐标;
第二动态数组A2′,记录N个所述插入图块的Y轴坐标;
第三动态数组A3′,记录N个所述插入图块的缩放比例;
第四动态数组A4′,记录N个所述插入图块的旋转弧度。
步骤4、选择插入图块并批量插入到AutoCAD图纸上
从AutoCAD图纸数据库中选择一种图块对象,将该图块对象实例化N次,使其作为N
个所述插入图块,将四个动态数组Ai′中的数据信息对应的添加到N个所述插入图块中,并
将N个所述插入图块批量插入到AutoCAD图纸中。
下面以本发明所述方法编制的软件实现批量插入RFID端子为例,对批量插入
AutoCAD图块的方法进行详细说明,该方法具体包括以下步骤:
步骤1、打开AutoCAD图纸并加载应用程序:
打开已有的AutoCAD图纸,选择工具并加载编写生成的“.arx”应用程序文件,在
AutoCAD命令行输入操作命令后,系统会自动弹出批量插入图块对话框,所述批量插入图块
对话框是基于ObjectARX与MFC设计的,能与AutoCAD界面完美结合,此时已经将图纸数据库
中的块名添加到所述批量插入图块对话框中,如图2所示;
步骤2、选定并记录参考图块信息:
在所述批量插入图块对话框中的“参考图块”列表里自主选择一种或多种块名,也
可点击下面的“全选”或者“选择属性块”按钮,本实例采用点击“选择属性块”按钮,然后在
AutoCAD图纸上自定义选择操作区域,则程序自动读取所述操作区域内选择的块名所对应
的图块,实例中选定11个图块,以选定的11个图块为参考图块,创建四个动态数组Ai:
第一动态数组A1,记录11个所述参考图块的X轴坐标;
第二动态数组A2,记录11个所述参考图块的Y轴坐标;
第三动态数组A3,记录11个所述参考图块的缩放比例;
第四动态数组A4,记录11个所述参考图块的旋转弧度。
步骤3、计算并记录插入图块信息:
在所述批量插入图块对话框中输入X轴上的偏移量DX=-3、在Y轴上的偏移量DY=
0、缩放比例系数DS=2、旋转角度DA=0;
a、利用第一动态数组A1中存储的11个所述参考图块的X轴坐标,计算所述插入图
块的X轴坐标A1′=A1-3e,其中e为11维单位列向量![]()
b、利用第二动态数组A2中存储的11个所述参考图块的Y轴坐标,计算所述插入图
块的Y轴坐标A2′=A2+0×e,其中e为11维单位列向量![]()
c、利用第三动态数组A3中存储的11个所述参考图块的缩放比例,计算所述插入图
块的缩放比例A3′=A3×2e,其中e为11维单位列向量![]()
d、利用第四动态数组A4中存储的11个所述参考图块的旋转弧度,计算所述插入图
块的旋转弧度
其中e为11维单位列向量![]()
此时,四个动态数组Ai′中记录的存储数据如下:
第一动态数组A1′,记录11个所述插入图块的X轴坐标;
第二动态数组A2′,记录11个所述插入图块的Y轴坐标;
第三动态数组A3′,记录11个所述插入图块的缩放比例;
第四动态数组A4′,记录11个所述插入图块的旋转弧度。
步骤4、选择插入图块并批量插入到AutoCAD图纸上:
在所述批量插入图块对话框中的“选择插入图块”列表下选择RFID端子,使其作为
所述插入图块,此时程序会自动读取AutoCAD图纸数据库中RFID端子的图形对象和非图形
对象,将该图块对象实例化11次,使其作为11个所述插入图块,将四个动态数组Ai′中的数
据信息对应的添加到11个所述插入图块中。
在所述批量插入图块对话框中点击“批量插入”按钮,程序会自动将获取的RFID端
子以四个动态数组内的参数批量插入到图纸中,并更新AutoCAD图纸,使所述插入图块能够
显示在AutoCAD图纸上,完成批量插入过程,批量插入前后对比图如图3所示。