AutoLISP는 AutoCAD LT의 기능을 확장하고 워크플로우를 자동화할 수 있는 강력한 생산성 도구입니다.
AutoLISP는 새로운 기능은 아니지만, 이제 AutoCAD LT에서 2024 릴리즈부터 사용할 수 있습니다.
AutoCAD LT에서 AutoLISP가 구현됨에 따라, 약간의 제한 사항은 있지만 과거 거의 40년 동안 개발되어 온 대부분의 AutoLISP 프로그램을 실행할 수 있습니다. AutoLISP의 전문가가 아니더라도 기존 프로그램의 많은 부분을 활용할 수 있지만, AutoLISP 프로그래밍을 배우면 새로운 생산성 향상에 도움이 될 수 있습니다.
AutoLISP 프로그램은 일반적으로 확장자가 .lsp인 텍스트 파일에 저장됩니다. AutoLISP 파일 로드 방법은 AutoLISP 프로그래밍의 일부 기본 사항을 학습하기 전에 다음 연습에서 우선적으로 배우는 사항 중 하나입니다. 그리고 사전 프로그래밍 경험이 없어도 AutoLISP를 활용할 수 있습니다. 대부분의 경우, 몇 가지 새로운 개념과 현재 AutoCAD 명령 및 시스템 변수에 대한 지식만 알고 있으면 됩니다.
AutoLISP를 처음 시작할 때는 직접 프로그램을 작성하기 보다는 대개 온라인에서 찾은 AutoLISP 파일이나 회사에서 작성한 파일을 로드하게 됩니다. 다음 경우에 AutoLISP 파일을 로드할 수 있습니다.
다음 방법을 사용하여 시작 시나 도면을 열 때, 또는 수동으로 AutoLISP 파일을 로드할 수 있습니다.
| 시작 시 로드 | 수동으로 로드 |
|---|---|
|
|
보시다시피 AutoCAD LT에서는 다양한 방법으로 AutoLISP 파일을 로드할 수 있습니다. 사용하는 방법은 제도 환경의 구성에 따라 다릅니다. 지금은 응용프로그램 로드/언로드 대화상자를 사용하여 AutoLISP 파일을 로드하는 방법을 살펴보겠습니다.
명령 프롬프트에 APPLOAD를 입력해도 됩니다.


jp-jp와 같이 영어 이외의 다른 언어가 설치된 경우 en-us 대신 해당 폴더를 선택합니다.
acadlt2024doc.lsp 파일은 특별히 명명된 AutoLISP 파일 중 하나로, 열거나 작성한 각 도면에 있는 경우 AutoCAD LT에서 검색하여 로드합니다. 이 AutoLISP 파일에는 제품에서 사용되는 일부 명령 및 사용자 AutoLISP 함수가 포함되어 있습니다. 여기서는 이 파일을 예제 파일로 사용하겠습니다.
명령행 윈도우와 대화상자의 왼쪽 아래 구석에 있는 메시지 상자에 "acadlt2024doc.lsp가 성공적으로 로드되었습니다."라는 메시지가 표시됩니다.

그러면 acadlt2024doc.lsp에서 AutoLISP에 의해 정의된 DDGRIPS 명령이 시작됩니다. DDGRIPS 명령은 옵션 대화상자를 열고 선택 탭을 현재 탭으로 설정합니다.
이전 연습에서 DDGRIPS 명령을 사용해 보았습니다. 로드된 AutoLISP 파일에 있는 명령임을 어떻게 알 수 있는지 궁금하실 것입니다. 경우에 따라, 어떤 명령이 정의되어 사용 가능한지 알기 위해 프로그램에서 명령행 윈도우에 메시지를 직접 표시하는 일부 코드를 사용할 수도 있습니다. 그러나 항상 그런 것은 아니며, AutoLISP 파일을 열어 어떤 명령이 정의되어 있는지 확인해야 할 수도 있습니다. 메모장을 사용하여 AutoLISP 파일을 열 수 있습니다.
다음 이미지는 메모장에서 열린 acadlt2024doc.lsp 파일의 일부를 보여줍니다. 명령 프롬프트에 입력할 수 있는 AutoLISP 정의 명령에는 c:가 머리말로 붙어 있습니다. c: 바로 뒤에 있는 문자가 명령의 이름입니다.

