AutoLISP °­ÁÂ [4]


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


4. Entity¿Í Selection-Set

4.1 ±âº»ÀûÀÎ entity ó¸®

À̹ø¿¡´Â entity¿Í selection-set Á¶ÀÛ ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÀÌ¹Ì ±×·ÁÁø ¼±À» ¼±ÅÃÇÑ ÈÄ OFFSETÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇØ º¸°Ú´Ù. ¸ÕÀú, ¼±À» ±×·Áº¸ÀÚ.

Command: LINE
From point: 1,1
To point: 2,2
To point:

±×·³, ÀÌÁ¦ ±× ¼±ÀÌ ¾î¶² ÇüÅ·ΠAutoCADÀÇ µµ¸é µ¥ÀÌŸ º£À̽º³»¿¡ ÀúÀåµÇ¾î ÀÖ´ÂÁö ¾Ë¾Æº¸ÀÚ. ±×·¯±â À§Çؼ­ ENTSEL ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ entity¸¦ ¼±ÅÃÇÑ´Ù.

Command: (setq ent (entsel))
Select object: 1.5,1.5 <= Áß½ÉÁ¡À» ¼±ÅÃÇÑ´Ù.
(<Entity name: XXXXXXXX> (1.5 1.5 0.0))

À§ÀÇ °úÁ¤À» ÅëÇؼ­ ¾òÀ» ¼ö ÀÖ´Â °ÍÀº °¢°¢ÀÇ µµ¸é¿ä¼Ò°¡ °¡Áö´Â ¹øÈ£¿Í ¼±ÅÃÇÒ ¶§ »ç¿ëµÈ ÁÂÇ¥Á¡ÀÌ´Ù. ¹øÈ£´Â ±× µµ¸é¿ä¼Ò¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë¾Æ³¾ ¶§ »ç¿ëµÇ´Â Áß¿äÇÑ »çÇ×À̸ç ÁÂÇ¥Á¡ ¶ÇÇÑ À¯¿ëÇÏ°Ô »ç¿ëµÇ´Â »çÇ×ÀÌ´Ù. ÀÌÁ¦, ENTSEL ÇÔ¼ö¸¦ ÅëÇØ ¾ò¾î³½ µµ¸é¿ä¼ÒÀÇ ¹øÈ£¸¦ »ç¿ëÇÏ¿© µµ¸é¿ä¼Ò¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë¾Æ³» º¸ÀÚ.

Command : (setq elist (entget (car ent)))
((-1 . <Entity name: XXXXXXXX>) <= µµ¸é¿ä¼ÒÀÇ À̸§
 (0 . "LINE") <= µµ¸é¿ä¼ÒÀÇ Á¾·ù
 (8 . "0") <= Á¸ÀçÇÏ´Â ·¹À̾î¸í
 (10 1.0 1.0 0.0) <= ¼±ÀÇ ½ÃÀÛÁ¡
 (11 2.0 2.0 0.0) <= ¼±ÀÇ ³¡Á¡
 (210 0.0 0.0 1.0)) <= UCSÀÇ ZÃàÀÇ ¹æÇâ

À§¿Í °°Àº Á¤º¸´Â AutoCADÀÇ µµ¸é µ¥ÀÌŸ º£À̽º³»¿¡ ÀúÀåµÇ¾î Àִµ¥ °¢°¢ÀÇ Á¤º¸¾Õ¿¡ ³ª¿À´Â Á¤º¸ÄÚµå´Â °¢ Á¤º¸°¡ ¹«¾ùÀ» ¶æÇÏ´Â Áö¸¦ ¾Ë·ÁÁØ´Ù.

¹üÀ§ ÀÚ·áÇü
0 - 9 ¹®ÀÚ¿­(string)
10 - 59 ½Ç¼ö(float)
60 - 79 Á¤¼ö(int)
140 - 175 ½Ç¼ö
170 - 175 Á¤¼ö
210 - 239 ½Ç¼ö
999 ÁÖ¼®(¹®ÀÚ¿­)
1000 - 1009 ¹®ÀÚ¿­
1010 - 1059 ½Ç¼ö
1060 - 1079 Á¤¼ö

