Vla-add3dmesh

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年6月15日 (月) 17:30時点におけるGizmon (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-add3dmesh vla-object M N PointsMatrix)


機能
M および N 方向の点の数と、M および N 方向の点の座標を指定して、自由形状の 3D メッシュを作成する。


引数
  • vla-object … VLAオブジェクト
  • M … 点配列の次元。M および N 方向のメッシュのサイズは、2 から 256 までに制限される。   
  • N … 点配列の次元。M および N 方向のメッシュのサイズは、2 から 256 までに制限される。   
  • PointsMatrix … 3D WCS 座標の M x N 配列。頂点は、座標(0,0)から開始しする。M 行に含まれる各頂点の座標位置を指定してから、M + 1 行の頂点を指定する。


戻り値
3D メッシュのVLAオブジェクト


注意
  • 各頂点間の距離は自由。
  • PolygonMesh は、常に M 方向と N 方向の両方に開いている。作成したメッシュは、PolygonMesh オブジェクトの MClose プロパティと NClose プロパティを使用すれば、閉じることができる。
  • PolygonMesh は、常に単純なメッシュとして作成される。作成後、Type プロパティを使用してメッシュをスムージングすることができる。


サンプル
(vl-load-com)
(defun c:Example_Add3DMesh()
    ;; この例では、モデル空間内の 4x4 polygonmesh を作成
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; ポイントのマトリックスを作成
    (setq points (vlax-make-safearray vlax-vbDouble '(0 . 47)))  
    (vlax-safearray-fill 
        points 
        '(0 0 0    2 0 1   4 0 0    6 0 1
          0 2 0    2 2 1   4 2 0    6 2 1
          0 4 0    2 4 1   4 4 0    6 4 0
          0 6 0    2 6 1   4 6 0    6 6 0
        )
    )
    (setq mSize 4
	         nSize 4)
    
    ;; 3Dmesh をモデルに追加
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq meshObj (vla-Add3DMesh modelSpace mSize nSize points))
    
    ;; より良い polygonmesh を見るためにビューポートの視線方向を変更する。
    (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)
)

関連事項