Creates an extruded solid given the profile and an extrusion path.
Supported platforms: AutoCAD for Windows only; not supported in AutoCAD LT for Windows
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.
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) )