AppendOuterLoop メソッド(ActiveX)

ハッチングに外側ループを追加します。

サポートされているプラットフォーム: Windows のみ

構文と要素

VBA:

object.AppendOuterLoop loop
object

タイプ: Hatch

このメソッドが適用されるオブジェクト。

Loop

アクセス: 入力のみ

タイプ: バリアント型(ArcCircleEllipseLinePolylineRegionSpline オブジェクトの配列)

閉じた境界を形成するオブジェクトまたはオブジェクトの配列。この配列は、1つまたは複数のオブジェクトで構成できます。複数のオブジェクトを使用する場合は、オブジェクトの端点が一致しないと、ループは適切に作成されません。

戻り値(RetVal)

戻り値はありません。

注意

AddHatch メソッドを使用して Hatch オブジェクトを作成した後、外側のループを追加します。外側のループは閉じたループで、内側のループより先に作成しなければなりません。有効な外側のループを作成したら、AppendInnerLoop メソッドを使用して 1 回に 1 つずつ内側のループを追加します。

ハッチング境界を定義したら、Evaluate メソッドを使用して境界用のハッチング線分または塗り潰しを計算します。次に、Regen メソッドを使用してハッチングの表示を更新します。

VBA:

Sub Example_AppendOuterLoop()
    ' This example creates an associative hatch in model space, and then creates an outer loop for the hatch.
    
    Dim hatchObj As AcadHatch
    Dim patternName As String
    Dim PatternType As Long
    Dim bAssociativity As Boolean
    
    ' Define the hatch
    patternName = "ANSI31"
    PatternType = 0
    bAssociativity = True
    
    ' Create the associative Hatch object
    Set hatchObj = ThisDrawing.ModelSpace.AddHatch(PatternType, patternName, bAssociativity)
    
    ' Create the outer loop for the hatch.
    ' An arc and a line are used to create a closed loop.
    Dim outerLoop(0 To 1) As AcadEntity
    Dim center(0 To 2) As Double
    Dim radius As Double
    Dim startAngle As Double
    Dim endAngle As Double
    center(0) = 5: center(1) = 3: center(2) = 0
    radius = 1
    startAngle = 0
    endAngle = 3.141592
    Set outerLoop(0) = ThisDrawing.ModelSpace.AddArc(center, radius, startAngle, endAngle)
    Set outerLoop(1) = ThisDrawing.ModelSpace.AddLine(outerLoop(0).startPoint, outerLoop(0).endPoint)
        
    ' Append the outer loop to the hatch object, and display the hatch
    hatchObj.AppendOuterLoop (outerLoop)
    hatchObj.Evaluate
    ZoomAll
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_AppendOuterLoop()
    ;; This example creates an associative hatch in model space, and
    ;; then creates an outer loop for the hatch.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; Define the hatch
    (setq patternName "ANSI31"
          patternType 0
          bAssociativity :vlax-true)
    
    ;; Create the associative Hatch object
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq hatchObj (vla-AddHatch modelSpace patternType patternName bAssociativity acHatchObject))
    
    ;; Create the outer loop for the hatch.
    ;; An arc and a line are used to create a closed loop.
    (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)
        
    ;; Append the outer loop to the hatch object, and display the hatch
    (vla-AppendOuterLoop hatchObj outerLoop)
    (vla-Evaluate hatchObj)
    (vla-ZoomAll acadObj)
)