다운로드하거나 작성한 AutoLISP 파일을 사용하기 전에 저장해야 하는 특정 위치는 없지만 공유 위치에 저장하는 것이 좋습니다. 도면 템플릿 및 블록 라이브러리와 마찬가지로, 팀 또는 회사의 모든 제도 담당자가 동일한 AutoLISP 파일에 액세스할 수 있도록 해야 합니다. 다음을 고려해야 합니다.
AutoLISP 파일을 저장할 폴더를 식별했으면 옵션 대화상자의 파일 탭에 있는 지원 파일 검색 경로 및 신뢰할 수 있는 위치 설정을 사용하여 AutoCAD LT에 폴더의 위치를 알려야 합니다. AutoCAD LT에서는 다음과 같은 이유로 LSP 파일의 위치를 알아야 합니다.
다음 단계에서는 C:\AutoLISP Files 폴더를 지원 파일 검색 경로 및 신뢰할 수 있는 위치 설정에 추가하는 방법을 보여줍니다. 나중에 이 위치를 사용하여 몇 개의 짧은 AutoLISP 프로그램이 포함된 LSP 파일을 작성할 것입니다.
나열된 폴더에서 AutoCAD LT는 해치 패턴, 선종류, 명령 별칭을 저장하고 새 사용자 인터페이스 요소를 정의하는 데 사용되는 다른 유형의 사용자 파일 중에서 AutoLISP 파일을 찾습니다.


리스트 아래쪽에 폴더가 추가됩니다.


리스트 아래쪽에 폴더가 추가됩니다.

AutoLISP 파일이 포함된 폴더를 읽기 전용으로 표시하고 이러한 폴더를 신뢰할 수 있는 폴더로 식별하는 것뿐만 아니라, AutoCAD LT에서는 악성 코드와 맬웨어로부터 AutoCAD LT를 보호하는 데 도움이 되는 몇 가지 추가 설정도 제공합니다. 다음을 수행하여 AutoCAD LT의 보안 설정에 액세스할 수 있습니다.

회사에서 이미 가지고 있거나 온라인에서 찾은 AutoLISP 파일을 로드하고 관리할 수 있는 기능은 AutoCAD LT의 AutoLISP로 생산성을 높이게 되는 시작점에 불과합니다. 이미 일상적인 워크플로우에서 가지고 있는 AutoLISP 파일의 AutoLISP 프로그램을 사용하기 시작한 후에는, AutoLISP 프로그램을 변경하거나 기본 AutoLISP 프로그램을 직접 작성하고 싶어질 때가 올 수 있습니다.
그런데 AutoLISP는 프로그래밍 언어이며 자신은 프로그래머가 아니라고 생각할 수도 있습니다. AutoLISP가 프로그래밍 언어인 것은 맞지만, AutoLISP 프로그램을 배우고 작성하기 위해 프로그래머가 될 필요는 없습니다. 가장 간단한 AutoLISP 프로그램은 명령을 실행하거나 시스템 변수 값을 변경할 수 있는 단일 문입니다.
AutoLISP 문은 여는 괄호로 시작하여 닫는 괄호로 끝납니다. 다음은 ORTHOMODE 시스템 변수로 직교 모드를 켜는 AutoLISP 문의 예입니다.
(setvar "orthomode" 1)
명령 및 시스템 변수 이름과 마찬가지로 AutoLISP 문은 AutoCAD LT의 명령 프롬프트에 입력할 수 있습니다. 직접 한번 해 보겠습니다.
비활성화되면 상태막대 버튼이 회색으로 표시됩니다.

이제 상태막대의 직교 모드 버튼이 활성화되고 파란색으로 표시됩니다.

첫 AutoLISP 문을 작성하신 것을 축하합니다. 이제 프로그래머가 되셨습니다!
앞의 AutoLISP 문은 setvar 함수를 사용하여 시스템 변수의 값을 설정합니다. 시스템 변수의 현재 값을 반환하는 getvar라는 함수도 있습니다. setvar 및 getvar 함수는 AutoLISP를 사용하여 워크플로우를 자동화하는 데 사용할 수 있는 수백 개의 함수 중 두 개에 불과합니다. AutoLISP 프로그래밍 언어를 구성하는 수백 개의 함수가 있지만 시작하려면 5가지 주요 함수만 이해하면 됩니다. 그 중 두 가지는 이미 배웠습니다. 5가지 함수는 다음과 같습니다.
5가지 주요 함수를 알고 있고 setvar 함수를 사용하여 시스템 변수를 설정해보았으므로, 이제 command 함수 사용을 살펴보겠습니다. 계속하기 전에, 명령 이름에는 .(마침표) 및 _(밑줄) 문자를 머리말로 붙일 수 있는 한편, 명령 옵션 이름에는 _(밑줄) 문자를 머리말로 붙일 수 있다는 점을 알고 있어야 합니다. 이러한 문자는 제공된 명령이 예상대로 실행되도록 하는 데 사용됩니다.
다음은 이러한 문자의 의미에 대한 설명입니다.
다음 단계에서는 command 함수를 사용하여 원을 그리고 도면 범위로 줌합니다.
현재 도면층에서 중심점 5,5에 반지름 5 단위의 원이 그려집니다.