Ç¥ 1. ÄÚµåÀÇ ¹üÀ§¿Í ÀÚ·áÇü

0 µµ¸é¿ä¼ÒÀÇ Á¾·ù
5 µµ¸é¿ä¼Ò ÇÚµé(handle)
6 ¼±ÀÇ Á¾·ù
7 ¹®ÀÚ ½ºÅ¸ÀÏ À̸§
8 ·¹À̾î À̸§
38 ³ôÀÌ(elevation)
39 µÎ²²(thickness)
62 »ö
67 0ÀÌ¸é ¸ðµ¨ ½ºÆäÀ̽º
210 UCSÀÇ ZÃàÀÇ ¹æÇâ
999 ÁÖ¼®
1000~ È®Àå µµ¸é¿ä¼Ò¿¡ °üÇÑ ÀÚ·á

Ç¥ 2. °íÁ¤ÀûÀÎ DXF ÄÚµå

LINE 10 ½ÃÀÛÁ¡
  11 ³¡Á¡
POINT 10 Á¡ÀÇ À§Ä¡
CIRCLE 10 Áß½ÉÁ¡
  40 ¹Ý°æ
ARC 10 Áß½ÉÁ¡
  40 ¹Ý°æ
  50 ½ÃÀÛ°¢
  51 ³¡°¢
TRACE 10, 11, 12, 13 4°³ÀÇ ¸ð¼­¸®Á¡
SOLID 10, 11, 12, 13 4°³ÀÇ ¸ð¼­¸®Á¡
TEXT 10 À§Ä¡
  40 ³ôÀÌ
  1 ¹®ÀÚ¿­ ³»¿ë
  50 ȸÀü°¢
  51 ±â¿î°¢
  7 ¹®ÀÚ¿­ ½ºÅ¸ÀÏ
  71 ¹æÇâ
  72 ¼öÆò Á¤·Ä Çü½Ä
  73 ¼öÁ÷ Á¤·Ä Çü½Ä
  11 Á¤·Ä ÁÂÇ¥Á¡
SHAPE 10 À§Ä¡
  40 Å©±â
  2 ½¦ÀÌÇÁ À̸§
  50 ȸÀü°¢
  41 X, Y ½ºÄÉÀÏ
  51 ±â¿î°¢
INSERT 66 attribute °ü·Ã flag
  2 ºí·° À̸§
  10 À§Ä¡
  41 X ½ºÄÉÀÏ
  42 Y ½ºÄÉÀÏ
  43 Z ½ºÄÉÀÏ
  50 ȸÀü°¢
  70 ¿­ÀÇ ¼ö
  71 ÇàÀÇ ¼ö
  44 ¿­ÀÇ °£°Ý
  45 ÇàÀÇ °£°Ý
POLYLINE 66 vertex Á¸Àç flag
  10 polylineÀÇ ³ôÀÌ
  70 polyline Á¾·ù flag
  40 ½ÃÀÛ µÎ²²
  41 ³¡ µÎ²²
  71 polygon meshÀÇ M vertex ¼ö
  72 polygon meshÀÇ N vertex ¼ö
  73 smooth surfaceÀÇ M ¹Ðµµ
  74 smooth surfaceÀÇ N ¹Ðµµ
  75 curve¿Í smooth surfaceÀÇ Á¾·ù
VERTEX 10 À§Ä¡
  40 ½ÃÀÛ µÎ²²
  41 ³¡ µÎ²²
  42 arc ±¸°£ÀÇ ³»°¢ÀÇ 1/4ÀÇ tangent
  70 vertex flag
  50 curve fit Á¢¼± ¹æÇâ
SEQEND ÇÊµå ¾øÀ½. POLYLINE VERTEXÀÇ ³¡À» ³ªÅ¸³¿.
3DFACE 10, 11, 12, 13 4°³ÀÇ ¸ð¼­¸®Á¡

Ç¥ 3. Áß¿ä µµ¸é¿ä¼Ò¿¡ ´ëÇÑ DXF ÄÚµå

(±× ¹ÛÀÇ DXF Äڵ尪À̳ª º¸´Ù ÀÚ¼¼ÇÑ Àǹ̴ ¸Å´º¾óÀ» Âü°íÇϽñ⠹ٶø´Ï´Ù.)

