상세 컨텐츠

본문 제목

AutoLISP 초보자가 최초로 기억해야 할 함수 5종

IT & Programming/LISP 공부

by 그림아이 2021. 12. 21. 05:00

본문

반응형

이번 기사에서는 AutoLISP 초보자가 먼저 기억해야 할 함수에 대해 설명합니다.

 

AutoCAD의 커맨드를 실행해 작도하는, 데이터를 변수에 격납해 수치의 계산을 하는 등, 간단한 동작이면 이번 소개하는 함수를 커맨드 라인에 기술하는 것으로 실현 가능합니다. 덧붙여서, 커맨드 라인이란 AutoCAD 하단의 표시 또는 입력을하는 부분입니다. 단순한 동작의 효율화라도 적층함으로써 대폭적인 개선으로 이어집니다 . 지금보다 AutoCAD의 작업을 편하게 하고 싶은 분은 꼭 봐 주세요.

 

앞으로 AutoLISP로 AutoCAD를 자동화, 효율화하려고 하는 분에게 우선 기억해 주셨으면 하는 함수는 다음의 5개입니다. 각각의 특징과 사용법에 대해 하나씩 소개합니다.

 

①AutoCAD 명령 호출 command

command의 특징은?

  • AutoCAD 명령을 자동으로 실행할 수 있습니다.
  • 평소 작업을 자동화하기 쉽습니다.
  • AutoLISP의 놀라움을 체감하기 쉽습니다.

command는 "circle", "line" 등 AutoCAD의 표준 명령을 실행하는 함수입니다. 평소와 같이 명령을 실행했을 때에는, 좌표나 수치 등 옵션의 입력을 요구됩니다. command의 인수에 필요한 옵션을 기술해 두면, 평상시 사용하고 있는 커멘드를 자동으로 실행할 수 있습니다 .

 

command의 사용법은?

실행하고 싶은 커멘드명을 캐릭터 라인으로서 기술한 뒤, 필요한 옵션을 기술합니다. 예를 들어 "circle"을 사용하여 중심(0,0)으로 직경 10의 원을 작성하는 경우는 다음과 같습니다.

;circle을 실행하여 원을 만듭니다.
(command "circle" (list 0 0) "D" 10)

② 변수에 데이터 저장 setq

setq의 특징은?

  • AutoCAD의 모든 데이터 변수에 저장(대입) 가능
  • 한 번의 실행으로 여러 변수에 데이터를 저장할 수 있습니다.

setq는 지정된 변수에 데이터를 저장(대입)하는 함수입니다. AutoLISP는 변수 유형 선언이 필요하지 않으므로 AutoCAD의 모든 데이터를 저장할 수 있습니다 . 변수명과 데이터를 연속적으로 나란히 기술하면, 각각의 변수에 한 번에 격납하는 것도 가능합니다.

setq의 사용법은?

변수명과 저장하고 싶은 데이터를 나란히 기술합니다. 복수의 변수에 격납하는 경우는 아래와 같이 연속적으로 기술해 주세요.

 

(setq str "hako")

(setq data1 20 data2 "auto" data3 (list 0 0))

 

③ 사칙 연산 +, -, *, /

사칙 연산의 사용법은?

사칙 연산은 연산자( +, -, *, / )가 함수명이 됩니다. 연산자의 뒤에 수치를 기술하는 것으로 연산 결과를 돌려줍니다. 뺄셈과 나눗셈은 선두의 수치에 대해서, 그 이외의 수치를 처리하는 형식이므로 주의해 주세요. 인수에 실수가 포함되어 있으면 결과도 실수가 됩니다.

;더하기
(+ 1 2 3)
⇒ 5
;빼기
(- 1 2 3)
⇒ -4
;곱하기
(* 1 2 3)
⇒ 6
;정수 나누기
(/ 1 2 3)
⇒ 0

;실수 나누기
(/ 1.0 2 3)
⇒ 0.166667

