Vla-put-preset
- 構文
- (vla-put-preset vla-object bool )
- 機能
- 属性がプリセットかどうかを指定する。
- 引数
-
- vla-object … Attribute のVLAオブジェクト
- bool … ブール型
- :vlax-True: 属性はプリセット属性。
- :vlax-False: 属性はプリセット属性ではない。
- 戻り値
- nil
- MEMO:プリセット属性は、ユーザがブロックを挿入するときに属性をその既定値 (プリセット値) に設定する。
- 属性は、オプションの 4 つのモード、一定、プリセット、非表示、確認のいずれかとしてのみ存在することができる。
- システム変数 AFLAGS に現在のモードの設定が格納される。
- Mode プロパティを使用して現在のモードを取得できる。
- サンプル
(vl-load-com) (defun c:Example_Preset() ;; 属性定義を含むブロックを作成するサンプル。 ;; 最初に、属性プリセット フラグがオンにされているし、親ブロックが参照として ;; 挿入される属性の既定値が表示される。 ;; この例を実行するたびに、属性を検索し、プリセット値を切り替えるしようとする。 ;; ;; * 注: この例を初めて実行した後メニューの「挿入/ブロック...」を選択し、 ;; 「ブロック-プリセット」からブロック参照を作成します。Blockref が ;; 表示されるときの属性の表示設定値が表示される。 ;; 再び例を実行し、ブロック挿入を繰り返します。属性値のプリセットは、 ;; オフになっていますとされたら、今この時間に注意すること。 (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; このブロックが既に作成されているか確認。 ;; 作成されてたら、ブロックの内部属性を取得。 ;; それ以外の場合、新しい属性を含むブロックを作成。 (setq err (vl-catch-all-apply 'vla-Item (list (vla-get-Blocks doc) "Block-PRESET"))) (if (/= (type err) 'VL-CATCH-ALL-APPLY-ERROR) ;; ブロック作成 (progn (setq newBlock err) (setq attributeObj (vla-Item newBlock 0)) ;; ブロックチェック (vla-put-Preset attributeObj (if (= (vla-get-Preset attributeObj) :vlax-true) :vlax-false :vlax-true)) ;; トグルで変更 ) (progn ;; ブロック属性を作成 (setq BlockInsertionPoint (vlax-3d-point 0 0 0)) (setq newBlock (vla-Add (vla-get-Blocks doc) BlockInsertionPoint "Block-PRESET")) ;; 属性定義 (setq attrInsertionPoint (vlax-3d-point 0 0 0) attHeight 1 attMode acAttributeModePreset attPrompt "New Prompt" attTag "New_Tag" attValue "Preset") ;; 新しいブロックに属性定義オブジェクトを追加する。 (setq attributeObj (vla-AddAttribute newBlock attHeight attMode attPrompt attrInsertionPoint attTag attValue)) ) ) ;; 属性を読み込み (setq IsPreset (if (= (vla-get-Preset attributeObj) :vlax-true) (strcat "ありまぁす。プリセット値は: " (vla-get-TextString attributeObj)) "プリセットはありません")) (alert (strcat "このブロックの属性は " IsPreset)) )
関連事項