±×·³, À§¿¡¼­ ¾òÀº µµ¸é¿ä¼Ò¿¡ °üÇÑ Á¤º¸¿Í DXF ÄÚµå Ç¥¸¦ ÂüÁ¶ÇÏ¿© ¼±ÀÇ ½ÃÀÛÁ¡°ú ³¡Á¡À» ¾Ë¾Æ³»º¸ÀÚ.

Command: (setq sp (assoc 10 elist))
(10 1.0 1.0 0.0)
Command: (setq ep (assoc 11 elist))
(11 2.0 2.0 0.0)

À§¿Í °°ÀÌ ASSOC ÇÔ¼ö¸¦ »ç¿ëÇϸé ÁÖ¾îÁø Ç׸ñ¿¡ ÇØ´çÇÏ´Â ¸®½ºÆ®¸¦ ã¾Æ¼­ ±× ¸®½ºÆ® Àüü¸¦ ¹ÝȯÇÑ´Ù. ´Ù¸¸, ¿©±â¼­ ¿ì¸®¿¡°Ô ÇÊ¿äÇÑ °ÍÀº ÄÚµå ÀÌÈÄÀÇ ÁÂÇ¥°ª¸¸À̹ǷΠ´ÙÀ½°ú °°ÀÌ CDR ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ÁÂÇ¥°ª¸¸À» ¾ò¾î³½´Ù.

Command: (setq sp (cdr sp))
(1.0 1.0 0.0)

¿ì¸®°¡ À̹ø¿¡ ¸¸µé°íÀÚ ÇÏ´Â ÇÁ·Î±×·¥¿¡¼­´Â ¼±ÀÇ ½ÃÀÛÁ¡°ú ³¡Á¡¸¸À» ¾Ë¸éµÇ¹Ç·Î ´ÙÀ½°ú °°ÀÌ ¼±ÅÃµÈ ¼±ÀÇ ½ÃÀÛÁ¡°ú ³¡Á¡¸¸À» ¾Ë·ÁÁÖ´Â ÇÔ¼ö¸¦ ´ÙÀ½°ú °°ÀÌ Á¦ÀÛÇÏ¿´´Ù

(defun p-line (en)
  (setq en (entget en))
  (list (cdr (assoc 10 en))
        (cdr (assoc 11 en))
  )
)

¸ÕÀú, À§ÀÇ ÇÔ¼ö°¡ Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÏ´ÂÁö È®ÀÎÇØ º¸ÀÚ.

Command: (p-line (car (entsel)))
Select object: 1.5,1.5
((1.0 1.0 0.0) (2.0 2.0 0.0))

Á¤»óÀûÀ¸·Î ÀÛµ¿ÇÑ´Ù¸é ´ÙÀ½°ú °°ÀÌ °£´ÜÈ÷ À̹ø ÇÁ·Î±×·¥À» ¿Ï¼ºÇØ º¸ÀÚ.

(defun draw-offline (po off / ang dis sp ep)
  (setq ang (angle (car po) (cadr po)))
  (setq dis (distance (car po) (cadr po)))
  (setq sp (polar (car po) (+ ang (/ PI 2.0)) off))
  (setq ep (polar sp ang dis))
  (command "LINE" sp ep "")
  (setq sp (polar (car po) (- ang (/ PI 2.0)) off))
  (setq ep (polar sp ang dis))
  (command "LINE" sp ep "")
)

(defun draw-offset (en off / ename)
 (setq ename (cdr (assoc 0 (entget (car en)))))
 (cond ((= "LINE" ename) (draw-offline (p-line (car en)) off))
       (T (princ "\nIt is not a line."))
 )
)

(defun C:OLINE ( / en)
  (setq *OFFSET* 1.0)
  (setq en (entsel))
  (draw-offset en *OFFSET*)
  (princ)
)

ÇÁ·Î±×·¥ÀÌ ¿Ï¼ºµÇ¾úÀ¸¸é ¾Õ¼­ ±×¸° ¼±À» ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ ¼öÇàÇØ º¸ÀÚ.

Command: OLINE
Select object: 1.5,1.5

4.2 ´ÙÁß entity ó¸®