덧붙여서, 1만큼 증가시키는 함수를 증분 , 1만큼 감소시키는 함수를 감소 라고 합니다. 반복 처리에서 자주 사용되는 중요한 함수 중 하나 입니다. 

 

④ 리스트 작성 list

list의 특징은?

  • 목록을 만들 수 있습니다.
  • 좌표를 표현할 수 있다
  • 전용 함수로 저장된 데이터를 얻을 수 있습니다.

list는 여러 데이터를 결합하여 하나의 목록을 만들 수 있습니다. 목록은 AutoLISP의 데이터 형식 중 하나 입니다. 하나 이상의 데이터를 좌우 괄호로 묶어 표현합니다.

목록에는 숫자 및 문자열과 같은 AutoCAD의 모든 데이터를 저장할 수 있습니다. 숫자를 2개 또는 3개 지정하면 2D 또는 3D 좌표를 표현할 수 있습니다 .

목록에 저장된 데이터를 요소라고 하며 각 요소에는 0부터 시작하는 번호가 붙습니다. 전용 함수를 사용하여 요소를 얻을 수 있습니다. 또한 목록에는 점 쌍이라는 특수 형식이 있으며 cons라는 함수로 만들 수 있습니다.

 

list의 사용법은?

함수명의 뒤에 격납하고 싶은 데이터를 나란히 기술합니다. 좌표를 표현할 때는 인수의 1번째(선두)가 X좌표, 2번째가 Y좌표, 3번째가 Z좌표에 대응하고 있습니다. 예를 들어, (10,15)의 좌표를 변수 pt에 격납하는 경우는 다음과 같이 기술합니다.

;(10,15)을 변수 pt에 저장
(setq pt (list 10 15))

⑤ 커맨드 라인에 표시 princ, print

princ, print의 특징은?

  • 변수 내용을 명령줄에 표시할 수 있습니다.
  • 사용자에게 메시지를 표시할 수 있음

princ와 print는 인수 평가 결과를 명령줄에 표시하는 함수입니다. 문자열을 인수로 사용하면 사용자에게 메시지를 표시할 수도 있습니다 .

princ, print의 사용법은?

명령행에 표시하고 싶은 인수를 함수명의 뒤에 기술합니다. 표시 결과가 다르므로 기호로 구분하십시오. princ는 """가 추가되지 않고 표시하기 전에 줄 바꿈이 없습니다. 이에 대해 print는 「"」가 부가되어 표시 전에 개행이 들어갑니다.

;princ로 문자열을 명령줄에 표시
(princ "AutoLISP로 편해지다")
⇒AutoLISP로 편해지다
;princ로 문자열을 명령줄에 표시
(print "AutoLISP로 편해지다")
⇒ "AutoLISP로 편해지다"

그건 그렇고, princ와 print 이외에도 명령 줄에 인수를 표시하는 함수가 있습니다. 

 

요약

① AutoCAD 명령 호출 command 평상시 사용하고 있는 커멘드를 자동으로 실행할 수 있으므로, AutoCAD의 작업을 효율화하기 쉽다. AutoLISP의 대단함도 체감하기 쉽다.

 변수에 데이터를 저장 setqAutoCAD의 모든 데이터 변수에 저장 하는 함수. 한 번만 실행하면 여러 변수에 데이터를 저장할 수 있습니다.

 사칙 연산 +, -, *, /사칙 연산을 수행하는 함수. 뺄셈과 나눗셈은 선두의 수치에 대해서, 나머지를 수치를 처리한다.

 리스트 작성 list복수의 데이터를 정리해 하나의 리스트를 작성하는 함수. 좌표를 표현할 수 있다.

 명령행에 표시 princ, print명령행에 인수 평가 결과를 표시하는 함수. princ와 print에서는 표시 결과가 다르다.

 

프로그래밍

 

 

728x90
반응형

관련글 더보기

댓글 영역