AutoLISP °­ÁÂ [7]


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


7. È°¿ë¿¹Á¦

À̹øÈ£¿¡´Â ¾Õ¼­ ¹è¿î ³»¿ëµéÀ» ´Ù½Ã Á¤¸®ÇÏ´Â Àǹ̿¡¼­ ¸î°¡Áö ³»¿ëÀ» Á¾ÇÕÇÑ ¿¹Á¦Çϳª¸¦ ¼Ò°³ÇÒ±î ÇÑ´Ù. ´Ü°èÀûÀ¸·Î ¹®Á¦¸¦ ÇØ°áÇØ ³ª°¡¸é¼­ µ¿½Ã¿¡ ÀÌÁ¦±îÁö ¹è¿î³»¿ëµéÀ» Á¤¸®ÇØ º¸µµ·Ï ÇÏ°Ú´Ù. ÀÌÁ¦ºÎÅÍ ¿Ï¼ºÇØ°¥ ÇÁ·Î±×·¥Àº X, Y ºñÀ²ÀÌ ´Ù¸£°Ô INSERTµÈ BLOCKÀ̳ª MINSERTµÈ BLOCKÀ» EXPLODE ÇØÁÖ´Â ±â´ÉÀ» °®°ÔµÈ´Ù. ¸ÕÀú, ±× ±â´ÉÀ» ¾î¶»°Ô ±¸ÇöÇÒ ¼ö ÀÖÀ»Áö¿¡ ´ëÇØ »ý°¢Çغ¸ÀÚ.

7.1 ±âº» ¼³°è

´ÙÀ½°ú °°Àº ¼ø¼­·Î ÀÛ¾÷À» ¼¼ºÐÈ­ÇÒ ¼ö ÀÖ´Ù.

1) ±âÁ¸ÀÇ EXPLODE ¸í·ÉÀ¸·Î ºÐ¸®µÇÁö ¾Ê´Â X, Y ½ºÄÉÀÏÀÌ ´Ù¸£°Ô INSERTµÈ BLOCK ¼±ÅÃÇÑ´Ù.
2) ¼±ÅÃµÈ BLOCKÀÇ ¿£Æ¼Æ¼ Á¤º¸, Áï BLOCKÀÇ À̸§°ú X, Y ½ºÄÉÀϵîÀ» ¾ò¾î³½´Ù.
3) BLOCKÀÇ À̸§À» ÅëÇØ SYMBOL TABLEÀ» °Ë»öÇÏ¿© BLOCK Á¤ÀÇ ¿£Æ¼Æ¼ÀÇ À̸§À» ¾ò´Â´Ù.
4) ±× ¿£Æ¼Æ¼¸¦ ½ÃÀÛÀ¸·ÎÇÏ¿© °¢°¢ÀÇ BLOCK Á¤ÀÇ ¿£Æ¼Æ¼ÀÇ Á¤º¸¸¦ ¾ò´Â´Ù.
5) ¿£Æ¼Æ¼ÀÇ ÁÂÇ¥Á¡À» BLOCKÀÇ X, Y ½ºÄÉÀϸ¦ ÀÌ¿ëÇÏ¿© ÁÂÇ¥º¯È¯ÇÑ ÈÄ ´Ù½Ã ±×·ÁÁØ´Ù.
6) MINSERTµÈ °æ¿ì¿¡´Â BLOCK ÇÑ°³¿¡ ÇØ´çÇÏ´Â ¿£Æ¼Æ¼µéÀ» ¸ðµÎ EXPLODEÇÑ ÈÄ¿¡ ±× ¿£Æ¼Æ¼µéÀ» ¸ðµÎ Çà, ¿­ÀÇ °³¼ö¸¸Å­ ¹è¿­ÇÏ¸é µÈ´Ù.

±×¸®°í, À̹ø ¿¹Á¦ ÇÁ·Î±×·¥¿¡¼­´Â ´ç¿¬È÷ ±âº»ÀûÀÎ EXPLODE ¸í·ÉÀÇ ±â´ÉÀ» ¼öÇàÇϸç, BLOCK Á¤ÀÇ ¿£Æ¼Æ¼µéÁß 3DFACE, INSERT, LINE, POINT, POLYLINE, SOLID, TRACE¿¡ ´ëÇؼ­¸¸ Á¦ÇÑÀûÀ¸·Î »ç¿ëµÉ ¼ö ÀÖ´Ù. °î¼±À» Æ÷ÇÔÇÏ´Â ¿£Æ¼Æ¼µéÀº ¿£Æ¼Æ¼ ÇüÅ°¡ ¹Ù²î°Å³ª ¿©·¯°³ÀÇ Á÷¼±±¸°£À¸·Î ºÐ¸®ÇؾßÇÏ´Âµî ¸î°¡Áö ¾î·Á¿òÀÌ ÀÖÀ½À¸·Î ±¸ÇöÇÏÁö ¾Ê°Ú´Ù. ±×·¯³ª, ±¸ÇöÀÌ ÀüÇô ºÒ°¡´ÉÇÑ °ÍÀº ¾Æ´Ï´Ï Á÷Á¢ Á¦ÀÛÇØ º¸±â ¹Ù¶õ´Ù.

