Vla-get-hasattributes
- 構文
- (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) "属性あり。." "属性なし。")))
)
関連事項