Vla-get-ndensity
- 構文
- (vla-get-ndensity vla-object )
- 機能
- ポリメッシュの N 方向における滑らかなサーフェス密度を取得する。
- 引数
-
- vla-object … PolygonMesh のVLAオブジェクト
- 戻り値
- サーフェス密度の整数(既定値 = 6 )
- MEMO : N サーフェス密度は、タイプが acQuadSurfaceMesh、acCubicSurfaceMesh、acBezierSurfaceMeshの PolygonMesh オブジェクトの N 方向の頂点の数。
- このプロパティの初期値は、システム変数 SURFV の値 + 1 から導き出される。つまり、SURFV の現在の値が 6 の場合、サーフェス フィット操作を行った後のメッシュの NDensity は 7 になる。
- メッシュにサーフェス フィット操作を実行するためには、Type プロパティを使用してメッシュ タイプを変更する必要がある。
- サンプル
(vl-load-com)
(defun c:Example_ndensity()
;; 4 x 4 のポリゴンメッシュを作成してN 方向における
;; 滑らかなサーフェス密度を変更するサンプル
(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
'(2 2 1
2.5 2 0
5 2 0
5.5 2 1
2 4 0.5
2.5 4 0
5 4 0
5.5 4 0.5
2 6 0.5
2.5 6 0
5 6 0
5.5 6 0.5
2 8 1
2.5 8 0
5 8 0
5.5 8 1
)
)
(setq mSize 4
nSize 4)
;; ポリゴンメッシュを作成
(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)
;; メッシュタイプを変更 (NDensity は acSimpleMesh じゃだめ。)
(vla-put-Type meshObj acQuadSurfaceMesh)
(vla-Update meshObj)
(vla-Regen doc acActiveViewport)
;; NDensity を取得
(setq currDensity (vla-get-NDensity meshObj))
(alert (strcat "メッシュの NDensity は" (itoa currDensity)))
(vla-put-NDensity meshObj 12)
(alert (strcat "メッシュの NDensity は" (itoa currDensity)))
関連事項