VB 与 AUTOCAD 的接口(一
python和vb的代码可以通用吗AutoCAD 具有开放的体系结构,是一种极其灵活的应用系统,用户可以通过编程的方式对 其进行定制, 它允许用户和开发者采用各种方法对其进行扩充和修改, 即二次开发, 能最大 限度地满足用户的特殊要求。 我们先对以往 AutoCAD 二次开发中用到的方法简单做一回顾, 然后以 Visual Basic6.0为编程工具,详细讨论应用 ActiveX 对 AutoCAD 进行二次开发的方 法。
(一 AutoCAD 二次开发中用到的方法
1 AutoLISP
AutoLISP (LIST Processing Language ,它是一种表处理语言,是被解释执行的。它被 嵌入在 AutoCAD 内部,作为二次开发的编程语言,她一直是低版本 AutoCAD 的首选编程 语言。
2 autocad 的 scri pt文件
scri pt 文件是成批集成 Autocad 命令的文本文件,可以在 Autocad 中运行,早期国内 CAD 二次开发中应用较为普遍,这种方法比较容易实现,通过在外部程序中按照要求将绘 图参数融合进 scri pt文件,然后利用 autocad 定制菜单实现绘图。
3 ADS
ADS (AutoCAD Development System是 AutoCAD 的 C 语言开发系统,它直接利用 C 语言 编译器,将应用程序编译成可执行的文件在 AutoCAD 环境下运行,这种可执行的文件叫做 ADS 应用程序。 ADS 由于其速度快,又采用结构化的编程体系,因而很适合二次开发机械 设计 CAD 、土木工程 CAD 等。
4 ObjectARX
ObjectARX 是一种崭新的开发 AutoCAD 应用程序的工具,她以 C 为编程语言,采用先进 的面向对象的编程原理,提供可与 AutoCAD 直接交互的开发环境,能使用户方便快捷地开 发出高效简洁的 Auto CAD 应用程序。 ObjectARX 并没有包含在 AutoCAD 中,可在 AutoDESK 中去下载,其最新版本是 ObjectARX for AutoCAD 2000,它能够对 AutoCAD 进行完整的、先进的、面向对象的设计与开发,并且开发的应用程序速度更快、 集成度更高、稳定性更强。 ObjectARX 是一种特定的 C 编程环境,她包括一组动态链接库 (DLL ,这些库与 AutoCAD 在同一地址空间运行并能直接利用 AutoCAD 核心数据结构和 代码,库中包含一组通用工具,使得二次开发者可以充分利用 AutoCAD 的开放结构,直接 访问 AutoCAD 数据
库结构、图形系统以及 CAD 几何造型核心,以便能在运行期间实时扩 展 AutoCAD 的功能,创建能全面享受 AutoCAD 固有命令的新命令。
5 VisualLISP
VisualLISP 已经被完整地集成到 AutoCAD 2000中,她为开发者提供了崭新的、增强的集成 开发环境,一改过去在 AutoCAD 中内嵌 AtuoLISP 运行引擎的机制,这样开发者可以直接 使用 AutoCAD 中的对象和反应器,进行更底层的开发。用它开发程序的时间被缩短,原始 代码能被保密;能帮助大家使用 ActiveX 对象及其事件;使大家很容易创建和分析 LISP 程 序的运行情况。
6 VBA
VBA (即 Mcrosoft office中的 Visual Basic for Applications ,被集成到 AutoCAD 2000中。 VBA 为开发者提供了一种新的选择,也为用户访问 AutoCAD 2000中丰富的技术框架打开 一条新的通道。 VBA 和 AutoCAD 2000中强大的 ActiveX 自动化对象模型的结合,代表了 一种新型的定制 AutoCAD 的模式构架。 通过 VBA , 我们可以操作 AutoCAD , 控制 ActiveX 和其它一些应用程序,使之相互之间发生互易活动。
(二 Visual Basic应用 ActiveX 对 AutoCAD 进行二次开发
(1 AutoCAD 的对象模型
如果一个应用程序支持自动化,那么其他应用程序就可以通过其开放对象(Object 对其 进行操作。 对象本身包含自己的方法和属性。 通过对象的方法和属性可以实现对象的操作及 状态信息的收集或改变。例如,圆是 AutoCAD 中的一个对象,它的属性可以是圆心坐标、 半径及所在层等性质,方法则有拷贝、镜像等操作。
理解 AutoCAD 的对象模型是对其编程的基础。 AutoCAD 以层次结构组织对象。在顶层是 Application 对象 (即 AutoCAD 本身 , 其他对象均为 Application 对象的子对象。 在 Application 对象下面是 Preferences (设置和 Document (文档对象。其中:
◆ AutoCAD 的 Application 对象
Application 对象是应用程序对象。 通过该对象, 你可访问其它的对象, 或指派对象的属性和 方法。例如,应用程序对象具有 Preferences(参数选择 属性,它返回 Preferences(参数选择 对象。该对象提供访问在选项对话框中设定的注册信息 (图形信息设定包含在 Database Pr
eferences 对象 。应用程序对象的其它属性提供你访问应用程序指定数据,如应用程序的 名称和版本、还有 AutoCAD 的窗口大小、位置和可见性等。应用程序对象的方法执行应用 程序指定的动作,如列出、装载、卸载 ADS 和 ARX 应用程序,还有退出 AutoCAD 。 应用程序对象也提供通过 Documents(文档 集合链接到 AutoCAD 图形、通过 MenuBar 和 MenuGroups 集合链接到 AutoCAD 菜单和工具栏, 还有通过称为 VBE 属性链接到 VBA IDE。 应用程序对象也是 ActiveX 界面的全局对象。 也就是说应用程序对象的所有方法和属性在全 局名称空间都是有效的。
◆ AutoCAD 的 Preferences 对象
通过它可以获取或改变 AutoCAD 的设置。
◆ AutoCAD 的 Document 对象。
是 AutoCAD 图形文件对象,它代表当前激活的 DWG 文件。 Document 对象下面有 Model Space(模型空间和 Paper Space(图纸空间对象及 Blocks(块 、 Layers (层 、 Plot (出图 、 Selectionsets (选择集 、 views (视图 、 utility (功能等一系列对象(集合 , 其含义与 AutoCA
D 中相似。 Model Space 是当前图形文件中图形实体,如直线、圆、多义 线等的集合,每个实体即是一个对象,可通过属性和方法改变实体或生成新实体。
对非图形实体,如层(layer 、线形(line type 等的访问则通过访问 Document 对象 下面的相应的集合类型的子对象, 如 Layers 、 LineTypes 等来实现。 集合类型的对象可以使 用 VB 中所有的集合操作方法。 Plot 对象提供了访问 Plot 对话框中各选项的桥梁, 使程序具 有用不同方式控制 AutoCAD 出图的能力。 Utility 对象使用户在 AutoCAD 命令行与 CAD 交 互成为可能,通过它可以处理整型、浮点型、字符型等用户输入,还可以接受点(Point 或角(Angle 等 AutoCAD 的特殊量。
对象是通过分层方式来组织的, 应用程序对象为根对象。 这种分层结构被归结为对象模 型。
(2 AutoCAD 对象的使用
要想在 AutoCAD 中使用 Active Automation技术,首要条件是在 VB6.0中选择 AutoCAD 作 为其对象,并对需要操作的具体对象按照 AutoCAD 对象的树状结构逐级遍历。首先打开 VB
6.0,选择“工程 /引用”菜单,在“引用”对话框中选择“ AutoCAD Object Library” 。 按照 VB 的编程步骤,写入下面相应的程序代码,即可实现 CAD 中相应的操作。下面说明 CAD 中常用操作的实现方法:
a .开始一个应用程序的 VB 语句
Application 对象位于 AutoCAD 层次对象结构的顶层,它代表 AutoCAD 本身,用户的应用
程序也理所当然从 Appliction 对象的建立开始。
Dim objacad As AutoCAD.AcadApplication ’ ’定义 Autocad 程序对象
Dim objdwg As AutoCAD.AcadDocument ’ ’定义 DWG 文件对象
Dim objcircle As AutoCAD.AcadCircle ’ ’定义 circle 对象
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论