版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章 电气工程中AutoCAD绘图软件 应用与二次开发,4.1 AutoCAD软件简介 AutoCAD是美国AUTODESK公司1982年推出的辅助绘图软件。 AutoCAD具有二维和三维绘图功能,还有专用编程语言Autolisp为用户提供二次开发的方便。 AutoCAD的作图功能很强。 AutoCAD可用于IBM/PC系列及其兼容微机,并支持100多种外部输入、输出设备。 AutoCAD文件可与其他软件包、数据库及主要计算机辅助设计系统交换。AutoCAD支持基本图形交换规范(IGES),大部分系统的图形均可转到AutoCAD上。 AutoCAD具有开放式的体系结构,便于二次开发,采用菜单
2、提示。 全世界已有2000多所大学和教育机构以AutoCAD进行教学。很多专业设计师,包括建筑、工程师、科研人员以至大公司(如波音飞机公司)都在使用AutoCAD。,4.1.1 AutoCAD运行环境 以AutoCAD2000版2002版为例。 硬件环境: 主机: IBM-PC系列及其兼容机 输入输出设备:显示器、键盘、鼠标、数字化仪、绘图仪及打印机。硬盘、软盘及光盘驱动器。 软件环境:windos98/2000/NT/XP等。,4.1.2 AutoCAD使用要点 1) 基本概念术语 坐标(coordinates):绘图画面中基本图素点位置描述,一般使用直角坐标系。(0,0)表示图的左下角,与
3、屏幕物理坐标不同; 绘图单位:可根据绘图要求选英制(英时)或公制(厘米、毫米)。 基本图素:点、线、圆、弧、矩形、多段线、椭圆等; 图块:将多个基本图素实体归并在一起形成一个新的图形对象,称为图块,图块可被调用或插入到图形的任何位置。 绘图界限:绘图坐标中的矩形周界; 分辨率(Resolution):显示器的精确程度,由显示器的x*y(点数)表示; 图形文件:指名为*.DWG的图形映象文件及*.DXF图形交换文件。 图层:将构成图形的图元素按某种特征类型分为不同的组合,各组合可同时显示,也可部分组合显示,这种组合称为层。如一个城市平面图可用一层表示出地形、主要街道,另一层表示建筑、名胜古迹、再
4、一层表示电力网络等。,2) 操作过程 (1) 启动: (2) 交互式图形编辑:使用命令来创建、显示、修改和绘制图形,命令前进行对象选择; 绘图常用命令: POINT 画点SOLID实心多边形 LINE 画线TRACE画线宽 PLINE 多画线SKETCH徒手画线 RECTANGLE 矩形TEXT书写单行文字 POLYGON 画正多边形MTEXT书写多行文字 CIRCLE 画圆BLOCK定义块 ARC弧WBLOCK适应 文件 ELLIPSE画椭圆INSERT插入块 DONUT画圆环XPOLDE分解块 MLINE画平行线BHATCH图案填充, 显示控制命令: ZOOM缩放视口 PAN平移视图 RE
5、DAW和REGEN重绘图形 编辑命令: ERASE 删除对象 STRETCH移动拉伸 MOVE 移动COPY复制对象 ROTATE 旋转MIRROR镜象对象 SCALE 缩放ARRAY对象阵列 设置命令: LAYER 设置图层 PLOTSTYLE打印样式 COLOR 设置颜色 PLOT图形输出 LINETYPE 设备当前线型LAYOUT创建布局 LINEWEIGHT 线宽, 对象查询命令 LIST 查询对象DIST DBLIST所有对象AREA面积和周长 ID查点坐标MASSPROP查物理特征 (3) 命令输入:从命令窗口经键盘键入命令或经屏幕菜单由数字化仪、鼠标按纽输入。 (4) 数据输入:
6、绘图点以绝对坐标、相对坐标或极坐标方式输入。 (5) 绘图仪绘图,4.1.3 AutoCAD的主要特点 (1)具有完善的图形绘制功能。 (2)具有强大的图形编辑功能。 (3)便于用户二次开发。AutoCAD提供了多种开发工具,如AutoLISP及VisualLISP,objectARX2000,VBA,VB,ActiveX等,使用户能方便地进行二次开发。 (4)提供了多种接口文件,AutoCAD提供了多种接口文件(如DXF,SCR,IGES等)。便于AutoCAD与高级语言之间进行信息交换。 (5)允许用户定制AutoCAD系统参数和标准文件, (6)具有良好的用户界面和高级辅助功能 (7)能
7、连接外部数据库,4.1.4 AutoCAD主要功能 1) 交互作图功能 (1)提供一组图元实体:点、直线、圆、弧、文本字符串、多义线、图块等。 (2)图形编辑功能:含有删除、移动、复制、镜像、阵列、缩放 、旋转、分解等。 2) 辅助功能 (1)找图元特殊位置(如直线端点、中等); (2)画阴影线、标注尺寸、分层、查询; (3)显示控制有缩放、平移、浏览、重画、放弃; (4)用户支授、命令文件、图形交换文件; (5)菜单命令。 3) 高级扩展功能 高级扩展功能有画折线、阴影线、图案填充、尺寸标注、草图、幻灯片及三维绘图等。,4.1.5 AutoCAD与高级语言的接口 1) 图形交换文件方式 DX
8、F是一种图形文件交换格式。其中ASCII码格式,严密、易读,得到广泛应用。 (1) DXF文件作用 (2) DXF文件结构 标题段(Header):55个变量,表明图形总信息; 类段(Classes) 表段(Tables):含线型、图层、颜色、字体、视图表; 块段(blacks):组成各个图块的实体; 实体段(Entilies) 对象段(objects) 图形预览段(thumbnailimge) (3) 组码:DXF文件由段组成,每段又由许多组码和组值组成。 2) 用程序生成和读取图形交换文件 1生成图形交换文件,用高级语言(FOR、C、B等)编辑图形交换文件用以在AutoCAD中生成图形;
9、2读图形交换文件,使用或修改已有图形。,4.2 AutoCAD软件的二次开发 4.2.1 二次开发的意义及特点 软件的二次开发,是指在现有通用AutoCAD软件基础上,为增强和拓展在某一专业领域的应用范围,提高和完善软件性能,更有针对性地适应用户要求所作的软件开发工作。 1) 二次开发的意义 AutoCAD类软件功能不能满足电气工程用户的要求。必须对某些功能作修改和补充。 2) 二次开发的特点 (1)继承与提高。 (2)专业性强 (3)开发相对简单。 (4)实用性好。,4.2.2 二次开发内容及功能要求 1) 二次开发的内容 (1)完善人机交互系统、界面菜单、图标,对活框等设计。 (2)数据库
10、、图形系统与高级语言的接口设计。 (3)程序化图形的自动生成模块设计,如自动生成阻抗图、保护配合图等。 (4)工程字符和汉字标注功能。 (5)国家标准与规范数据库建立。 2) 二次开发思路 以交互图形系统AutoCAD为主要支撑,以高级语言为系统连接及数据转换的枢纽,开发集设计、图形绘制、数据管理及分析优化计算于一体的电气CAD软件系统。,3) 二次开发软件应具备的功能 (1)交互式图形处理功能。可交互式生成和编辑图形。 (2)设计计算功能。由用户给出的原始数据,自动完成计算及查表,最后输出结果。 (3)设备材料的选择与校核。 (4)数据及图文资料管理。 4) 开发要求 (1)结果正确 (2)
11、操作方便 (3)人机交互界面友好,4.3 基于Autolisp的AutoCAD二次开发 AutoLISP语言是一种嵌入在AutoCAD内部的LISP编程语言,用它可以对AutoCAD进行二次开发。 4.3.1 Autolisp语言简介 1) AutoLISP语言特点 1AutoLISP语言是一种非编译、解释性的语言。 2AutoLISP语言一切成分都是以函数的形式给出的。执行AutoLISP程序就是执行一些函数,并可再调用其它函数。 3AutoLISP语言的主要控制结构是采用递归方式。 4AutoLISP把数据和程序统一表达为表结构。 2) AutoLISP数据类型 AutoLISP数据类型主
12、要有9种:整型数、字型数、字符串、符号和变量、表、文件描述符、实体名、选择集、VLA对象。,3) AutoLISP程序结构 采用 “前缀表示法”,即把运算符放在表的第一个元素的位置,后面为其它参数。如:X=50.0和X=(A+B)* C在AutoLISP中分别写成下述形式: (step x 50.0)和(step x (+AB)C) AutoLISP源程序是一种文本文件,可以用任何一种文本编辑器进行编辑。 4) Visual LISP工具 Visual LISP(VLISP)是Autodesk公司为了增强AutoLISP程序开发能力,而设计的工具软件,内嵌于AutoCAD2000中 (1) V
13、isual LISP提供的主要功能如下: 本文编辑器。 书写格式管理器。 提供变量和表达式查看功能。 提供语法检查功能。 文件编辑功能可提高程序的运行速度。 编译器能将AutoLISP源程序打包成一个简单的模块。 提供DCL预览功能。 可方便地管理多个AutoLISP程序。 源程序调试器,支持单步调试和跳转调试。 (2) 在VisualLISP中运行AutoLISP程序步骤,4.3.2 AutoCAD用户菜单生成,4.3.2 AutoCAD用户菜单生成 AutoCAD系统提供了六种类型的菜单,分别是:屏幕菜单、下拉菜单、图标菜单、光标菜单、图形输入板菜单、按钮和辅助菜单。 1) 标准菜单文件结
14、构 总体结构是树型的逻辑结构,如图4.1所示。 第一层为菜单段,菜单段以下为子菜单,子菜单以下还可以设置子菜单或菜单项,菜单项作为这棵树的终端点即树叶。 图4.1 菜单的树状结构 (1) 菜单段 (2) 子菜单 (3) 菜单项 (4) 菜单项语法,表4.1 AutoCAD菜单项语法,(5) 菜单项标题 2) 菜单开发的一般方法 扩展名为“.MNX”的菜单文件,是“.MNU”类型菜单源文件经编译后的二进制的目标文件。 (1) 在ACAD.MNU中增加新内容 (2) 建立用户菜单 编译用户菜单文件,格式如下: Command: MENU 建立有关标准件下拉菜单实例 新增内容中的trans、gene
15、r、break、react分别为绘制变压器、发电机、断路口、电抗器的LISP函数。最后一行是调用图标菜单。,4.4 用VBA对AUTOCAD 进行二次开发,4.4.1 AutoCad的对象模型(AutoCad Object Model) 4.4.2 创建新的下拉菜单和工具栏 (1)加载菜单组:用MenuGroups集合的Load方法来加载。 (2)在菜单条上插入菜单:用InsertMenuInMenuBar 或 InsertInMenuBar方法。 (3)从菜单条上删除菜单:用RemoveMenuFromMenuBar或RemoveFromMenuBar方法。 (4)建立新菜单:用Add方法在
16、PopupMenus集合中添加一个新的PopupMenu对象。 (5)在菜单中增加新的菜单项:用AddMenuItem方法。使用AddMenuItem方法需要输入四项参数:索引、标签、标记、宏。,4.4.3 实现电气元件与数据库的链接 1) 激活应用程序级事件: 2) 激活文档级事件程序: 3) 双击事件过程的编程: 在AutoCad中双击图块,会产生一个双击事件 Private Sub AcadDocument_BeginDoubleClick(ByVal PickPoint As Variant) Dim ssetobj As AcadSelectionSet Set ssetobj =
17、ThisDrawing.SelectionSets.Add(setobj1) ssetobj.SelectAtPoint PickPoint chandle = ssetobj.Item(0).Handle 得到实体的句柄 ssetobj.Delete Set NewDb = DBEngine.Workspaces(0).OpenDatabase(mdbname) 打开数据库 打开元件的句柄和类型代号表 Set newRst = NewDb.OpenRecordset(元件的句柄和类型代号, dbOpenTable) 在表中找到被双击图元的记录,得到它的元件类型代号,newRst.Index
18、= 句柄 If Not newRst.BOF Then newRst.MoveFirst newRst.Seek =, chandle If Not newRst.NoMatch Then strNumber = newRst.Fields(类型代号) Select Case strNumber 根据元件的类型代号,打开相应元件的数据输入窗体 Case “2” frmTwoTransformer.Show 显示双绕组变压器的参数输入窗体,输入数据,按确定按钮后,就可用ADO或DAO这些数据库访问对象的方法,把窗体上的数据,增加到相应的数据表中去。 Case “3” End Select End
19、 if End Sub,4.4.4 运行程序后的结果,运行这个程序后,在AutoCAD菜单的最后面,将新增加的一个“电气元件”的菜单,如下图所示:,图4.2 电气元件菜单,同时也增加了一个新的工具栏:,图4.3 电气元件工具栏,单击“电力元件”菜单中的一个菜单项或工具栏中的任一按钮,就可以在AutoCAD画出相应的电力元件。,图4.4 二相变压器数据输入表,4.5 用VB对AutoCAD进行二次开发 用VBA开发AutoCAD必须在AutoCAD环境下,不能编译成可直接在windows下运行的执行文件。 用VB对AutoCAD进行二次开发,是应用AutoCAD Activex技术,通过VB编程
20、来控制和操作AutoCAD。 4.5.1 AutoCAD对象的使用 1) AutoCAD对象分类 1图形对象,如直线(lines)、球体(sphere)、文本(Text)和尺寸(Dimension)等。 2样式设置对象,如线型(linetypes)和尺寸标注样式(Dimstyles)等。 3组织结构,如图层(Layers)、组(Groups)和块(Blocks)等。 4图形显示对象,如视图(View)和视口(wiewport)等。 5AutoCAD应用程序(Application)和文档(Document)对象。,图4.5 AutoCAD对象模型,2) AutoCAD对象的引用 (1) Aut
21、oCAD的应用程序对象的引用 DimAcadApp As AcadApplication SetAcadApp=Getobject(“AutoCAD. Application”) (2) 应用程序下级对象的引用 在模型空间创建一个园对象,并使用Set语句将圆对象引用赋给变量Circleobj。 Dim Circleojb As Acadcircle Set circleobj=AcadApp.ActiveDocument.modelspac.Addcircle(centerpoint, radius) 3) AutoCAD对象的释放 set AcadApp=createobject(“Auto
22、CAD.Application”) set Acaddoc=AcadApp.ActiveDoument 引用结束释放语句为: set AcadApp=Nothing set Acaddoc=Nothing,4.5.2 连接AutoCAD 将VB与AutoCAD连接,需要以下两步: (1)在编写代码前,在VB编程环境中引用AutoCAD对象 (2) 创建AutoCAD对象,启动运行AutoCAD。方法是首先在全局模块module中定义AutoCAD对象变量AcadApplication对象,语句为Public AcadApp As AcadApplicatio 4.5.3 使用图形文形 1) 创
23、建新图形文件 Private sub commandl_click() AcadApp.Documents.Add Endsvb 2) 打开已有图形文件 用Documents对象的open方法,打开一个已有的图形文件,代码如下:,private sub commandl_click( ) dim myfilenamt As string myfilename=c:acad2000samplecampus.dng If Dir(myfileName) Then AcadApp.Dcouments.open myfileName else MsgBox(文件 & myfilename 不存在) E
24、nd if End SUB 3) 保存图形文件 使用活动文档对象ActiveDocument的Save方法,以当前文件名和路径保存图形文件。 语句为: AcadApp.Active Document.Save 用下面代码,以指定文件名和路径保存图形文件 AcadApp. ActiveDocument.SaveAsc:Usermydng.dwg,4) 关闭图形文件 用close方法,以当前文件名和路径保存修改的图形文件。 AcadApp.ActiveDocument.close(False)带(False)时不保存修改,关闭文件。 4.5.4 图形缩放 1极限放大:用语句Zoom Extents
25、或AcadApp.zoomExtents 2显示全图:用语句ZoomA11或AcadApp.zoomAll 3居中显示:语法为object.zoomcenter.center,magnify magnify为缩放倍率 4比例缩放:语法为object.zoomscaled.scale,scaletyke scale为缩放比例,4.5.5 窗口界面控制 (1)以下语句设置AutoCAD窗口显示为最大、最小和一般状态。 AcadApp.windowstate = acmax AcadApp.windowstate = acmin AcadApp.windowstate = acnorm (2)以下语
26、句设置AutoCAD绘图窗口显示为最大最小、一般状态。 AcadApp.ActiveDocument.windowstate = acmax AcadApp.ActiveDocument.windowstate =acmin AcadApp.ActiveDocument.windowstate =acnorm (3)以下语句从VB程序窗口切换到AutoCAD界面 AppActiveAcadApp.caption (4)退出AutoCAD: private sub commandl_click( ) AcadApp.Quit Set AcadApp=nothing End sub,4.5.6 用
27、VB编程实现AutoCAD绘图 1) 绘实体 (1)画点:例句为 Location(0)=10#: location(1)=10#: location(2)=0#. Set pointobj=AcadApp.ActiveDocument.modelspace.Addpoint(Location) (2)画直线:要给出起点和终点坐标,用Addline方法,例句为: Set lineobj=AcadApp.ActiveDocument.modelspace.Addline(startpoint,endpoint) (3)画圆:用Addcircle方法,例句为: centerpoint(0)=20#
28、: centerpoint(1)=30#: centerpoint(2)=0#: radius=5# set circleobj=AcadApp.ActiveDocument.Modelspace.Addcircle(centerpoint,radius) (4)画弧:用AddArc方法 RetVal=object.AddArc(center,Radius, startangle, Endangle) (5)画椭圆:用AddEllipse方法 Retval=object. AddEllipse(center,majorAxis, RadiusRatio),2) 编辑实体 (1) 复制实体对象
29、copy复制:Retval=objectcopy mirror镜像:Retval=objectmirror(point 1,point 2) Arraypolar圆形阵列:Retval=objectArraypolar(Numberofobjects, Angletotill, conterpoint) ArrayRectangular矩形阵列:Retval=objectArrayRectangular(Number of Rons, Number of coluns,-Dist Betwee Rows, DistBetweecedumns, distbetweenlevels) (2) 移动
30、实体对象 Object.move point 1, point 2 (3)旋转实体对象 object.Rotate Basepoint, Rotation Angle (4) 缩放实体对象 object. Scale Entity Base point, saleFactor (5) 删除对象 (1)object. Erase 删除选择区域内所有对象 (2)object.Delete 删除指定对象,3) 使用块对象 (1)创建块:用Add方法创建块,先给基准点insertionpnt(02)赋值,以下语句创建块。 Set blockobj=AcadApp.ActiveDocnment.Blocks.Add(insetionPnt,circleBlock) Set circleobj=blockobj.Addcircle(center,radius) 向
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 事业编计算机岗面试考点梳理 含答案含解析
- 2026 综合岗面试真题汇编 事业编 含答案含解析
- 2026计算机岗事业单位面试高频题 题型分析 含答案
- 2026 年人教版初中物理八年级上册单元基础测试卷
- 安全违章违纪警示讲解
- 2026下半年初中信息技术教资面试算法题库
- 2026年中国邮政集团有限公司甘肃省分公司人员招聘考试题库及答案详解
- 2026年广州国资发展控股有限公司人员招聘参考题库及答案详解
- 帕金森病诊疗专家共识(2026版)
- 2026年巨化集团有限公司人员招聘笔试参考试题及答案详解
- 交通运输行业春季策略:中东变局下航运船舶展望海峡受限类比弹簧压缩重视释放后全板块弹性-
- 铝方通吊顶施工常见问题处理方案
- 钛铁矿开发项目可行性研究报告
- 儿童暴发性心肌炎诊治核心2026
- 2026高处安装、维护、拆除作业题库及答案
- 物业中控外包合同
- AQ 3026-2026《化工企业设备检修作业安全规范》解读课件
- 2026年上海市闵行区高三二模英语卷(含答案及解析)
- 经营服务费合同范本
- 早期维新思想课件
- 外墙外保温系统应用技术标准(岩棉) DG-TJ08-2126-2023
评论
0/150
提交评论