Vla-put-mdensity

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年1月28日 (木) 23:28時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-put-mdensity ''vla-object'' ''MDensity'' ) ; 機能 : ポリメッシュの M 方向におけるサーフェス密度を指定する。...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-put-mdensity vla-object MDensity )


機能
ポリメッシュの M 方向におけるサーフェス密度を指定する。


引数
  • vla-object … PolygonMesh の VLAオブジェクト
  • MDensity … M 方向におけるサーフェス密度。2~256 の整数
戻り値
nil


  • M サーフェス密度は、次のタイプのポリメッシュ オブジェクトの M 方向の頂点の数。acQuadSurfaceMesh、acCubicSurfaceMesh、acBezierSurfaceMesh。
  • このプロパティの初期値は、システム変数 SURFU の値 + 1 から導き出される。つまり、SURFU の現在の値が 6 の場合、サーフェス フィット操作を行った後のメッシュの MDensity は 7 になる。メッシュにサーフェス フィット操作を実行するためには、Type プロパティを使用してメッシュ タイプを変更する。


サンプル
(vl-load-com)
(defun c:Example_MDensity()
    ;; 4 X 4 のポリメッシュを作成して、
    ;; ポリメッシュの種類を変更し、M方向の点を表示するサンプル。
    (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)
    
    ;; 3Dメッシュを作成
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq meshObj (vla-Add3DMesh modelSpace mSize nSize points))
    
    ;; ポリメッシュを見やすくするためビューポートの視線方向を変更。
    (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)
    
    ;; メッシュのタイプを変更  (MDensity は acSimpleMesh 型に対して有効ではない。)
    (vla-put-Type meshObj acQuadSurfaceMesh)
    (vla-Update meshObj)
    (vla-Regen doc acActiveViewport)

    ;; メッシュの MDensity を表示
    (setq currDensity (vla-get-MDensity meshObj))
    (alert (strcat "メッシュの MDensity は " (itoa currDensity)))
)

関連事項