AutoLISP °­ÁÂ [3]


1. ÀÔ¹®(I) - AutoLISPÀÇ ±âº» °³³ä
2. ÀÔ¹®(II) - »ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö Á¦ÀÛ
3. ÀÔ¹®(III) - ±× ¹ÛÀÇ ±âº» ±â´Éµé
4. ÀÀ¿ë(I) - Entity¿Í Selection-Set
5. ÀÀ¿ë(II) - Symbol table°ú Device Á¦¾î
6. ÀÀ¿ë(III) - Dialogue box Á¦¾î
7. È°¿ë¿¹Á¦


3. ±× ¹ÛÀÇ ±âº» ±â´Éµé

3.1 È­ÀÏ ÀÔÃâ·Â ÇÔ¼ö

À̹ø¿¡´Â È­ÀÏ ÀÔÃâ·Â ÇÔ¼ö¿¡ °üÇØ ¼³¸íÇϸ鼭 Á¡µé¿¡ °üÇÑ ÀÚ·á°¡ ´ã°ÜÀÖ´Â È­ÀÏÀ» Àо AutoCAD »ó¿¡¼­ ±× Á¡µéÀ» ÀÕ´Â 3Â÷¿ø POLYLINEÀ» ±×·ÁÁÖ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ º¸°Ú´Ù. ¸ÕÀú, AutoLISP¿¡¼­ »ç¿ëµÇ´Â ±âº»ÀûÀÎ È­ÀÏ ÀÔÃâ·Â ÇÔ¼öµéÀ» »ìÆ캸°Ú´Ù.

1) ±âº»ÀûÀÎ È­ÀÏ ÀÔÃâ·Â ÇÔ¼ö¿Í ±× »ç¿ë ¹æ½Ä

(setq <È­ÀÏ Æ÷ÀÎÅÍ> (open "È­ÀÏ À̸§" "r")) <= È­ÀÏÀ» ÀÐÀ»¶§
(setq <È­ÀÏ Æ÷ÀÎÅÍ> (open "È­ÀÏ À̸§" "w")) <= È­ÀÏ¿¡ ¾µ¶§
(setq <È­ÀÏ Æ÷ÀÎÅÍ> (open "È­ÀÏ À̸§" "a")) <= ±âÁ¸ È­ÀÏ¿¡ ´õÇؼ­ ¾µ¶§
. . . . . .
(setq <¹®ÀÚÀÇ ASCII ÄÚµå>
(read-char <È­ÀÏ Æ÷ÀÎÅÍ>)) <= È­ÀϷκÎÅÍ ¹®ÀÚ¸¦ ÀÐÀ»¶§
(setq <¹®ÀÚ¿­> (read-line <È­ÀÏ Æ÷ÀÎÅÍ>)) <= È­ÀϷκÎÅÍ ¹®ÀÚ¿­À» ÀÐÀ»¶§
(write-char <¹®ÀÚÀÇ ASCII ÄÚµå> <È­ÀÏ Æ÷ÀÎÅÍ>) <= È­ÀÏ¿¡ ¹®ÀÚ¸¦ ¾µ¶§
(write-line <¹®ÀÚ¿­> <È­ÀÏ Æ÷ÀÎÅÍ>) <= È­ÀÏ¿¡ ¹®ÀÚ¿­À» ¾µ¶§
. . . . . .
(close <È­ÀÏ Æ÷ÀÎÅÍ>) <= È­ÀÏ »ç¿ëÀ» Á¾·áÇÒ¶§

AutoLISP¿¡¼­´Â È­ÀÏ Æ÷ÀÎÅ͸¦ ÅëÇØ È­ÀÏÀ» Á¦¾îÇϸç Àбâ(read), ¾²±â(write), ±×¸®°í ´õÇϱâ(append)°¡ °¡´ÉÇÏ´Ù. ±âº»ÀûÀ¸·Î´Â ASCII ÇüÅÂÀÇ È­ÀÏÀ» ó¸®Çϴµ¥ ÀûÇÕÇϸç BINARY È­ÀÏÀÇ Ã³¸®°¡ ºÒ°¡´ÉÇÑ °ÍÀº ¾Æ´Ï´Ù. OPENÇÑ È­ÀÏÀº CLOSEÇϱ⸸ Çϸé 󸮰¡ Á¾·áµÈ´Ù.

2) È­ÀÏ¿¡ ¾²±â

¸ÕÀú, ÀÚ·á È­ÀÏÀ» Çϳª ¸¸µé±â À§ÇØ ´ÙÀ½°ú °°ÀÌ Çغ¸ÀÚ.

