この掲示板は AutoCADマクロ屋本舗 の掲示板です。

【 注意 】最初に必ず ↓↓ 下記内容 ↓↓ を参照ください。
① マクロが分からない方は、まず 【 マクロ講座 】 を参照ください。
② 質問の前に 【 マクロ使用前の注意事項 】 をお読みください。
③ 質問する時は、新規投稿フォーム下の【 新規投稿時のお願い 】を必ずお読みください。

【AutoLISP】修正依頼
お世話になります。
つい最近AutoLISPを学び始めた超初心者です。
範囲選択で文字だけを選択したくLISPを作っているのですが...

(defun c:TXG (/)
(setq Objs (ssget '((0 . "*TEXT"))))
(princ))

上記を実行すると、確かに選択範囲に文字だけを選ぶ事はできているものの、
選択セット(?)に含まれず、移動もコピーも何も出来ない状態になります。
どうすれば選んだ文字を触れるようになるかご教授頂けると助かります...。

また、範囲選択などせずにLISPを実行するだけで、図面上の全ての文字だけが選択されるようにするには
どう修正したらいいかもさっぱり分からず...こちらもご教授頂けると助かります。

よろしくお願い致します。
  • 初心者
  • 2025/04/24 (Thu) 00:05:49
Re: 【AutoLISP】修正依頼
選択範囲内の文字を選択状態にするには、
(defun c:TXG (/)
(setq Objs (ssget '((0 . "*TEXT"))))
(command-s "pselect" Objs "" )
(princ))

図面上の文字をすべて選択状態にするには
(defun c:ATXG (/)
(command-s "zoom" "a")
(setq Objs (ssget "_X" '((0 . "*TEXT"))))
(command-s "pselect" Objs "" )
(princ))
※最初に図面全体にZOOMしてから、ssgetのXを使います。
  • LUNE
  • 2025/04/24 (Thu) 09:15:14
Re: 【AutoLISP】修正依頼
AIに聞いてみました。
Lispを貼り付けて、最後にオブジェクトを選択状態にしたい、と聞いたら
(defun c:TXG (/)
(setq Objs (ssget '((0 . "*TEXT"))))
(sssetfirst nil Objs)
(princ))
と返ってきました。

(command-s "pselect" Objs "" )

(sssetfirst nil Objs)
と書けるようです。
私も使ったことなかったです・・・
  • LUNE
  • 2025/04/24 (Thu) 14:05:01
Re: 【AutoLISP】修正依頼
LUNE様ご返信本当にありがとうございます。
選択状態にするにはcommand~が必要だったのですね。
本当に勉強になります...
  • 初心者
  • 2025/04/25 (Fri) 10:37:16

返信フォーム






プレビュー (投稿前に内容を確認)