コマンド名はhlfo
文字を選択すると、図面全体表示となり、関連付けられたオブジェクトがハイライト表示されます。
関連付けられたオブジェクトのオブジェクトズーム+ハイライトにしたい場合は、コメントにあるように
(command "zoom" "e" ) を
(command "zoom" "o" ob_name "")
に変更してください。
ハイライトの解除はregenコマンドで。
(defun c:hlfo
( / ob_name ent ent_name ent_data head_index notflg)
(command "regen")
(setq ent (entsel "フィールドを含む文字を選択:"))
(setq ent_data (entget (car ent)))
(setq ent_name (cdr (assoc 0 ent_data)))
(setq notflg 0)
(if (wcmatch ent_name "*TEXT") ;if-a
(progn ;progn-a
(setq head_index (assoc 102 ent_data))
(if head_index ;if-b
(progn ; ;progn-b フィールドが見つかった時の処理
(repeat 4
(setq ent_data (entget (cdr (assoc 360 ent_data))))
)
;4回繰り返すと関連付けられた図形名が出現
;331と2つ目の330に出現;
(setq ob_name (cdr (assoc 331 ent_data))) ;331に出現する図形名を取得
(command "zoom" "e" ) ;対象オブジェクトをズームしたい場合は、 (command "zoom" "o" ob_name "")
(redraw ob_name 3)
);end progn-b
(setq notflg 1)
);end if-b
);end progn-a
(setq notflg 1)
);end if-a
(if (= notflg 1)
(progn
(princ "\nフィールドを含む文字列ではありません。")
(quit)
)
)
(princ)
)
- LUNE
- 2025/07/23 (Wed) 16:35:03