Command: (setq fd (open "test.dat" "w")) <= È­ÀÏ¿¡ ¾²±âÀ§ÇØ ¿¬´Ù.
<File: #?????> <= È­ÀÏ Æ÷ÀÎÅÍÀÇ ¹øÈ£¸¦ ¾Ë·ÁÁØ´Ù. (Å« ÀÇ¹Ì ¾øÀ½)
Command: (princ (getpoint) fd) <= PRINC ÇÔ¼öµµ È­ÀÏ Ãâ·ÂÀÌ °¡´É
<= ÀÓÀÇÀÇ Á¡À» ¼±ÅÃÇÑ´Ù.
(1.0 1.0 0.0) <= ÀÓÀÇÀÇ Á¡ÀÌ È­ÀÏ¿¡ Ãâ·ÂµÈ´Ù.
Command: (princ "\n" fd) <= ´ÙÀ½ÁÙ·Î À̵¿ÇÑ´Ù.
"\n"
Command: (princ (getpoint) fd) <= À§ÀÇ °úÁ¤À» ¹Ýº¹
. . . . . . <= ÇÊ¿äÇÑ ¸¸Å­ ¼öÇà
Command: (close fd) <= È­ÀÏ »ç¿ëÀ» Á¾·á
nil <= Á¤»óÀûÀ¸·Î Á¾·áµÇ¾úÀ½

3) È­ÀÏ·Î ºÎÅÍ ÀڷḦ Àбâ

¾Õ¼­ È­ÀÏ¿¡ ±â·ÏµÈ ³»¿ëÀ» ¸ÕÀú »ìÆ캸ÀÚ.

Command: TYPE
File to list: TEST.DAT
(1.0 1.0 0.0) <= ¸®½ºÆ® ÇüÅ·Π±â·Ï
. . . . . .

ÀÌ¿Í °°ÀÌ PRINC ÇÔ¼ö·Î ÁÂÇ¥°ªÀ» Ãâ·ÂÇÏ¸é ¸®½ºÆ® ÇüÅ·Π±â·ÏµÈ´Ù´Â °ÍÀ» ±â¾ïÇØ µÎÀÚ. ±×·³, ÀÌÁ¦ ÀÌ ÀڷḦ Àоî¿À´Â ¹æ¹ý¿¡ °üÇØ ¼³¸íÇÏ°Ú´Ù. ¿ì¼±Àº ÀÌ Á¡µéÀ» Àо POINT¸¦ ±×·ÁÁÖ´Â °ÍÀ¸·Î ÀÛ¼ºÇØ º¸°Ú´Ù. ¸ÕÀú, ÀÛ¾÷ °úÁ¤À» ½ÃÇèÇØ º¸ÀÚ.

Command: (setq fd (open "TEST.DAT" "r")) <= È­ÀÏÀ» ÀбâÀ§ÇØ ¿¬´Ù.
<File: #?????>
Command: (setq rl (read-line fd)) <= ÇÑÁÙÀ» ÀÐ¾î ¿Â´Ù.
"(1.0 1.0 0.0)" <= ¹®ÀÚ¿­ »óÅ·ΠÀÐ¾î ¿Â´Ù.
Command: (setq rl (read rl)) <= ¸®½ºÆ® ÇüÅ·Π¹Ù²Û´Ù.
(1.0 1.0 0.0)
Command: POINT
Point: !rl <= ÀоîµéÀÎ ÁÂÇ¥°ªÀ¸·Î POINT¸¦ ±×¸°´Ù.
Command: (close fd)
nil

À§ÀÇ °úÁ¤¿¡ ¿À·ù°¡ ¾ø´Ù¸é ¿¡µðÅ͸¦ »ç¿ëÇÏ¿© ¾Æ·¡¿Í °°ÀÌ ÇÁ·Î±×·¡À» ¿Ï¼ºÇϱ⠹ٶõ´Ù. À̶§ È­ÀÏÀÇ ³¡À» È®ÀÎÇÏ´Â ¹æ¹ýÀº READ-LINE ÇÔ¼ö°¡ È­ÀÏÀÇ ³¡À» ¸¸³ª¸é nilÀ» ¹ÝȯÇϹǷΠ°£´ÜÈ÷ È­ÀÏÀÇ ³¡À» È®ÀÎÇÒ ¼ö ÀÖ´Ù. Áï, ¾Æ·¡¿¡¼­ º¸¸é º¯¼ö RLÀÇ °ªÀÌ nilÀ̸é WHILE ¹®À» ¹þ¾î³ª°Ô µÇ¾î È­ÀÏÀ» ´Ý°í ÀÛ¾÷À» Á¾·áÇÏ°Ô µÈ´Ù.

; È­ÀÏ¿¡¼­ ÁÂÇ¥°ªÀ» Àо POINT¸¦ ±×¸°´Ù.

(defun draw-point (name / fd rl)
  (setq fd (open name "r"))
  (while (setq rl (read-line fd))
    (command "POINT" (read rl))
  )
  (close fd)
)

(defun C:DPOINT ( / name)
  (setq name (getstring "\nFile name: "))
  (draw-point name)
  (princ)
)

ÀÔ·ÂÀÌ ³¡³µÀ¸¸é DPOINT.LSP¶ó´Â À̸§À¸·Î ÀúÀåÀ» ÇÏ°í ·ÎµåÇÏ¿© ½ÇÇàÇغ¸±â ¹Ù¶õ´Ù.

Command: (load "DPOINT")
"C:DPOINT"
Command: DPOINT
File name: TEST.DAT

4) ¶Ç ´Ù¸¥ Àбâ Çü½Ä

