AutoCAD/Lisp

출력 함수

Jaybi 2021. 4. 7. 10:51

문자열을 화면에 디스플레이하거나, 변수에 지정된 값을 화면에 출력하는 함수들이다.

출력 함수는 princ, prin1, print, prompt의 4 종류가 있으며, 모두 지정하는 내용을 화면에 나타내지만,

처리하는 방식에서 차이가 있다.

 

**참고

제어 문자

의       미

   \\

   \

   \"

   ""

   \e

   Escape

   \n

   New Line, 다음줄에 표시.

   \r

  Return Key로 동작

   \t

  Tab, 정해진 간격만큼 오른쪽으로 이동

   \nnn

 

 

(1) Princ

(1) 기능

Princ는 ""를 무시한 내용을 출력하고, 개행 문자를 수행하며, 자신을 한 번 더 반복한다.

(2) 사용

(princ "Expression")

(3) 예

 (Princ "Hello LISP \n Hi LSIP")

 ; Hello LISP
    Hi LSIP"Hello LISP \n Hi LSIP"

 (princ "Hi lisp")

 ;  Hi lisp"Hi lisp"

 (setq a 252000)

 ;  !a   :   252000

 (princ a)

 ;  252000252000

 (setq cha "autolisp")

 ;  !cha   :   "autolisp"

 (princ cha)

 ;  autolisp"autolisp"

 (princ cha)(princ)

 ;  autolisp

 (princ (+ a 100))(princ)

 ;  252100

 

** 참고 : Princ, Prin1, Print의 출력 내용 반복을 제거하기 위하여 Princ, Prin1, Print를 한번 더 사용한다.

** 참고 : AutoLISP 프로그램이 실행을 마칠 때는 항상 "nil"을 화면에 표시하는데, 마지막 부분에 위의 화면

princ 명령어를 적어두면 실행 후 "nil" 표시가 나타나지 않는다. 

 

 

(2) Prin1

(1) 기능 :

Prin1은 ""를 포함한 내용을 출력하고, 개행 문자를 무시하며, 자신을 한 번 더 반복한다.

(2) 사용법

(prin1 "Expression")

(3) 예

 (prin1 "Hello LISP \n Hi LISP")

 ; "Hello LISP \n Hi LISP""Hello LISP \n Hi LISP"

 (prin1 "Hi LISP")

 ; "Hi LISP""Hi LISP"

 (setq a 2000)

 ; !a   :   2000

 (prin1 a)

 ; 20002000

 (setq cha "autolisp")

 ; !cha   :   "autolisp"

 (prin1 cha)

 ; "autolisp""autolisp"

 (prin1 "autolisp")(prin1)

 ; "autolisp"

 (prin1 "autolisp")(princ)

 ; "autolisp"

 (princ "autolisp")(princ)

 ;  autolosp

 (princ (+ a 100))(princ)

 ;  2100

 

 

(3) Print

(1) 기능

Print는 ""를 포함한 내용을 출력하고, 개행 문자를 무시하며, 자신을 한번 더 반복하면서

한 줄의 공백과 한 칸의 공백을 둔다.

(2) 사용법

(print "Expression")

(3) 예

 (print "Hello LISP \n Hi LISP")

 ; "Hello LISP \n Hi LISP"   "Hello LISP \n Hi LISP"

 (print "Hi LISP")

 ; "Hi LISP"   "Hi LISP"

 (setq a 262000)

 ; !a   :   262000

 (print a)

 ; 262000   262000

 (setq cha "autolisp")

 ; !a   :   "autolisp"

 (print cha)

 ; "autolisp"   "autolisp"

 (print "autolisp")(print)

 ; "autolisp"

 (print "autolisp")(prin1)

 ; "autolisp"

 (pinc "autolisp")(print)

 ;  autolisp

 (princ (+ a 100))(princ)

 ;  252100

 

 

(4) Prompt

(1)  기능

문자열을 출력하기 위한 함수이며, 출력 내용은 문자열만 가능하다.

(2) 사용법

(Prompt "Expression")

(3) 예제

 (setq num 262000)

 ; !num   :   262000

 (prompt num)

 ; error: bad argument type
   (PROMPT A)
   *Cancel*

 (prompt 262000)

 ; error: bad argument type
   (PROMPT 262000)
   *Cancel*

 (prompt "autolisp")

 ; autolispnil

 (setq cha "autolisp")

 ; !cha   :   "autolisp"

 (prompt cha)

 ; autolispnil

 (prompt cha)(princ)

 ; autolisp

 (prompt "\n autolisp")

 ; autolispnil

 

 

(5) 예제 프로그램
 

 

 (defun c:sample()

    (prompt " Loaded..")

    (prompt "\n By PNP")

    (princ "\n Copytight 2000")

    (princ)

 )

 

 

Command: sample

 Loaded..

 By PNP

 Copytight 2000

 

출처: www.lispcenter.net/Lisp/Lisp_11.htm