AutoLISPコマンド機能を使用している間は、アクティブなオブジェクトスナップを気にする必要があります。
(defun c:wwq (/ a pt1)
(setq a 0)
(while (< a 10)
(setq a (+ 1 a))
(setq pt1 (list a a))
(command "_circle" "_none" pt1 1)
)
(princ)
)
それとも、あなたはコードの初めに0にOSMODEシステム変数を設定することにより、すべてのオブジェクトスナップを無効にすることができます 一つの方法は、(コマンド...)式の中で、「なし」にスナップオブジェクトを強制することです最後に前の値を戻します(本当に安全です。このメソッドは、コード実行中にエラーが発生した場合に前の値がリセットされるようにするために、エラーハンドラが必要です)。
(defun c:wwq (/ a pt1 os)
(setq a 0
os (getvar 'osmode)
)
(setvar 'osmode 0)
(while (< a 10)
(setq a (+ 1 a))
(setq pt1 (list a a))
(command "_circle" pt1 1)
)
(setvar 'osmode os)
(princ)
)
もう1つの方法は、より速くosnapを気にしないentmake関数を使用することです。
(defun c:wwq (/ a)
(setq a 0.0)
(while (< a 10.0)
(setq a (+ 1.0 a))
(entmake
(list
(cons 0 "CIRCLE")
(list 10 a a 0.0)
(cons 40 1.0)
)
)
)
(princ)
)