FORTRAN °°Àº ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ »ç¿ëÇؼ­ Ãâ·ÂÇÑ ÀÚ·á´Â ÀÇ·ÊÀûÀ¸·Î Ãâ·Â°ªµéÀÌ ¾î¶² Çü½ÄÀ» °®°Ô µÈ´Ù. ¿¹¸¦ µé¸é ¼Ò¼öÁ¡ÀÌÇÏ´Â ¸î°ÀÚ¸®±îÁö, ºóÄ­Àº ¸îÄ­, ¼ýÀÚÀüü°¡ Â÷ÁöÇÏ´Â Ä­ÀÇ ¼ö´Â ¾ó¸¶, ÀÌ·± ½ÄÀ¸·Î Çü½Ä(format)ÀÌ Á¤ÇØÁö°Ô µÈ´Ù. ÀÌ·± ÀÚ·áµéÀ» Àоî¿À´Â °ÍÀº AutoLISPÀ¸·Î´Â ó¸®ÇϱⰡ ¾Õ¼­º» ¸®½ºÆ® ÇüÅ¿ʹ ´Þ¸® Á¶±Ý ±î´Ù·Ó°í µ¥ÀÌŸÀÇ Çü½ÄÀÌ ¹Ù²î¸é ÇÁ·Î±×·¥À» ¼öÁ¤ÇØ¾ß ÇÑ´Ù´Â ºÒÆíÇÔÀÌ ÀÖ´Ù. ¿ì¼±, µ¥ÀÌŸÀÇ ÇüÅ°¡ ´ÙÀ½°ú °°´Ù°í ÇÏÀÚ.

|<-10 Ä­->|<-10 Ä­->|<-10 Ä­->|

  1.000000  1.000000  0.000000

À̹ø¿¡´Â ¾Õ¼­ÀÇ ÇÁ·Î±×·¥ Áß DRAW-POINT ÇÔ¼ö¸¸À» À§ÀÇ Çü½ÄÀÇ µ¥ÀÌŸ È­ÀÏÀ» ÀÐÀ» ¼ö ÀÖµµ·Ï ¼öÁ¤ÇØ º¸°Ú´Ù. ±×·³, ¼öÁ¤¿¡ ¾Õ¼­ ´ÙÀ½°ú °°ÀÌ ÀÛ¾÷ °úÁ¤À» ½ÃÇèÇØ º¸±â ¹Ù¶õ´Ù. TEST2.DAT´Â ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ´Ù. À§ÀÇ µ¥ÀÌŸ Çü½Ä¿¡ ÁÖÀÇÇϸ鼭 ÀÔ·ÂÇϱ⠹ٶõ´Ù.

  5.000000  0.000000  0.000000
  6.763360  2.572950  0.500000
  9.755280  3.454920  1.000000
  7.853170  5.927050  1.500000
  7.938930  9.045080  2.000000
  5.000000  8.000000  2.500000
  2.061070  9.045080  3.000000
  2.146830  5.927050  3.500000
  0.244717  3.454920  4.000000
  3.236640  2.572950  4.500000
  5.000000  0.000000  5.000000

Command: (setq fd (open "TEST2.DAT" "r"))
<File: #?????>
Command: (setq rl (read-line fd))
"  5.000000  0.000000  0.000000"
Command: (close fd) <= ÀÏ´Ü È­ÀÏÀ» ´ÝÀ½
nil

¿©±â±îÁöÀÇ ÀÛ¾÷°úÁ¤Àº ¶È°°Áö¸¸ À̹ø¿¡´Â Àоî¿Â µ¥ÀÌŸÀÇ ÇüÅ°¡ ¾ÕÀÇ °æ¿ì¿Í ´Ù¸£´Ù. ÀÌÁ¦ ÀÌ°ÍÀ» ¾î¶»°Ô ó¸®ÇØ¾ß ÇÒ±î? ¿ì¼±, ´Ü¼øÈ÷ ¹®ÀÚ¿­·Î µÈ °ÍÀ» ½Ç¼ö °ªÀ¸·Î ¹Ù²Ù´Â ÇÔ¼ö(ATOF) ´Â ÀÌ¹Ì Àß ¾Ë°í ÀÖÀ¸¸®¶ó »ý°¢µÈ´Ù. ±×·¸´Ù¸é Àоî¿Â ¹®ÀÚ¿­À» ½Ç¼ö °ªÀ» ³ªÅ¸³»´Â °¢°¢ÀÇ ¹®ÀÚ¿­·Î ºÐ¸®Çϱ⸸ ÇÏ¸é µÇ°Ú´Ù. ±×·± ÀÛ¾÷À» ÇÒ¶§ À¯¿ëÇÏ°Ô »ç¿ëµÇ´Â ÇÔ¼ö°¡ SUBSTRÀÌ´Ù. ´ÙÀ½À» º¸ÀÚ.

Command: (substr rl 1 10) <= ¹®ÀÚ¿­ RLÀÇ 1¹ø° ¹®ÀÚºÎÅÍ 10°³
"  5.000000"
Command: (setq x (atof (substr rl 1 10))) <= ºÐ¸®µÈ ¹®ÀÚ¿­Àº ½Ç¼ö°ªÀ¸·Î º¯È¯
5.0

°°Àº ¹æ¹ýÀ¸·Î y, z¸¦ ±¸Çغ¸±â ¹Ù¶õ´Ù. ±×·± ´ÙÀ½ ¾Æ·¡¿Í °°ÀÌ ¼öÇàÇØ º¸ÀÚ.

