AddExtrudedSolidAlongPath Method (ActiveX)

Creates an extruded solid given the profile and an extrusion path.

Supported platforms: Windows only

Signature

VBA:

RetVal = object.AddExtrudedSolidAlongPath(Profile, Path)
object

Type: Block, ModelSpace, PaperSpace

The objects this method applies to.

Profile

Access: Input-only

Type: Region

A profile can only be a Region object.

Path

Access: Input-only

Type: Arc, Circle, Ellipse, Polyline, Spline

The path can only be a Polyline, Circle, Ellipse, Spline, or Arc object.

Return Value (RetVal)

Type: 3DSolid

The extruded 3DSolid object.

Remarks

You can extrude only 2D planar regions.

The path should not lie on the same plane as the profile, nor should it have areas of high curvature.

Examples

VBA:

Sub Example_AddExtrudedSolidAlongPath()
    ' This example extrudes a solid from a region
    ' along a path defined by a spline.
    ' 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 path (spline object)
    Dim splineObj As AcadSpline
    Dim startTan(0 To 2) As Double
    Dim endTan(0 To 2) As Double
    Dim fitPoints(0 To 8) As Double
    
    ' Define the Spline Object
    startTan(0) = 10: startTan(1) = 10: startTan(2) = 10
    endTan(0) = 10: endTan(1) = 10: endTan(2) = 10
    fitPoints(0) = 0: fitPoints(1) = 10: fitPoints(2) = 10
    fitPoints(0) = 10: fitPoints(1) = 10: fitPoints(2) = 10
    fitPoints(0) = 15: fitPoints(1) = 10: fitPoints(2) = 10
    Set splineObj = ThisDrawing.ModelSpace.AddSpline(fitPoints, startTan, endTan)
    
    ' Create the solid
    Dim solidObj As Acad3DSolid
    Set solidObj = ThisDrawing.ModelSpace.AddExtrudedSolidAlongPath(regionObj(0), splineObj)
    ZoomAll
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_AddExtrudedSolidAlongPath()
    ;; This example extrudes a solid from a region
    ;; along a path defined by a spline.
    ;; 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 (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (setq regionObj (vla-AddRegion modelSpace curves))
    
    ;; Define the extrusion path (spline object)
    (setq startTan (vlax-3d-point 10 10 10)
          endTan (vlax-3d-point 10 10 10))
    (setq fitPoints (vlax-make-safearray vlax-vbDouble '(0 . 8)))
    (vlax-safearray-fill fitPoints '(0 10 10
				                                 10 10 10
				                                 15 10 10
				                                )
    )
    (setq splineObj (vla-AddSpline modelSpace fitPoints startTan endTan))
    
    ;; Create the solid
    (setq solidObj (vla-AddExtrudedSolidAlongPath modelSpace (vlax-safearray-get-element (vlax-variant-value regionObj) 0) splineObj))
 
    (vla-ZoomAll acadObj)
)