天圆液压产品中心
AutoCAD二次液压缸开发的ActiveX技术应用
| Autodesk公司的AutoCAD软件广泛地应用于设计领域。AutoCAD作为强大而专业的工程绘图软件,近几年来在工程地质制图方面也得到了广泛应用,如钻孔柱状图、剖面图等。但由于CAD本身的原因以及地质图件的特殊性,完全依赖CAD而不借助第三方软件或对CAD进行二次开发,实现地质图件的计算机化也是一件非常困难的事情。好在CAD是一个灵活而又开放的系统,它提供了许多开放式的接口,允许用户通过这些接口对CAD进行二次开发,以满足不同用户的需要。 在AutoCAD R14以前的版本中,最常用的开发工具是AutoLisp和ADS,这两种开发工具都不适应当前可视化编程的需要。幸运的是,在AutoCAD R14版本中,Autodesk公司在AutoCAD中加入了ActiveX自动化服务功能(ActiveX Automation server capabilities),使得用户可以通过可视化编程工具,如Visual Basic(以下简称VB)、Delphi等对AutoCAD进行二次开发,不但提高了工作效率,也满足了不同专业的需要。最近我院开发了“工程地质CAD绘图系统”软件,荣获本单位优秀软件三等奖。该系统我们以AutoCAD R14为平台,VB为开发工具,应用ActiveX技术对AutoCAD进行了二次开发。本文简略地说明AutoCAD中的ActiveX对象模型结构及对模型对象的编程引用。 1 AutoCAD中的ActiveX对象模型 AutoCAD ActiveX提供了一种机制,或者说是一种方法,可以供开发者通过编程手段来操纵AutoCAD。ActiveX是由一系列的对象,按一定的层次结构组成的,每一个对象都代表了AutoCAD中的一个明确的功能。每一个对象本身包含着自己的属性和方法,通过方法可以实现对象的一些操作,如控制CAD的启动,打开一个文档,一条直线的生成。而属性则是对象自己本身所具有的一些性质,如一个文本对象,它的属性有文本的高度,宽度、文本的颜色,所在层等。应用程序正是通过对AutoCAD暴露的各级对象的方法和属性的引用控制AutoCAD工作的。 理解AutoCAD的对象模型是实现编程的基础。AutoCAD以层次结构组织对象(对象模型图可以参考R14版本中的帮助文件)。在顶层是Application对象(即AutoCAD 本身),其他对象均为Application对象的子对象。在Application对象下面是Preferences(优先设置)和Document(文档)对象,通过Preferences对象可以对AutoCAD Tools>Preferences菜单项中的几乎每一个选项进行访问和修改,以获取或改变AutoCAD的优先设置。Document对象是控制AutoCAD图形文件的直接对象,它代表某一个装入的CAD图形文件(一般设为当前激活的文件)。Document对象下面有Model Space(模型空间)和Paper Space(图纸空间)对象及Blocks(块)、Layers (层)、Plot(出图)、Selectionsets(选择集)、 views(视图)、 utility(功能)等一系列对象(集合),其含义与AutoCAD中相似。Model Space是当前图形文件中图形实体,如直线、圆、多义线等的集合,每个实体即是一个对象,可通过属性和方法改变实体或生成新实体。对非图形实体,如层(layer)、线形(line type)等的访问则通过访问Document对象下面的相应的集合类型的子对象,如Layers 、LineTypes等来实现。集合类型的对象可以使用VB中所有的集合操作方法。Plot对象提供了访问Plot对话框中各选项的桥梁,使应用程序具有用不同方式控制AutoCAD出图的能力。Utility对象使用户在AutoCAD命令行与CAD交互成为可能,通过它可以处理整型、浮点型、字符型等用户输入,还可以接受点(Point)或角(Angle)等AutoCAD的特殊量。以上简要地说明了CAD中的对象及其层次结构关系,有了这些理解对编程控制CAD就不难了。 2 AutoCAD对象的使用 2.1 AutoCAD application对象 如前所述,Application对象位于AutoCAD层次对象结构的顶层,它代表AutoCAD自身,所有的应用程序必须从Appliction对象的建立开始。 Dim aCADapp As Object '建立Application对象 Dim aCADdoc As Object '建立Document对象 Dim mospace As Object '建立Model Space 对象 On Error Resume Next Set aCADapp = GetObject(, "autoCAD.application") If Err Then Err.Clear Set aCADapp = CreateObject("autoCAD.application") ‘ If Err Then MsgBox Err.Description Exit Sub End If End If Set aCADDoc = aCADApp.ActiveDocument 上一语句是设aCADdoc为当前图形文档。 Set aCADutil = aCADDoc.Utility '与用户交互 aCADApp.Visible = True ‘此语句是使CAD可见。 Set mospace = aCADdoc.ModelSpace 设置mospace为当前图形文档的模型空间。 以上程序段是应用程序初始化的过程,即选择性地启动AutoCAD。如果CAD已经启动则跳此过程,反之则初始化启动CAD。一般对AutoCAD图形文档的操作,主要是与Application、Document、Utility和Model Space等对象发生关系。 Application对象是一系列对象的父对象,可以通过它的属性设置来改变AutoCAD的窗口设置。如下面代码: aCADapp.Top=100 '设置AutoCAD窗口的位置 aCADapp.Left=200 aCADapp.Height=1000 '调整AutoCAD窗口的大小 aCADapp.Width=800 2.2 Document对象 (1) 对文件的操作 Document对象提供了大多数AutoCAD软件中有关文件的功能,可以通过它在AutoCAD中新建(New)、打开(Open)、输出(Export)、输入(Import)等文件功能操作。编程时先把Document对象设为Application对象的 ActiveDocument属性,以返回当前活动的图形文档。例: Set aCADdoc=Application.ActiveDocument 请看下面的例子对文件的操作: Dim Docname As String Docname = "e:\temp\zk01.dwg" If Dir(docname) <> "" Then aCADdoc.Open docname '如果文件存在则打开CAD文件 Else aCADdoc.new("aCAD") '若不存在则以aCAD.dwt为模板建立一个新文件。 End If 把当前文档存盘则可以用下面的语句: if docname<>"" then 'docname不存在时存盘 aCADdoc.save else msgbox “该文件已经存在!” '提示该文件已经存在 end if Document对象还提供了两个非常有用的方法—SetVariable 和 GetVariable,通过它们可以得到(用GetVariable)或改变(用SetVariable )AutoCAD的系统变量。 如语句: aCADdoc.SetVariable "Orthomode", 1 '打开正交模式 dim CADver As String CADver=aCADdoc.Getvariable("ACADver") '获取AutoCAD的版本号 (2) 对图形实体的操作 (责任编辑:admin) |
- [ 18-11-06 ]换向阀中位性液压站能特点及应用留意
- [ 18-10-09 ]公制螺纹、BS液压油缸PP螺纹ED密封油
- [ 18-09-11 ]很是具体的液液压站压阀块计划履历总
- [ 18-09-11 ]液压节液压站制技能的革命
- [ 16-09-14 ]联轴珩磨管器选择方法
- [ 16-07-17 ]怎样避免缸筒液压站冲击危害?
- [ 16-07-17 ]液压动力单元液不锈钢缸筒压齿轮泵的
