VB编程的一个问题

本人语言学,对计算机不懂
选修课有题目,用VBA(VB)我已经搞不清楚了,2个之一,
用这个在AUTOCAD上面编个程序,要能在CAD上运行后自动画个圆。
希望会的朋友帮忙,期末考试,对我这个计算机文盲太难了!多谢!!!!

这个很简单的。尤其是用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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-01-04
没用过AUTOCAD,帮不了你
相似回答