Vla-setbulge

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年2月1日 (日) 22:04時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-setbulge ''vla-object'' ''Index'' ''Value'') ; 機能 : 指定されたインデックスで、ポリラインのふくらみを設定す...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-setbulge vla-object Index Value)


機能
指定されたインデックスで、ポリラインのふくらみを設定する。


引数
  • vla-object … VLAオブジェクト(LWPolyline、Polyline)
  • Index … ふくらみ値を設定する頂点のインデックス位置。最初の頂点はインデックス 0。
  • Value … 指定されたインデックスでの頂点のふくらみ値


戻り値
nil
MEMO
  • Polyline: このメソッドは、ポリラインの Type プロパティが acSimplePoly でない場合は失敗する。
  • ふくらみとは、ポリラインの頂点リスト内の選択された頂点と次の頂点との間の円弧の中心角の 1/4 の正接で、負のふくらみ値は、円弧上の選択された頂点から時計回りの方向に次の頂点があることを示す。ふくらみ値 0 は直線セグメント、1 は半円を示す。


サンプル
(vl-load-com)
(defun c:Example_SetBulge()
    ;; モデルにポリライン作って、指定セグメントに膨らみを付けるサンプル
    (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))

    ;; ポリラインの2D 点定義
    (setq points (vlax-make-safearray vlax-vbDouble '(0 . 11)))
    (vlax-safearray-fill points '(1 1
                                  1 2
                                  2 2
                                  3 2
                                  4 4
                                  4 1
                                 )
    )   
        
    ;; LWポリラインをモデルに作成
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq plineObj (vla-AddLightWeightPolyline modelSpace points))
    (vla-ZoomAll (vlax-get-acad-object))

    ;; 膨らみを付ける3番目のセグメントを指定
    (setq currentBulge (vla-GetBulge plineObj 3))
    (alert (strcat "第三のセグメントの膨らみは、 " (rtos (vla-GetBulge plineObj 3) 2)))
    
    ;; 膨らみを変更
    (vla-SetBulge plineObj 3 -0.5)
    (vla-Update plineObj)
    (alert (strcat "第三のセグメントの膨らみは、 " (rtos (vla-GetBulge plineObj 3) 2) " になりました"))
)

関連事項