您现在的位置: 天极网 > 开发频道 > 应用Automation技术进行AutoCad的开发
全文

应用Automation技术进行AutoCad的开发

2001-08-30 12:07作者:崔航 出处:vbeden责任编辑:方舟

  二、 AutoCad对象的使用

  在本节中,将结合我做项目得到的一些经验以例程的方式对AutoCad的常用对象及其使用进行讨论。

  1.开始一个应用程序

  如前所述,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")  ‘若AutoCad       
                 已启动,则直接得到  
If Err Then
 Err.Clear
 Set acadapp = CreateObject("autocad.application")  ‘若
            AutoCad未启动,则运行它
 If Err Then
  MsgBox Err.Description
  Exit Sub
 End If
End If
acadapp.Visible = True ‘使AutoCad可见
Set acaddoc = acadapp.ActiveDocument  ‘设acaddoc为当前
               图形文件
Set mospace = acaddoc.ModelSpace ‘设mospace为当前图形
                 文件的模型空间
 
以上程序段是应用程序初始化的过程,一般对AutoCad图形文件的操作,主要是与Application、Document和Model Space等对象发生关系。

  Application对象是一系列对象的父对象,可以通过它的属性设置来改变AutoCad的窗口设置。请看下面代码:

acadapp.Top=100   '设置AutoCad窗口的位置
  acadapp.Left=200
  acadapp.Height=1000  '调整AutoCad窗口的大小
  acadapp.Width=800
  acadapp.Caption="my first application"  '设置AutoCad窗口的 
                    标题

  通过Application对象的方法还可以方便的调入ADS或ARX程序,以利于各类程序的集成。其例程为:

   Dim arxname As string
   acadapp.LoadARX arxname ‘arxname即为调入的arx程序名(带  路径)

  2.通过Document对象对图形文件的操作

  Document对象提供了大多数AutoCad的文件功能,可以通过它实现对文件的更新(New)、打开(Open)、输出(Export)、输入(Import)等操作,一般要先把Document对象设为Application对象的 ActiveDocument属性,以返回当前图形文件。

   Set acaddoc=Application.ActiveDocument

  请看下面的例子对文件的操作:

Dim dwgname As String
dwgname = "c:\acadr14\sample\campus.dwg"
If Dir(dwgname) <> "" Then
  acaddoc.Open dwgname   '打开一个CAD文件
Else
  acaddoc.new("acad")  '以acad.dwt为模板建立一个新
             文件
End If
Document对象还提供了两个十分有用的方法——SetVariable 和 GetVariable,通过它们可以得到或改变AutoCad的系统变量。
如:acaddoc.SetVariable "Orthomode", 1 '打开正交模式
dim cadver As String
cadver=acaddoc.Getvariable("Acadver")  '获取AutoCad的版本号

  3.对图形实体的自动操作(生成、编辑、查询)

  图形实体指所有画在屏幕上的物体,如直线(Line)、圆(Circle)、弧(Arc)、多义线(PolyLine)、文字(Text)等,它们包含于ModelSpace和PaperSpace集合对象中,对实体的操作总要从这两个集合开始,向下查找相应实体的方法或属性。ModelSpace与PaperSpace的含义和AutoCad中类似,它们是所有图形实体的集合,要取得图中的某一实体,一般采用遍历或用实体句柄(Handle)查找的方法。用户可以操作AutoCad自动生成、编辑实体或查询实体参数。请看下例:

  ①生成一个轻量多义线(LightWeight PolyLine)

Dim lwpoly As Object
Dim ptarray(0 To 5) As Double '设坐标变量
ptarray(0) = 2  
ptarray(1) = 4
ptarray(2) = 4  
ptarray(3) = 2
ptarray(4) = 10 
ptarray(5) = 4   
Set lwpolyObj = moSpace.AddLightWeightPolyline(ptarray)
‘画多义线(以(2,4,4)(2,10,4)为端点)
②改变一个现有长方体的颜色(假设此实体句柄为"4C")
 Dim tobj As object
       Set tobj=acaddoc.HandletoObject("4C") '通过Handle来获取
                         实体
 tobj.Color=acRed   ‘变颜色为红色
       tobj.Update      ‘更新状态
③查询当前图形文件中所有实体的实体名、实体句柄、颜色、所在层、线形等参数
Dim ent As Object         
Dim msgStr, NL As String       
Dim I as Integer
NL = Chr(13) & Chr(10)  ‘回车与换行
I=1
For Each ent in mospace '采用迭代遍历模型空间中的实体
 msgStr = "第" & Format(I) & "个实体信息" & NL & NL
 msgStr = msgStr & "实体名: " & ent.EntityName & NL
 msgStr = msgStr & "所在层: " & ent.Layer & NL
 msgStr = msgStr & "颜色: " & Str(ent.Color) & NL
 msgStr = msgStr & "线形: " & ent.Linetype & NL
 msgStr = msgStr & "句柄: " & ent.Handle & NL
 MsgBox msgStr
 I=I+1
Next
共4页。 9 1 2 3 4 :

软件资讯·软件下载尽在天极软件

相关搜索:
相关文章及软件
关注此文读者还看过
热门关注
特别推荐
网友关注
软件下载
娱乐下载
驱动下载
文章排行
本周
本月
最近更新
关于我们|About us|网站律师|天极服务|电子杂志|RSS订阅|加入我们|网站地图
TMG
Copyright (C) 1999-2009 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明 在线提交意见反馈 渝ICP证B2-20030003号
经营性网站备案信息 网警备案 中国网站排名
天极传媒:天极网|比特网|IT专家网|IT商网|52PK游戏网|IT分众