7.2 »ó¼¼ ¼³°è

1) ¿£Æ¼Æ¼ Á¾·ù¿¡ µû¸¥ EXPLODE ¼öÇà (ent-explode)

¿ø·¡ EXPLODE ¸í·ÉÀº ¿£Æ¼Æ¼µéÁß DIMENSION, INSERT, POLYLINE¿¡ ´ëÇØ ÀÛ¾÷À» ¼öÇàÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­, DIMENSION, POLYLINE¿¡ ´ëÇؼ­´Â ¿ø·¡ ¸í·ÉÀ» ±×´ë·Î »ç¿ëÇϱâ·Î ÇÏ°í INSERT¿¡ ´ëÇؼ­¸¸ »õ·Î¿î ó¸® °úÁ¤À» ¼öÇàÇϵµ·Ï ÇÑ´Ù. ¿£Æ¼Æ¼ÀÇ ÇüŸ¦ ¾ò´Â ¹æ¹ýÀº ¾Æ·¡ ¿¹¸¦ ÂüÁ¶¹Ù¶ø´Ï´Ù.

Command: LINE
From point: 0,0
To point: 2,2
To point:
Command: (cdr (assoc 0 (entget (car (entsel)))))
Select object: 1,1
"LINE"

2) ºí·°¿¡ ´ëÇÑ EXPLODE ¼öÇà (exp-insert)

ºí·°ÀÇ X, Y scale°ú ¿­, ÇàÀÇ ¼ö, LAYER À̸§À» ±¸ÇÑ´Ù. ÀÌ °æ¿ì¿¡µµ À§¿Í ¸¶Âù°¡Áö·Î X, Y, scaleÀÌ ¸ðµÎ °°°í, MINSERT µÈ °ÍÀÌ ¾Æ´Ï¸é ¿ø·¡ EXPLODE ¸í·ÉÀ» ±×·¡µµ »ç¿ëÇÏ°Ô µÈ´Ù. ±×·± °æ¿ì°¡ ¾Æ´Ï¸é, ³ª¸ÓÁö Ãß°¡ÀûÀÎ BLOCK¿¡ °üÇÑ Á¤º¸¸¦ ±¸ÇÑ´Ù.

Command: BLOCK
Block name (or ?): TEST
Insertion base point: 0,0
Select objects: L
1 found
Select objects:
Command: MINSERT
Block name (or ?): TEST
Insertion point: 0,0
X scale factor <1>/Corner/XYZ: 2
Y scale factor (default=X): 3
Rotation <0>: 15
Number of rows (---) <1>: 4
Number of columns (|||) <1>: 5
Unit cell or distance between rows (---): 6
Distance between columns (|||): 8
Command: (entget (car (entsel)))
Select object: 0,0
((-1 , <Entity name: 60000044>)
 (0 . "INSERT")
 (8 . "0")
 (2 . "TEST") <= ºí·° À̸§
 (10 0.0 0.0 0.0) <= »ðÀÔ À§Ä¡
 (41 . 2.0) <= X scale
 (42 . 3.0) <= Y scale
 (50 . 0.261799) <= ȸÀü°¢
 (43 . 2.0) <= Z scale
 (70 . 5) <= ¿­ÀÇ ¼ö
 (71 . 4) <= ÇàÀÇ ¼ö
 (44 . 8.0) <= ¿­ °£°Ý
 (45 . 6.0) <= Çà °£°Ý
 (210 0.0 0.0 1.0))
Command: (tblsearch "BLOCK" "TEST")
((0 . "BLOCK")
 (2 . "TEST") <= ºí·° À̸§
 (70 . 64) <= ºí·°ÀÌ »ç¿ëÀ̶ó´Â ¶æÀÇ ÇüÅ flag
 (10 0.0 0.0 0.0) <= »ðÀÔ À§Ä¡
 (-2 . <Entity name: 400009e5>)) <= ºí·°ÀÇ ½ÃÀÛ ¿£Æ¼Æ¼ À̸§

