这个很简单的。尤其是用vb(vba)
我写了一个demo,不知道怎么传附件啊。
用vb做一个独立的工程,首先
1 在vb工程中引用autocad的库
2 定义autocad对象
Private acadApp As AcadApplication
Private acadDoc As AcadDocument
3 写打开关闭autocad的函数,以下是我写的
'--------------------------------------------------------------
'连接Cad
'-------------------------------------------------------------
Private Function AcadConnect() As Boolean
Dim flag As Boolean
On Error Resume Next
Set acadApp = GetObject(, "AutoCAD.Application")
flag = True
If Err Then
Err.Clear
Set acadApp = CreateObject("AutoCAD.Application")
flag = True
If Err Then
flag = False
MsgBox "不能运行AutoCAD,请检查是否安装!", vbOKCancel, "警告!"
Exit Function
End If
End If
AcadConnect = flag
Set acadDoc = acadApp.ActiveDocument
acadDoc.Close False
End Function
'-----------------------------------------
'释放内存空间
'-----------------------------------------
Private Function AcadQuit()
On Error Resume Next
acadApp.Quit
Set acadApp = Nothing
End Function
4 写了一个画直线的函数,画圆把circle调用一下就好了。
例如acadDoc.ModelSpace.AddCircle(看下说明把参数一给就好)
我先定义了一个结构体
Private Type point
X As Double
Y As Double
End Type
Private Function AddLine(s As point, e As point, Optional ByVal typeName As String = "")
Dim startPoint(0 To 2) As Double
Dim endPoint(0 To 2) As Double
'color
Dim color As AcadAcCmColor
Set color = acadApp.GetInterfaceObject("AutoCAD.AcCmColor.16")
'gray
Call color.SetRGB(128, 128, 128)
If typeName <> "" Then LoadLineType
Dim lineObj As AcadLine
startPoint(0) = s.X
startPoint(1) = s.Y
startPoint(2) = 0
endPoint(0) = e.X
endPoint(1) = e.Y
endPoint(2) = 0
If typeName <> "" Then LoadLineType typeName
Set lineObj = acadDoc.ModelSpace.AddLine(startPoint, endPoint)
If typeName <> "" Then lineObj.lineType = typeName
lineObj.Lineweight = acLnWt050
End Function
温馨提示:答案为网友推荐,仅供参考