오토캐드 (AutoCAD)로 책을 두 권 쓰고 나름 업계에서 '그림아이'라는 닉네임으로 유명해지기도 하면서 활동했었습니다. 오토캐드 얘기는 차차 하기로 하고 리습 (LISP)부터 시작하고자 합니다. 리습은 1958년에 MIT의 존 매카시가 만든 프로그램 언어로 포트란에 이어 두번째로 가장 오래된 프로그램 언어입니다. List Processing을 줄여서 만든 용어이고 말 그대로 리스트를 쉽게 처리하기 위해 만든 언어입니다.
오토캐드에서 오랫동안 리습이 애용되어온 이유는 객체들의 각종 데이터와 정보들을 리스트로 처리할 때 편리하고 속도가 빨랐기 때문입니다. 물론 다른 언어들의 처리 속도가 더 빨라졌지만 1980년대 초반에는 오토캐드에 리습이 최적이었습니다. 오토캐드에 사용된 리습은 처음에는 오토리습 (AutoLISP)이라고 불리다가 2000년대 들어오면서 비주얼리습 (VisualLISP)으로 불리며 함수가 대거 추가되었습니다.
저는 오토캐드를 1993년 대학교 1학년 때부터 R10을 독학하여 공부했고 리습은 1994년에 처음 접했지만 곧바로 군대에 가는 바람에 제대로 익히지는 못한 상태였습니다. 1997년 제대하고 용산에 가서 조립 PC를 사서 윈도우95를 설치하고 제일 먼저 오토캐드 R13을 설치했습니다. 1년 뒤 R14로 업그레이드했고 본격적으로 리습을 독학했지만 제대로 공부를 할 수가 없었습니다. 시간이 지나 돌이켜보면 분명한 한계가 있었기 때문입니다.
대학생이 독학으로 오토캐드와 리습을 공부할 때 흔히 겪는 문제는 바로 뭘 공부해야 되는지에 관한 것입니다. 당시에는 하이텔에 오토캐드 동호회가 있어서 정보만 주고 받았을 뿐 내가 독학한 기본 기능들로 뭘 해야 하는지 알 수가 없었습니다. 토목공학 전공 서적들에 나오는 교량이나 구조물들을 그대로 따라 그려보면 기본 기능들은 익힐 수 있었지만 이게 다인지 더 뭘 해야 할지 막막했습니다. 리습도 마찬가지입니다. 문법과 함수를 외우고 어떻게 사용하는 줄은 알겠는데 이걸로 뭘 해야 하는지 도무지 알 수가 없었습니다.
그걸 알게 된 계기가 바로 직장이었습니다. 엔지니어로 사회에 첫 발을 내딛었을 때 야근과 철야를 밥먹듯 하던 시절에 점점 깨닫기 시작합니다. "내가 하는 일의 대부분은 단순 반복작업이구나." 라는 것입니다. 예를 들면, 지금은 다르겠지만 당시 회사 컴퓨터에 R14가 설치되어 있었고 과장님이 업무를 저에게 지시한 적이 있었습니다. 도면 파일 300장을 A3로 프린트하라는 것입니다. 당시에는 자동 프린트 기능도 3rd Party 프로그램도 없던 시절이라 300장을 일일이 마우스로 더블클릭하여 열고, 프린터와 페이지 설정하고, 프린트 버튼 누르고를 반복해야만 했습니다. 프린터의 속도도 느린 시대였기 때문에 300장 프린트 업무는 4~5시간짜리 업무였습니다.
이와 같은 일을 1년 정도 몇 번 반복하다가 이러다 사람이 미칠 수도 있겠다는 생각이 들었습니다. 너무나 답답하고 하기 싫었습니다. 그래서 이를 악물고 잠을 줄여가며 리습 프로그램을 개발했습니다. 처음에는 단순히 스크립트 (Script)로 자동 플롯을 하다가 리습으로 대화창까지 만들어 자동 플롯 프로그램을 만들었습니다. 만들고 나서 깨달았습니다. "만들고 싶은 것이 먼저구나." 라는 것입니다. 만들고 싶은 프로그램을 먼저 떠올리고 그 프로그램을 개발하기 위한 시나리오가 알고리즘이고 거기에 필요한 문법과 함수를 찾아 공부해서 만들면 그게 코딩이고, 그게 프로그래밍이라는 것이라는 것을 말입니다. 그 이후로는 몇 백장이든, 몇 천장이든 프린트 할 일이 있으면 자동으로 걸어두고 커피를 마시거나 책을 보면서 다른 공부를 할 수 있었으니 다른 사람들보다 앞서갈 수 있는 중요한 계기가 되었습니다.
이런 분들을위한 기사입니다.
이번 기사에서는 AutoCAD 사용자가 AutoLISP를 기억해야 할 이점에 대해 설명합니다.
작도는 아무래도 수작업이 되기 때문에 시간과 수고가 걸려 버립니다. 인간의 일이기 때문에 아무래도 실수도 피할 수 없기 때문에, 프로그래밍으로 자동화하고 싶다고 생각하는 것이 많다고 생각합니다.
그러나, 이런 고민을 가지고 있지 않을까요.
그런 분들에게 AutoLISP는 구세주 가 될 수 있습니다. AutoLISP를 습득하면 귀찮은 작업이 훨씬 효율화되어 여유롭게 개방감을 가져올 것입니다.
AutoLISP의 소개와 추천 학습법에 대해 해설해 가므로, 꼭 봐 주세요.
AutoLISP는 AutoCAD 전용 프로그래밍 언어 입니다. 그 역사는 의외로 오랫동안 30년 전부터 AutoCAD에 구현되었습니다. LISP라고 하는 프로그래밍 언어가 베이스가 되어 있어, 좌우 한 세트의 괄호 내에 프로그램을 기술 하는 것이 특징입니다. 예를 들어, 변수 buf에 1+2의 계산 결과를 저장하는 처리는 다음과 같이 표기합니다.
(setq buf (+ 1 2))
괄호 안의 선두에 실행하고 싶은 함수를 기술해, 뒤에 대응하는 인수를 지정하는 것이 AutoLISP 식의 기본적인 형식입니다. 또, 괄호 안에는 또 다른 괄호로 다른 처리를 기술할 수도 있으므로 중첩 구조가 되는 것 AutoLISP의 특징의 하나입니다.
AtutoCAD를 사용하고 있으면 도형이나 치수 등 수동으로 작도할 필요가 있습니다. 그런 귀찮고 번거로운 작업을 AutoLISP를 활용하면 자동화하는 것이 가능합니다.
예를 들어, 다음 AutoLISP 표현식을 명령행에 복사하십시오.
(command "circle" (list 0 0) "D" 10)
순식간에 도면의 중심에 아래와 같은 원이 그려집니다.
원 1개 작도할 정도라면 수동으로도 차이는 없습니다만, 복수 작도하거나 좌표나 색을 바꾸거나, 보다 복잡한 처리를 더하는 경우에는 수동으로 작업이 어렵습니다.
그런 어려운 작업도 AutoLISP를 활용하면 순식간에 완료 됩니다.
짧은 표현식이라면 커맨드 라인에 복사하여 실행하는 것도 충분하지만 더 복잡한 처리를 원한다면 AutoLISP를 작성한 파일 (lsp 파일)을 만들어야합니다.
AutoCAD에는 AutoLISP를 작성하는 편집기(Visual LISP 편집기)가 미리 준비되어 있으므로 지금 lsp 파일을 작성할 수 있습니다.
Visual LISP 편집기를 사용하여 lsp 파일을 만드는 방법에 대해 자세히 알아보십시오.
AutoLISP는 OS 유형이나 버전에 영향을 받지 않습니다. Windows뿐만 아니라 Mac에서도 작동합니다. 또한 BricsCAD, ZWCAD 등 다양한 호환 CAD에서도 동작하는 것도 매력 중 하나입니다.
이 때문에, 동작 환경이 바뀌어도 프로그램을 이행해 계속 사용할 수가 있습니다. 한 번 만든 프로그램은 자산이 되어 효율화라는 이익을 가져올 것입니다.
AutoLISP는 다른 프로그래밍 언어에 비해 사소한 언어이므로 인터넷에서 검색해도 히트하는 사이트가 적습니다.
체계를 세워 배우고 실제로 사용할 수 있게 되려면 인터넷 정보만으로는 솔직히 어렵습니다. 신뢰성도 인터넷보다 우수하므로 독학하고 싶은 분에게는 서적을 추천합니다.
모든 프로그래밍 언어는 기본적으로 공통입니다. 닭이 먼저냐 달걀이 먼저냐 같은 이야기입니다만, 먼저 다른 프로그래밍 언어를 습득해 기본적인 부분을 이해하면 AutoLISP의 이해도 원활해지므로 추천입니다.
이번 정리
이번에는 AutoLISP 소개와 추천 학습법에 대해 설명했습니다. 조금이라도 AutoLISP에 관심이 있으시면 감사하겠습니다.
기사의 내용이나 AutoLISP, DCL에 대해 잘 모르는 곳이 있는 것 같으면 코멘트나 메일로 부담없이 연락해 주세요!
프로그래밍의 필수품! AutoLISP의 함수 (1) | 2021.12.22 |
---|---|
리스트를 작성하는 함수 「list」 「cons」 (0) | 2021.12.21 |
AutoLISP 초보자가 최초로 기억해야 할 함수 5종 (0) | 2021.12.21 |
명령을 호출하는 함수 「command」 (0) | 2021.12.21 |
AutoLISP 개발을 시작합시다! lsp 파일 만들기 ~ 실행 설명 (3) | 2021.12.20 |
댓글 영역