3) ºí·°ÀÇ Á¤º¸¸¦ ÅëÇÑ ¿£Æ¼Æ¼ ºÐ¸® (exp-block)

À§¿¡¼­ È®ÀÎÇÑ ¹Ù¿Í °°ÀÌ ÇØ´ç BLOCKÀÇ Á¤º¸ÀÇ ³¡¿¡´Â ¿£Æ¼Æ¼ À̸§ÀÌ µé¾îÀִµ¥ ÀÌ°ÍÀ» ÀÌ¿ëÇϸé BLOCK ³»¿¡ ¾î¶² ¿£Æ¼Æ¼µéÀÌ Æ÷ÇԵǾîÀִ°¡¸¦ ¾Ë ¼ö ÀÖ´Ù.

Command: (setq en (cdr (assoc -2 (tblsearch "BLOCK" "TEST"))))
<Entity name: 400009e5>
Command: (entget en)
((-1 . <Entity name: 400009e5>) (0 . "LINE") (8 . "0")
 (10 0.0 0.0 0.0) (11 2.0 2.0 0.0) (210 0.0 0.0 1.0))
Command: (setq en (entnext en))
nil <= ´õ ÀÌ»ó BLOCK¿¡ Æ÷ÇÔµÈ entity°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù´Â ¶æ

À§ÀÇ °úÁ¤À» ÅëÇØ ¾ò¾î³½ ¿£Æ¼Æ¼ Áß 3DFACE, INSERT, LINE, POINT, POLYLINE, SEQEND, SOLID, TRACE, VERTEX¿¡ ´ëÇؼ­¸¸ »ðÀ﵃ ¶§ÀÇ X, Y scale¿¡ µû¸¥ ÁÂÇ¥º¯È¯ ÀÛ¾÷À» ¼öÇàÇϵµ·Ï ÇÏ°Ú´Ù. ±× Áß POLYLINE°ú SEQEND °°ÀÌ ±âÇÏÇÐÀûÀÎ ÀڷḦ °®Áö ¾Ê´Â ¿£Æ¼Æ¼ ÀÚ·á¿Í INSERTÀÇ °æ¿ì¸¦ Á¦¿ÜÇÏ¸é ¸ðµÎ 10, 11, 12, 13 Çʵ常À» »ç¿ëÇÑ´Ù. ¾Æ·¡¸¦ º¸ÀÚ.

  10 11 12 13
3DFACE * * * *
LINE * *    
POINT *      
SOLID * * * *
TRACE * *    
VERTEX *      

À§ÀÇ ÀڷḦ Àß ºÐ¼®ÇØ º¸¸é °¢ ¿£Æ¼Æ¼µéÀ» ó¸®ÇÏ´Â ÇÔ¼ö¸¦ µû·Î µû·Î ÀÛ¼ºÇÒ ÇÊ¿ä°¡ ¾øÀ½À» ¾Ë ¼ö ÀÖ´Ù. Áï, ÁÂÇ¥Á¡ÀÌ 1, 2, ±×¸®°í 4°³ÀÎ °æ¿ì¿¡ ´ëÇÑ Ã³¸® ÇÔ¼ö¸¸À» ÀÛ¼ºÇÏ¸é µÇ°Ú´Ù.

±×¸®°í, ºÐ¸®ÇÒ ¼ö ¾ø´Â ¿£Æ¼Æ¼°¡ ºí·°³»¿¡ Á¸ÀçÇÏ´Â °æ¿ì¿¡´Â ¿¡·¯¸¦ ¹ß»ý½ÃÅ°°í ÀÛ¾÷À» °è¼Ó ¼öÇàÇÑ ÈÄ ÀϹÝÀûÀÎ EXPLODE ¸í·É¿¡¼­Ã³·³ ¿ø·¡ ºí·°À» µµ¸é»ó¿¡¼­ ¿ÏÀüÈ÷ »èÁ¦ÇÏÁö ¾Ê°í ±×´ë·Î µÐ´Ù.

4) ¿£Æ¼Æ¼ µ¥ÀÌŸÀÇ ÁÂÇ¥ º¯È¯ (calc-xpoint, subst-point, point?-exp)

