第5章 创建基本图形对象 CAD二次开发课件
第五章 AutCAD二次开发
X和Y的值表示文本相对于直线的偏移量。X可以用来拟合横线之 间形成文本的空间;Y可以用来使形或文本沿线型居中。
标题行
➢ 定义时始终用星号(*)开始; ➢ 说明字符限制在47个字符以内; ➢ 如果包含说明,之前要放置逗号。
定义行
√ 横线用正数、点用零、空格用负数表示; √ 每项之间用逗号(,)分隔,没有空格, √ 每行的最大长度为80个英文字符;
√ 每行都必须以字符A开头。
Exp1:
*DASHDOT,
.
.
A,0.5,-0.25,0,-0.25
/=
不等于。如果所有参数值不相等,返回T,否则,返回nil
<
小于。如果每个参数值都小于下一个参数,返回T,否则,返回nil
>
大于。如果每个参数值都大于下一个参数,返回T,否则,返回nil
>=
大于等于。如果每个参数值都大于或等于下一个参数,返回T,否则,返回nil
<=
小于等于。如果每个参数值都xiao于或等于下一个参数,返回T,否则,返回nil
通过AutoLISP能够了解到AutoCAD的内部工作原理,并 且是学习ObjectARX和VBA这样更加先进的自动方法的奠基 石。 AutoLISP例程可以为用户提供全面控制程序运行与用 户之间相互关系的能力。
AutoLISP的扩展名为.lsp,但是为了安全和运行速度, 可将AutoLISP文件保存成.fas或.vlx为扩展名的工程项目应用 文件。 AutoCAD首先加载.vlx文件,然后加载.fas文件,最 后加载.lsp文件。例如,如果有两个redline.vlx和redline. 件,AutoCAD加载.vlx文件,但如果.lsp文件比.fas文件新, AutoCAD将加载.lsp文件。
cad的二次开发
cad的二次开发最近要为交大安地开发点AutoCAD插件,因为以前没有接触过这类东西。
连AutoCAD也不会用,所以查点资料,首先是通过什么途径与AutoCAD交互?查到的有两点:1.独立程序方式,可以通过AutoCAD ActiveX Automation,AutoCAD公布的自动化对象。
外部程序通过这个对象来控制AutoCAD,执行一些操作。
AutoCAD ActiveX Automation 对象体系结构在对象模型中,处于最高层的对象是AutoCAD.Application,称为应用对象,它包含了AutoCAD ActiveX Automation 对象所提供的全部功能。
在AutoCAD.Application 层之下是Preferences 和Document 子对象。
Preferences子对象等价于AutoCAD的Preferences对话框,它包含了AutoCAD的当前的系统参数设置。
Document子对象代表AutoCAD系统中当前活动的图纸文件,通过Document子对象可以对系统中当前活动的图纸文件进行所有的处理。
Document子对象包含了所有的图纸信息子层,有:模型空间子集(ModelSpaceEntitiesCollection)、纸空间子集(PaperSpaceEntitiesCollection)和块子集(BlocksCollection)包含所有的三维图形绘制对象,用来进行图形文件的绘制;字典子集(DictionariesCollection)负责自动拼写检查;标注子集(DimStylesCollection)负责图纸标注;组子集(GroupsCollection)负责当前活动的图纸文件中所有的组的管理;层子集(LayersCollection)负责当前活动的图纸文件中层的设置;线型子集(LinetypesCollection)管理线型;已注册应用程序子集(RegisteredAppCollection)管理系统中的外加应用程序;选择组子集(SellectionSetsCollection)管理用户在图纸中所选择的内容;文本风格子集(TextStylesCollection)负责文本字符风格;用户坐标系子集(UCSsCollection)负责管理用户坐标系;视图子集(ViewsCollection)负责管理用户视图;视角子集(ViewportsCollection)负责视角转换控制;打印输出子集(Plot)负责控制图形文件的最终输出及打印设置;应用子集(Utility)包含了大量的辅助函数,用来进行辅助计算。
5AutoCAD高级培训第五讲——AutoCAD二次开发基础
AutoCAD高级培训第五讲——AutoCAD二次开发基础(AutoLISP 语言编程概述)二次开发:采用编程的方法扩充AutoCAD的功能,如增加新的绘图命令、新的修改命令等。
例如,AutoCAD中本来没有绘制正弦曲线(函数形式为Y=Asin(X+ω))命令,通过编程开发一个AutoCAD的新命令,使用户可以使用该命令实现绘制正弦曲线,在命令的交互过程中,系统提示用户依次输入所需要的参数:坐标原点、振幅、周期数、初相角等。
常用二次开发工具:AutoLISP语言(运行于VisualLISP集成开发环境)、ActiveX、VBA、JAVA、C、ObjectARX等需要掌握:AutoLISP语言(高级证书所必需)一、AutoLISP 语言简介1.LISP——List Processing Language2.AutoLISP:嵌套于AutoCAD内部,将LISP与AutoCAD有机结合,是AutoCAD开发的重要工具。
3.AutoLISP的功能:♦可直接调用AutoCAD的几乎全部命令♦具备一般高级语言的结构和功能:顺序、条件分支、循环等结构;I/O、数值计算、逻辑判断、数据类型转换等功能♦具备一般高级语言所没有的强大的图形处理功能4.AutoLISP的特点♦仅能以解释方式运行于AutoCAD内部(解释性程序设计语言)♦程序的全部内容均以函数形式给出,没有语句的概念,也没有其他语法结构,执行程序就是执行一系列的函数调用,也称“函数语言”♦把数据和程序统一表达为表结构,程序即数据,数据即程序,故也称为“表语言”♦运行程序就是对函数求值的过程,在此过程中实现函数的功能例如,下面的内容就是一个完整的AutoLISP程序:(defun math()(setq x 10)(setq y 20)(+ x y)(* x y))该程序运行的结果是:200二、AutoLISP的数据类型♦整型数♦实型数♦符号(SYM)♦字符串(STR)♦表(LIST)♦文件描述符(FILE)♦AutoLISP的内部函数(SUBR)♦AutoCAD的选择集(PICKSET)♦AutoCAD的实体名(ENAME)♦函数分页表(PAGETB)基本应用:涉及用蓝色显示的6种,前4种称为“原子”。
AutoCAD-实用教程第5章-编辑二维图形对象精品PPT课件
AutoCAD 2016实用教程
5.4.3 应用夹点
当选取一图形对象时,对象周围将出现蓝色的方框即为夹点。在编 辑零件图时,有时不需要启用某个命令,却获得和该命令一样的编辑效 果,此时可以通过夹点的编辑功能,快速调整图形的形状。如拖动夹点 调整辅助线的长度,拖动孔对象的夹点进行快速复制,从而获得事半功 倍的效果。
AutoCAD 2016实用教程
5.1.2 选取对象方式
在AutoCAD中,针对图形对象的复杂程度或选取对象数量的不同, 有多种选择对象的方法,可以分为点选或区域选取两种方式。
1. 直接选取 2. 窗口选取 3. 交叉窗口选取 4. 不规则窗口选取 5. 栏选选取 6. 快速选择
AutoCAD 2016实用教程
构造选择集 选取对象方式
AutoCAD 2016实用教程
5.1.1 构造选择集
通过设置选择集的各个选项,用户根据自己的使用习惯对AutoCAD 拾取框、夹点显示以及选择视觉效果等方面的选项进行详细的设置,从 而提高选择对象时的准确性和速度,达到提高绘图效率和精确度的目的。
1. 拾取框和夹点大小 2. 选择集预览 3. 选择集模式
1. 定距偏移 2. 通过点偏移 3. 删除源对象偏移 4. 变图层偏移
AutoCAD 2016实用教程
5.2.4 阵列图形
使用“阵列图形”工具可以按照矩形、路径或环形的方式,以定义 的距离或角度复制出源对象的多个对象副本。在绘制孔板、法兰等具有 均布特征的图形时,利用该工具可以大量减少重复性图形的绘制操作, 并提高绘图准确性。
复制图形 镜像图形 偏移图形 阵列图形
AutoCAD 2016实用教程
5.2.1 复制图形
第五章CAD软件系统二次开发技术
——GPA格式
• 实体数据存取格式(Entity Data Access) ——EDA格式
2013-7-9
第5章 基于特征的CAD软件系统二次开发技术
第2节 UG/OPEN GRIP开发环境
◆ GRIP命令的三种格式 1、SF格式命令 • 由主词、辅词和参数构成,中间用“/”分开 • 只有主词(参数)就形成OPEN GRIP的标准函数
第5章 基于特征的CAD软件系统二次开发技术
第3节 GRIP语言基础
◆矢量函数使用例题
例3: ENTITY/surf NUMBER/a(3),b(3) MASK/43 $$只能选择B-surface l1: IDENT/’Pick a surface’,surf,resp JUMP/l1:,term:,,resp a=SDDUF(surf,0.5,0.6) $$ SDDUF(ent,u,v)对u求偏导数 b=SDDVF(surf,0.5,0.6) $$ SDDVF(ent,u,v)对v求偏导数 PRINT/a,b term: HALT
2013-7-9
第5章 基于特征的CAD软件系统二次开发技术
第3节 GRIP语言基础
★ GRIP变量的声明
◆(下标)数字变量的申明 NUMBER/name(dim1[,dim2[,dim3]])[,name(dim1[,dim2[,dim3]])]+ 例如:NUMBER/a(10),b(2,5),c(3,5,10) ◆ (下标)字符串变量的申明
第5章 基于特征的CAD软件系统二次开发技术
第2节 UG/OPEN GRIP二次开发环境
★ GRIP编程注意事项
◆采用分段缩进方式书写,多用注释语句,增强
程序的可读性;
◆语句标号从小到大,或有一定规律性; ◆变量名应与工程术语相近,便于理解; ◆主词/辅词通常用大写,变量用小写,便于阅读。
CAD的二次开发
A u t o C A D二次开发的研究学习学院:机械与电子信息学院专业:机械设计制造及其自动化姓名:班级序号:指导老师:二零一四年五月二十日目录第1章 AutoCAD发展历程与研究现状 ---------------------------------------------------------------- - 1 -1.1 AutoCAD简介 -------------------------------------------------------------------------------------- - 1 -1.2 AutoCAD二次开发 -------------------------------------------------------------------------------- - 2 -1.2.1 AutoCAD二次开发简介 ---------------------------------------------------------------- - 2 -1.2.2 AutoCAD二次开发发展历程 ---------------------------------------------------------- - 2 -1.2.3 AutoCAD二次开发发展现状 ---------------------------------------------------------- - 7 -第2章二次开发应用举例 ------------------------------------------------------------------------------- - 9 -2.1 AutoLISP-------------------------------------------------------------------------------------------- - 9 -2.1.1 AutoLISP概述 --------------------------------------------------------------------------- - 9 -2.1.2 举例----------------------------------------------------------------------------------------- - 9 -2.2 ADS-------------------------------------------------------------------------------------------------- - 15 -2.2.1 ADS概述 --------------------------------------------------------------------------------- - 15 -2.2.2 ADS应用程序结构--------------------------------------------------------------------- - 15 -2.2.3 举例--------------------------------------------------------------------------------------- - 16 -2.3 ARX-------------------------------------------------------------------------------------------------- - 19 -2.3.1 ARX概述 --------------------------------------------------------------------------------- - 19 -2.3.2 举例--------------------------------------------------------------------------------------- - 19 -2.4 Active X------------------------------------------------------------------------------------------ - 22 -2.4.1 Active X概述 ------------------------------------------------------------------------- - 22 -2.4.2 举例--------------------------------------------------------------------------------------- - 22 -2.5 .NET ------------------------------------------------------------------------------------------------ - 26 -第3章 AutoCAD未来发展方向------------------------------------------------------------------------ - 27 -3.1 AutoCAD二次开发的必要性 ----------------------------------------------------------------- - 27 -3.2 AutoCAD发展趋势 ------------------------------------------------------------------------------ - 27 -3.2.1 集成化与智能化 ----------------------------------------------------------------------- - 28 -3.2.2 网络化与并行化 ----------------------------------------------------------------------- - 28 -3.2.3 虚拟设计 -------------------------------------------------------------------------------- - 28 -3.2.4 规范化 ----------------------------------------------------------------------------------- - 29 -3.3 二次开发的基本过程 -------------------------------------------------------------------------- - 29 -3.4 二次开发中的关键技术 ----------------------------------------------------------------------- - 30 -3.4.1 参数化图库的生成技术-------------------------------------------------------------- - 30 -3.4.2 用户化界面技术 ----------------------------------------------------------------------- - 30 -3.4.3 二维工程图的自动生成技术 ------------------------------------------------------- - 30 -3.4.4 产品设计智能化开发技术 ---------------------------------------------------------- - 30 -3.4.5 特征映射器的开发技术-------------------------------------------------------------- - 31 -结束语 --------------------------------------------------------------------------------------------------------- - 32 -参考文献 ------------------------------------------------------------------------------------------------------ - 33 -附1: ---------------------------------------------------------------------------------------------------------- - 35 -附2: ---------------------------------------------------------------------------------------------------------- - 36 -摘要:AutoCAD技术发展至今已经日趋成熟,并已经广泛应用于机械、电子、建筑、航空航天等领域,但仍有许多CAD软件还是单单建立在通用应用平台上。
CAD二次开发PPT
运行速度; 4)本质上是一个被建立并装载的ObjectARX应用程
序,因而可在AutoCAD外部装载和更新。
基于 VBA 的开发技术
CAD的二次开发适具有哪些基本要素?
把用户的设计思想转化为特定的新功能需要以下基 本要素,这些基本要素构成了CAD软件二次开发 平台的基本结构: (1)通用CAD软件-管理层; (2)编程开发环境-开发层; (3)应用程序编程接口(API)-支持层; (4)开发者的设计思想-知识层。
CAD的二次开发适具有哪些基本要素?
AutoLISP优点:
1)编程简洁,便于调试;2)直接针对AutoCAD, 易于交互;3)解释执行,效果明显。 Autolisp 缺点:1)功能单一;2)解释执行速度慢;3)缺 乏很好的保护机制;4)不能直接访问硬件设备;
5))调试不方便。
Visual LISP
Visual LISP是一个可视化的LISP语言开发环境, AutoCAD从R14版开始支持Visual LISP开发工具,它 是AutoLISP语言的扩展。
其根本目的是提高设计制造质量,缩短产品的生 产周期,充分发挥通用CAD 软件的价值。
CAD的二次开发具有哪些特点?
采用二次开发主要基于以下一些优势: (1)无需从底层开始设计开发; (2)针对用户特定需求,实用性强; (3)效费比高。
CAD的二次开发适用于哪些场合?
主要应用于以下两个场合: (1)实现软件专业性的场合; (2)开发与其它CAD软件的接口。
根据CAD软件应用开发接口的开放程度,一般 可将其二次开发分为非程序以及程序的二次开发 两个方面。
AutoCAD二次开发_官方PPT文档
梁晓冬
培训目标
AutoCAD
培训内容主要是
Raptor
ObjectARX基础知识 如何使用 ObjectARX 如何在以后的实际工作中独立的获取相关资源和帮助
不是
如何使用 C++ 对所有的ObjectARX API做完整的讲述
© 2008 Autodesk
4
Autodesk 系列产品开发培训教程
如何得到ObjectARX
AutoCAD
Raptor
SDK(
Software Development Kits)
免费下载
Autodesk 网站
/objectarx
ADN 网站,检索ObjectARX
13
AutoCAD 的API和IDE
AutoCAD
API
ObjectARX
COM
Raptor
Automation (VB, Java, Delphi, etc.)
AutoLISP
.NET
托管 API
IDE
Visual
Visual
LISP
Basic, Applications Edition (VBA)
16
AutoCAD API 性能比较
S.0.58 API Performance
100.00 90.00 80.00 70.00
Seconds
60.00 50.00 40.00 30.00 20.00 10.00 0.00
Total Create 1000 2dPolylines Add XData to 1000 Entities Update 1000 Circles Create 1000 lines
太原理工大学CAD二次开发与应用-第五章图层.
每个图层可以设定一种颜色、线型和线宽,在该层的实体都将自动获 得这些特性。
当前作图所在的图层称为当前层,绘图命令生成的实体都将画在当前 层上,根据需要随时可以改变当前层。
可通过如下几种方法来设置图层。
选择[格式][图层]菜单命令。 单击“图层”工具栏中的 (图层特性管理器)按钮。 在命令行中执行LAYER命令。 在命令行中执行-LAYER命令。
图7-16
(5)单
击“墙体”层
后的线宽特性
图标
,
打开如图5-17
所示“线宽”
对话框,在该
对话框的“线
宽”列表框中
选择“0.30毫
米”选项,单
击
按
钮。
图5-17
(5)按照类似的方法将“设施”层、“门窗”层和“辅助
线”层的颜色分别设为蓝色、绿色和品红,再将线宽分别设为
0.25、0.25和0.20毫米。
冻结图层与关闭图层的区别在于:冻结图层可以 减少系统重生成图形的计算时间。若用户的计算机性能 较好,且所绘图形较为简单时,一般不会感觉到图层冻 结后的优越性。
冻结/解冻图层的图标状态如下:
:图层处于解冻状态。 :图层处于冻结状态。
冻结或解冻图层的方法是:在“图层特性管理器”对话框 中选中需冻结的图层,在该层上单击“在所有视口中冻结”状 态图标 ,使其成为 状态,该图层即被冻结。再单击该图 标一次,则解冻该图层。
墙体层:红色、Continuous线型、0.30mm线宽;设施层: 蓝色、Continuous线型、0.25mm线宽;门窗层:绿色、 Continuous线型、0.25线宽;辅助线层:品红色、CENTER 线型、0.20线宽。
CAD二次开发ppt
9. VLA 对象
VLA 对象是ActiveX 应用程序的主要组成部分。 不仅直线 、圆弧、多义线和圆等都被称为VLA对象,图层、组、块、视 图、视口、图形的模型空间、图纸空间、线型和尺寸标注样式 等也被称为VLA对象,甚至连AutoCAD本身也被认为是VLA对 象。
表2-1常用控制字符的表示方法
控制字符 用“\”为前导字符 用“\”为前导的ASCII码表示
反斜杠“\”
\\
\134
双引号“"”
\"
\042
Esc键
\e
\033
换行
\n
\012
回车键
\r
\015
Tab键
\t
\011
注意,其中的字符e,n,r,t必须小写。
4. 表
表以左圆括号开始,以配对的右圆括号结束,表可以是空的 ,可以有若干个元素;元素可以是简单的,也可以是复杂的, 还可以是其它的表。例如:(+ 1 2 3)、(sin (* 0.5 pi)) 、(A B)、((A B) C (C D))、(0 "LINE")、(10 1.5 2.6 0.0)、()都是合法的表。
如果使用Visual LISP对AutoLISP扩展功能的部份,必须调用 vl-load-com 函 数 , 或 者 将 调 用 该 函 数 的 表 达 式 写 在 acad2006doc.lsp 文件内。
第2章
数据类型、表达式和函数
AutoLISP的数据类型丰富,除了一般程序设计语言具有的整 型、实型、字符串等类型之外,还有表、函数、文件描述符、 AutoCAD选择集、AutoCAD图元名、VLA对象、函数分页表和 外部函数等数据类型。
CAD二次开发技术(一、二)课件
AutoLISP是1986年随AutoCADv2.18提供的二次开发 工具。它是嵌入AutoCAD内部的一种人工智能语言。使 用 AutoLISP 可调用几乎所有的 AutoCAD 命令。 AutoLISP 语言最典型的应用之一是实现参数化绘图程序设计, 包括尺寸驱动程序和鼠标拖动程序等。另一个典型应 用就是驱动AutoCAD提供PDB模块构成DCL文件,创建自 己的对话框。 AutoLISP 适合于有能力的终端用户完成一些自己 的开发任务。
§1.3 AutoCAD二次开发工具简介
ActiveX Automation 是 微 软 公 司 VBA 推出的一个技术标准,其作用是在 Windows 系统的统一管理下协调不同的 VBA 是 2000 版本后具备 应用程序,允许应用程序之间相互控制、 相互调用。 的 功 能 。 它 通 过 AutoCAD AutoCAD ActiveX 技术提供了一种 ActiveX Automation 接 口 机制,可使编程者通过编程手段从 对 AutoCAD 进 行 编 程 控 制 , AutoCAD 的内部或外部来操纵 AutoCAD 。 ActiveX 是由一系列的对象组成,每一 是一个引入了对象的设计 个对象代表了 AutoCAD 中一个明确的功 环境,为用户提供类似 能,如绘制图形对象、定义块和属性等 Visual Basic语言所拥有的 等 。 ActiveX 所 具 备 的 绝 大 多 数 AutoCAD 功能,均以方法和属性的方式 功能,可以执行并存取 AutoCAD 环 境 的 所 有 资 源 , 被封装在 ActiveX 对象中,只要使用某 种方式,使 ActiveX 对象得以“暴露”, 适合编写中型的数据库类 那么就可以使用各种面向对象编程的语 言对其中的方法、属性进行引用,从而 的CAD软件。 达到对AutoCAD实现编程的目的。
CAD教程第05章
3
本书由vince上传于世界工厂下载频道
三、对象编组——建立选择集(GROUP)
在AutoCAD中,编组是保存的对象集,它随图形一起保存。 编组提供了以组为单位操作图形元素的简单方法,可以通过添加 或删除对象来更改编组的部件。可以使用“对象编组”对话框来 创建编组。输入GROUP命令,打开话框,完成相应操作。常用 在图形较多的情况下。
五、修剪对象(TR)
通过修剪对象,可以使对象精确地终止于由其他对象定义的 边界。剪切边可以是直线、圆弧、圆、多段线、椭圆、样条曲线 等。此命令非常有用,同样注意选择的顺序。
9
本书由vince上传于世界工厂下载频道
§5-5
偏移、镜像与阵列
一、偏移(O)
偏移命令用于创建同心圆、平行线和平行曲线。
二、镜像复制(MI)
镜像命令用于创建对象的镜像图像。
三、阵列复制(AR)
阵列是指创建按指定方式排列的多个对象副本,包括矩形方式 和环形方式。对于矩形阵列,可以控制行和列的数目以及它们之 间的距离;对于环形阵列,可以控制对象副本的数目并决定是否 旋转副本。对于绘制多个定间距的对象,阵列比复制要方便得多。
10
本书由vince上传于世界工厂下载频道
§5-11
夹点编辑
在未执行命令的前提下,对图形对象双击鼠标左键,会出现 入图所示的蓝色方块,称之为夹点(冷夹点),若再对冷夹点点 击鼠标左键,蓝色方块会变成红色的,称为激活夹点(热夹点), 这时可对夹点进行编辑操作 。利用AutoCAD 的夹点功能,可以 对对象进行拉伸、移动、复制、缩放以及镜像等编辑操作 。
13
本书由vince上传于世界工厂下载频道
1.指定距离倒角
执行倒角命令后,选择提示中的D(距离)项,输入第一个和第 二个倒角距离,选择倒角直线即可将对象倒角 。
CAD二次开发技术课件
§1.4 AutoLISP语言概述
三、AutoLISP的程序
AutoLISP程序是由一系列按顺序排列的标准表组成。 每个标准表的第一个元素均为系统或用户定义的函数,其 后的各元素为该函数的参数。如: (setq x 25.0) (setq y 25.0) AutoLISP的程序的书写格式: (+ (* x y ) x) (setq 所有括号必须左右匹配; x 阅读AutoLISP程序时,按从左到右的规则进行; (setq x 25.0)(setq y 25.0)(+ x y) 25.0) 函数必须放在表中的第一个元素位置; 一个表可以占多行,一行也可以写多个表; AutoLISP用“;”作注释; AutoLISP是以扩展名为“.lsp”的ASCII码文本文件的 形式存储。
§1.4 AutoLISP语言概述
一、AutoLISP的数据类型
文件描述符: 打开文件时的返回值,相当于其它语言的文件号, 用于数据的存取。
选择集: 选择集是一个或多个对象的集合。 实体名(图元名): 是AutoCAD系统在绘图过程中赋予所绘对象的一 个数字标号。确切地说,它是指向一个AutoCAD系统 内部数据文件的指针。利用图元名,AutoLISP可以查 找到图形对象的数据库记录,并对其进言概述
一、AutoLISP的数据类型
整数: (-2147483648到+2147483648)
实数: (-1.79769310308到+1.79769310308 )
符号: 包括除“(”、 “)”、 “.”、 “‘”、
“;”以外的任何打印字符。长度没有限制,大小写等 价。 常用术语“符号”来指储存静态数据的一个符号名,如内建式函 数和自定义函数。 字符串:包含在一对双引号内的一组字符
第5章 CAD软件二次开发简介
创建新的设计文档
使用Documents的Add()方法来创建一个新文档并用Document对象 的SaveAs()方法保存: Dim newDoc As AcadDocument Set newDoc = acadApp.Documents.Add newDoc.SaveAs “C:\AcadApps\MyDoc1”
5.2.5图块与图块引用
图块存在于Blocks集合,不出现在ModelSpace,只有插入到 MoleSpace后,才以块引用的形式出现在ModelSpace,这就是块和块引用 的关系,即图块插入到模型空间,形成块引用。
1)、图块的创建:Set blockObj=Document.Blocks.Add(InsertPoint,Name) 参数说明:InsertPoint为块的原点坐标,为3元数组,Name为块的名字,为String类 型。 2)、图块的访问:acadDoc.Blocks.Item (Index或者Name) 或者acadDoc.Blocks (Index或者Name) 参数说明:Index索引号,Name为图块名,二者选一。 3)、图块中图元的创建: 如前面所讲,只是在创建图元时,创建在块空间即可: Dim cirObj As AcadCircle, center(0 to 2) As Double, radius As Double center(0)=10 :center(1)=10 :center(2)=10 Radius=35 Set cirObj = blkObj.AddCircle( center, radius) ’在blkObj块中创建一个圆 从上面的例子中可以看到,在块中创建图元,如在ModelSpace中创建图元是一样的
第一讲 CAD二次开概述-PPT课件
首先根据本单位的产品开发与设计要求,列出总体设 计,零部件设计,结构分析,参数化绘图,设计资料数 据库与标准件图形库等内容。然后依照所选通用CAD软 件能否满足要求的情况,确定软件二次开发的内容。这 些内容也可以抽象地归纳为:数据查询与输入,设计计 算、图形处理三部分。包含上述要求的CAD专用软件, 通常都具有以下特点: 1)集数据查询、计算、绘图于一身 2)用户界面友好,具有较好的人机交互功能 3)简便、实用。。
上一页 下一页 结 束
ADS的全名是AutoCAD Development System,它是 AutoCAD的C语言开发系统,ADS本质上是一组可以用 C语言编写AutoCAD应用程序的源文件和目标库,它直 接利用用户熟悉的各种流行的C语言编译器,将应用程 序编译成可执行的文件在AutoCAD环境下运行,这种 可以在AutoCAD环境中直接运行的可执行文件叫做 ADS应用程序。ADS由于其速度快,又采用结构化的编 程体系,因而很适合于高强度的数据处理,如二次开发 的机械设计CAD、工程分析CAD、建筑结构CAD、土 木工程CAD、化学工程CAD、电气工程CAD等。
上一页 下一页 结 束
(1)正确性:满足功能要求,结果正确; (2)可靠性:运行正常,容错性好; (3)完整性:程序和文档资料齐全; (4)实用性:界面友好,操作简便,实用; (5)可维护性:便于修改、扩充。。AD的二次开发工具主要有: VisualLisp、VBA、ObjectARX和.NET API等。 其中,VisualLisp与VBA较为简单,特别是 VisualLisp,使用方便且开发速度较快,但其功能 相比ObjectARX有所不足,尤其是对面向对象的 功能支持不好。而ObjectARX基于VC平台,在 C++的支持下,其功能非常强大,可以很好地运 用各种面向对象技术,但其缺点是开发速度比较慢, 同时对开发人员的能力要求较高。下面对此作简单 介绍:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
•
ObjectId etID;
•
using (Transaction trans = db.TransactionManager.StartTransaction())
•
{ቤተ መጻሕፍቲ ባይዱ
•
BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId,
OpenMode.ForRead);
•
}
具体代码见
效果
小结
• 理解.NET中创建图形对象的基本机理。 • 掌握直线对象的构造函数。 • 获取块表、块表记录的方法。
2 圆、圆弧、椭圆和样条曲线
• 思路 • 步骤 • 效果 • 小结
思路
• 在.NET中,Circle类用来表示圆。创建圆的构造 函数有两种重载形式。
public Circle() public Circle(Autodesk.AutoCAD.Geometry.Point3d center,
•
Point3d pt2 = new Point3d(900, 500, 0);
•
Line lineEnt = new Line(pt1, pt2);
•
using (Transaction trans = db.TransactionManager.StartTransaction())
•
{
•
BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId,
•
ObjectId etID = AppendEntity(et);
•
return etID; }
•
public static ObjectId AppendEntity(Entity et)
•
{
•
Database db = HostApplicationServices.WorkingDatabase;
步骤
• 启动AutoCAD后,其块表中会自动生成三条 记录,分别表示模型空间和两个布局。
• 为提高代码的重用性,可以把代码重新组织 ,封装成函数。
改进后代码
• public static ObjectId AddLine(Point3d pt1, Point3d pt2)
•
{
•
Line et = new Line(pt1, pt2);
•
mit();
}
•
return etID; }
改进后代码
• [CommandMethod("netLine")]
•
public void CreateLine()
•
{
•
ObjectId etID = ModelSpace.AddLine(new Point3d(20,
10, 0), new Point3d(90, 50, 0));
直线。 • 通过这个程序,我们将要开始了解AutoCAD数据库的
基本结构,掌握各种图形对象的创建方法。
思路
• .NET的操作机理是完全不同于VBA的,但和传统 的ObjectARX却很相似。
• 表。表是数据库的组成单位,一个数据库至少包含 一个表。
• ·记录。记录是表的组成单位,一个表可能包含多条 记录,也可能不包含任何记录。
第5章 创建基本图形对象
本次课内容
❖1 直线 ❖2 圆、圆弧、椭圆和样条曲线 ❖3 多段线、文字、填充和表格 ❖4 面域和三维实体 ❖5 尺寸标注
1 直线
• 说明 • 思路 • 步骤 • 效果 • 小结
说明
• 创建基本图形对象,从创建直线开始。 • 本节程序运行的结果是在AutoCAD 2008中创建两条
Autodesk.AutoCAD.Geometry.Vector3d normal, double radius)
第一种重载形式不接受任何参数, 创建一个圆 心为(0,0,0)、半径为0的圆, 其所在平面法向 矢量为(0,0,i); 第二种重载形式则接受了圆心 、圆所在平面法向矢量和半径三个参数。
思路
具体思路
步骤
• [CommandMethod("FirstLine")]
•
public void TestLine()
•
{
•
Database db = HostApplicationServices.WorkingDatabase;
•
Point3d pt1 = new Point3d(300, 100, 0);
• 通过圆周上任意三点创建圆, 如果用数学计算的方 法求出圆心和半径, 则过于麻烦,方便快捷的方法 是用Geometry命名空间中的CircularArc2d类来处 理。
public CircularArc2d(Autodesk.AutoCAD.Geometry.Point2d startPoint, Autodesk.AutoCAD.Geometry.Point2d point, Autodesk.AutoCAD.Geometry.Point2d endPoint)
•
BlockTableRecord btr =
(BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace],
OpenMode.ForWrite);
•
etID = btr.AppendEntity(et);
•
trans.AddNewlyCreatedDBObject(et, true)
OpenMode.ForRead);
•
BlockTableRecord btr =
(BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace],
OpenMode.ForWrite);
•
btr.AppendEntity(lineEnt);
•
trans.AddNewlyCreatedDBObject(lineEnt, true);
•
mit();
•
}
•
}
步骤
• 在.NET中,有关数据库的操作都是通过事务处理进 行的。
• 在内存中创建直线后,在图形窗口并不能显示出来 ,只有把直线加到图形数据库中,才能看到。
• 事务处理Transaction类的GetObject函数的作用是 获取驻留在AutoCAD数据库中的对象,因为这些对 象是不能直接访问的。