원이 도면의 유일한 객체인 경우 도면이 원의 범위로 줌되고, 그렇지 않으면 도면의 모든 객체 범위로 줌됩니다.

몇 가지 AutoLISP 문을 살펴보았으므로, 이제 예제 AutoLISP 문의 다양한 부분과 구문을 자세히 살펴보겠습니다.
명령 프롬프트에 직접 AutoLISP 문을 입력하는 것은 실시간으로 피드백이 얻어지므로 AutoLISP 학습을 시작하는 데 매우 유용한 방법이지만, 명령 프롬프트에 문을 반복적으로 다시 입력하는 것은 그다지 효율적이지 않습니다. AutoLISP 문을 재사용할 수 있는 한 가지 방법은 defun 함수를 사용하여 이러한 문을 사용자 명령으로 그룹화하는 것입니다.
defun 함수를 사용해 도면의 이전 뷰로 줌하는 ZP라는 사용자 명령을 정의해 보겠습니다.
C:ZP가 명령으로 출력됩니다.

이전 뷰가 복원됩니다.

이제 이전 뷰가 복원됩니다.
defun 함수를 사용하여 사용자 명령을 정의하여 AutoLISP 문을 더 쉽게 재사용할 수 있지만, 정의한 명령은 명령이 정의된 도면에서만 사용할 수 있고 해당 도면이 열려 있는 동안에만 사용할 수 있습니다. 다음 섹션에서는 AutoLISP 파일을 로드할 때 실행하고자 할 수 있는 다른 AutoLISP 문과 함께 사용자 AutoLISP 명령을 저장할 AutoLISP 파일을 작성하는 방법에 대해 알아봅니다.
AutoLISP 참조 안내서에서 5가지 주요 함수는 물론, 사용 가능한 다른 수백 가지 함수에 대해 자세히 알아볼 수 있습니다.
명령 프롬프트에 AutoLISP 표현식을 입력하는 방법을 알았으므로 이제 AutoLISP 파일을 작성하고 AutoLISP 표현식 및 사용자 명령을 필요할 때 사용할 수 있도록 저장하는 방법을 살펴보겠습니다. AutoLISP 파일은 메모장과 같은 간단한 문자 편집기로 작성할 수 있는 일반 ASCII 문자 파일로, 파일 확장자는 .lsp입니다. Write 또는 Word와 같은 워드 프로세서 응용프로그램은 LSP 파일을 로드할 때 문제를 일으키는 특수 문자와 형식이 포함될 수 있으므로 사용하지 않는 것이 좋습니다.
다음 연습에서는 LSP 파일을 작성하고, 일부 AutoLISP 문을 LSP 파일에 추가하고, LSP 파일을 로드한 다음 LSP 파일에 정의된 명령을 사용해 보는 방법을 배웁니다. 앞에서 설명한 5가지 주요 함수 외에, 다음에 대해서도 알아봅니다.
이제 파일을 직접 작성하여 AutoCAD LT로 로드해 보겠습니다.
; Zoom commands(defun c:ze () (command "._zoom" "_e"))(defun c:zp () (command "._zoom" "_p")); Creates the layer A-ANNO-REV, draws a rectangle and; converts the rectangle to a revision cloud with arc lengths; based on half the current value of the LTSCALE system variable(defun c:rv () (setq old-layer (getvar "clayer")) (command "._-layer" "_m" "A-ANNO-REVCLD" "_c" "1" "" "") (command "._rectang" PAUSE PAUSE) (command "._revcloud" "_a" (/ (getvar "ltscale") 2) "" "_o" "_l" "_n") (setvar "clayer" old-layer)); Display a general message in the command line upon load(prompt "\nLoaded MyFirst.lsp")(princ)

프로그램에서 유니코드 문자를 사용해야 하는 경우 UTF-8을 선택합니다.
이제 파일을 작성했으므로 APPLOAD 명령을 통해 표시되는 응용프로그램 로드/언로드 대화상자를 사용하는 대신 파일 탐색기를 사용하여 LSP 파일을 로드합니다.


