AutoLISP 프로그램을 최신 릴리즈에서 실행하기 위해 수행해야 할 변경 사항은 일반적으로 매우 적습니다.
그러나 AutoLISP 함수, AutoCAD 기반 제품 명령 또는 시스템 변수가 변경되거나 사용되지 않아 AutoLISP 프로그램이 최신 릴리즈에서 더 이상 제대로 실행되지 않을 수 있습니다.
사용자 프로그램에서 사용되지 않음으로 지정된 명령 및 시스템 변수를 검토합니다. 경우에 따라, 사용되지 않는 명령 또는 시스템 변수를 명령 프롬프트에서 직접 입력할 수 없거나 사용자 인터페이스에서 액세스할 수 없더라도 사용자 프로그램에서 이러한 명령 또는 시스템 변수를 계속 사용할 수 있습니다.
사용자 프로그램에서 사용되지 않는 명령 또는 시스템 변수를 사용하려고 하는 경우 다음 기술이 유용할 수 있습니다.
이제 INSERT 명령은 블록 팔레트를 표시하는 반면, 새 CLASSICINSERT 명령은 "기존" 삽입 대화상자를 표시합니다. AutoLISP 프로그램에서 삽입 대화상자를 사용하는 경우, 기존 프로그램을 변경해야 합니다. 이전에는 다음의 AutoLISP 문을 사용하여 삽입 대화상자를 표시했을 수 있습니다.
(initdia) (command "insert")
AutoLISP 프로그램에서 삽입 대화상자를 계속 표시하려면, 다음 접근 방식 중 한 가지를 활용하도록 기존 프로그램을 변경해야 합니다.
(initcommandversion 2) (initdia) (command "insert")
(command "classicinsert")
CDATE 및 DATE 시스템 변수에 저장된 값은 더 이상 가장 가까운 밀리초 또는 100분의 1초로 내림된 현재 날짜₩시간을 나타내지 않습니다. 이제 이 두 시스템 변수의 값이 표현되는 가장 작은 시간의 단위는 초입니다 1초보다 작은 시간 간격을 추적해야 할 경우에는 워크스테이션이 밀리초 단위로 부팅된 이후의 시간 차이를 저장하는 MILLISECS 시스템 변수가 반환하는 값을 사용해 보십시오.
다음 날짜₩시간 관련 시스템 변수 또한 밀리초가 제거된 것에 영향을 받습니다.
기존 프로그램에서 가장 가까운 밀리초로 내림된 시간 차이를 요구할 경우 MILLISECS 시스템 변수에 저장된 값의 마지막 2 또는 3자릿 수를 가져와 CDATE 시스템 변수가 반환하는 값에 추가하면 AutoCAD 2016 기반 제품 및 이전 제품의 CDATE 시스템 변수가 반환하는 값에 필적하는 값을 생성할 수 있습니다. 다음 코드 샘플은 대상 AutoCAD 버전을 기준으로 밀리초를 포함하는 날짜\시간 값을 가져오는 방법을 보여줍니다.
; Returns a CDATE value that includes milliseconds based on release
; Usage: (CDate)
; Replaces (rtos (getvar "CDATE") 2 8)
(defun CDate ( / ms)
; Check to see which AutoCAD release is being used
(if (<= (atof (getvar "ACADVER")) 22.0)
(rtos (getvar "CDATE") 2 8)
(progn
; Get the current milliseconds and append it to the CDATE value
(setq ms (itoa (getvar "MILLISECS")))
(strcat (rtos (getvar "CDATE") 2 6)(substr ms (- (strlen ms) 2)))
)
)
)
AutoCAD 2016 Update 1에 도입된 EPDFSHX 시스템 변수 이름이 PDFSHX로 바뀌었습니다. 이 이름 변경에 따라 EPDFSHX 시스템 변수를 참조하는 모든 AutoLISP 문이 수정되어야 합니다. 다음은 사용자 프로그램에서 이러한 변경으로 인해 영향을 받을 가능성이 큰 함수입니다.
이제 AutoLISP 파일에 디지털 서명이 가능합니다. AutoLISP 파일을 디지털 서명하면 사용자에게 파일을 신뢰할 수 없다고 알리는 경고 없이 이 파일을 AutoCAD 도면 환경에 로드할 수 있습니다. 디지털 서명된 VLX 파일은 AutoCAD 2015 기반 또는 그 이전 제품에 로드할 수 없습니다.
osnap 함수는 빠른(qui) 객체 스냅 모드를 더 이상 지원하지 않습니다. AutoLISP 프로그램의 osnap 함수를 사용하는 모든 문에서 qui 모드에 대한 참조를 제거해야 합니다. 이 모드를 제거하지 않으면 osnap 함수가 도면 영역의 유효한 점에 대한 좌표 값이 아닌 nil을 반환합니다.