ÀÌÁ¦ ¾Õ¼­ Á¦ÀÛÇÑ ÇÁ·Î±×·¥À¸·Î POLYLINEµµ ó¸®ÇÒ ¼ö ÀÖµµ·Ï ¼öÁ¤ÇØ º¸°Ú´Ù. ¸ÕÀú, POLYLINE Çϳª¸¦ ±×·Á¼­ ¾Õ¿¡¼­¿Í °°Àº ¹æ¹ýÀ¸·Î ºÐ¼®ÇØ º¸ÀÚ.

Command: PLINE
From point: 3,3
Current line-width is 0.0000
Arc/Close/Halfwidth/Length/Undo/Width/<Endpoint 
of line>: 5,3
Arc/Close/Halfwidth/Length/Undo/Width/<Endpoint 
of line>: 5,5
Arc/Close/Halfwidth/Length/Undo/Width/<Endpoint 
of line>: 3,5
Arc/Close/Halfwidth/Length/Undo/Width/<Endpoint 
of line>: C

À̹ø¿¡´Â »õ·Î ±×¸° POLYLINEÀÌ µµ¸é»ó¿¡ ¸Ç ¸¶Áö¸·À¸·Î ±×·ÁÁø µµ¸é¿ä¼Ò¶ó´Â Á¡À» ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ µµ¸é¿ä¼ÒÀÇ À̸§À» ¾ò¾î³Â´Ù.

Command: (setq ent (entlast))
<Entity name: XXXXXXXX>

±×¸®°í, ¾Õ¼­¿Í °°Àº ¹æ¹ýÀ¸·Î µµ¸é¿ä¼ÒÀÇ Á¤º¸¸¦ ¾Ë¾Æ³½´Ù.

Command: (setq elist (entget ent))
((-1 . <Entity name: XXXXXXXX>)
 (0 . "POLYLINE")
 (8 . "0")
 (66 . 1)
 (10 0.0 0.0 0.0)
 (70 . 1) <= closed polyline
 (40 . 0.0)
 (41 . 0.0)
 (210 0.0 0.0 1.0)
 (71 . 0)
 (72 . 0)
 (73 . 0)
 (74 . 0)
 (75 . 0))

±×·¯³ª, À§¿Í °°ÀÌ POLYLINE ÀÚü¿¡´Â °¢ Á¤Á¡(vertex)¿¡ ´ëÇÑ ÀÚ·á´Â ´ã°í ÀÖÁö ¾Ê´Ù. ÀÌµé °¢ Á¤Á¡¿¡ ´ëÇÑ ÀÚ·á´Â °¢°¢ÀÇ sub entity¿¡ ÀúÀåµÇ¾î ÀÖÀ¸¸ç ±×°ÍÀº ´ÙÀ½°ú °°ÀÌ ±¸Çس¾ ¼ö ÀÖ´Ù.

Command: (setq ent (entnext ent))
<Entity name: XXXXXXXX>

ù¹ø° Á¤Á¡ÀÇ ºÎ µµ¸é¿ä¼ÒÀÇ À̸§À» ¾ò¾î³½´Ù.

Command: (setq elist (entget ent))
((-1 . <Entity name: XXXXXXXX>)
 (0 . "VERTEX")
 (8 . "0")
 (10 3.0 3.0 0.0) <= Á¤Á¡ÀÇ ÁÂÇ¥°ª
 (40 . 0.0)
 (41 . 0.0)
 (42 . 0.0)
 (70 . 0)
 (50 . 0.0)
 (71 . 0)
 (72 . 0)
 (73 . 0)
 (74 . 0))
Command: (setq ent (entnext ent))
Command: (setq ent (entnext ent))
Command: (setq ent (entnext ent))
Command: (setq ent (entnext ent))
Command: (setq elist (entget ent))
((-1 . <Entity name: XXXXXXXX)
 (0 . "SEQEND")
 (8 . "0")
 (-2 . <Entity name: XXXXXXXX)) <= main entityÀÇ À̸§

ÀÌ»ó°ú °°ÀÌ SEQEND°¡ ³ª¿Ã¶§±îÁö VERTEXÀÇ ÁÂÇ¥°ªÀ» ¾ò¾î³»´Â °úÁ¤À» µÇÇ®ÀÌÇÏ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇØ µÎ¸é Æí¸®ÇÏ´Ù.

