Vla-getconstantattributes

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年2月13日 (土) 19:34時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-getconstantattributes ''vla-object'' '''' '''' '''' ) ; 機能 : ブロックまたは外部参照内の一定属性を取得する。 ;...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-getconstantattributes vla-object ' ' ' )


機能
ブロックまたは外部参照内の一定属性を取得する。


引数
  • vla-object … VLAオブジェクト(BlockReference、ExternalReference、MInsertBlock)


戻り値
ブロック参照の定数である Attribute オブジェクトの配列。


  • MEMO:GetConstantAttributes メソッドは、ブロックまたは外部参照に付加された一定属性の配列を返す。戻り値の属性は一定属性定義であり、属性参照ではない。


サンプル
(vl-load-com)
(defun c:Example_GetConstantAttributes()
    ;; ブロックに定数の属性定義を作成し、ブロックを照会して属性を取得するサンプル。
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; ブロックと属性の定義
    (setq insertionPnt (vlax-3d-point 0 0 0))
    (setq blockObj (vla-Add (vla-get-Blocks doc) insertionPnt "New_Block"))
    
    ;; 属性定義の定義
    (setq insertionPnt (vlax-3d-point 5 5 0)
          attHeight 1
          attMode acAttributeModeConstant
          attPrompt "Constant Prompt"
          attTag "Constant_Tag"
          attValue "Constant Value")
    
    ;; ブロックに属性を追加
    (setq attributeObj (vla-AddAttribute blockObj attHeight attMode attPrompt insertionPnt attTag attValue))
    
    ;; ブロックを挿入
    (setq insertionPnt (vlax-3d-point 2 2 0))
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq blockRefObj (vla-InsertBlock modelSpace insertionPnt "New_Block" 1 1 1 0))
    (vla-ZoomAll acadObj)

    ;; 属性を取得
    (setq queryAttribute (vlax-variant-value (vla-GetConstantAttributes blockRefObj)))
    
    (setq count (1+ (vlax-safearray-get-u-bound queryAttribute 1)))
    (alert (strcat "ブロックには " (itoa count) " 個の一定属性が有りもうすどすこい。"))
)

関連事項