로드되고 나면 prompt 함수에 의해 명령행 윈도우 사용 내역에 "Loaded MyFirst.lsp"라는 메시지가 표시됩니다.

빨간색의 구름형 리비전이 A-ANNO-REVCLD 도면층에 배치됩니다. 이는 특성/빠른 특성 팔레트 또는 리본의 도면층 패널에 있는 도면층 드롭다운 리스트에서 확인할 수 있습니다.

도면이 해당 범위로 줌됩니다.
도면의 이전 뷰가 복원됩니다.
응용프로그램 로드/언로드 대화상자를 사용하여 필요할 때 AutoLISP 파일을 수동으로 로드할 수 있을 뿐만 아니라, 새 도면 파일을 열거나 작성할 때 AutoLISP 파일을 자동으로 로드할 수도 있습니다. 응용프로그램 로드/언로드 대화상자의 시작하기 세트 영역은 자동으로 로드할 AutoLISP 파일을 지정하는 데 사용됩니다.
다음 단계를 통해 시작하기 세트에 AutoLISP 파일을 추가할 수 있습니다.
명령 프롬프트에 APPLOAD를 입력해도 됩니다.
이전 섹션에서 myfirst.lsp 파일을 작성한 경우 해당 파일을 선택할 수 있습니다.
시작하기 세트에 추가한 AutoLISP 파일이 현재 도면에 자동으로 로드됩니다.
AutoCAD LT 시작 시, 또는 도면을 작성하거나 열 때 AutoCAD LT에서는 특정 이름을 가진 4개의 AutoLISP 파일을 찾습니다. 해당 파일이 있으면 자동으로 로드됩니다. 이러한 파일은 AutoCAD LT 환경이 예상대로 구성되도록 하고 도면을 작성하거나 열 때 AutoLISP 정의 명령을 사용할 수 있도록 하는 데 도움이 됩니다.
AutoCAD LT는 다음 4개의 파일이 해당 지원 경로에 있으면 찾아서 자동으로 로드합니다.
acadlt.lsp 및 acadltdoc.lsp는 사용자가 작성해야 합니다. 이러한 파일은 표준 AutoCAD LT 설치에 포함되지 않습니다. acadlt2024.lsp 및 acadltdoc2024.lsp는 프로그램에 포함되어 있으므로 수정해서는 안 됩니다.
다른 LSP 파일과 마찬가지로 acadlt.lsp 및 acadltdoc.lsp 파일을 활용하여 이전에 언급한 컨텍스트에 따라 자동으로 로드되는 이러한 파일을 추가할 수 있습니다. 이 두 파일은 AutoLISP load 함수를 사용하여 다른 AutoLISP 파일을 로드하고, 이러한 파일이 로드될 때 AutoLISP 문을 실행하고, 도면이 작성되거나 열린 후에 사용할 수 있도록 AutoLISP 명령을 정의하는 데 사용할 수 있습니다. AutoLISP load 함수는 두 개의 매개변수를 수용합니다. 첫 번째는 로드해야 하는 AutoLISP 파일로, 필수 매개변수이고, 두 번째는 AutoCAD LT의 지원 파일 검색 경로 중 하나에서 로드되는 AutoLISP 파일을 찾을 수 없는 경우 표시될 메시지로, 선택적 매개변수입니다. 지원 파일 검색 경로 설정에 대해서는 AutoLISP 파일 관리 및 보안 섹션을 참고하십시오.
다음 단계에서는 C:\AutoLISP Files 폴더에 acadltdoc.lsp 파일을 작성하고, 이 파일에 몇 개의 AutoLISP 문을 추가하고, 이 파일을 AutoCAD LT에 로드한 다음, 파일이 로드되었는지 확인하는 방법을 설명합니다.
; AutoLISP to be executed in each drawing created or opened; Set Object Snap and Ortho modes(setvar "osmode" 4133)(setvar "orthomode" 1); Load the LSP file created earlier under the; "Store AutoLISP Statements in AutoLISP (LSP) Files" section(load "myfirst.lsp" "\nMyFirst.lsp file couldn't be found"); Display a general message in the command line upon load(prompt "\nLoading my custom programs")(princ)

명령행 윈도우에 "Loading my custom programs" 메시지가 표시됩니다. 이 메시지는 앞의 2단계에서 입력한 마지막 두 행 중 하나입니다.


상태막대 버튼이 다시 한 번 활성화됩니다.

