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

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

LISP 複数選択orオプション入力
initget と entsel を使うことで、オブジェクトを選択する前にオプション入力ができることを知りました。
これを、単一選択(entsel)ではなく複数選択(ssget)で同じような挙動を実現することはできないでしょうか。
(initgetとssgetが連携できないのは承知しています。)
標準の Move コマンドのような挙動が理想なのですが。

(defun c:test()
(setq Objs nil)
(while (null Objs)
(initget "Dummy")
(setq AA (entsel "\n選択[ダミー(D)]: ")) ←複数選択orオプション にしたい。
(if (= AA "Dummy")
(princ "D!!")
(setq Objs AA)
)
)
(princ)
)
  • Lispかじり
  • 2022/06/22 (Wed) 21:42:14
Re: LISP 複数選択orオプション入力
参考になりそうなトピックだと思われます。
https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/initget-and-ssget/td-p/904731

私自身も試してないので、うまくいくかどうか分かりませんが・・・
  • LUNE
  • 2022/06/27 (Mon) 10:29:15
Re: LISP 複数選択orオプション入力
情報ありがとうございます。

複数選択orオプション、実現できました!
(やってることの中身は理解できてないけど…)
この手法を取り入れたかった自作ツールにも取り込んで、いい感じに形にできました。

initget使用と違って、コマンドラインでオプションをクリック選択できないのがちょっと残念。

2001年5月の投稿に、時間を置いて2002年3月に回答してあって、その20年後に目にして使わせてもらうって、とても感慨深いです。
でも「1 Like」しかついてないのね…
  • Lispかじり
  • 2022/06/27 (Mon) 20:13:36
Re: LISP 複数選択orオプション入力
やはりもやもやして疑問があるので教えて下さい。

1.
(ssget)自体がSELECTコマンドでオプションを受け付けてくれるのですが
独自のオプションを受け付けたいということでしょうか。

2.
(initget (+ 0) "Abc Def")
(setq key (getkword "\nEnterで選択または[Abc Def]"))
(cond
((null key) (ssget)...)
((= key "Abc")...)
((= key "Def")...))
これだと、Enterを一回必要としますが、それでは実現できなのでしょうか。

後学のためどのようなコードで実現したのか知りたいです。
  • zukki-
  • 2022/06/30 (Thu) 04:48:58

返信フォーム






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