Sponsored links

【AutoLISP ドリル】エラー対策/処理 1 問題編

Sponsored links
person about to catch four dices AutoLISP
Photo by fotografierende on Pexels.com
Sponsored links
Jagaimo
Jagaimo

オブジェクトスナップに邪魔されないAutoLISP作成の問題です。

Sponsored links

課題

図形をクリックすると、その図形がX方向に150、Y方向に50移動するコマンドがあります。

(defun c:test ()
    (command-s "._MOVE" pause "" "0,0" "150,50")
(princ))


このコマンドだと、オブジェクトスナップが影響して指定した点とは別の点が選択されるエラーの可能性があります。

オブジェクトスナップが影響しないようにして、コマンド実行後にはオブジェクトスナップが元の設定に戻っているようにコードを追加してください。

ヒント

一時オブジェクトスナップを使う方法と、システム変数でオブジェクトスナップの設定を変更する方法があります。

オブジェクトスナップ設定のはシステム変数は OSMODEです。
関数getvarでシステム変数の値を得ることができます。
関数setvarでシステム変数の値を変更することができます。
(システム変数を変更する場合、エラー中断で最後まで実行されなくても元の設定に戻るようにエラー処理を加える必要がありますが、今回の問題ではエラー処理は含みません。)

関連記事

一時オブジェクトスナップ

システム変数について

コマンド実行

(command-s “._MOVE” pause “” “0,0” “150,50”) は、コマンドMOVE[移動]実行しています。
コマンド実行について詳しくはこちらの記事で。

解答

ドリル一覧

Comments