Command: POINT
Point: (list x y z)

Á¤»óÀûÀ¸·Î POINT°¡ ±×·ÁÁ³´Ù¸é ÀÌÁ¦ ¼öÁ¤ÇÑ ÇÔ¼ö¸¦ ¿Ï¼ºÇØ º¸ÀÚ.

(defun draw-point (name / fd rl x y z)
  (setq fd (open name "r"))
  (while (setq rl (read-line fd))
    (setq x (atof (substr rl 1 10)) <= SETQ ÇÔ¼ö ºÎºÐÀÌ ¼öÁ¤ ºÎºÐ
          y (atof (substr rl 11 20))
          z (atof (substr rl 21 30))
    )
    (command "POINT" (list x y z))
  )
  (close fd)
)

5) µ¥ÀÌŸ È­ÀÏÀ» ÀÌ¿ëÇÏ¿© 3D POLYLINE ±×¸®±â

óÀ½ ÀÔÃâ·ÂÇÔ¼ö¸¦ ¼³¸íÇϱâ À§ÇØ Á¦ÀÛÇϱâ·Î Çß´ø ¿¹Á¦¸¦ ¿Ï¼ºÇØ º¸°Ú´Ù. ¿ì¼±, µ¥ÀÌŸÀÇ ÇüÅ´ ¹Ù·Î ¾Õ¿¡¼­ ´Ù·ç¾ú´ø ´Ù¸¥ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼­ ÁÖ·Î »ç¿ëµÇ´Â Ãâ·ÂÇü½ÄÀ¸·Î °¡Á¤ÇÏ°í ¸¶Âù°¡Áö·Î DRAW-POINT ÇÔ¼ö¸¦ ¼öÁ¤ÇØ º¸°Ú´Ù.

(defun draw-point (name / fd rl x y z)
  (setq fd (open name "r"))
  (command "3DPOLY") <= 3DPOLY ¸í·ÉÀ» ½ÃÀÛ
  (while (setq rl (read-line fd))
    (setq x (atof (substr rl 1 10))
          y (atof (substr rl 11 20))
          z (atof (substr rl 21 30))
    )
    (command (list x y z)) <= 3Â÷¿ø ÁÂÇ¥°ªÀ» ÀÔ·Â
  )
  (command "") <= 3DPOLY ¸í·ÉÀ» Á¾·á
  (close fd)
)

ÀÌ·¸°Ô ÇÏ¿© ¿Ï¼ºµÈ ÇÁ·Î±×·¥ÀÌ ¸®½ºÆ® 1¿¡ ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥À» TEST2.DAT¸¦ ÀÌ¿ëÇÏ¿© ¼öÇàÇÑ °á°ú´Â ±×¸² 1°ú °°´Ù.


±×¸² 1. TEST2.DAT¸¦ ÀÌ¿ëÇÏ¿© ±×¸° °á°ú

3.2 ½Ã½ºÅÛ º¯¼ö È°¿ë

AutoCAD¿¡´Â ¾à 200°³ ÀÌ»óÀÇ ½Ã½ºÅÛ º¯¼öµéÀÌ Àִµ¥ ¸ðµÎ ÇÁ·Î±×·¡¹ÖÀ» Çϴµ¥ ¸Å¿ì À¯¿ëÇÑ °ÍµéÀÌ´Ù. ÇϳªÇϳª¸¦ »ç¿ëÇغ¸´Â ¿¹Á¦ ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ º¸¸é¼­ °øºÎÇÏ¸é ¸¹Àº µµ¿òÀÌ µÇ¸®¶ó »ý°¢ÇÑ´Ù. ¿©±â¼­´Â ½Ã½ºÅÛ º¯¼ö SNAPBASE¸¦ ÀÌ¿ëÇÑ ¿¹Á¦ ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ º¸°Ú´Ù.

1) AutoLISP¿¡¼­ ½Ã½ºÅÛ º¯¼ö ´Ù·ç´Â ¹æ¹ý

AutoLISP¿¡¼­ ½Ã½ºÅÛ º¯¼öÀÇ °ªÀ» ¾Ë°íÀÚ ÇÒ¶§´Â GETVAR ÇÔ¼ö¸¦ »ç¿ëÇÏ¸ç ½Ã½ºÅÛ º¯¼öÀÇ °ªÀ» º¯°æÇÏ°íÀÚ ÇÒ¶§´Â SETVAR ÇÔ¼ö¸¦ »ç¿ëÇÑ´Ù. ´ÙÀ½À» º¸¸é¼­ ÀÚÁÖ ¾²ÀÌ´Â ½Ã½ºÅÛ º¯¼ö ¸î°¡Áö¸¦ ÀÍÈ÷ÀÚ.

AutoCAD »ó¿¡¼­ ±×¸²À» ±×¸®±â À§ÇØ ÀÓÀÇÀÇ Á¡À» ¼±ÅÃÇÒ¶§¸¶´Ù ÀÛÀº ½ÊÀÚ¼±ÀÌ ±×·ÁÁø´Ù¸é ´ÙÀ½ º¯¼öÀÇ °ªÀ» È®ÀÎÇÏ°í ±× °ªÀÌ 1À̸é 0À¸·Î º¯°æÇÏÀÚ. ±×·± ÈÄ¿¡ ´Ù½Ã ´Ù¸¥ ¸í·ÉÀ» »ç¿ëÇØ º¸ÀÚ.

