AutoCAD的ActiveX自动操作的英文全称是AutoCAD ActiveX Automation,ActiveX是微软制定的一种实现程序间通信、调用的软件复用规范,它提供了一种控制AutoCAD的机制。
Automation技术允许一个应用程序操纵在另一个应用程序中实现的对象。从而可以被操纵。操纵程序被称为客户,而被操纵程序称为服务器,被操纵的对象是ActiveX对象

什么是AutoCAD ActiveX

AutoCAD ActiveX,即是AutoCAD ActiveX Automation,提供了一种程序化的机制来操纵AutoCAD,这种操作既可以是在AutoCAD内部,也可以是来自AutoCAD外部的。因此,当提及AutoCAD ActiveX的时候,不是一种特定的语言,而是一种方法,一种操作。

执行一个AutoCAD ActiveX接口有两个优点:

  1. 程序化地访问AutoCAD图形,对于更多的编程环境是开放的,在ActiveX自动化之前,不受开发语言的限制;
  2. 与其他Windows应用程序共享数据,变得非常简单;

AutoCAD ActiveX Automation

AutoCAD ActiveX基本特点

AutoCAD的二次开发途径主要有两个

  • 文件开发
    文件开发是指根据用户的具体开发需要,按照AutoCAD提供的方法和文件格式,通过编辑AutoCAD系统所支持的文本文件,或建立同种类型新的文本文件,来开发AutoCAD;
  • 程序开发
    AutoCAD API,通过编写程序来实现对AutoCAD开发的方法;

AutoCAD ActiveX命令

命令的用户化

程序参数文件(ACAD.PGP)的结构与功能。AutoCAD程序参数文件(ACAD.PGP)是一个文本文件,用于存放AutoCAD定义的命令。这个文件分为两个部分:

  • 第一部分定义外部命令;
  • 第二部分定义命令别名;


“;”引导注释;
在ACAD.PGP中定义AutoCAD的外部命令

外部命令的具体格式:

定义命令别名和缩写

命令别名向的定义格式如下:

AutoCAD ActiveX AutoMation开发技术基础

一个应用程序支持的对象、方法和属性通常在应用的类型库中定义。类型库是一个文件或文件的一部分,它描述一个或多个对象,但不存储对象,而是存储对象的接口描述。
AutoCAD的所有对象组成一个层状结构。最高层是Application对象,其他对象都是Application对象的子类。为了得到一个特定的对象,必须从Application对象对子对象遍历,直到找到该特定的对象。在AutoCAD ActiveX界面中有许多不同类型的对象:

  • 图形对象,如线、弧、文本和标注都是对象;
  • 样式设置,如线性和标注样式均为对象;
  • 组织结构,如图层、组合和图块也是对象;
  • 图形显示,如视图和视口都是对象;
  • 图形和AutoCAD应用程序本身也是对象;

Application对象

Application对象,即应用程序对象,是AutoCAD ActiveX自动操作对象模型的根对象。Application对象也有许多属性和方法:

  • ActiveDocument属性,返回当前AutoCAD正在进行编辑的图形;
  • Preferences属性,返回Preferences对象,用于AutoCAD的设置;

Document对象

Document对象,即文档对象,是AutoCAD当前编辑的图形,它可以存取所有的AutoCAD图形与非图形对象。ModelSpace和PaperSpace属性可存取图形对象,而非图形对象可以通过DimStyles、Layers、LineTypes、TestStyles、ViewPorts和Views等存取。

Collection对象

AutoCAD组合大部分的对象在集合中,尽管这些集合包含不同类型的数据;

图形对象和非图形对象

  • 图形对象
    也被称为实体,是图形的可见对象。可以使用ModelSpace和PaperSpace的Add[EntityName]方法产生一个新的图形对象,如AddLine。图形对象的编辑可以通过图形对象自身的方法实现,如Offset、Copy等;
  • 非图形对象
    非图形对象是指图形中的不可见对象,包括DimStyles、Layers、LineTypes、TestStyles、ViewPorts和Views和SelectionSet等。

Preferences、Plot和Utility对象

参数选择:Preferences
打印出图:Plot
实用工具:Utility

访问对象层次

使用python访问AutoCAD的内部对象时,需要通过对应用程序的链接;