(defun p-pline (en / po)
  (setq en (entnext en))
  (while (/= (cdr (assoc 0 (entget en))) "SEQEND")
    (setq po (append po (list (cdr (assoc 10 (entget en))))))
    (setq en (entnext en))
  )
  po
)

ÀÌ ÇÔ¼ö¸¦ À§¿¡¼­ ±×¸° POLYLINE¿¡ »ç¿ëÇØ º¸¸é ´ÙÀ½°ú °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

Command: (p-pline (entlast))
((3.0 3.0 0.0) (5.0 3.0 0.0) (5.0 5.0 0.0) (3.0 5.0 0.0))

Áï, POLYLINE »óÀÇ ¸ðµç vertexÀÇ ÁÂÇ¥°ªÀ» ÇϳªÀÇ ¸®½ºÆ®·Î ¹ÝȯÇÑ´Ù. ±×·¯³ª, ÀÌ°ÍÀº °¢ ±¸°£ÀÌ Á÷¼±ÀÎÁö È£ÀÎÁö¸¦ ¾Ë ¼ö ¾ø°í ÀÌ·± POLYLINE¿¡ ´ëÇØ ÀϹÝÀûÀÎ OFFSET ÇÔ¼ö¸¦ Á¦ÀÛÇÏ´Â °ÍÀÌ °£´ÜÇÏÁö ¾ÊÀ¸¹Ç·Î À̹ø ¿¹Á¦¿¡¼­´Â À̵é ÁÂÇ¥Áß ¾Õ¿¡ ÀÖ´Â µÎ°³¸¸À» »ç¿ëÇÏ°í ±âÁ¸ÀÇ OFFSET ¸í·ÉÀ» »ç¿ëÇÏ¿© °£´ÜÇÏ°Ô ±¸ÇöÇØ º¸°íÀÚ ÇÑ´Ù.

OFFSET ¸í·É¿¡´Â µÎ°¡Áö ¼öÇà¹æ½ÄÀÌ ÀÖ´Ù. ù¹ø°´Â ¹°Ã¼¸¦ ¼±ÅÃÇÑ ÈÄ¿¡ ±× ¹°Ã¼°¡ OFFSETµÇ¾î Áö³ª°¥ Á¡À» ÁöÁ¤ÇÏ´Â ¹æ½ÄÀÌ°í µÎ¹ø°´Â OFFSET °£°ÝÀ» ÁöÁ¤ÇÑ ÈÄ¿¡ ¹°Ã¼¸¦ ¼±ÅÃÇÏ°í OFFSET ¹æÇâÀ» ÁöÁ¤ÇÏ´Â ¹æ½ÄÀÌ´Ù. À̹ø °æ¿ì¿¡´Â POLYLINEÀÇ Ã³À½ µÎ Á¡À» ÀÌ¿ëÇÏ¿© OFFSETµÇ¾î Áö³ª°¥ µÎÁ¡À» ¾Ë¾Æ³¾ ¼ö ÀÖÀ¸¹Ç·Î ù¹ø° ¹æ½ÄÀ» ÀÌ¿ëÇϱâ·Î ÇÏ°Ú´Ù. ¾Õ¿¡¼­ ¼±À» OFFSETÇÏ´ø ÇÔ¼ö¸¦ ÀÀ¿ëÇÏ¿© POLYLINEÀÇ OFFSET ÇÔ¼ö¸¦ ¿Ï¼ºÇØ º¸ÀÚ.

(defun draw-offpline (en po off / ang dis sp1 sp2)
  (setq ang (angel (car po) (cadr po)))
  (setq dis (distance (car po) (cadr po)))
  (setq sp1 (polar (car po) (+ ang (/ PI 2.0)) off))
  (setq sp2 (polar (car po) (- ang (/ PI 2.0)) off))
  (command "OFFSET" "T" en sp1 en sp2 "")
)