¸ÕÀú, scaling, ±× ´ÙÀ½À¸·Î ¾Æ·¡¿¡ ÀÖ´Â ÀÍÈ÷ Àß ¾Ë°í ÀÖÀ» 2Â÷¿ø ȸÀüº¯È¯ °ø½ÄÀ» »ç¿ëÇÏ°í, ¸¶Áö¸·À¸·Î translationÀ» ÅëÇØ ¿£Æ¼Æ¼ÀÇ ÁÂÇ¥Á¡À» ÁÂÇ¥º¯È¯ÇÏ°Ô µÈ´Ù. À̹ø ¿¹Á¦¿¡¼­´Â ÀÌ·¸°Ô ¾òÀº ÁÂÇ¥Á¡À» AutoCAD ¸í·É¿¡ Á÷Á¢»ç¿ëÇؼ­ ¿£Æ¼Æ¼¸¦ Àç»ý¼ºÇÏ´Â ¹æ¹ýÀ» »ç¿ëÇÏÁö ¾Ê°í, ENTMAKE ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© º¸´Ù ºü¸£°Ô ¿£Æ¼Æ¼¸¦ »ý¼ºÇÏ¿´´Ù. »ç½Ç, ENTMAKE ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¿£Æ¼Æ¼ÀÇ ¼±Çüųª ·¹ÀÌ¾î ¼³Á¤µîÀ» °¢°¢ ´Ù¸¥ AutoCAD ¸í·ÉÀ» »ç¿ëÇÏ¿© ¼öÇàÇÏ°Ô µÇ¹Ç·Î ÇÁ·Î±×·¥µµ º¹ÀâÇØÁö°Ô µÈ´Ù.

new_x = old_x * cos(ang) - old_y * sin(ang)
new_y = old_x * sin(ang) + old_y * cos(ang)

±×¸®°í, BLOCK ¼Ó¿¡ ³»Æ÷µÈ BLOCKÀÇ °æ¿ì¿¡´Â »ðÀÔ À§Ä¡¿Í X, Y scale, Çà, ¿­ÀÇ °£°Ý µ¥ÀÌŸ¸¦ º¯È¯ÇÑ ÈÄ BLOCK ÇüÅ ±×´ë·Î »ðÀÔÇÑ´Ù (INSERT-EXP ÇÔ¼ö ÂüÁ¶).

5) »õ·Î »ý¼ºµÈ ¿£Æ¼Æ¼µéÀ» ÇϳªÀÇ selection-setÀ¸·Î ¸¸µç´Ù.(pick-entity)

ÀÌ ±â´ÉÀº EXPLODE ÀÌÈÄ¿¡ ºÐ¸®µÈ ¿£Æ¼Æ¼µéÀ» ÇѲ¨¹ø¿¡ Á¶ÀÛÇϱâ À§Çؼ­ ¶Ç´Â MINSERT µÈ BLOCKÀ» ºÐ¸®½ÃŲ ÈÄ¿¡ ARRAY Çϱâ À§ÇØ »ç¿ëµÈ´Ù. ÀÌ ±â´ÉÀÇ ±¸Çö °úÁ¤À» »ìÆ캸¸é ¸ÕÀú, ¸ðµç ÀÛ¾÷¿¡ ¿ì¼±Çؼ­ ÇöÀç °¡Àå ¸¶Áö¸·À¸·Î »ý¼ºµÈ ¿£Æ¼Æ¼ÀÇ À̸§À» º¸°üÇØ µÎ¾ú´Ù°¡ ÇØ´ç ÀÛ¾÷ÀÌ ³¡³­ ½ÃÁ¡¿¡¼­ ÀúÀåÇصР¿£Æ¼Æ¼ ÀÌÈÄ·Î »ý¼ºµÈ ¸ðµç ¿£Æ¼Æ¼ÀÇ À̸§À» Á¶»çÇؼ­ Çϳª¾¿ »õ·Î ¸¸µç selection-set¿¡ Ãß°¡ÇÏ°Ô µÈ´Ù. ÀÌ ±â¹ýÀº ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼­µµ À¯¿ëÇÏ°Ô ¾²ÀÏ ¼ö ÀÖ´Â ±â¹ýÀ̹ǷΠÀß ÀÍÇôµÎ±â ¹Ù¶õ´Ù.


±×¸² 1. ¿¹Á¦ ºí·° Á¤ÀÇ


±×¸² 2. X, Y ½ºÄÉÀÏÀÌ ´Ù¸£°Ô INSERTµÈ »óÅÂ


±×¸² 3. EXPLODEµÈ ÈÄ (ARC¿Í CIRCLEÀº EXPLODEµÇÁö ¾Ê¾Ò´Ù.)


±×¸² 4. MINSERTµÈ »óÅÂ


±×¸² 5. EXPLODEµÈ ÈÄ



°ü·Ã ÀÚ·á
disk [1] MEXPLODE.LSP : X, Y ºñÀ²ÀÌ ´Ù¸¥ BLOCKÀ» EXPLODEÇÏ´Â ÇÁ·Î±×·¥

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