AutoLISP 명령 기능을 사용하는 동안 활성 개체 스냅에주의해야합니다. 당신이 코드의 시작에서 OSMODE의 시스템 변수를 0으로 설정하여 모든 개체 스냅을 비활성화 할 수 있습니다,
(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)
)
또는 : 한 가지 방법은 식 (... 명령) 개체가 이내 "없음"의 스냅없는 강제하는 것입니다 마지막에 이전 값을 되돌립니다 (실제로 안전하기 때문에이 메서드는 코드 실행 중에 오류가 발생할 경우 이전 값이 다시 설정되도록 보장하기 위해 오류 처리기가 필요합니다).
(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)
)
또 다른 방법은 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)
)