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

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

フィールド
AutoCAD 2024使用です。

こちらのLPSがうまくいかなくなりました。
症状はコマンドを選択すると直前のコマンドの仕様になってしまします。

例えば ラインを描いた後 こちらのコマンドを選択するとラインのコマンドになってしまいます。
昨日は問題なく使えました。


マンド:
コマンド:
コマンド: _line
1 点目を指定:
次の点を指定 または [元に戻す(U)]:
次の点を指定 または [元に戻す(U)]: *キャンセル*

コマンド:
コマンド:
コマンド: LINE

1 点目を指定: hlfo
点が無効です。


LSPはこちらです。

(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" "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)
)
  • syu
  • 2025/07/25 (Fri) 13:35:22
Re: フィールド
コマンド:
コマンド:
コマンド: LINE

1 点目を指定: hlfo
点が無効です。


ココを見ると、LISPを実行する前にLINEコマンドが起動しています。

コマンドラインにhlfoと入力したら大丈夫じゃないですか?

このLISPをアイコンかツールパレットに登録していますか?
でしたら、登録内容を確認してください。
hlfo の前に、半角スペース(又は;や^M)が有ったら消してください。




それから、関係ないかもしれませんが、

コード内(コメントではない場所)に全角スペースが12個入っています。
削除した方が良いと思います。
  • さかな
  • 2025/07/25 (Fri) 14:46:10
Re: フィールド
さかなさんの書かれているように、全角スペースを削除して試してみてください。
  • LUNE
  • 2025/07/25 (Fri) 15:54:13
Re: フィールド
さかな様 LUNE様
改善しました。
ありがとうございました。
  • syu
  • 2025/07/28 (Mon) 09:08:52

返信フォーム






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