您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 关于VB对AutoCAD二次开发学习笔记
关于VB对AutoCAD二次开发学习笔记□ByOYLS基于VB对AutoCAD的二次开发,主要是通过运用VB编程对AutoCAD软件中的基本绘图操作进行控制,了解AutoCAD软件中的常用命令。在编程过程中我们要借助AutoCAD软件中的“帮助文件”,即“AutoCAD开发人员帮助”文档。一、获取VB对AutoCAD的控制权:先定义变量acadApp,acadDoc:PublicacadAppAsAcadApplicationPublicacadDocAsAcadDocumentFunctionboot_CAD()AsBooleanOnErrorResumeNextSetacadApp=GetObject(,AutoCAD.Application)IfErrThenErr.ClearSetacadApp=CreateObject(AutoCAD.Application)IfErrThenMsgBox您没有安装AutoCAD,或安装版本错误!,vbOKOnly+vbInformation,CAD简易绘图系统boot_CAD=FalseBtOK=FalseExitFunctionEndIfEndIfSetacadDoc=acadApp.ActiveDocumentacadApp.Visible=Trueboot_CAD=TrueEndFunction需要说明的是,我们只有先对CAD获取了控制权以后才能有效地运用VB编程方式进行CAD的基本绘图操作。不然,以后的各种对CAD的操作将无法得以实现。二、基本绘图思路:先了解所绘对象的基本属性,可以说,也正是由于对象的各种属性才构成了一个特性为一而标准的实体。对象的属性特点我们可以事先通过CAD帮助文件查找得出。接下来我们就应了解创建方法,同样,我们也是通过CAD帮助文件进行查找。可以看出,在整个绘图编程过程中我们都离不开CAD帮助文件,所10-2以我们应当对其充分利用。三、介绍直线画法:先了解到直线Line的创建方法:RetVal=object.AddLine(StartPoint,EndPoint)可以看出,创建一直线我们所需的参数有StartPoint,EndPoint也就是开始点与结束点,并且:StartPoint:Variant(three-elementarrayofdoubles);input-onlyThe3DWCScoordinatesspecifyingthelinestartpoint.因此,在定义StartPoint时应为一数组,且为double型,以后多数数组也都为这一类型;EndPoint:Variant(three-elementarrayofdoubles);input-onlyThe3DWCScoordinatesspecifyingthelineendpoint.因此,在定义EndPoint时也应为一数组,且为double型;值得注意的是,这里的StartPoint,EndPoint都是三维坐标形式。在CAD帮助文件中可以查到Line的添加形式为:SetlineObj=ThisDrawing.ModelSpace.AddLine(startPoint,endPoint)通过上面给出的添加形式我们也可以看出它的基本参数。无论是何种对象创建,我们都事先应对该对象的属性或参数作必要的变量定义。在定义变量时,我们最好应定义比较方便我们自己代码识别的形式。下面将以创建直线的方法来说明此过程:先定义两个参数和一个创建对象:DimmStPt(2)AsDouble,mEdPt(2)AsDoubleDimmLineAsAcadLine获取参数数值,这里是以在窗体上添加文本Text的形式给出:mStPt(0)=Val(Text1.Text)mStPt(1)=Val(Text2.Text)mStPt(2)=Val(Text3.Text)mEdPt(0)=Val(Text4.Text)mEdPt(1)=Val(Text5.Text)mEdPt(2)=Val(Text6.Text)SetmLine=acadDoc.ModelSpace.AddLine(mStPt,mEdPt)mLine.UpdateZoomAll这样,我们只要将上述程序代码放在VB一操作事件(如Click())中,就可以实现对直线Line的创建了。创建了一个对象,这里指直线Line,我们同时也获取了对该对象的控制权,通过这,我们可以在以后方便地根据用户自己的要求来设置或改变对象的一些属性值。了解了关于Line的创建方法后,我们也就了解到了CAD绘图操作的一般创建方法和思路。10-3四、介绍曲线(圆弧)画法:通过对直线Line的创建,我们可以用相同的方法对曲线Arc进行创建。同样,我们在CAD的帮助文件中查出关于Arc对象的一些属性。先了解到曲线Arc的创建方法:RetVal=object.AddArc(Center,Radius,StartAngle,EndAngle)可以看出,创建一曲线时我们所需的参数有Center,Radius,StartAngle,EndAngle也就是曲线所对应圆弧中心点,半径,开始角和结束角,并且:Center:Variant(three-elementarrayofdoubles);input-onlyThe3DWCScoordinatesspecifyingthecenterpointofthearc.因此,在定义Center时,要注意它是一点坐标形式,三维的。所以,我们也要为它定义为一double型数组。Radius:Double;input-onlyTheradiusofthearc.因此,在定义Radius时为一double型变量即可。StartAngle,EndAngle:Double;input-onlyThestartandendangles,inradians,definingthearc.Astartanglegreaterthananendangledefinesacounterclockwisearc.同上面一样,StartAngle,EndAngle为double型变量。但值得注意的是,开始角与结束角在编程时要以弧度制,而不是以角度制出现。可外面显示又最好为角度制,这样可以方便读取,因此,在编程时我们要做适当的转换。在CAD帮助文件中可以查到Arc的添加形式为:SetarcObj=ThisDrawing.ModelSpace.AddArc(centerPoint,radius,startAngleInRadian,endAngleInRadian)可以看出,曲线与直线的添加形式基本上一致,只是个中的参数发生变化了。这样,我们就可以编程实现对Arc的创建了:先定义四个参数和一个创建对象:DimmArcAsAcadArcDimmCen(2)AsDoubleDimmRAsDoubleDimmStAgaAsDoubleDimmEnAgAsDouble获取参数数值,这里同样是以在窗体上添加文本Text的形式给出:mCen(0)=Val(Text1.Text)mCen(1)=Val(Text2.Text)mCen(2)=Val(Text3.Text)mR=Val(Text4.Text)mStAg=Val(Text5.Text)*3.1415926/180mEnAg=Val(Text6.Text)*3.1415926/180SetmArc=acadDoc.ModelSpace.AddArc(mCen,mR,mStAg,mEnAg)10-4mArc.UpdateZoomAll同直线一样,我们只要将上述程序代码放在VB一操作事件(如Click())中,就可以实现对曲线Arc的创建了。当然,也获取了对曲线Arc的控制权。在以后的对象(如圆、椭圆等)创建过程中就不将仔细介绍,方法基本一样。五、介绍圆的画法:RetVal=object.AddCircle(Center,Radius)DimcircleObjAsAcadCircleDimcenterPoint(0To2)AsDoubleDimradiusAsDouble'DefinethecirclecenterPoint(0)=0#:centerPoint(1)=0#:centerPoint(2)=0#radius=5#'CreatetheCircleobjectinmodelspaceSetcircleObj=ThisDrawing.ModelSpace.AddCircle(centerPoint,radius)ZoomAll六、介绍椭圆画法:RetVal=object.AddEllipse(Center,MajorAxis,RadiusRatio)'Thisexamplecreatesanellipseinmodelspace.DimellObjAsAcadEllipseDimmajAxis(0To2)AsDoubleDimcenter(0To2)AsDoubleDimradRatioAsDouble'Createanellipseinmodelspacecenter(0)=5#:center(1)=5#:center(2)=0#majAxis(0)=10:majAxis(1)=20#:majAxis(2)=0#radRatio=0.3SetellObj=ThisDrawing.ModelSpace.AddEllipse(center,majAxis,radRatio)ZoomAll七、常用属性设置:(一)颜色设置:DimcolorAsAcadAcCmColorSetcolor=_AcadApplication.GetInterfaceObject(AutoCAD.AcCmColor.16)Callcolor.SetRGB(80,100,244)10-5circleObj.TrueColor=colorZoomAll(二)线型设置:线型是重复的划、点和空格组成的图案。复杂线型则是重复符号的图案。要使用线型,必须先将其加载到图形中。加载之前,LIN库文件中必须存在该线型的定义。'线型设置DimmEntryAsAcadLineTypeDimmFoundAsBooleanmFound=FalseForEachmEntryInacadDoc.LinetypesIfStrComp(mEntry.Name,CONTINUOUS,1)=0ThenmFound=TrueExitForEndIfNextIfNot(mFound)ThenacadDoc.Linetypes.LoadCONTINUOUS,acadiso.linmLine.Linetype=CONTINUOUS(三)背景设置:DimmPreferencesAsAcadPreferencesDimmCurrGraphicsWinModelBackgrndColorAsOLE_COLOR'背景设置SetmPreferences=acadDoc.Application.PreferencesmCurrGraphicsWinModelBackgrndColor=mPreferences.Display.GraphicsWinModelBackgrndColormPreferences.Display.GraphicsWinModelBackgrndColor=vbRed(四)缩放设置:DimmScalefactorAsDoubleDimmScaletypeAsInteger'比例大小设置mScalefactor=Val(Text1.Text)mScaletype=acZoomScaledAbsoluteacadDoc.Application.ZoomScaledmScalefactor,mScaletype(五)文字设置:10-6RetVal=object.AddText(TextString,InsertionPoint,Height)'Thisexamplecreates
本文标题:关于VB对AutoCAD二次开发学习笔记
链接地址:https://www.777doc.com/doc-4112916 .html