Command: (getvar "BLIPMODE")
1
Command: (setvar "BLIPMODE" 0)
0

AutoLISP ÇÁ·Î±×·¥¿¡¼­ ±×¸²À» ±×¸±¶§ COMMAND ÇÔ¼ö¸¦ ÅëÇØ AutoCADÀÇ ¸í·É¾î¸¦ »ç¿ëÇÏ°Ô µÇ´Âµ¥ ±× ¼öÇà°úÁ¤ÀÌ Ãâ·ÂÀÌ µÇ¾î¼­ º¸±â°¡ ÁÁÁö ¾ÊÀ» ¶§´Â ´ÙÀ½ º¯¼öÀÇ °ªÀ» È®ÀÎÇÏ°í 0À¸·Î º¯°æÇÏÀÚ. ±×·± ÈÄ¿¡ ´Ù½Ã ±× ÇÁ·Î±×·¥À» »ç¿ëÇØ º¸ÀÚ.

Command: (getvar "CMDECHO")
1
Command: (setvar "CMDECHO" 0)
0

À̹ø °ÍÀº Á» ±î´Ù·Î¿î °ÍÀε¥ AutoLISP ÇÁ·Î±×·¥À» »ç¿ëÇÏ¿© ±×¸²À» ±×¸±¶§ °è»êÀÌ Á¤È®ÇÔ¿¡µµ ºÒ±¸ÇÏ°í °¡²û ¾û¶×ÇÑ °÷¿¡ ±×¸²À» ±×¸®´Â °æ¿ì°¡ ÀÖ´Ù. ±×·± °æ¿ì´Â º¸Åë OSNAP ¸ðµå°¡ ¼³Á¤µÇ¾î ÀÖ´Â °æ¿ìÀε¥ ±×·± °æ¿ì¸¦ ¹æÁöÇϱâ À§Çؼ­´Â ÇÁ·Î±×·¥À» ½ÃÀÛÇϱâ Àü¿¡ ½Ã½ºÅÛ º¯¼ö OSMODEÀÇ ÇöÀç°ªÀ» ÀúÀåÇصΰí 0À¸·Î º¯°æÇÑ ÈÄ ÇÁ·Î±×·¥ÀÌ Á¾·áµÉ¶§ ´Ù½Ã ¿ø·¡ÀÇ °ªÀ¸·Î µ¹·ÁÁÖ´Â °úÁ¤À» °ÅÄ¡´Â °ÍÀÌ ÁÁ´Ù. ´ÙÀ½ÀÇ °£´ÜÇÑ ¿¹¸¦ º¸ÀÚ.

(defun C:MAIN ( / old ...)
  (setq old (getvar "OSMODE")) <= ÇöÀç°ªÀ» ÀúÀå
  (setvar "OSMODE" 0) <= 0À¸·Î º¯°æ
  . . . . . . <= ÀÓÀÇÀÇ ÀÛ¾÷À» ¼öÇà
  (setvar "OSMODE" old) <= ÀúÀå°ªÀ¸·Î Àç¼³Á¤
)

2) HATCH¿Í SNAPBASE

HATCH ¸í·É¾î´Â ÀÍÈ÷ Àß ¾Æ´Â ¸í·É¾îÀÏÅ×°í SNAPBASE´Â SNAPÀ̳ª GRIDÀÇ ±âÁØÁ¡À» ÀǹÌÇÏ´Â °ÍÀÌ´Ù. ±×·³, ÀÌ µÑÀº ¾î¶² ½ÄÀ¸·Î °ü°èµÇ¾î Àִ°¡¸¦ ¾Ë¾Æº¸ÀÚ. ¸ÕÀú, ´ÙÀ½°ú °°ÀÌ BOX¸¦ Çϳª ±×¸°ÈÄ °¡·Î 1, ¼¼·Î 0.5ÀÇ °£°ÝÀ¸·Î HATCH¸¦ ¼öÇàÇØ º¸ÀÚ.

Command: LINE
From point: 1.8,1.8
To point: 5.8,1.8
To point: 5.8,5.8
To point: 1.8,5.8
To point: C
Command: HATCH
Pattern (? or name/U,style): U
Angle for crosshatch lines <0>:
Spacing between lines <1.0000>: 0.5
Double hatch area? <N>
Select objects: C
First corner: 1,1
Other corner: 6,6
4 found
Select objects:
Command: HATCH
Pattern (? or name/U,style) <U>:
Angle for crosshatch lines <0>: 90
Spacing between lines <0.5000>: 1
Double hatch area? <N>
Select objects: P
4 found
Select objects:


±×¸² 2. SNAPBASE¸¦ º¯°æÇϱâ Àü

