Vla-addextrudedsolidalongpath
- 構文
- (vla-addextrudedsolidalongpath vla-object Profile Path)
- 機能
- 外形線と押し出しのパスを指定して、押し出しソリッドを作成する。
- 引数
-
- vla-object … VLAオブジェクト(Block、ModelSpace、PaperSpace)
- Profile … 外形線の、Region オブジェクト
- Path … 押出パス。パスには、Polyline、Circle、Ellipse、Spline、または Arc オブジェクトのみが使用できる。
- 戻り値
- 押し出し 3DSolid オブジェクト。
- 2D 平面のリージョンを押し出すことしかできない。パスが外形線と同じ平面上にあったり、パスに高い曲率のリージョンがあってはならない。
- サンプル
(vl-load-com)
(defun c:Example_AddExtrudedSolidAlongPath()
;; 押し出しソリッドの作成サンプル
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
(setq modelSpace (vla-get-ModelSpace doc))
;; 円弧を生成
(setq centerPoint (vlax-3d-point 5 3 0)
radius 2
startAngle 0
endAngle 3.141592)
(setq arc (vla-AddArc modelSpace centerPoint radius startAngle endAngle))
;; 線分を生成
(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)
;; リージョンを生成
;(setq regionObj (vlax-make-safearray vlax-vbObject '(0 . 0)))
(setq regionObj (vla-AddRegion modelSpace curves))
;; 押出パスを生成 (スプライン)
(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))
;; ソリッドを生成
(setq solidObj (vla-AddExtrudedSolidAlongPath modelSpace (vlax-safearray-get-element (vlax-variant-value regionObj) 0) splineObj))
(vla-ZoomAll acadObj)
)
関連事項