ISOPenWidth プロパティ(ActiveX)

ISO ハッチング パターンの ISO ペン幅を指定します。

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

構文と要素

VBA:

object.ISOPenWidth
object

タイプ: Hatch

このプロパティが適用されるオブジェクト。

プロパティの値

読み込み専用: いいえ

タイプ: acISOPenWidth 列挙型

注意

最初の 10 個の値は 1/100 ミリメートル単位のペン幅を表します。

acPenWidthUnk の値は未知(非標準)のペン幅を示します。ハッチングを調べて acPenWidthUnk という値を受け取った場合、PatternScale プロパティを使用して非標準値を取得します。どのハッチングのペン幅を acPenWidthUnk に設定しても効果はありません。

このプロパティは、PatternScale プロパティと関係を共有します。ISO ハッチング パターンを使って作業している場合、標準の尺度値は PatternScale プロパティまたはこのプロパティを通じて入力できます。非標準のペン幅は PatternScale プロパティによってのみ入力できます。

VBA:

Sub Example_ISOPenWidth()
    ' This example creates an associative hatch in model space.
    ' The ISOPenWidth of the hatch pattern is then returned and changed.
    
    Dim hatchObj As AcadHatch
    Dim patternName As String, PatternType As Long
    Dim bAssociativity As Boolean
    Dim outerLoop(0 To 1) As Object
    Dim center(0 To 2) As Double
    Dim radius As Double, startAngle As Double, endAngle As Double
    Dim innerLoop1(0) As Object, innerLoop2(0) As Object
    Dim PatternScale As Double

    ' 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.
    center(0) = 5: center(1) = 3: center(2) = 0
    radius = 3:  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
    hatchObj.AppendOuterLoop (outerLoop)
    
    ' Append the first circle as one inner loop
    center(0) = 5: center(1) = 4.5: center(2) = 0
    radius = 1
    
    Set innerLoop1(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
    hatchObj.AppendInnerLoop (innerLoop1)
    
    ' Append the second circle as the other inner loop
    radius = 0.5
    Set innerLoop2(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
    hatchObj.AppendInnerLoop (innerLoop2)
    
    ' Evaluate and display the hatch
    hatchObj.Evaluate
    ThisDrawing.Regen True
    
    ' Find the ISO pen width of the hatch pattern
    MsgBox "The ISO pen width of the hatch pattern is: " & hatchObj.ISOPenWidth, vbInformation

    ' Change the ISO pen width of the hatch pattern
    hatchObj.ISOPenWidth = acPenWidth050
    hatchObj.Evaluate
    ThisDrawing.Regen True
    
    ' Display new pen width for this hatch
    If hatchObj.ISOPenWidth = acPenWidthUnk Then
        ' Non-Standard pen widths
        MsgBox "The ISO pen width of the hatch pattern is now: " & hatchObj.PatternScale, vbInformation
    Else
        ' Standard pen widths
        MsgBox "The ISO pen width of the hatch pattern is now: " & hatchObj.ISOPenWidth, vbInformation
    End If

End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_ISOPenWidth()
    ;; This example creates an associative hatch in model space.
    ;; The ISOPenWidth of the hatch pattern is then returned and changed.
    (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
    (vla-AppendOuterLoop hatchObj outerLoop)
    
    ;; Append the first circle as one inner loop
    (setq center (vlax-3d-point 5 4.5 0)
          radius 1)
    (setq circle1 (vla-AddCircle modelSpace center radius))

    (setq innerLoop1 (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (vlax-safearray-put-element innerLoop1 0 circle1)

    (vla-AppendInnerLoop hatchObj innerLoop1)
    
    ;; Append the second circle as the other inner loop
    (setq radius 0.5)
    (setq innerLoop2 (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (setq circle2 (vla-AddCircle modelSpace center radius))
    (vlax-safearray-put-element innerLoop2 0 circle2)
    (vla-AppendInnerLoop hatchObj innerLoop2)
    
    ;; Evaluate and display the hatch
    (vla-Evaluate hatchObj)
    (vla-Regen doc :vlax-true)
    
    ;; Find the ISO pen width of the hatch pattern
    (alert (strcat "The ISO pen width of the hatch pattern is: " (itoa (vla-get-ISOPenWidth hatchObj))))

    ;; Change the ISO pen width of the hatch pattern
    (vla-put-ISOPenWidth hatchObj acPenWidth050)
    (vla-Evaluate hatchObj)
    (vla-Regen doc :vlax-true)
    
    ;; Display new pen width for this hatch
    (if (= (vla-get-ISOPenWidth hatchObj) acPenWidthUnk)
        ;; Non-Standard pen widths
        (alert (strcat "The ISO pen width of the hatch pattern is now: " (rtos (vla-get-PatternScale hatchObj) 2)))
        ;; Standard pen widths
        (alert (strcat "The ISO pen width of the hatch pattern is now: " (itoa (vla-get-ISOPenWidth hatchObj))))
    )
)