Vla-appendinnerloop

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-appendinnerloop vla-object Loop)


機能
ハッチングに内側のループを追加する。


引数
  • vla-object … Hatch の VLA オブジェクト
  • Loop … 閉じた境界を形成するオブジェクトまたはオブジェクトの配列。この配列は、1つまたは複数のオブジェクトで構成できる。 複数のオブジェクトを使用する場合は、終了点が、正しく作成されたループに一致しなければならない。このループには、次に示すタイプのオブジェクトを入れることができる。

Line、Polyline、Circle、Ellipse、Spline、Region


戻り値
nil


  • memo:
    • AddHatch メソッドを使用してハッチング オブジェクトを作成した後、AppendOuterLoop メソッドで外側のループを追加する。外側のループは閉じたループで、内側のループより先に作成しなければならない。


サンプル

(vl-load-com)
(defun c:Example_AppendInnerLoop()
    ;; この例では、モデル空間での連想ハッチを作成し、ハッチの外側のループを追加する。

    (setq *actdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
    
    ;; ハッチの定義
    (setq patternName "SOLID"
          patternType 0
          bAssociativity :vlax-true)
    
    ;; 連想ハッチオブジェクトを作成
    (setq modelSpace (vla-get-ModelSpace *actdoc*))  
    (setq hatchObj (vla-AddHatch modelSpace patternType patternName bAssociativity acHatchObject))
    
    ;; ハッチのための外側のループを作成
    ;; 円弧と線は閉じたループを作成するために使用
    (setq center     (vlax-3d-point 5 3 0)
          radius     3
          startAngle 0
          endAngle   3.141592)

    (setq arc (vla-AddArc modelSpace center radius startAngle endAngle))
    (setq line (vla-AddLine modelSpace (vla-get-StartPoint arc) (vla-get-EndPoint arc)))
  
    (setq outerLoop (vlax-make-safearray vlax-vbObject '(0 . 1)))
    (vlax-safearray-put-element outerLoop 0 arc)
    (vlax-safearray-put-element outerLoop 1 line)
        
    ;; ハッチングオブジェクトに外側のループを追加
    (vla-AppendOuterLoop hatchObj outerLoop)
    
    ;; ハッチのための内側のループとして円を追加
    (setq center (vlax-3d-point 5 4.5 0)
          radius 1)
    (setq circle (vla-AddCircle modelSpace center radius))

    (setq innerLoop (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (vlax-safearray-put-element innerLoop 0 circle)

    (vla-AppendInnerLoop hatchObj innerLoop)
    
    ;; ハッチを評価して表示
    (vla-Evaluate hatchObj)
    (vla-Regen *actdoc* :vlax-true)
)


関連事項