首页 >> 电解杀菌器

AutoCADR14中ActiveXAutomation开发技术剖析与实例激光加工


2022年06月29日

AutoCADR14中ActiveXAutomation开发技术剖析与实例

AutoCADR14中ActiveXAutomation开发技术剖析与实例 2011年12月09日 来源: 一、引言在AutoCAD R14中,ActiveX Automation技术使我们彻底地摆脱了 AutoLisp等繁杂的编程工作,可以方便地使用VB4,VC,Delphi等多种面 向对象的高级开发语言。ActiveX Automatio n是面向对象的编程接 口,它使用了OLE的Automation技术,AutoCAD被登录为一个其他程序可 以操作的对象,用户可以访问AutoCAD所有的绘图对象和非绘图对象。二、ActiveX Automation对象体系1.对象模型 AutoCAD R14的对象模型如图1所示。最高层对象为AutoCAD.Appl ication,它拥有许多属性和方法,同时它拥有Preferences和Document 对象,Peferences子对象等价于AutoCAD的Pre ferences对话框,包含 了AutoCAD的系统参数设置,Document对象是用户最为关心的对象,因 为图形文件的所有对象集合都包含在Document对象之中。2.图形对象 图形对象分别包含在Blocks、ModelSpace、PaperSpace之中,它 提供了完整的三维处理功能,包括3DFace(表面模型),3DPoly(三维多 义线)、3DSolid(实体模型),这样用户可以轻松地实现三维模型。 3.Plot对象 它控制图形文件的最终输出,包括设置打印纸张(PaperSize)、坐 标原点(Origin)、方向(PlotOrientation)、输出比例(PlotScale)、 输出单位(PlotUnits)、输出角度(Rotation) 等,它同时拥有以下方 法可以设置输出参数及输出目的设备:LoadPC2(加载绘图参数文件)、 PlotExtents(绘图扩展)、PlotLimits(绘图限制)、PlotPreview(预 视)、PlotToDevice(输出到设备)、PlotToFile(输出到文件)、PlotV iew(绘图视图)、PlotWindow(输出到窗口)、PlotWithConfigFile(使 用配置文件输出)、SavePC2(保存配置文件)。4.Utility对象 该对象包含了大部分的交互函数、数据转换函数、辅助计算函数 等,这些函数的参数与AutoLisp的参数基本相同。三、AutoCAD R14的ActiveX Automation开发技术1.获得AutoCAD的Application和Document对象 AutoCAD的ActiveX Automation技术有两个要点:面向对象编程、 使用OLE自动化实现。因此我们如果去编写ActiveX Automation程序, 第一步工作是产生我们需要的OLE对象,Auto CAD.Application和Auto CAD.Application.Document,利用AutoCAD.Application对象管理Au t oCAD应用程序,利用它的属性对象ActiveDocument操纵当前活动文档 。 我们使用VB4实现,VB4对OLE对象的操作函数为CreateObject,Get Object。 Dim objAcad As Object 'AutoCAD.Application Dim objDwgDoc As Object 'Application.ActiveDocument属性 Set objAcad=GetObject(,"AutoCAD.Application") Set objDwgDoc=objAcad.ActiveDocument2.获取和设置系统变量 为了操作方便,有时我们需要获取和修改系统变量,这两个方法为 Document对象所拥有, 它们的语法表达为: objDwgDoc.GetVariable(sys VarString) objDwgDoc.SetVariable(sys VarString,Value) 第一个函数的返回值随着系统变量的不同而变化,例如颜色为整 数,线宽为实数,系统路径为字符串,正交模式为一个开关变量,因此我 们需要定义一个通用类型接收函数的返回值, 在VB中可以使用Varian t类型的变量。参数sysVarString为系统变量名称的字符串,Value的 类型为系统变量对应的类型,其值为用户将要设置的值。获取和设置 系统变量是应用程序开发必须做的工作,下面给出获得当前线宽、颜 色以及设置当前层的实例。 Dim sysVar as Variant Dim strValue as String sysVar=objDwgDoc.GetVariable("PLINEWID") MsgBox"当前线宽:"+Str(sysVar),vbInformation,"ActiveX的Ge tVariable" sysVar=objDwgDoc.GetVariable(CECOLOR) MsgBox"当前颜色:"+Str(sysVar),vbInformation,"ActiveX的Ge tVariable" strValue="0" objDwgDoc.SetVariable("CLAYER",strValue)'设置0层为当前层 3.非图形对象的产生与编辑 AutoCAD R14拥有大量的非绘图对象。以文本风格集合对象TextS tyles为例,它拥有以下方法:Add,Item,Load,以及属性Application,C ount。例如我们要增加一个"宋体"字体的文本风格,首先查找是否已 经有以"宋体"为字体的文本风格,如果不存在,则使用TextStyles.Add ("SongTi"),然后使用TextStyle对象设置它的字体为"宋体"。 Dim objTextCol as Object Dim subItem as Variant Dim bFond as Boolean Set objTextCol=objDwgDoc.TextStyles 'get collection obj For Each SubItem In objAcadTCol If StrComp(varEntry.FontFile,"simsun.ttf",1)=0 Then bFound=true Exit For End IfNext If Not(bFound) then objTextCol.Add("songti") objTextCol.Item(objTextCol.Count-1).FontFile="simsun.ttf" End If 4.绘图对象的生成和编辑 AutoCAD R14提供的ActiveX Automation提供了所有绘图对象,由 ModelSpace对象和Pap erSpace对象提供生成函数AddObj(Parameters ),由非集合绘图对象提供属性操作,2D、3D图形变换,编辑,删除等方 法,这样开发工作变得十分

口腔整形多少钱

22岁矫正o型腿

冰点脱毛会增长吗

如何去除体内脂肪

正颌

相关阅读
最好中国铝业关于中铝物流集团有限公司股权转让触摸开关管道离心泵溧阳手机天线引风机Trp

中国铝业:关于中铝物流集团有限公司股权转让进展公告【铝道】证券代码:...

2024-04-23
最好2019年1月中国自几内亚进口铝土矿量达泵壳风力发电机精密铸造球座橡胶油封Trp

2019年1月中国自几内亚进口铝土矿量达426万吨,创历史新高根据中国海关统计...

2024-04-23
最好镍将在即将来临的电动汽车革命中发挥日益重崇州固定头离心水泵适配线移相触发器Trp

镍将在即将来临的电动汽车革命中发挥日益重要的作用【铝道】气候变化应对...

2024-04-23
最好北美铝生产商5月净船运量增长45船用发电机灌注机连接轴输电设备印刷胶辊Trp

北美铝生产商5月净安陆船运量增运城长4.5%铝业协会周三在缝边机其月度报告...

2024-04-23
最好山西省经信委胡玉亭主任一行赴省电解铝等企超声波设备隔膜阀拉床伸缩节摇臂轴Trp

山西省经信委胡玉亭主任一行赴省电解铝等企业调研EDI装置【铝道】11月12日...

2024-04-23
最好国企推进生态文明责无旁贷传动带管封口机连接阀手机转接头饮料包装机Trp

国企推进生态文明责无旁贷【铝道】 作为全国第二大油田,在通向 美丽中国...

2024-04-23
友情链接