import win32com.client
AcadApp = win32com.client.Dispatch("AutoCAD.Application.19")

上面的代码就创建了外部程序与AutoCAD的链接,在链接到AutoCAD的应用程序之后,返回一个Application对象,可以通过下面的这行代码指向AutoCAD中的活动文档;

ActiveDocument = AcadApp.ActiveDocument

如果我们想要在模型空间绘制一个实体,则需要获得AutoCAD的模型空间;

ModelSpace = ActiveDocument.ModelSpace

下面我们实现在模型空间中绘制一条直线:

import win32com.client
AcadApp = win32com.client.Dispatch("AutoCAD.Application.19")
ActiveDocument = AcadApp.ActiveDocument
ModelSpace = ActiveDocument.ModelSpaceline = ModelSpace.AddLine(startpoint, endpoint)

上面的这段代码展示了一个应用层次:
Application>>>ActiveDocument>>>ModelSpace>>>AddLine

集合对象操作

名称 含义
文档(Documents)集合 包含所有在当前AutoCAD进程打开的文档
模型空间(ModelSpace)集合 包含在模型空间中的所有图形对象(图元)
图纸空间(PaperSpace)集合 包含在活动图纸空间布局中的所有图形对象(图元)
图块(Block)集合 包含在指定图块定义中的所有图元
图块(Blocks)集合 包含在图形中的所有图块
字典(Dictionaries)集合 包含在图形中的所有字典
标注样式(DimStyles)集合 包含在图形中的所有标注样式
组合(Groups)集合 包含在图形中的所有组合
超级链接(Hyperlinks)集合 包含提供图元的所有超级链接
图层(Layers)集合 包含在图形中的所有图层
布局(Layouts)集合 包含在图形中的所有布局
线型(LineTypes)集合 包含在图形中的所有线型
菜单条(MenuBar)集合 包含当前显示于AutoCAD的所有菜单
菜单组(MenuGroups)集合 包含当前装载到AutoCAD中的所有菜单和工具拦
注册应用程序(RegisteredApplication)集合 包含在图形中的所有注册的应用程序
选择集(SelectionSets)集合 包含在图形中的所有选择集
字型(TextStyles)集合 包含在图形中的所有文字样式
UCSs集合 包含在图形中的所有用户坐标系统(UCS)
视图(Views)集合 包含在图形中所有的视图
视口(Viewports)集合 包含在图形中的所有视口

访问集合

大多数集合对象是通过文档对象来访问的。文档对象包含每个集合对象的属性。下面以创建一个图层集合为例

import win32com.client
AcadApp = win32com.client.Dispatch("AutoCAD.Application.19")
ActiveDocument = AcadApp.ActiveDocument
layer = ActiveDocument.Layers

上面代码获得了当前的图层集合,并将图层集合命名为“layer”,我们想要在图层集合中,添加一个新的图层,需要使用Add方法:

new_layer = layer.Add("HIT_Layer")

在集合对象中循环

选择集合对象中的一个指定成员,使用Item(项目)方法。Item方法需要一个标识符。

删除集合对象中的成员

删除指定的成员,可使用所找到成员对象的Delete方法。

acad.ActiveDocument.SelectionSets.Item("SS1").Delete()

