Vla-get-hasattributes

提供:GizmoLabs - だいたい CAD LISP なサイト
2016年1月26日 (火) 08:50時点におけるGizmon (トーク | 投稿記録)による版 (ページの作成:「{{AutoLISP}} ; 構文 : (vla-get-hasattributes ''vla-object'' '''' '''' '''' ) ; 機能 : ブロックが属性を持つかどうかを指定する。 ; 引数 :* vl...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
構文
(vla-get-hasattributes vla-object ' ' ' )


機能
ブロックが属性を持つかどうかを指定する。


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


戻り値
ブール型
  • :vlax-True: ブロック参照は属性を持つ。
  • :vlax-False: ブロック参照は属性を持たない。


  • MEMO : このプロパティは、ブロック参照が編集可能な属性または定数(編集不可能)属性を含む場合は True。属性を持たない場合は False。
  • ブロックに関連付けられた Attribute オブジェクトの配列を取得するには、GetAttributes メソッドを使用する。


サンプル
(vl-load-com)
(defun c:Example_HasAttributes()
    ;; 属性を持たないブロックをまず作成する。
    ;; ブロックを挿入し、属性を持っているかどうかを確認する。
    ;; ブロックに属性を追加し、それを再度挿入する。
    ;; それは新しいブロック参照の属性をチェックする。
    (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 "CircleBlock"))

    ;; ブロックに円を追加
    (setq center (vlax-3d-point 0 0 0))  
    (setq radius 1)
    (setq circleObj (vla-AddCircle blockObj center radius))
   
    ;; ブロックを挿入
    (setq insertionPnt (vlax-3d-point 2 2 0))  
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq blockRefObj (vla-InsertBlock modelSpace insertionPnt "CircleBlock" 1 1 1 0))
    (vla-ZoomAll acadObj)
    (alert (strcat "このブロックは " (if (= (vla-get-HasAttributes blockRefObj) :vlax-true) "属性あり。" "属性なし。")))
    
    ;; ブロックに属性を追加。
    ;; 属性を定義します。
    (setq insertionPoint (vlax-3d-point 1 1 0)
          attHeight 1
          attMode acAttributeModeVerify
          attPrompt "属性プロンプト"
          attTag "属性タグ"
          attValue "属性の値")
    
    ;; 属性定義を作成する。
    (setq attributeObj (vla-AddAttribute blockObj attHeight attMode attPrompt insertionPoint attTag attValue))
       
    ;; ブロックを挿入
    (setq insertionPnt (vlax-3d-point 3 3 0))  
    (setq blockRefObj2 (vla-InsertBlock modelSpace insertionPnt "CircleBlock" 1 1 1 0))
    (vla-ZoomAll acadObj)
    (alert (strcat "最初のブロックは " (if (= (vla-get-HasAttributes blockRefObj) :vlax-true) "属性あり。" "属性なし")
                   "\n2つ目のブロックは " (if (= (vla-get-HasAttributes blockRefObj2) :vlax-true) "属性あり。." "属性なし。")))
)


関連事項