【发布时间】:2019-03-22 05:48:22
【问题描述】:
我已经编写了一个在 AutoCAD VBA 中工作的代码(在帮助下),但我想对其进行调整,以便可以从 Excel 运行它并将其集成到更长的宏中。我试过用ACAD.ActiveDocument 替换ThisDrawing,但这不起作用。这是我的完整 AutoCAD VBA 代码:
Public Sub Section()
Dim SolidObject As Acad3DSolid
Dim NewRegionObject As AcadRegion
Dim PlaneOrigin As Variant
Dim PlaneXaxisPoint As Variant
Dim PlaneYaxisPoint As Variant
Dim PickedPoint As Variant
On Error Resume Next
With ThisDrawing.Utility
.GetEntity SolidObject, PickedPoint, vbCr & "Select solid to cut."
If Err Then
MsgBox "Selected solid must be a 3DSolid"
Exit Sub
End If
PlaneOrigin = .GetPoint(PickedPoint, vbCr & "Select point to define origin.")
PlaneXaxisPoint = .GetPoint(PickedPoint, vbCr & "Select point to define x-axis.")
PlaneYaxisPoint = .GetPoint(PickedPoint, vbCr & "Select point to define y-axis.")
Dim minPoint As Variant, maxPoint As Variant
Set NewRegionObject = SolidObject.SectionSolid(PlaneOrigin, PlaneXaxisPoint, PlaneYaxisPoint)
With NewRegionObject
MsgBox "Area: " & .Area
MsgBox "Perimeter: " & .Perimeter
.GetBoundingBox minPoint, maxPoint
MsgBox "Min Point coordinates: (" & minPoint(0) & "," & minPoint(1) & "," & minPoint(2) & ")"
MsgBox "Max Point coordinates: (" & maxPoint(0) & "," & maxPoint(1) & "," & maxPoint(2) & ")"
End With
End With
End Sub
【问题讨论】:
-
如果您调用的对象在 excel 中可用,您应该查看 MSDN 文档。例如 SolidObject 和 NewRegionObject
-
首先,您是否将 AutoCad 库加载到您的 VBA 项目中?
-
是的,我加载了它