플러그인 번들은 PackageContents.xml이라는 매니페스트 파일이 있는 폴더 구조로, 이 파일은 AutoCAD LT에 플러그인을 구성하는 파일 및 설정을 알립니다. 이 문서 전체에서 이미 살펴보았듯이 AutoLISP 프로그램을 AutoCAD LT로 로드하는 데 플러그인 번들이 필요하지 않지만, 이를 통해 acadlt.lsp 또는 acadltdoc.lsp 파일을 사용하는 것보다 더 쉽게 AutoLISP 파일을 관리하고 더 안전하게 사용자 프로그램을 배포할 수 있습니다. 또한 플러그인 번들을 사용하면 대부분의 경우 옵션 대화상자 없이도 AutoCAD LT를 구성할 수 있습니다.
플러그인 번들에 대한 자세한 내용은 예: 플러그인에 대한 기본 .bundle 폴더 구조를 참고하십시오.
워크플로우를 자동화하면 생산성을 높이고 반복 작업을 줄이는 데 도움이 될 수 있습니다. AutoLISP 프로그래밍에는 학습 곡선이 있지만 5가지 주요 함수를 충실히 배우면 일상적인 워크플로우에서 AutoLISP의 유용한 가치를 실현하는 데 도움이 되는 몇 가지 소규모 프로그램을 만들 수 있습니다.
AutoLISP와 관련하여 자주 사용하는 몇 가지 명령 및 시스템 변수입니다.
| 명령 | 설명 |
|---|---|
| APPAUTOLOADER | 응용프로그램 플러그인 폴더의 모든 플러그인을 나열하거나 다시 로드합니다. |
| APPLOAD | 응용프로그램을 로드하거나 언로드하고, 시작할 때 로드할 응용프로그램을 정의합니다. |
| OPTIONS | 프로그램 설정을 사용자화합니다. |
| SECURITYOPTIONS | 제품에서 실행 중인 실행 파일에 대한 보안 제한을 조정합니다. |
| UNDEFINE | 응용프로그램에서 정의한 명령이 내부 명령을 재지정할 수 있도록 합니다. |
| 시스템 변수 | 설명 | 기본값 | 저장 위치 |
|---|---|---|---|
| ACADLSPASDOC | acad.lsp 파일 또는 AutoCAD LT용 acadlt.lsp 파일이 모든 도면에 로드되는지 아니면 세션에 열려 있는 첫 번째 도면에만 로드되는지를 조정합니다. | 0 | 레지스트리 |
| APPAUTOLOAD | 플러그인 응용프로그램이 로드되는 시간을 조정합니다. | 14 | 레지스트리 |
| CLAYER | 현재 도면층을 설정합니다. | 0 | 도면 |
| CLIPROMPTUPDATE | AutoLISP 또는 스크립트 파일을 실행하는 동안 생성되는 메시지 및 프롬프트를 명령행에 표시할지 여부를 조정합니다. | 1 | 레지스트리 |
| CMDDIA | DIMEDIT 및 QLEADER 명령에 대한 내부 문자 편집기 표시와 AutoCAD 기반 제품의 특정 대화상자 표시를 조정합니다. | 1 | 레지스트리 |
| CMDECHO | AutoLISP 명령이 작동하는 동안 프롬프트와 입력이 반향되는지 여부를 조정합니다. | 1 | 저장되지 않음 |
| FILEDIA | 파일 탐색 대화상자의 표시를 억제합니다. | 1 | 레지스트리 |
| LEGACYCODESEARCH | 실행 파일 검색에 프로그램이 시작되는 폴더를 포함하는지 여부를 조정합니다. | 0, CAD 관리자가 잠갔을 수 있습니다. | 레지스트리 |
| NOMUTT | 정상적으로 억제되지 않는 경우 메시지 표시(반복)를 억제합니다. | 0 | 저장되지 않음 |
| ORTHOMODE | 커서 이동을 수직으로 제한합니다. | 0 | 도면 |
| OSMODE | 실행 객체 스냅을 설정합니다. | 4133 | 레지스트리 |
| SECURELOAD | 실행 파일이 신뢰할 수 있는 폴더에서만 로드되도록 제한되는지 여부를 조정합니다. | 1, CAD 관리자가 잠갔을 수 있습니다. | 레지스트리 |
| TEXTEVAL | TEXT(AutoLISP 사용)로 또는 -TEXT로 입력된 문자열이 평가되는 방법을 조정합니다. | 0 | 저장되지 않음 |
| TRUSTEDPATHS | 코드가 포함된 파일을 로드 및 실행할 권한이 있는 폴더를 지정합니다. | 다양함, CAD 관리자가 잠갔을 수 있습니다. | 레지스트리 |