Vla-addrevolvedsolid
- 構文
- (vla-addrevolvedsolid vla-object Profile AxisPoint AxisDir Angle)
- 機能
- 軸の周囲のリージョンを指定して、回転ソリッドを作成する。
- 引数
-
- vla-object … VLAオブジェクト(Block、ModelSpace、PaperSpace)
- Profile … 外形線には、Region オブジェクトのみが使用できる。
- AxisPoint … 回転軸の始点を指定する 3D WCS 座標。
- AxisDir… 回転軸の方向を指定する 3D ベクトル。
- Angle … 回転角度をラジアンで表したもの。完全に 1 回転させる場合は 6.28 と入力する。
- 戻り値
- 新しく作成される回転ソリッドの 3DSolid の VLA オブジェクト。
- 注意
- 回転するリージョンは閉じていなければならない。ブロック内に含まれるオブジェクトを回転させることはできない。回転できるのは、一度に 1 つのオブジェクトのみ。
- 正の回転方向は、右手の法則にしたがって決定される。
- サンプル
(vl-load-com)
(defun c:Example_AddRevolvedSolid()
;; 軸の周りに回転領域からソリッドを作成する。
;; 領域は円弧と線分から作成される。
(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 (vla-AddRegion modelSpace curves))
(vla-ZoomAll acadObj)
(alert "ソリッド生成のためにリージョンを展開。")
;; 回転軸を規定する
(setq rotAxisPt (vlax-3d-point 7 2.5 0)
rotAxisDir (vlax-3d-point 11 1 3)
rotAngle 6.28)
;; ソリッドを作成
(setq solidObj (vla-AddRevolvedSolid modelSpace (vlax-safearray-get-element (vlax-variant-value regionObj) 0) rotAxisPt rotAxisDir rotAngle))
;; ビューポートの視線方向を変更する
(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)
(alert "ソリッドを作成")
)
関連事項