Jagaimo
オブジェクトスナップに邪魔されないAutoLISP作成の問題です。
課題
図形をクリックすると、その図形が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