¼öÇàÇÑ °á°ú´Â ±×¸² 2¿Í °°À» °ÍÀ̸ç HATCH°¡ µÈ °ÍÀÌ BOX¸¦ °¡·Î, ¼¼·Î·Î Á¤È®ÇÏ°Ô µîºÐÇÏ°í ÀÖ´Â »óÅ°¡ ¾Æ´Ï´Ù. ±×·³, BOX¸¦ °¡·Î, ¼¼·Î·Î Á¤È®ÇÏ°Ô µîºÐÇϱâ À§Çؼ­´Â ¾î¶² ½ÄÀ¸·Î HATCH¸¦ ¼öÇàÇÏ¿©¾ß ÇÒ±î? ¸ÕÀú, ¾Õ¼­¿Í °°ÀÌ µÇ´Â ÀÌÀ¯¿¡ ´ëÇØ °£´ÜÈ÷ ¼³¸íÇÏ°Ú´Ù. HATCH´Â Ç×»ó ¾î¶² ÁöÁ¤µÈ ±âÁØÁ¡À¸·ÎºÎÅÍ ½ÃÀ۵ȴÙ. ¿©·¯°³ÀÇ ¹°Ã¼¸¦ ±×·Á³õ°í ½ÃÇèÇØ º¸¸é ±Ý¹æ ¾Ë ¼ö Àִµ¥ HATCH¸¦ ½ÃŲ ¹°Ã¼ÀÇ Çü»ó°ú´Â »ó°ü¾øÀÌ ÀÓÀÇÀÇ Á¡¿¡¼­ÀÇ HATCHÀÇ ÇüÅ´ Ç×»ó °°°ÔµÇ´Â °ÍÀÌ´Ù. Áï, ¹°Ã¼¿¡ µû¶ó ÇÊ¿äÇÑ ±âÁØÁ¡À» Àâ¾ÆÁÖ¾î¾ß¸¸ ¿øÇÏ´Â ÇüÅÂÀÇ HATCH¸¦ ¾òÀ» ¼ö ÀÖ´Ù. ÀÌ ±âÁØÁ¡ÀÌ ¹Ù·Î SNAPBASE¶ó´Â ½Ã½ºÅÛ º¯¼öÀ̸ç ÀÌ º¯¼öÀÇ °ªÀ» ¹Ù²Ù´Â °ÍÀÌ HATCHÀÇ ±âÁØÀ» º¯°æ½ÃÅ°´Â °á°ú°¡ µÈ´Ù. ±×·³, À§ÀÇ °úÁ¤À» SNAPBASE¸¦ ´ÙÀ½°ú °°ÀÌ º¯°æÇÑ ÈÄ ´Ù½Ã ¼öÇàÇØ º¸ÀÚ.

Command: SNAPBASE
New value for SNAPBASE
<0.0000,0.0000>: 1.8,1.8

À§ÀÇ HATCH °úÁ¤À» ´Ù½Ã Çѹø ¼öÇàÇØ º¸¸é ±×¸² 3°ú °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù.


±×¸² 3. SNAPBASE¸¦ º¯°æÇÑ ÈÄ

3) BOXÀÇ °¡·Î, ¼¼·Î µîºÐ¼± ±×¸®±â

ÀÌÁ¦, À§¿¡¼­ »ìÆì º» ³»¿ëÀ» Åä´ë·Î ¿¹Á¦ ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ º¸ÀÚ. ÀÌ ¿¹Á¦´Â ¾Õ¼­¿Í °°ÀÌ BOX¸¦ ±×¸° ÈÄ °¡·Î, ¼¼·Î·Î ÁöÁ¤ÇÑ È¸¼ö¸¸Å­ µîºÐÇÏ´Â ¼±À» ±×·ÁÁÖ´Â ÇÁ·Î±×·¥ÀÌ´Ù. ¸¸¾à ÀÌ ÇÁ·Î±×·¥À» SNAPBASEÀÇ ±â´ÉÀ» ¸ð¸£´Â »óÅ¿¡¼­ HATCH ¸í·ÉÀ» »ç¿ëÇÏÁö ¾Ê°í ¸¸µé°Ô µÉ °æ¿ì¿¡´Â ¼±À» µû·Î µû·Î ¿©·¯¹ø ±×·ÁÁְųª Çѹø ±×¸°ÈÄ¿¡ ARRAY ¸í·ÉÀ» »ç¿ëÇؾ߸¸ ÇÑ´Ù. ÀÌ¿Í °°ÀÌ ½Ã½ºÅÛ º¯¼ö¸¦ Àß È°¿ëÇϸé ÇÁ·Î±×·¥À» ÈξÀ ½±°Ô ±×¸®°í ºü¸£°Ô Á¦ÀÛÇÒ ¼ö ÀÖ´Ù. ±×·³, ÇÁ·Î±×·¥ÀÇ °¢ ÀÛ¾÷ ´Ü°è¸¦ »ìÆ캸ÀÚ.

  1. BOX¸¦ ±×¸®±â À§ÇØ BOXÀÇ µÎ ¸ð¼­¸®ÀÇ ÁÂÇ¥°ªÀ» ÀԷ¹޴´Ù. (GETPOINT¿Í GETCORNER ÇÔ¼ö »ç¿ë)
  2. °¡·Î, ¼¼·ÎÀÇ µîºÐȸ¼ö¸¦ ÀԷ¹޴´Ù. (GETINT ÇÔ¼ö »ç¿ë)
  3. ÀÔ·ÂµÈ µÎ ¸ð¼­¸®ÀÇ ÁÂÇ¥°ªÀ» »ç¿ëÇÏ¿© BOX¸¦ ±×¸°´Ù. (COMMAND ÇÔ¼ö¿Í PLINE ¸í·É »ç¿ë)
  4. µÎÁ¡ »çÀÌÀÇ °¡·Î, ¼¼·Î ¹æÇâ ±æÀ̸¦ ÁöÁ¤ÇÑ È¸¼ö·Î ³ª´«´Ù.
  5. ½Ã½ºÅÛ º¯¼ö SNAPBASEÀÇ ÇöÀç°ªÀ» ÀúÀåÇØ µÐ´Ù.
  6. SNAPBASE¸¦ BOXÀÇ ¿ÞÂÊ ¾Æ·¡ ÁÂÇ¥°ªÀ¸·Î ¼³Á¤ÇÑ´Ù. (À̶§ ÁÖÀÇÇÒ Á¡Àº SNAPBASE´Â 2D ÁÂÇ¥°ª¸¸ °¡´É)
  7. ¼¼·Î¼±À» HATCH ¸í·ÉÀ» »ç¿ëÇÏ¿© ±×¸°´Ù.
  8. °¡·Î¼±À» HATCH ¸í·ÉÀ» »ç¿ëÇÏ¿© ±×¸°´Ù.
  9. SNAPBASEÀÇ °ªÀ» ÀúÀåÇصР°ªÀ¸·Î º¯°æÇÑ´Ù.
