Vla-addhatch

提供:GizmoLabs - だいたい CAD LISP なサイト
2014年6月8日 (日) 17:28時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-addhatch ''vla-object'' ''PatternType'' ''PatternName'' ''Associativity'' [''HatchObjectType''] ) ; 機能 : ハッチング オブジ...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-addhatch vla-object PatternType PatternName Associativity [HatchObjectType] )


機能
ハッチング オブジェクトを作成する。


引数
  • vla-object … VLA オブジェクト
  • PatternType … AcPatternType または AcGradientPatternType 列挙型
    • HatchObjectType 値が acHatchObject の場合は、AcPatternType列挙型を使用する。
    • HatchObjectType 値が AcGradientObject の場合は、AcGradientPatternType 列挙型を使用する。
  • PatternName … 文字列;
    • HatchObjectType 値が acHatchObject の場合は、PatternName にハッチングパターン名が含まれている必要がある。
    • HatchObjectType 値が acGradientObject の場合は、PatternName に GradientName にリストされている階調度パターン名の 1 つが含まれている必要がある。
  • Associativity … ブール型; :VLAX-TRUE=自動調整ハッチ、:VLAX-FALSE = 自動調整なし。
  • HatchObjectType … HatchObjectType; オプション;
    • 既定値は、AcHatchObject の AcHatchObjectType 列挙型値。
    • AcHatchObjectType 列挙型値が AcGradientObject の場合、PatternType は AcGradientPatternType 型であることが必要で、PatternName に階調度パターン名が含まれている必要がありる。


戻り値
作成されたハッチの VLAオブジェクト


サンプル
(vl-load-com)
(defun c:Example_AddHatch()
    ;; このサンプルは、グラデーションハッチをモデルスペースに作成する
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))    
    
    ;; ハッチの定義
    (setq patternName "CYLINDER")
    (setq patternType acPreDefinedGradient)
    (setq bAssociativity :vlax-true)
    
    ;; 連想ハッチオブジェクトを モデルスペースに作成
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq hatchObj (vla-AddHatch modelSpace patternType patternName bAssociativity acGradientObject))

    (setq col1 (vlax-create-object "AutoCAD.AcCmColor.20"))
    (setq col2 (vlax-create-object "AutoCAD.AcCmColor.20"))
    (vla-SetRGB col1 255 0 0)    ; グラーデーション1色目
    (vla-SetRGB col2 0 255 0)    ; グラーデーション2色目
    (vla-put-GradientColor1 hatchObj col1)
    (vla-put-GradientColor2 hatchObj col2)
    
    ;; ハッチの境界領域(円)を作成
    (setq center (vlax-3d-point 3 3 0))
  
    (setq radius 1)
    (setq circle (vla-AddCircle modelSpace center radius))

    (setq outerLoop (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (vlax-safearray-put-element outerLoop 0 circle)
    
    ;; 境界領域にハッチオブジェクトを追加して、表示
    (vla-AppendOuterLoop hatchObj outerLoop)
    (vla-Evaluate hatchObj)
    (vla-Regen doc :vlax-true)

    (vlax-release-object col1)
    (vlax-release-object col2)
)

関連事項