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度回転したべ") )
関連事項