第二章 AutoCAD ActiveX Automation概述相关推荐

  1. 计算机控制zos,第二章zOS操作系统的功能概述2.1zOS的内存管理.PDF

    第二章zOS操作系统的功能概述2.1zOS的内存管理.PDF 第二章 z/OS 操作系统的功能概述 2.1 z/OS 的内存管理 与其它平台不同的是,主机系统里,storage 指的是内存的概念,而不 ...

  2. 简述微型计算机组成概述,第二章微型计算机的组成概述.pptx

    第二章微型计算机的组成概述 第二章 微型计算机的组成;学习指导;2.1 冯·诺依曼结构计算机的工作原理; 约翰.冯诺依曼(John VonNouma,1903-1957),美籍匈牙利人,1903年12 ...

  3. 第二章 BIRT设计器概述及本地化支持

    转载自:https://blog.csdn.net/z1012890225/article/details/37815863 2.1 BIRT设计器概述 2.1.1 基本概念 数据源:数据的来源,或提 ...

  4. 第二章大数据技术概述

    大数据技术的产生 海量数据的产生: 来自大人群互联网 来自大量传感器机械 科学研究及行业多结构专业数据 大数据的基本概念 大数据的定义:无法在一定时间内用常规软件工具对其内容进行抓捕.管理和处理的数据 ...

  5. 太原理工 Web程序设计基础 学某通 (第二章 web前端开发概述)

    2.5 随堂测试已完成 1[单选题] 在下列选项中,不属于Web前端开发任务的是(    ). A. 页面布局 B. 页面交互 C. 通信协议 D. 页面特效 我的答案:C 2[单选题] HTML5是 ...

  6. 第二章 大数据技术概述

    大数据基本概念 数据是各种符号如字符.数字等.声音.图片动画.视频多媒体,数据也是原始事实.要保证其原始性和真实性,后期加工才有意义.信息是人们为了某种需求而对原始数据加工重组后形成的有意义.有用途的 ...

  7. autocad python二次开发_基于Python AutoCAD ActiveX 二次开发,pyautocad应用技术

    AutoCAD应用程序开发系列 基于Python AutoCAD ActiveX 二次开发技术 主要库:pyautocad==0.2.0 内容#:基于Python AutoCAD ActiveX 二次 ...

  8. 基于Python AutoCAD ActiveX 二次开发,pyautocad应用技术

    AutoCAD应用程序开发系列 基于Python AutoCAD ActiveX 二次开发技术 主要库:pyautocad==0.2.0 内容#:基于Python AutoCAD ActiveX 二次 ...

  9. 《Java Web程序设计任务教程》简要复盘:第二章 JavaWeb概述

    <Java Web程序设计任务教程>简要复盘:第二章 JavaWeb概述 第二章:Java Web概述 XML基础 XML概述 XML语法 HTTP协议 1.HTTP概述 HTTP介绍 W ...

最新文章

  1. [python]自问自答:python -m参数? (转)
  2. html首页 slider图片切换效果,jQuery插件Slider Revolution实现响应动画滑动图片切换效果...
  3. 宝塔 面板 放行端口
  4. 微课|中学生可以这样学Python(8.4节):递归算法例题讲解3
  5. 5、Fiddler如何捕获HTTPS会话
  6. 人脸对齐(十九)--Regressing a 3D Face Shape from a Single Image
  7. Android-7.0-Nuplayer概述
  8. python线程池超过最大数量_讨论一下Python线程池大小设置?
  9. window下使用tail -f查看tomcat日志
  10. 大数据驱动教育变革,产教融合呈现新高度——数据科学与大数据技术教育分论坛顺利召开...
  11. android excel在线制作教程,Excel手机表格制作软件
  12. iPhone中国移动收不到彩信,设置方法?
  13. chemdraw如何改中文_如何修改ChemDraw的默认输出格式
  14. 【Java异常】Variable used in lambda expression should be final or effectively final
  15. SpringCloud 之 注册中心
  16. ps怎么调19号画笔_【精品】ps19号笔刷如何设置?19号笔刷的设置技巧!
  17. 某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬;超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬。员工按进公司时间分为新职工和老职工,进公司不少于5年的员工
  18. Linux PXE无盘工作站
  19. 对比MIUI7和Flyme4.5 期待神秘的Flyme5
  20. 云服务器ECS使用记录-1. 介绍

热门文章

  1. 关于CSS(你所不知道的小秘密)
  2. 如何评估投资性房地产预计未来现金流量的性能,备考
  3. 海德汉AELC281/AELC211/AELC291F/AELB382C/LB302ID315420-04/03 445断线报警和针脚定义
  4. xp系统打开itunes显示服务器失败,xp系统读取不了itunes library.itl文件如何解决
  5. 一个方便的内存单位转换工具
  6. lin通讯从节点同步间隔场_基于LIN节点的车载防盗报警设计与实现
  7. java扑克牌类游戏下载_【参考源码】Java入门第三季 7-1 简易扑克牌游戏
  8. win10,Anaconda2,Python2.7.14下rar,unrar安装成功!“LookupError: Couldn‘t find path to unrar library”错误消失
  9. Python学习教程:成语查询工具 - 数据获取
  10. 外包员工就活该被区别对待么?