基于VB_NET的AutoCAD二次开发
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
与 VB6. 0相比 , VB. NET不但具备了任何面向对象编 程语言所具有的抽象性 、封装性 、多态性 ,而且在继承性上 是第一个支持完全继承的 VB 版本 。[ 5 ] 通过完全继承 ,类 可以获得现有类的现有接口和行为 。这是通过一个叫作 Subclassing(再细分类 )的过程 ,继承现有类的这些行为完 成的 。引入完全继承后 , VB. NET是真正的面向对象语 言 。在保证功能强大的前提下大大提高开发速度 。
由于 VB与 AutoCAD运行在不同的内存空间 ,所以进 行二次开发时首先必须将其与 AutoCAD 进行链接 ,即引 用 AutoCAD 的对象 、属性和方法的库文件 : Acad. tld,该库 文件位于 AutoCAD程序的目录下 ,它并不保存对象本身 , 只保存创建对象的相关信息 。AutoCAD 应用程序对外暴 露的对象按树状层次结构顺次展开 ,依次为 App lication对 象 、Document对象 、Model Space对象和 Paper Space对象等 深层次对象 ,其顶层为 AutoCAD App lication,是引用其他 对象的基础 。链接的具体方法是 :运行 V isual Basic. NET, 创建一个 V isual Basic. NET项目 。打开项目菜单 ,选择添 加引用 ,再选择 COM ,复选 AutoCAD2002 Type L ibrary,再 编写 VB 程序代码 , 创建 AutoCAD 对象 , 启动运行 Auto2 CAD[ 7 ] 。
AddL ightW eightPolyline (points) 然后做 1到 10点所围成的剖面
轮廓的镜象 , 镜象轴为 Y, 得到齿轮 上半部分轮廓的左边部分 。如图 2 所示 。
3) 将齿轮上半部分轮廓的左、 右部分 创建 面 域 , 并 进 行 布 尔和 运 算 。其规则是 :对象 A 与对象 B 进行 布尔运算结果返回给对象 A ,然后将 上半部分轮廓绕齿轮轴线旋转 ,旋转 angle为 360°,得到齿轮结构旋转体 , 其方法为 :
2 NET框架和 AutoCAD 对象模型
. NET是微软的大型分布式软件系统的开发战略 。 NET的核心组成部分是. NET框架 , 一个用于 Internet的 组件模型 。. NET框架所有其他功能得以实现的基础 ,. NET Framework类库是一个与公共语言运行库紧密集成的 可重用的类型集合 。. NET框架中的类为开发人员提供了
5) 把创建渐开线齿轮刀具 3D 模型的代码用过程 “Sub 齿轮刀具 ( ) ”形式编写 ,在命令按钮的 Button1_Click 事件调用 。标准渐开线齿轮齿槽曲线数学模型如下图 3 所示 ,将为切制齿轮的刀具 。编程的详细过程如下 :
3. 2 VB. NET与 VB的主要区别
VB. NET是 V isual Basic的下一个版本 。微软不是简 单的在 VB6. 0 的基础上增加了一些新特性 ,而是重新更 换定制了这个产品 。VB. NET与 VB 在开发界面上基本一 致 ,在基本语法上 , VB. NET与 VB 相似 ,而在结构上已经
2) 先绘制 1 至 10点所围成的齿轮上半部分轮廓的右边部分 ,用模型空 间的 AddL ightW eightPolyline方法创建 L ightW eight多段线 p lineObj,绘制 1到 10点所围成的剖面轮廓 。方法为 :
p lineObj( 0 ) = AcadApp. ActiveDocument. ModelSpace.
一个统一的 、面向对象的 、层次化的 、可扩展的类库集 。组 件模型可以使软件的各个组成部分用不同的编程语言编 写 ,然后组合成一个可以运行的软件系统 [2 ] 。NET框架不 仅代表了软件界软件复用 、重组 、互操作研究的发展方向 , 而且也给制造业软件应用开发和集成带来了巨大影响 。 M icrosoft. NET框架为开发人员提供了一个极为方便的开 发环境 ,从而简化了安全 、可靠 、可扩展 、高可用性的网络 服务的建立 、部署及其不断发展 。
计算机应用
文章编号 : 1002 - 6886 (2006) 06 - 0013 - 03
·13 ·
基于 VB. NET的 AutoCAD 二次开发
陈立新 ,赵红梅
(华北电力大学 ,河北 保定 071003)
摘要 :本文首先介绍了微软的最新. NET编程语言 —VB. NET和传统的 VB6. 0之间的区别 ,着重讲述了利用 VB. NET这种 开发工具对 AutoCAD 进行二次开发 ,实现特定专业领域功能的过程 。通过齿轮结构参数化三维造型的实例 ,详细阐述了 如何用 VB. NET对 AutoCAD进行二次开发 。 关键词 : A utoCAD 二次开发 NET VB. N ET A ctiveX A utomation
作者简介 :陈立新 (1963—) ,女 ,汉族 ,河北保定人 ,华北电力大学机械工程学院副教授 ,主要从事机械设计 ,计算机辅助设计及管理信息系统 等方面的研究 。
收稿日期 : 2006 - 4 - 30
·14 ·
现代机械 2006年第 6期
发生了完全不同的变化 [ 4 ] 。 . NET框架中由类定义了 Common Type System (通用
Key words: autoCAD; secondary development; . N ET; VB. NET; activex automation
1 引言
AutoCAD 是目前世界上广泛使用于各种图形应用有 关领域的功能强大的计算机辅助设计软件 [1 ] 。但是由于 其通用性很强 ,造成在某个特定领域的功能不足和薄弱 。 虽然其绘图建模功能十分强大 ,但真正具有工程实际意义 的图形拓扑信息和参数约束信息在 AutoCAD 中不能反 映 。因此 ,在工程设计中 ,结合企业的实际情况 ,需要开发 出针对某一产品的 AutoCAD 应用软件 ,实现仅依靠 Auto2 CAD 自身不能或不易做到的功能 ,解决实际工程中的问 题。
应用 VB进行 AutoCAD的二次开发具有很大的优势 , 它是一种面向对象的可视化编程工具 ,具有快速的开发环 境 ,其语法简单 、功能强大 、界面清晰 , 同时还可以弥补 AutoCAD 在其他方面的不足 。Autodesk 在 AutoCAD R14 以上版本中设置了 VB 开发工具的接口 ,使得用户可以在 VB语言环境下对 AutoCAD 进行二次开发 。VB. NET是微 软新推出的开发平台 ,具有众多优点 。基于 . NET平台对 AutoCAD 进行二次开发 ,可充分利用. NET的各种优势 ,在 保证功能强大的前提下大大提高开发速度 。
3. 3应用 VB. NET对 AutoCAD 进行开发的过程
ActiveX Automation 是微软公司的一个技术标准 , 它 适用于 OLE对象与 ActiveX对象 ,它准许一个应用程序操 纵另一个应用程序中实现的对象 ,通过在两个程序之间安 排对话 ,达到一个程序控制另一个程序的目的 。这两个程 序在进程中是不平等的 ,一个是客户程序 ,一个是服务程 序 。客户 程 序 是 操 纵 者 和 控 制 者 , 服 务 程 序 是 被 控 制 者 。[6 ]这里 , VB. NET是客户程序 , AutoCAD 是服务程序 。 应用 VB. NET开发 AutoCAD 应用程序的一般步骤为 : 连 接 AutoCAD;定义 AutoCAD对象模型 ;编写 AutoCAD 应用 程序 。
类型系统 ) ,它使得数据类型在用不同. NET语言编写的程 序之间保持一致 ,因此 , VB. NET对数据类型进行了大量 的变化 。例如 Short数据类型代替了 Integer, Integer类型 现在变为 32位 , Long变为 64位 。Variant类型也由 Object (对象 )数据类型所替代 , String数据类型产生自. NET系 统类库 ,被设计为不可改变的文本字符串 。同时还增加了 Char数据类型 ,用来处理单个字符值或创建字符值的数组 等等 。随着数据类型的变化 , VB. NET还增强了声明和使 用变量的方法 ,可以在一个语句中声明一个类型的多个变 量 ,且在声明变量的同时 ,完成对变量初始值的设置 。此 外 , VB. NET在数组和过程的语法方面 ,也有一定的变化 和调整 。
1) 首先创建新的项目 ,引用 AutoCAD 对象库 。由于 求各点坐标要用到较多的三角函数 ,因此引入命名空间 System. Math, 导 入 M ath数学类 ,使得可 以不 加 限 制 地 使 用 M ath 类 型 的 每 个 成 员的标识符 。然后定 义窗体级变量, 给 Form1 _Load 事 件 赋 初值 。如 下 图 1 所 示。
solidObj = AcadApp. ActiveDocument. ModelSpace. Ad2 dRevolvedsolid ( regionObj( 0) , axisp t, axisD ir, angle)
为了后面继续造型方便 ,将得到的齿轮结构绕 Y轴旋 转 90°。旋转轴为空间两点 rotatePt1、rotatePt2 确定 ,旋转 角为 rotateAngle。
4 开发实例
以下以机械中常用的直齿圆柱齿轮为例 ,详细说明齿 轮结构参数化三维造型的数学模型建立 、三维模型创建方
法 、相关的经验公式等 ,只要给出要设计的齿轮的齿数和 模数 ,就可以生成相应的符合设计标准的三维实体模型 , 并且可以根据设计的具体情况或特殊要求 。对结构尺寸 做适应的修改 。具体开发步骤如下 :
4) 创建一立方体 ,做布尔减运算 ,用齿轮结构旋转体 减去立方体 ,得轴孔上的键槽 。创建直径为 2D 的圆柱体 , 将其绕轴线做环形阵列 ,数目为 6,做布尔减运算 ,用齿轮 结构旋转体减去 6个圆柱体 ,得到 6个圆孔 。也可以不要 圆孔 ,用窗体上的复选框 CheckBox1 的 Checked 属性确 定。
在 AutoCAD 中 ,对象是分层的 ,这个分层结构就是用 户应用程序能够操作的对象模型 ,其中根对象是 App lica2 tion,对对象的操作都是依对象模型的分层关系来逐级操 作的 。
3 基于 VB. NET的开发
3. 1 NET AP I简介
在新推出的 AutoCAD 2006 中 , Autodesk为其开发增 加了 NET AP I。NET AP I提供 了 一 系 列 托管 的 外 包 类 (Managed W rapper Class) ,使开发人员可在. NET框架下 , 使用任何支持. NET的语言 ,对 AutoCAD 进行二次开发 。 其优点是完全面向对象 ,在拥有与 C + +相匹配的强大功 能的同时 ,具有方便易用的特点 ,是较理想的 AutoCAD 二 次开发工具 [ 3 ] 。
Secondary D evelopm en t of AutoCAD Using VB. NET CHEN L i2x in, ZHAO Hong2maper firstly introduces the new character of VB. N ET by comparing w ith VB6. 0 especially on how to successfully app ly A utoCAD to some p rofessional fields based on the VB. N ET secondary development p latform. The details of the develop ing through an examp le of Gear structure parametrization three2dimensional modeling.
由于 VB与 AutoCAD运行在不同的内存空间 ,所以进 行二次开发时首先必须将其与 AutoCAD 进行链接 ,即引 用 AutoCAD 的对象 、属性和方法的库文件 : Acad. tld,该库 文件位于 AutoCAD程序的目录下 ,它并不保存对象本身 , 只保存创建对象的相关信息 。AutoCAD 应用程序对外暴 露的对象按树状层次结构顺次展开 ,依次为 App lication对 象 、Document对象 、Model Space对象和 Paper Space对象等 深层次对象 ,其顶层为 AutoCAD App lication,是引用其他 对象的基础 。链接的具体方法是 :运行 V isual Basic. NET, 创建一个 V isual Basic. NET项目 。打开项目菜单 ,选择添 加引用 ,再选择 COM ,复选 AutoCAD2002 Type L ibrary,再 编写 VB 程序代码 , 创建 AutoCAD 对象 , 启动运行 Auto2 CAD[ 7 ] 。
AddL ightW eightPolyline (points) 然后做 1到 10点所围成的剖面
轮廓的镜象 , 镜象轴为 Y, 得到齿轮 上半部分轮廓的左边部分 。如图 2 所示 。
3) 将齿轮上半部分轮廓的左、 右部分 创建 面 域 , 并 进 行 布 尔和 运 算 。其规则是 :对象 A 与对象 B 进行 布尔运算结果返回给对象 A ,然后将 上半部分轮廓绕齿轮轴线旋转 ,旋转 angle为 360°,得到齿轮结构旋转体 , 其方法为 :
2 NET框架和 AutoCAD 对象模型
. NET是微软的大型分布式软件系统的开发战略 。 NET的核心组成部分是. NET框架 , 一个用于 Internet的 组件模型 。. NET框架所有其他功能得以实现的基础 ,. NET Framework类库是一个与公共语言运行库紧密集成的 可重用的类型集合 。. NET框架中的类为开发人员提供了
5) 把创建渐开线齿轮刀具 3D 模型的代码用过程 “Sub 齿轮刀具 ( ) ”形式编写 ,在命令按钮的 Button1_Click 事件调用 。标准渐开线齿轮齿槽曲线数学模型如下图 3 所示 ,将为切制齿轮的刀具 。编程的详细过程如下 :
3. 2 VB. NET与 VB的主要区别
VB. NET是 V isual Basic的下一个版本 。微软不是简 单的在 VB6. 0 的基础上增加了一些新特性 ,而是重新更 换定制了这个产品 。VB. NET与 VB 在开发界面上基本一 致 ,在基本语法上 , VB. NET与 VB 相似 ,而在结构上已经
2) 先绘制 1 至 10点所围成的齿轮上半部分轮廓的右边部分 ,用模型空 间的 AddL ightW eightPolyline方法创建 L ightW eight多段线 p lineObj,绘制 1到 10点所围成的剖面轮廓 。方法为 :
p lineObj( 0 ) = AcadApp. ActiveDocument. ModelSpace.
一个统一的 、面向对象的 、层次化的 、可扩展的类库集 。组 件模型可以使软件的各个组成部分用不同的编程语言编 写 ,然后组合成一个可以运行的软件系统 [2 ] 。NET框架不 仅代表了软件界软件复用 、重组 、互操作研究的发展方向 , 而且也给制造业软件应用开发和集成带来了巨大影响 。 M icrosoft. NET框架为开发人员提供了一个极为方便的开 发环境 ,从而简化了安全 、可靠 、可扩展 、高可用性的网络 服务的建立 、部署及其不断发展 。
计算机应用
文章编号 : 1002 - 6886 (2006) 06 - 0013 - 03
·13 ·
基于 VB. NET的 AutoCAD 二次开发
陈立新 ,赵红梅
(华北电力大学 ,河北 保定 071003)
摘要 :本文首先介绍了微软的最新. NET编程语言 —VB. NET和传统的 VB6. 0之间的区别 ,着重讲述了利用 VB. NET这种 开发工具对 AutoCAD 进行二次开发 ,实现特定专业领域功能的过程 。通过齿轮结构参数化三维造型的实例 ,详细阐述了 如何用 VB. NET对 AutoCAD进行二次开发 。 关键词 : A utoCAD 二次开发 NET VB. N ET A ctiveX A utomation
作者简介 :陈立新 (1963—) ,女 ,汉族 ,河北保定人 ,华北电力大学机械工程学院副教授 ,主要从事机械设计 ,计算机辅助设计及管理信息系统 等方面的研究 。
收稿日期 : 2006 - 4 - 30
·14 ·
现代机械 2006年第 6期
发生了完全不同的变化 [ 4 ] 。 . NET框架中由类定义了 Common Type System (通用
Key words: autoCAD; secondary development; . N ET; VB. NET; activex automation
1 引言
AutoCAD 是目前世界上广泛使用于各种图形应用有 关领域的功能强大的计算机辅助设计软件 [1 ] 。但是由于 其通用性很强 ,造成在某个特定领域的功能不足和薄弱 。 虽然其绘图建模功能十分强大 ,但真正具有工程实际意义 的图形拓扑信息和参数约束信息在 AutoCAD 中不能反 映 。因此 ,在工程设计中 ,结合企业的实际情况 ,需要开发 出针对某一产品的 AutoCAD 应用软件 ,实现仅依靠 Auto2 CAD 自身不能或不易做到的功能 ,解决实际工程中的问 题。
应用 VB进行 AutoCAD的二次开发具有很大的优势 , 它是一种面向对象的可视化编程工具 ,具有快速的开发环 境 ,其语法简单 、功能强大 、界面清晰 , 同时还可以弥补 AutoCAD 在其他方面的不足 。Autodesk 在 AutoCAD R14 以上版本中设置了 VB 开发工具的接口 ,使得用户可以在 VB语言环境下对 AutoCAD 进行二次开发 。VB. NET是微 软新推出的开发平台 ,具有众多优点 。基于 . NET平台对 AutoCAD 进行二次开发 ,可充分利用. NET的各种优势 ,在 保证功能强大的前提下大大提高开发速度 。
3. 3应用 VB. NET对 AutoCAD 进行开发的过程
ActiveX Automation 是微软公司的一个技术标准 , 它 适用于 OLE对象与 ActiveX对象 ,它准许一个应用程序操 纵另一个应用程序中实现的对象 ,通过在两个程序之间安 排对话 ,达到一个程序控制另一个程序的目的 。这两个程 序在进程中是不平等的 ,一个是客户程序 ,一个是服务程 序 。客户 程 序 是 操 纵 者 和 控 制 者 , 服 务 程 序 是 被 控 制 者 。[6 ]这里 , VB. NET是客户程序 , AutoCAD 是服务程序 。 应用 VB. NET开发 AutoCAD 应用程序的一般步骤为 : 连 接 AutoCAD;定义 AutoCAD对象模型 ;编写 AutoCAD 应用 程序 。
类型系统 ) ,它使得数据类型在用不同. NET语言编写的程 序之间保持一致 ,因此 , VB. NET对数据类型进行了大量 的变化 。例如 Short数据类型代替了 Integer, Integer类型 现在变为 32位 , Long变为 64位 。Variant类型也由 Object (对象 )数据类型所替代 , String数据类型产生自. NET系 统类库 ,被设计为不可改变的文本字符串 。同时还增加了 Char数据类型 ,用来处理单个字符值或创建字符值的数组 等等 。随着数据类型的变化 , VB. NET还增强了声明和使 用变量的方法 ,可以在一个语句中声明一个类型的多个变 量 ,且在声明变量的同时 ,完成对变量初始值的设置 。此 外 , VB. NET在数组和过程的语法方面 ,也有一定的变化 和调整 。
1) 首先创建新的项目 ,引用 AutoCAD 对象库 。由于 求各点坐标要用到较多的三角函数 ,因此引入命名空间 System. Math, 导 入 M ath数学类 ,使得可 以不 加 限 制 地 使 用 M ath 类 型 的 每 个 成 员的标识符 。然后定 义窗体级变量, 给 Form1 _Load 事 件 赋 初值 。如 下 图 1 所 示。
solidObj = AcadApp. ActiveDocument. ModelSpace. Ad2 dRevolvedsolid ( regionObj( 0) , axisp t, axisD ir, angle)
为了后面继续造型方便 ,将得到的齿轮结构绕 Y轴旋 转 90°。旋转轴为空间两点 rotatePt1、rotatePt2 确定 ,旋转 角为 rotateAngle。
4 开发实例
以下以机械中常用的直齿圆柱齿轮为例 ,详细说明齿 轮结构参数化三维造型的数学模型建立 、三维模型创建方
法 、相关的经验公式等 ,只要给出要设计的齿轮的齿数和 模数 ,就可以生成相应的符合设计标准的三维实体模型 , 并且可以根据设计的具体情况或特殊要求 。对结构尺寸 做适应的修改 。具体开发步骤如下 :
4) 创建一立方体 ,做布尔减运算 ,用齿轮结构旋转体 减去立方体 ,得轴孔上的键槽 。创建直径为 2D 的圆柱体 , 将其绕轴线做环形阵列 ,数目为 6,做布尔减运算 ,用齿轮 结构旋转体减去 6个圆柱体 ,得到 6个圆孔 。也可以不要 圆孔 ,用窗体上的复选框 CheckBox1 的 Checked 属性确 定。
在 AutoCAD 中 ,对象是分层的 ,这个分层结构就是用 户应用程序能够操作的对象模型 ,其中根对象是 App lica2 tion,对对象的操作都是依对象模型的分层关系来逐级操 作的 。
3 基于 VB. NET的开发
3. 1 NET AP I简介
在新推出的 AutoCAD 2006 中 , Autodesk为其开发增 加了 NET AP I。NET AP I提供 了 一 系 列 托管 的 外 包 类 (Managed W rapper Class) ,使开发人员可在. NET框架下 , 使用任何支持. NET的语言 ,对 AutoCAD 进行二次开发 。 其优点是完全面向对象 ,在拥有与 C + +相匹配的强大功 能的同时 ,具有方便易用的特点 ,是较理想的 AutoCAD 二 次开发工具 [ 3 ] 。
Secondary D evelopm en t of AutoCAD Using VB. NET CHEN L i2x in, ZHAO Hong2maper firstly introduces the new character of VB. N ET by comparing w ith VB6. 0 especially on how to successfully app ly A utoCAD to some p rofessional fields based on the VB. N ET secondary development p latform. The details of the develop ing through an examp le of Gear structure parametrization three2dimensional modeling.