(defun draw-offset (en off / ename)
  (setq ename (cdr (assoc 0 (entget (car en)))))
  (cond ((= "LINE" ename) (draw-offline (p-line (car en)) off))
        (( = "POLYLINE" ename) (draw-offpline en (p-pline (car en)) off))
        (T (princ "\nIt is not a line or a polyline."))
  )
)

À§¿Í °°ÀÌ ¾Õ¼­ Á¦ÀÛÇß´ø draw-offset ÇÔ¼ö¿¡µµ POLYLINE 󸮺κÐÀ» Ãß°¡ÇØ Áֱ⠹ٶõ´Ù.

4.3 Selection-Set ó¸®

¸¶Áö¸·À¸·Î ÀÌÁ¦±îÁö ÀÛ¼ºÇÑ ÇÁ·Î±×·¥À» ÇϳªÀÇ µµ¸é¿ä¼Ò°¡ ¾Æ´Ñ ¿©·¯°³ÀÇ µµ¸é¿ä¼ÒÀÇ ¹­À½ÀÎ SELECTION-SETÀ» ó¸®ÇÒ ¼ö ÀÖµµ·Ï È®Àå½ÃÄÑ º¸°Ú´Ù.

SELECTION-SETÀ» ¸¸µé¶§´Â SSGET ÇÔ¼ö¸¦ »ç¿ëÇϴµ¥ ÀÌ ÇÔ¼ö¿¡´Â ¹Ì¸® ¿É¼ÇÀ» Á־ µµ¸é¿ä¼Ò¸¦ ¼±ÅÃÇÏ°Ô ÇÒ ¼öµµ ÀÖ°í "Select objects: " ¹®ÀåÀ» Ãâ·ÂÇÑ ÈÄ »ç¿ëÀÚ°¡ µµ¸é¿ä¼Ò¸¦ ¼±ÅÃÇÏ°Ô ÇÒ ¼öµµ Àִµ¥ ÀÌ °æ¿ì¿¡´Â AutoCAD ¸í·É»ó¿¡¼­ »ç¿ëÇÏ´ø "C", "L", "P", "W" µîÀÇ ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¼Õ½±°Ô µµ¸é¿ä¼Ò¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

ÇöÀç µµ¸é »óÀÇ ¸ðµç µµ¸é¿ä¼Ò¸¦ Áö¿î ÈÄ¿¡ ´ÙÀ½°ú °°ÀÌ ¸î°³ÀÇ µµ¸é¿ä¼Ò¸¦ ±×·Áº¸ÀÚ.

Command: LINE
From point: 1,1
To point: 7,1
To point:
Command: PLINE
From point: 4,2
Current line-width is 0.0000
Arc/Close/Halfwidth/Length/Undo/Width/<Endpoint 
of line>: 4,6
Arc/Close/Halfwidth/Length/Undo/Width/<Endpoint 
of line>: 8,6
Arc/Close/Halfwidth/Length/Undo/Width/<Endpoint 
of line>:
Command: CIRCLE
3P/2P/TTR/<Center point>: 11,6
Diameter/<Radius>: 2
Command: ARC
Center/<Start point>: C
Center: 11,1
Start point: 13,1
Angle/Length of chord/<End point>: 
9,1

ÀÌÁ¦ ¹æ±Ý ±×¸° µµ¸é¿ä¼ÒµéÀ» ÇϳªÀÇ SELECTION-SETÀ¸·Î ¹­±âÀ§ÇØ SSGET ÇÔ¼ö¸¦ »ç¿ëÇØ º¸ÀÚ.

Command: (setq ss (ssget))
Select objects: C
First corner : 0,0
Other corner : 14,9
4 found
Select objects:
<Selection set: X>

À§¿Í °°ÀÌ Çϳª·Î ¹­ÀÎ SELECTION-SET¿¡¼­ ÇϳªÀÇ µµ¸é¿ä¼Ò¸¦ ÃßÃâÇØ ³»±â À§Çؼ­ SSNAME ÇÔ¼ö¸¦ »ç¿ëÇÏ°Ô µÇ´Âµ¥ ÀÌ ¶§ ÇÊ¿äÇÑ °ÍÀÌ ¸î°³ÀÇ µµ¸é¿ä¼Ò°¡ Æ÷ÇԵǾîÀִ°¡¸¦ ¾Ë¾Æº¸±â À§ÇÑ SSLENGTH ÇÔ¼öÀÌ´Ù. ´ÙÀ½À» º¸ÀÚ.

