「Vlax-tmatrix」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成: ; 構文 : (vlax-tmatrix ''list'') ; 機能 : VLA メソッドで使用される 4 x 4 変換マトリックスに適した表現を返す。 ; 引数 :* list : それぞれ…)
 
編集の要約なし
 
(同じ利用者による、間の2版が非表示)
1行目: 1行目:
{{AutoLISP}}
; 構文
; 構文
: (vlax-tmatrix ''list'')
: (vlax-tmatrix ''list'')
5行目: 6行目:
; 機能
; 機能
: VLA メソッドで使用される 4 x 4 変換マトリックスに適した表現を返す。
: VLA メソッドで使用される 4 x 4 変換マトリックスに適した表現を返す。


; 引数
; 引数
:* list : それぞれに 4 つの数値(変換マトリックスの要素)が含まれるリストのリスト。
:* list : それぞれに 4 つの数値(変換マトリックスの要素)が含まれるリストのリスト。


; 戻り値
; 戻り値
: 4×4 の変換マトリックスを表すセーフ配列タイプのバリアント型。
: 4×4 の変換マトリックスを表すセーフ配列タイプのバリアント型。




; サンプル
; サンプル
: 変換マトリックスを定義し、変数 tmatrix に値を割り当てる。
<pre class="brush:autolisp;">
; 変換マトリックスを定義し、変数 tmatrix に値を割り当てる。
  (setq tmatrix (vlax-tmatrix '((1 1 1 0) (1 2 3 0) (2 3 4 5) (2 9 8 3))))
  (setq tmatrix (vlax-tmatrix '((1 1 1 0) (1 2 3 0) (2 3 4 5) (2 9 8 3))))
  '''#<variant 8197 ...>'''
  #<variant 8197 ...>
: vlax-safearray->list 関数を使用して、tmatrix の値をリスト形式で表示する。
; vlax-safearray->list 関数を使用して、tmatrix の値をリスト形式で表示する。
  (vlax-safearray->list (vlax-variant-value tmatrix))
  (vlax-safearray->list (vlax-variant-value tmatrix))
  ((1.0 1.0 1.0 0.0) (1.0 2.0 3.0 0.0) (2.0 3.0 4.0 5.0) (2.0 9.0 8.0 3.0))
  ((1.0 1.0 1.0 0.0) (1.0 2.0 3.0 0.0) (2.0 3.0 4.0 5.0) (2.0 9.0 8.0 3.0))
: 次のコードは、線分を作成し、次に変換マトリックスを使用して 90 度回転する。
; 次のコードは、線分を作成し、次に変換マトリックスを使用して 90 度回転する。
  (defun Example_TransformBy () ; / lineObj startPt endPt matList transMat)  
  (defun Example_TransformBy () ; / lineObj startPt endPt matList transMat)  
   (vl-load-com) ; ActiveX サポートをロード
   (vl-load-com) ; ActiveX サポートをロード
48行目: 53行目:
   (princ)
   (princ)
   )
   )
</pre>


-----
* [[vlax-get-acad-object]]
* [[vlax-safearray-list]]
* [[vlax-3d-point]]


[[Category:AutoLISP]]
[[Category:AutoLISP]]

2022年9月3日 (土) 04:32時点における最新版

構文
(vlax-tmatrix list)


機能
VLA メソッドで使用される 4 x 4 変換マトリックスに適した表現を返す。


引数
  • list : それぞれに 4 つの数値(変換マトリックスの要素)が含まれるリストのリスト。


戻り値
4×4 の変換マトリックスを表すセーフ配列タイプのバリアント型。


サンプル
; 変換マトリックスを定義し、変数 tmatrix に値を割り当てる。
 (setq tmatrix (vlax-tmatrix '((1 1 1 0) (1 2 3 0) (2 3 4 5) (2 9 8 3))))
 #<variant 8197 ...>
; vlax-safearray->list 関数を使用して、tmatrix の値をリスト形式で表示する。
 (vlax-safearray->list (vlax-variant-value tmatrix))
 ((1.0 1.0 1.0 0.0) (1.0 2.0 3.0 0.0) (2.0 3.0 4.0 5.0) (2.0 9.0 8.0 3.0))
; 次のコードは、線分を作成し、次に変換マトリックスを使用して 90 度回転する。
 (defun Example_TransformBy () ; / lineObj startPt endPt matList transMat) 
   (vl-load-com) ; ActiveX サポートをロード
   (setq acadObject (vlax-get-acad-object))
   (setq acadDocument (vla-get-ActiveDocument acadObject))
   (setq mSpace (vla-get-ModelSpace acadDocument))
 
   ;; 線分を作成
   (setq startPt (getpoint "始点を指定"))
   (setq endPt (vlax-3d-point (getpoint startPt "終点を指定")))
   (setq lineObj (vla-addline mSpace (vlax-3d-point startPt) endPt))
 
   ;;; 点(0,0,0)を中心に, オブジェクトを 90 度回転する
   ;;; 変換マトリックスで変数 transMat を初期化します.
   ;;; まず, それぞれが 4 つの数値(変換マトリックスの要素)を含む
   ;;; リストのリストを作成します.
   (setq matList (list '(0 -1 0 0) '(1 0 0 0) '(0 0 1 0) '(0 0 0 1)))
 
   ;;; vlax-tmatrix を使用して, リストをバリアント型に変換します.
   (setq transmat (vlax-tmatrix matList))
 
   ;;;  定義された変換マトリックスを使用して線分を変換します.
   (vla-transformby lineObj transMat)
   (vla-zoomall acadObject)
  
   (princ "線分は変換されました ")
   (princ)
  )