Vla-rotate3d
- 構文
- (vla-rotate3d vla-object Point1 Point2 RotationAngle)
- 機能
- 3 次元の軸を中心にして、オブジェクトを回転する。Point1 と Point2 によって、回転軸の線分を定義。
- 引数
-
- vla-object … VLAオブジェクト(すべての図形オブジェクト、AttributeReference、Dimension )
- Point1… 軸の 1 番目の点を指定する 3D WCS 座標。
- Point2… 軸の 2 番目の点を指定する 3D WCS 座標。
- RotationAngle … 選択した軸を中心にしてオブジェクトを回転する角度の値(ラジアン)。
- 戻り値
- nil
- サンプル
(vl-load-com)
(defun c:Example_Rotate3D()
;; ボックス作って軸を元に回転するサンプル
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
;; ボックスの下準備
(setq center (vlax-3d-point 5 5 0)
boxLength 5
boxWidth 7
boxHeight 10)
;; ボックス生成
(setq modelSpace (vla-get-ModelSpace doc))
(setq boxObj (vla-AddBox modelSpace center boxLength boxWidth boxHeight))
;; ビューポートを調整
(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)
;; 回転の軸になる2点の下準備
(setq rotatePt1 (vlax-3d-point -3 4 0)
rotatePt2 (vlax-3d-point -3 -4 0)
rotateAngle (/ (* 30 3.141592) 180))
;; 親切なサンプルなんで軸を書いとくマジ感謝しろよな
(setq axisLine (vla-AddLine modelSpace rotatePt1 rotatePt2))
(vla-Update axisLine)
(alert "30度回転するよ")
;; 回転
(vla-Rotate3D boxObj rotatePt1 rotatePt2 rotateAngle)
(vla-Regen doc :vlax-true)
(alert "30度回転したべ")
)
関連事項