AddRevolvedSolid 方法 (ActiveX)
在给定围绕轴的区域的情况下创建旋转实体。 支持的平台:仅限 Windows 签名VBA: RetVal = object.AddRevolvedSolid(Profile, AxisPoint, AxisDir, Angle) 言论要旋转的区域必须关闭。不能旋转块中包含的对象。一次只能旋转一个对象。 右手定则确定旋转的正方向。 例子VBA: Sub Example_AddRevolvedSolid()
' This example creates a solid from a region
' rotated around an axis.
' The region is created from an arc and a line.
Dim curves(0 To 1) As AcadEntity
' Define the arc
Dim centerPoint(0 To 2) As Double
Dim radius As Double
Dim startAngle As Double
Dim endAngle As Double
centerPoint(0) = 5#: centerPoint(1) = 3#: centerPoint(2) = 0#
radius = 2#
startAngle = 0
endAngle = 3.141592
Set curves(0) = ThisDrawing.ModelSpace.AddArc(centerPoint, radius, startAngle, endAngle)
' Define the line
Set curves(1) = ThisDrawing.ModelSpace.AddLine(curves(0).startPoint, curves(0).endPoint)
' Create the region
Dim regionObj As Variant
regionObj = ThisDrawing.ModelSpace.AddRegion(curves)
ZoomAll
MsgBox "Revolve the region to create the solid.", , "AddRevolvedSolid Example"
' Define the rotation axis
Dim axisPt(0 To 2) As Double
Dim axisDir(0 To 2) As Double
Dim angle As Double
axisPt(0) = 7: axisPt(1) = 2.5: axisPt(2) = 0
axisDir(0) = 11: axisDir(1) = 1: axisDir(2) = 3
angle = 6.28
' Create the solid
Dim solidObj As Acad3DSolid
Set solidObj = ThisDrawing.ModelSpace.AddRevolvedSolid(regionObj(0), axisPt, axisDir, angle)
ZoomAll
' Change the viewing direction of the viewport
Dim NewDirection(0 To 2) As Double
NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1
ThisDrawing.ActiveViewport.direction = NewDirection
ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
ZoomAll
MsgBox "Solid created.", , "AddRevolvedSolid Example"
End Sub
可视化 LISP: (vl-load-com)
(defun c:Example_AddRevolvedSolid()
;; This example creates a solid from a region
;; rotated around an axis.
;; The region is created from an arc and a line.
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
(setq modelSpace (vla-get-ModelSpace doc))
;; Define the arc
(setq centerPoint (vlax-3d-point 5 3 0)
radius 2
startAngle 0
endAngle 3.141592)
(setq arc (vla-AddArc modelSpace centerPoint radius startAngle endAngle))
;; Define the line
(setq line (vla-AddLine modelSpace (vla-get-StartPoint arc) (vla-get-EndPoint arc)))
(setq curves (vlax-make-safearray vlax-vbObject '(0 . 1)))
(vlax-safearray-put-element curves 0 arc)
(vlax-safearray-put-element curves 1 line)
;; Create the region
(setq regionObj (vla-AddRegion modelSpace curves))
(vla-ZoomAll acadObj)
(alert "Revolve the region to create the solid.")
;; Define the rotation axis
(setq rotAxisPt (vlax-3d-point 7 2.5 0)
rotAxisDir (vlax-3d-point 11 1 3)
rotAngle 6.28)
;; Create the solid
(setq solidObj (vla-AddRevolvedSolid modelSpace (vlax-safearray-get-element (vlax-variant-value regionObj) 0) rotAxisPt rotAxisDir rotAngle))
;; Change the viewing direction of the viewport
(setq NewDirection (vlax-3d-point -1 -1 1))
(setq activeViewport (vla-get-ActiveViewport doc))
(vla-put-Direction activeViewport NewDirection)
(vla-put-ActiveViewport doc activeViewport)
(vla-ZoomAll acadObj)
(alert "Solid created.")
)
|
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-10-29 07:06
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.