Vla-offset

提供:GizmoLabs - だいたい CAD LISP なサイト
2015年10月14日 (水) 22:46時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-offset ''vla-object'' ''Distance'') ; 機能 : 既存のオブジェクトから、指定されたオフセット間隔で新しくオブ...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-offset vla-object Distance)


機能
既存のオブジェクトから、指定されたオフセット間隔で新しくオブジェクトを作成する。


引数
  • vla-object … VLAオブジェクト(Arc、Circle、Ellipse、Line、LWPolyline、Polyline、Spline、XLine)
  • Distance … オブジェクトをオフセットする距離。ゼロ以外の正数または負数。値が負の場合、「より小さい」曲線へのオフセットとして解釈される(つまり、円弧の場合、元の曲線の半径よりも Distance 分だけ小さい半径にオフセットされる)。「より小さい」図形として解釈できない場合は、WCS の X、Y、Z 座標値の小さい方向にオフセットされる。


戻り値
nil


  • 注意 : 曲線のオブジェクトにこの操作を実行すると、単一の新しい曲線が作成される(元の曲線とは種類が異なる場合もある)。たとえば、楕円をオフセットするとスプラインになる。これは、実行結果が楕円の方程式に適合するため。場合によっては、必要なオフセットを得るために、いくつかの曲線にする必要がある。


サンプル
(vl-load-com)
(defun c:Example_Offset()
    ;; ポリラインを作成してオフセットするサンプル
    (setq doc (vla-get-ActiveDocument (vlax-get-acad-object)))
  
    ;; ポリライン作成
    (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)
    )

    (setq modelSpace (vla-get-ModelSpace doc))
    (setq plineObj (vla-AddLightWeightPolyline modelSpace points))
    (vla-put-Closed plineObj :vlax-true)
    (vla-ZoomAll acadObj)
            
    (alert "polyline を 0.25 オフセット.")
    
    ;; オフセット
    (setq offsetObj (vla-Offset plineObj 0.25))
    
    (vla-ZoomAll acadObj)
    (alert "オフセット完了。")
)


関連事項