À§ÀÇ ÀÛ¾÷ ´Ü°è¸¦ ÄÚµùÇÏ¿© ¿Ï¼ºÇÑ ÇÁ·Î±×·¥ÀÌ ¸®½ºÆ® 2¿¡ ÀÖ´Ù.

3.3 »ç¿ëÀÚ Á¤ÀÇ ERROR ó¸® ÇÔ¼ö

AutoLISP¿¡¼­´Â ¿¡·¯°¡ ¹ß»ýÇßÀ»¶§ ó¸®µÉ ÇÔ¼ö¸¦ »ç¿ëÀÚ°¡ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. ÀÌ ÇÔ¼öÀÇ À̸§Àº *ERROR*À̸ç Àμö·Î´Â ¿¡·¯¿¡ °üÇÑ ¹®ÀÚ¿­ÀÌ ÁÖ¾îÁø´Ù. µû¶ó¼­, ÀÌ ¹®ÀÚ¿­¿¡ µû¶ó ó¸® ³»¿ëÀ» °áÁ¤ÇÒ ¼öµµ ÀÖ´Ù. ´ÙÀ½ÀÇ °£´ÜÇÑ ¿¹¸¦ º¸ÀÚ.

(defun *ERROR* (msg)
  (princ "\nError: ")
  (princ msg)
  (princ)
)

À§ÀÇ ¿¡·¯ ó¸® ÇÔ¼ö´Â ´Ü¼øÈ÷ ¿¡·¯¿¡ °üÇÑ ¹®ÀÚ¿­¸¸À» Ãâ·ÂÇÏ°í Á¾·áÇÑ´Ù. ÀÌÁ¦, ¿©±â¿¡ ¸î°¡Áö ¿¡·¯¿¡ ´ëÇÑ Ã³¸®¸¦ Ãß°¡ÇÏÀÚ.

(defun *ERROR* (msg)
  (if (/= msg "Function cancelled")
    (if (= msg "quit / exit abort")
      (princ)
      (princ (strcat "\nError: " msg))
    )
    (princ)
  )
  (princ)
)

°¡²û, ¿¡·¯°¡ ¹ß»ýÇÑ À§Ä¡¸¦ ¾Ë ¼ö ¾ø°Å³ª ÇÒ °æ¿ì¿¡´Â *ERROR* ÇÔ¼ö¸¦ nil·Î ¼³Á¤ÇÑ´Ù. ±×·¸°Ô ÇÏ¸é ¿¡·¯°¡ ¹ß»ýÇÑ ¹®ÀåÀ» Æ÷ÇÔÇÏ°í ÀÖ´Â ÃÖ´ë 100°³±îÁöÀÇ ¹®ÀåÀ» ÃßÀûÇÏ¿© Ãâ·ÂÇØ ÁØ´Ù. ÀÌ ³»¿ëÀ» ¹ÙÅÁÀ¸·Î ¿¡·¯¸¦ ÇϳªÇϳª °íÃÄ ³ª°¥ ¼ö ÀÖ´Ù. µû¶ó¼­, ÇÁ·Î±×·¥ÀÌ ¿Ï¼ºµÇ±â Àü±îÁö´Â ¿¡·¯ ó¸® ÇÔ¼öÀÇ °¡µ¿À» Àá½Ã ¸ØÃçµÎ´Â °ÍÀÌ º¸´Ù Æí¸®ÇÏ´Ù. ¾Æ·¡¿¡¼­ ¹ß»ýÇϱ⠽¬¿î ¿¡·¯¿¡ ´ëÇÑ ¿øÀΰú ±× 󸮹æ¹ýÀ» °£´ÜÈ÷ ¼³¸íÇÏ°Ú´Ù.

1) AutoCAD rejected function

