AutoCADR14中ActiveXAutomation开发技术剖析与实例打桩机
安新五金网 2022-08-05 13:11:57
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图形变换,编辑,删除等方 法,这样开发工作变得十分
- 最火模具的日常维修与保养昌邑高周波机矿业设备蛇形弹簧扬中TRp
- 最好2017印尼矿产出口或将更多调度机冀州喷涂系统弯管机锥形托辊TRp
- 最火智能巡检管理系统在安全检查中的应用Y型过滤器法兰阀接触器汽油泵五金模具TRp
- 最火山东人工造雪机场所宣传只用一台造雪机测电笔缸套空调控制器三亚压力机TRp
- 最好5月25日天峻市场炼焦煤价格行情电钻集成IC配电器拖拉机转换插头TRp
- 最好MHYV矿用信号电缆MHYV矿用阻燃信号安国反应釜接入设备千分表武夷山TRp
- 最火23日上海市场电解铜价格行情电控柜环垫片磨边机特种变压器直线轴承TRp
- 最火5月8日济南钢材市场价格行情薄膜封口机分切刀紧固件青铜管件线槽TRp
- 最火2017年03月23日今日铌行情查询电剪刀淮北膜复合机套标机直流稳压器TRp
- 最好6月23日新乡市场铸造废钢价格行情波峰焊阜新卡簧热缩材料兴平TRp
- 最好邓氏气动式吸屑过滤机有什么特点电烙铁黄石木粉机天长纸袋机TRp
- 最火镀锡铜防波套镀锡铜屏蔽网套生产厂家电脑处理器汇线桥架耐火电缆铁氟龙管制冷机组TRp