关于VB对AutoCAD二次开发学习笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于VB对AutoCAD二次开发学习笔记
□By OYLS
基于VB对AutoCAD的二次开发,主要是通过运用VB编程对AutoCAD软件中的基本绘图操作进行控制,了解AutoCAD软件中的常用命令。在编程过程中我们要借助AutoCAD软件中的“帮助文件”,即“AutoCAD开发人员帮助”文档。
一、获取VB对AutoCAD的控制权:
先定义变量acadApp,acadDoc:
Public acadApp As AcadApplication
Public acadDoc As AcadDocument
Function boot_CAD() As Boolean
On Error Resume Next
Set acadApp = GetObject(, "AutoCAD.Application")
If Err Then
Err.Clear
Set acadApp = CreateObject("AutoCAD.Application")
If Err Then
MsgBox "您没有安装AutoCAD ,或安装版本错误!", vbOKOnly + vbInformation, "CAD简易绘图系统"
boot_CAD = False
BtOK = False
Exit Function
End If
End If
Set acadDoc = acadApp.ActiveDocument
acadApp.Visible = True
boot_CAD = True
End Function
需要说明的是,我们只有先对CAD获取了控制权以后才能有效地运用VB编程
方式进行CAD的基本绘图操作。不然,以后的各种对CAD的操作将无法得以实现。
二、基本绘图思路:
先了解所绘对象的基本属性,可以说,也正是由于对象的各种属性才构成了一个特性为一而标准的实体。对象的属性特点我们可以事先通过CAD帮助文件查找得出。接下来我们就应了解创建方法,同样,我们也是通过CAD帮助文件进行查找。可以看出,在整个绘图编程过程中我们都离不开CAD帮助文件,所以我们应当对其充分利用。
三、介绍直线画法:
先了解到直线Line的创建方法:
RetVal = object.AddLine(StartPoint, EndPoint)
可以看出,创建一直线我们所需的参数有StartPoint,EndPoint也就是开始点与结束点,并且:
StartPoint:Variant (three-element array of doubles); input-only The 3D WCS coordinates specifying the line start point.
因此,在定义StartPoint时应为一数组,且为double型,以后多数数组也都为这一类型;
EndPoint:Variant (three-element array of doubles); input-only The 3D WCS coordinates specifying the line endpoint.
因此,在定义EndPoint时也应为一数组,且为double型;值得注意的是,这里的StartPoint,EndPoint都是三维坐标形式。
在CAD帮助文件中可以查到Line的添加形式为:
Set lineObj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)
通过上面给出的添加形式我们也可以看出它的基本参数。
无论是何种对象创建,我们都事先应对该对象的属性或参数作必要的变量定义。在定义变量时,我们最好应定义比较方便我们自己代码识别的形式。下面将以创建直线的方法来说明此过程:
先定义两个参数和一个创建对象:
Dim mStPt(2) As Double, mEdPt(2) As Double
Dim mLine As AcadLine
获取参数数值,这里是以在窗体上添加文本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)
Set mLine = acadDoc.ModelSpace.AddLine(mStPt, mEdPt)
mLine.Update
ZoomAll
这样,我们只要将上述程序代码放在VB一操作事件(如Click())中,就可以实现对直线Line的创建了。创建了一个对象,这里指直线Line,我们同时也获取了对该对象的控制权,通过这,我们可以在以后方便地根据用户自己的要求来设置或改变对象的一些属性值。了解了关于Line的创建方法后,我们也就了解到了CAD绘图操作的一般创建方法和思路。
四、介绍曲线(圆弧)画法:
通过对直线Line的创建,我们可以用相同的方法对曲线Arc进行创建。
同样,我们在CAD的帮助文件中查出关于Arc对象的一些属性。
先了解到曲线Arc的创建方法:
RetVal = object.AddArc(Center, Radius, StartAngle, EndAngle)
可以看出,创建一曲线时我们所需的参数有Center, Radius, StartAngle, EndAngle 也就是曲线所对应圆弧中心点,半径,开始角和结束角,并且:
Center:Variant (three-element array of doubles); input-only The 3D WCS coordinates specifying the center point of the arc.
因此,在定义Center时,要注意它是一点坐标形式,三维的。所以,我们也要为它定义为一double型数组。
Radius:Double; input-only The radius of the arc.
因此,在定义Radius时为一double型变量即可。
StartAngle, EndAngle: Double; input-only The start and end angles, in radians, defining the arc. A start angle greater than an end angle defines a counterclockwise arc.
同上面一样,StartAngle, EndAngle为double型变量。但值得注意的是,开始角与结束角在编程时要以弧度制,而不是以角度制出现。可外面显示又最好为角度制,这样可以方便读取,因此,在编程时我们要做适当的转换。
在CAD帮助文件中可以查到Arc的添加形式为:
Set arcObj = ThisDrawing.ModelSpace.AddArc(centerPoint, radius, startAngleInRadian, endAngleInRadian)
可以看出,曲线与直线的添加形式基本上一致,只是个中的参数发生变化了。这样,我们就可以编程实现对Arc的创建了:
先定义四个参数和一个创建对象:
Dim mArc As AcadArc
Dim mCen(2) As Double