GETVAR³ª SETVAR ÇÔ¼ö »ç¿ë½Ã¿¡ ÁÖ·Î ¹ß»ýÇÏ¸ç ½Ã½ºÅÛ º¯¼ö¸íÀÌ Æ²·È°Å³ª ¸ÂÁö¾ÊÀº ÀÚ·áÇüÀÇ °ªÀ¸·Î ¼³Á¤ÇÑ °æ¿ì ¶Ç´Â °ªÀ» º¯°æÇÒ ¼ö ¾ø´Â º¯¼öÀÇ °ªÀ» º¯°æÇÏ·ÁÇÑ °æ¿ì°¡ ÁÖ ¿øÀÎÀÌ´Ù. ´ÙÀ½ÀÇ ¿¹¸¦ º¸ÀÚ.

Command: (setvar "CMDECOH" 0) <= CMDECHO°¡ ¸Â´Ù.
error: AutoCAD rejected function

2) bad argument type

ÇÔ¼ö¿¡ ¸ÂÁö ¾ÊÀº Àμö°¡ Àü´ÞµÈ °ÍÀÌ ¿øÀÎÀÌ´Ù.

Command: (car 1) <= Àμö´Â ¸®½ºÆ®¶ó¾ßÇÑ´Ù.
error: bad argument type

3) extra right paren

¿À¸¥ÂÊ °ýÈ£ÀÇ °³¼ö°¡ ´õ ¸¹Àº °æ¿ì¿¡ ¹ß»ýÇÑ´Ù.

Command: (princ)) <= ¿À¸¥ÂÊ °ýÈ£°¡ Çϳª ´õ ¸¹´Ù.
error: extra right paren

4) Function cancelled

ÀÔ·ÂÀ» ¿ä±¸ÇÒ¶§ »ç¿ëÀÚ°¡ CTRL+C¸¦ ÀÔ·ÂÇÑ °æ¿ì¿¡ ¹ß»ýÇÑ´Ù.

Command: (getpoint)
*Cancel* <= CTRL+C¸¦ ÀÔ·ÂÇÑ´Ù.
error: Function cancelled

5) incorrect number of arguments to a function

»ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö¿¡ Àü´ÞµÇ´Â ÀμöÀÇ ¼ö°¡ ¸ÂÁö ¾ÊÀº °æ¿ì¿¡ ¹ß»ýÇÑ´Ù.

Command: (draw-grid) <= Àμö¾øÀÌ ½ÇÇà
error: incorrect number of arguments to a function

6) malformed list

È­ÀÏ·Î ºÎÅÍ ÇÁ·Î±×·¥À» ·ÎµùÇÏ´Â °æ¿ì¿¡ ¹ß»ýÇÏ¸ç ¸®½ºÆ®ÀÇ °ýÈ£°¡ ºÎÁ·ÇÑ °ÍÀÌ ¿øÀÎÀÌ µÈ´Ù. ÀÌ ¿¡·¯¸¦ ¼öÁ¤Çϱâ À§ÇØ ÇÁ·Î±×·¥ Äڵ带 ´Ù½Ã º¸´Â °ÍÀº ¸Å¿ì Èûµç ÀÏÀ̹ǷΠÆò¼Ò¿¡ µé¿©¾²±â¿Í Àڱ⠳ª¸§³»·ÎÀÇ Á¤ÇüÈ­µÈ ¹æ½ÄÀ¸·Î ÄÚµùÇÏ¿© ¿¡·¯ ¹ß»ý ¼ÒÁö¸¦ Á¦°ÅÇÏ´Â °ÍÀÌ °¡Àå ¹Ù¶÷Á÷ÇÏ°Ú´Ù.

7) null function

nil·Î Á¤ÀÇµÈ ÇÔ¼ö¸¦ »ç¿ëÇÏ·ÁÇÑ °æ¿ì¿¡ ¹ß»ýÇÑ´Ù.

Command: (cad 1) <= CAD´Â Á¸ÀçÇÏÁö ¾Ê´Â ÇÔ¼öÀÌ´Ù.
error: null function

8) quit / exit abort

QUIT³ª EXIT ÇÔ¼ö¸¦ ½ÇÇàÇÏ¸é ¹ß»ýÇÑ´Ù. ÀÌ µÎ ÇÔ¼ö´Â ÇÁ·Î±×·¥ÀÇ µð¹ö±ë(debugging)½Ã¿¡ ÇÊ¿äÇÑ À§Ä¡¿¡¼­ ÇÁ·Î±×·¥À» Á¾·á½ÃÅ°±â À§ÇØ ÁÖ·Î »ç¿ëµÈ´Ù.

Command: (quit)
error: quit / exit abort



°ü·Ã ÀÚ·á
disk [1] DPOINT.LSP : È­ÀϷκÎÅÍ ÁÂÇ¥°ªÀ» Àо 3D POLYLINEÀ» ±×·ÁÁÖ´Â ÇÁ·Î±×·¥
disk [2] DGRID.LSP : BOX¸¦ °¡·Î, ¼¼·Î·Î ÁöÁ¤ÇÑ È¸¼ö¸¸Å­ µîºÐÇÏ´Â ¼±À» ±×·ÁÁÖ´Â ÇÁ·Î±×·¥

Last updated 2002-09-06 by choi@moon-sun.com
This page has been accessed : Counter times.
Home