AddExtrudedSolid 方法 (ActiveX)
在给定轮廓、高度和锥度角度的情况下创建拉伸实体。 支持的平台:仅限 AutoCAD for Windows;AutoCAD LT for Windows 不支持 签名VBA: RetVal = object.AddExtrudedSolid(Profile, Height, TaperAngle) 言论只能拉伸 2D 平面区域。 锥形拉伸只能使用在顶点处连续的环。较大的锥度角或较长的拉伸高度会导致物体或物体的某些部分在达到拉伸高度之前与自身相交。当生成的实体与自身相交时,AutoCAD 不允许拉伸。 例子VBA: Sub Example_AddExtrudedSolid()
' This example extrudes a solid from a region.
' 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)
' Define the extrusion
Dim height As Double
Dim taperAngle As Double
height = 3
taperAngle = 0
' Create the solid
Dim solidObj As Acad3DSolid
Set solidObj = ThisDrawing.ModelSpace.AddExtrudedSolid(regionObj(0), height, taperAngle)
' 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
End Sub
可视化 LISP: (vl-load-com)
(defun c:Example_AddExtrudedSolid()
;; This example extrudes a solid from a region.
;; 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))
;; Define the extrusion
(setq height 3
taperAngle 0)
;; Create the solid
(setq solidObj (vla-AddExtrudedSolid modelSpace (vlax-safearray-get-element (vlax-variant-value regionObj) 0) height taperAngle))
;; 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)
)
|
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-10-27 20:16
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.