본문 바로가기

I T - 모바일/CAD

AutoLISP

AutoLISP이란?
1960년경에 발표되어 인공 지능의 연구와 기타 여러분야에서 사용되어 온 비교적 오래된 언어입니. AutoLISP는 LISP라는 언어에 기초를 두고 AutoCAD 에 사용할 수 있도록 개정한 것이라고 할 수 있다. AutoLISP은 AutoCAD사용자들에기 효과적이고 유용한 기능들을 제공하기 위하여 만들어진 AutoCAD에만 실행 가능한 프로그래밍 언어이다.

프로그래밍 언어는 보통 작성후 컴파일을 거쳐야 결과를 볼 수 있는 구조이지만 AutoLISP는 메모장 정도의 TEXT EDITOR 만 있으면 작성이 가능합니다. 작성후 AutoCAD 에서 load 를 하면 됩니다.

리습 작성순서
1.Text Editor로 내용을 작성합니다.
예를 들어 layer를 자동으로 만들어 주는 리습을 메모장에서 다음과 같이 작성합니다.

(defun c:lm() -->임의로 정의한 실행명
(setvar 'cmdecho' 0)
(command 'layer' 'm' '1' 'c' 'green' ''
'm' '2' 'c' 'red' ''
'm' '3' 'c' 'yellow' ''
'm' '4' 'c' 'white' ''
'm' '5' 'c' 'red' '' 'lt' 'centerx2' ''
'm' '6' 'c' 'magenta' '' 'lt' 'phantom' ''
'm' '7' 'c' 'cyan' '' 'lt' 'phantomx2' ''
'm' '8' 'c' 'yellow' '' 'lt' 'hidden' '' ''
)
(command 'layer' 's' '2' '')
(princ)
)

2. 작성한 내용은*.lsp 로 저장합니다.
makelayer.lsp라고 저장하였다. 리습 파일은 AutoCAD support 폴더에 복사 하거나 다른 외부 폴더에 있어도 무방합니다.

3.AutoCAD 실행 후 리습을 load합니다.
command :appload-->올릴 리습 선택 하고 올리기

4.LISP 명령을 실행합니다.
command :lm-->리습에 정의 임의의 실행명
(defun 내용) 하나의 실행문이죠...

즉, lm 이란 명령을 입력하면 (setvar)~(pric) 까지가 자동으로 실행이 됩니다.

(command) 문은 AutoCAD 명령 라인이 명령어를 입력하는 것이죠.. ' '는 키보드 값입니다. 공백은 enter

리습문: (command 'layer' 'm' '1' 'c' 'green' '' )

AutoCAD 실행문:
Command: layer
Current layer: '0'
Enter an option
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock]: m
Enter name for new layer (becomes the current layer) <0>: 1
Enter an option
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock]: cEnter color name or number (1-255): green
Enter name list of layer(s) for color 3 (green) <1>:
Enter an option
[?/Make/Set/New/ON/OFF/Color/Ltype/LWeight/Plot/Freeze/Thaw/LOck/Unlock]:


맨마지막의 빈 따옴표는 공백이기 때문에 Enter의 의미가 됩니다.

위와 같은 리습을 만들어 놓았다면, 새도면 작성때 마다 같은 레이어를 만든다고 했을때 매번 해야 하는 작업을 lm 이란 명령만으로 간단하게 할 수 있는 것이죠

 

 

사용자 삽입 이미지
LISP의 장점

  • 프로그래밍 언어중에서 배우고 익히기가 가장 쉽다.
  • 인공지능과 전문가시스템의 개발 및 연구용으로 채택된 언어이다.
  • LISP의 문법은 단순하기 때문에 LISP해석기 (LISP interpreter)의 실행이 명료하며 또한 메모리를 적게 차지한다.
  • LISP해석기는 설계과정의 특성인 정형화 되지 않은 작업에 이상적이다.
  • LISP는 AutoCAD와 같은 CAD시스템들에서 처리되는 정교한 정보들로 구성된 서로 다른 개체(object)들을 다루는 데 뛰어나다.

 

1985년 AutoCAD는 AutoLISP라는 쉽게 사용할 수 있는 언어를 도입하였고 R11판에서는ADS(AutoCAD Development System)가 추가되어 C언어를 사용할 수 있는 신기원이 마련되었다. 최신판 R12에서는 또 하나의 프로그래밍 언어로DIESEL(Direct Interactive String Expression Language)이 추가 되었으며  AutoLISP도 한층 보강되었다.