티스토리 뷰

프로그래밍/LISP

LISP 1.

.가끔은 2021. 10. 6. 20:14
반응형

LISP은 CAD LT 버전에선 이용할 수 없습니다.


단축키 만들기

캐드의 Acad.pgp 파일은 사용자로 하여금 단축키를 정의할 수 있는 파일입니다. 하지만 LISP 파일의 명령이 우선순위가 높아 단축키 정의가 쉽게 되지 않는 분은 리습의 단축키를 확인해 보시기 바랍니다.

1. Line 명령의 단축키 
아래의 글을 Notepad.exe 나 기타 텍스트 에디터로 하나 만들어서 아무 이름이나 저장하고 (예:test1.lsp) 
캐드에서 load 하십시오. 

(defun c:Li() (command "LINE"))
  • lsp 파일 로드방법
    • 1. appload 후 해당 파일 선택.
    • 2. 탐색기 창에서 파일을 드래그 후 캐드 창에 놓기.

위 리습은 "line"을 "Li"라는 단축키로 바꾸어 놓은 것입니다. 
c: 다음의 "Li"가 단축키 명령입니다.

만약 단축키를 "aa"로 하고 싶으면 아래처럼 하시면 됩니다.

(defun c:aa() (command "LINE"))

 

2. defun 이란? 
명령을 정의한다는 말입니다. 항상 시작을 defun으로 합니다.  
우선 캐드에서는 "("를 열어야 리습인 줄 압니다.

  • LISP은 명령 창에서 바로 실행 가능합니다.

명령창에 아래의 내용을 직접 넣어보십시오.

(defun c:cc() (command "LINE"))

"cc"라는 명령도 "LINE"의 단축키로 적용되었습니다.

3. c: 이란? 
command 이란 말로서 캐드에서 명령어로 쓰인단 말이죠 
"c:" 이 없으면 캐드에서 아무리 쳐도 찾을 수 없다는 명령어라고 
나옵니다. 이것은 캐드 리습에서 약속된 형식이므로 외워야 합니다.
"cc" 뒤의 ()도 약속된 함수의 양식입니다. 꼭 써줘야 합니다.

4. (command "line") 이란? 
command는 캐드 화면에서 사람이 일일이 쳐주는 것을 대신합니다. 
원래는 캐드 화면에서 "line"이라고 쳐야 하는데 
그것을 대신하여 위에 처럼 쓰죠. 

(command "line" "0,0" "100,100")

이렇게 하면 (0,0)에서 (100,100)으로 선을 하나 그어줍니다. 
캐드에서 사람이 수동으로 하는 순서와 같습니다. 

(command "circle" "0,0" "10")

이것은 (0,0)에 반지름 10인 원을 그려줍니다. 
캐드 화면에서 center point, 반지름 순으로 물어보잖아요 
그걸 차례대로 쓰시면 된다는 거죠.. 

5. 괄호는 "("의 개수와 ")"의 개수가 꼭 같아야 합니다.
열기 괄호와 닫기 괄호의 개수가 안 맞으면 에러입니다.
지금은 간단해 눈에 잘 들어오지만 프로그램이 길어지면 실수하기 쉬운 부분이니 주의하시기 바랍니다.

반응형

사칙 연산

리습의 연산은 우리가 알고 있는 연산 표시 방법과 좀 다릅니다. 
우리는 "1 + 2"이라고 쓰는 것을 리습에서는 
(+ 1 2) 이렇게 씁니다. 

1. 연산의 앞뒤로 꼭 괄호()를 열었다 닫아야 합니다. 
모든 리습에서의 연산과 명령어는 괄호를 꼭 열고 닫아야 합니다.

2. 연산기호는 앞에 그 뒤로 숫자를 씁니다. 
연산기호와 숫자는 띄어쓰기로 구분하기 때문에 띄어쓰기와 순서가 중요합니다.

3. 그리고 계산하고 싶은 숫자들을 차례로 씁니다. 
아래에 예를 보시면 쉽게 알 수 있습니다. 

 123 + 456-> (+ 123 456) 
 123 x 456->  (* 123 456) 
 456 - 123->  (- 456 123) 
 123 / 123->  (/ 123 123) 

4. 여러 숫자의 연산 
 똑같은 기호의 연산은 연산기호를 앞에 쓰고 숫자를 이어서 쓰면 됩니다.

1 + 2 + 3 + 4 + 5-> (+ 1 2 3 4 5) 
 5 x 4 x 3 x 2 x 1-> (* 5 4 3 2 1) 

다른 기호의 연산, 기호를 혼용하는 경우 괄호의 우선순위를 보고 아래와 같이 합니다. 

1 + ( 3 x 4 )-> (+ 1 (* 3 4)) 
 ( 4 / 2 ) - 4-> (- (/ 4 2) 4) 

괄호 안의 연산을 먼저 하고 그 외 연산들을 순서에 맞춰서 표기하면 됩니다.

  • 실습 : 
    캐드 화면 하단의 command : 에 이렇게 써보자. 
    command: (- (/ 4 2) 4) 
    그러면 화면에 답인 '-2' 란 글자가 표시될 것이다. 
반응형

'프로그래밍 > LISP' 카테고리의 다른 글

LISP 6.  (0) 2021.10.27
LISP 5.  (0) 2021.10.20
LIPS 4.  (1) 2021.10.16
LISP 3.  (1) 2021.10.13
LISP 2.  (0) 2021.10.09
댓글