Creates an extruded solid given the profile, height, and taper angle.
Supported platforms: Windows only
VBA:
RetVal = object.AddExtrudedSolid(Profile, Height, TaperAngle)
Type: Block, ModelSpace, PaperSpace
The objects this method applies to.
Access: Input-only
Type: Region
A profile can only be a Region object.
Access: Input-only
Type: Double
The height of the extrusion along the Z axis of the object's coordinate system. If you enter a positive number, AutoCAD extrudes the object along the positive Z axis. If you enter a negative number, AutoCAD extrudes the object along the negative Z axis.
Access: Input-only
Type: Double
The taper angle of the extrusion must be provided in radians. The range of the taper angle is from -90 to +90 degrees.
Positive angles taper in from the base, negative angles taper out. The default angle, 0, extrudes a 2D object perpendicular to its plane.
You can extrude only 2D planar regions.
Tapered extrusions are possible only with loops that are continuous at the vertices. A large taper angle or long extrusion height can cause the object, or portions of the object, to intersect with itself before reaching the extrusion height. AutoCAD does not allow an extrusion when the resulting solid intersects with itself.
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
Visual 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) )