Vla-addpolyfacemesh
- 構文
- (vla-addpolyfacemesh vla-object VerticesList FaceList)
- 機能
- 頂点のリストからポリメッシュを作成する。
- 引数
-
- vla-object … VLAオブジェクト( Block、ModelSpace、PaperSpace)
- VerticesList … ポリメッシュの頂点が作成される 3D WCS 座標の配列。ポリメッシュ オブジェクトを構成するには、少なくとも 4 つの点(12 個の倍精度浮動小数点数型)が必要。配列サイズは、3 の倍数でなければならない。
- FaceList … 各面の頂点の番号を示す整数の配列。面は 4 つの頂点のインデックス値のグループ内で定義されるため、配列サイズは 4 の倍数でなければならない。
- 戻り値
- 新しく作成される PolyfaceMesh のVLAオブジェクト。
- 注意
- ポリメッシュの作成は、矩形メッシュの作成に似ている。ポリメッシュを作成するには、面を構成するすべての頂点の番号と、その頂点の座標を指定する。
- 次の図では、面 1 は頂点 1、5、6、2 で定義している。面 2 は頂点 1、4、3、2 で定義している。面 3 は頂点 1、4、7、5 で定義しています。面 4 は頂点 3、4、7、8 で定義している。
- サンプル
(vl-load-com)
(defun c:Example_AddPolyfaceMesh()
;; ポリフェイスメッシュをモデル空間に作成するサンプル
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
;; ポリフェイスメッシュの定義
(setq vertexList (vlax-make-safearray vlax-vbDouble '(0 . 17)))
(vlax-safearray-fill vertexList '(4 7 0
5 7 0
6 7 0
4 6 0
5 6 0
6 6 1
)
)
;; ポリフェイスメッシュの面定義
(setq FaceList (vlax-make-safearray vlax-vbInteger '(0 . 7)))
(vlax-safearray-fill FaceList '(1
2
5
4
2
3
6
5
)
)
(setq modelSpace (vla-get-ModelSpace doc))
(setq obj (vla-AddPolyfaceMesh modelSpace vertexList FaceList))
;; 作成したポリメッシュをいい感じで表示してみる
(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)
)
関連事項