Command: (sslength ss)
4
Command: (entget (ssname ss 0))
<<< POLYLINE¿¡ °üÇÑ Á¤º¸>>>
Command: (entget (ssname ss 1))
<<< LINE¿¡ °üÇÑ Á¤º¸>>>
Command: (entget (ssname ss 2))
<<< CIRCLE¿¡ °üÇÑ Á¤º¸>>>
Command: (entget (ssname ss 3))
<<< ARC¿¡ °üÇÑ Á¤º¸>>>

µµ¸é¿ä¼Ò¸¦ ±×¸° ¼ø¼­¿¡ µû¶ó ¾à°£ÀÇ Â÷À̸¦ º¸ÀÌ°ÚÁö¸¸ ¾Õ¼­ ¼±ÅÃÇß´ø 4°³ÀÇ µµ¸é¿ä¼Ò¿¡ ´ëÇÑ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ¾úÀ¸¸®¶ó »ý°¢µÈ´Ù. À̸¦ ÅëÇØ SELECTION-SET ³»ÀÇ µµ¸é¿ä¼Ò¸¦ ó¸®ÇÏ´Â ¹æ½ÄÀ» Á¤¸®ÇÏ¸é ´ÙÀ½°ú °°´Ù.

(defun do-entity (ss / len index ent)
  (setq len (sslength ss) index 0)
  (while (index < len)
    (setq ent (ssname ss index))
    <<< entity¿¡ µû¸¥ ÀÛ¾÷ ¼öÇà>>>
    (setq index (1+ index))
  )
)

À§ÀÇ ¹æ½ÄÀ» óÀ½¿¡ ÀÛ¼ºÇß´ø C:OLINE ÇÔ¼ö¸¦ ¼öÁ¤ÇÏ¿© Àû¿ëÇØ º» °ÍÀÌ ¸®½ºÆ® 1¿¡ ÀÖ´Â C:OLINE ÇÔ¼öÀÌ´Ù. ±×¸®°í, ¼öÁ¤µÈ ÇÔ¼ö¿¡´Â ENTITY À̸§À» ³Ñ°ÜÁÙ ¶§ ÁÂÇ¥°ªÀ» °°ÀÌ ¹­¾î¼­ ³Ñ°ÜÁÖ´Â ÇüÅ·ΠµÇ¾î Àִµ¥ ÀÌ°ÍÀº OFFSET ÇÔ¼ö°¡ ENTITY À̸§»Ó¸¸ ¾Æ´Ï¶ó ¼±ÅÃµÈ ÁÂÇ¥°ªÀ» ÇÊ¿ä·Î Çϱ⠶§¹®Àε¥ À̹ø ÇÁ·Î±×·¥ÀÇ °æ¿ì¿¡´Â ±× ÁÂÇ¥°ªÀÌ Æ¯º°ÇÑ Àǹ̸¦ °®Áö ¾ÊÀ¸¹Ç·Î ÀÓÀÇÀÇ ÁÂÇ¥°ª(¿øÁ¡)À» ÁöÁ¤ÇÏ¿© »ç¿ëÇÏ¿´´Ù.

¿Ï¼ºµÈ ÇÁ·Î±×·¥À» ¾Õ¼­ ±×¸° µµ¸é¿ä¼Òµé¿¡ ´ëÇØ Àû¿ëÇØ º¸ÀÚ.

Command: OLINE
Select objects: C
First corner: 0,0
Other corner: 14,9
4 found
Select objects:
It is not a line or a polyline.
It is not a line or a polyline.

LINE°ú POLYLINE¿¡ ´ëÇؼ­´Â ¼öÇàÀÌ µÇ°í ARC¿Í CIRCLE¿¡ ´ëÇؼ­´Â ¼öÇàÀÌ µÇÁö ¾ÊÀ½À» ¾Ë ¼ö ÀÖ´Ù.



°ü·Ã ÀÚ·á
disk [1] OLINE.LSP : OFFSETÀ» ±×·ÁÁÖ´Â ÇÁ·Î±×·¥

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


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