DESIGN/์‹ค๋‚ด๊ฑด์ถ•์˜์„ธ๊ณ„

์˜คํ† ์บ๋“œ ๋ฆฌ์Šต ๋งŒ๋“ค๊ธฐ (CAD LISP ๋งŒ๋“ค๊ธฐ)

์•Œ ์ˆ˜ ์—†๋Š” ์‚ฌ์šฉ์ž 2016. 10. 29. 15:09
๋ฐ˜์‘ํ˜•

์˜คํ† ์บ๋“œ ๋ฆฌ์Šต ๋งŒ๋“ค๊ธฐ (CAD LISP ๋งŒ๋“ค๊ธฐ)





์˜ค๋Š˜์€ ์˜คํ† ์บ๋“œ ๋ฆฌ์Šต ๋งŒ๋“ค๊ธฐ ๋ผ๋Š” ์ฃผ์ œ๋กœ ๊ธ€์„ ์ ์–ด๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์˜คํ† ์บ๋“œ ๋ฆฌ์Šต์˜ ๊ฒฝ์šฐ์—๋Š” ๋งŒ๋“ค๊ธฐ๋Š” ์–ด๋ ค์šด๋ฐ ํ•ด๋†“์œผ๋ฉด 30์ดˆ ๊ฑธ๋ฆด ๊ฒƒ์„ 10์ดˆ๋ฉด ํ•  ์ˆ˜ ์žˆ๋Š”, 5๋ถ„ ๊ฑธ๋ฆด ๊ฒƒ์„ 30๋ฉด ํ•  ์ˆ˜ ์žˆ๋Š”, ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์†๋œ ๋ง๋กœ ํ•œ ๋ฒˆ๋„ ์•ˆํ•œ ์‚ฌ๋žŒ์€ ์žˆ์–ด๋„ ํ•œ๋ฒˆ๋งŒ ํ•œ ์‚ฌ๋žŒ์€ ์—†๋‹ค! ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ์บ๋“œ ์†์˜ ๋Œ€ํ‘œ ๊ธฐ๋Šฅ์ด๊ณ , ํ•ต์‹ฌ ๊ธฐ์ˆ  ์ค‘์— ํ•˜๋‚˜์ด์ฃ . ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ฆฌ์Šต์˜ ๊ฒฝ์šฐ์—๋Š” ์บ๋“œ๋‹ค๋ฃจ๋Š” ๋งŽ์€ ๋ถ„๋“ค์ด ์–ด๋–ป๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ• ์ง€ ๊ณค๋ž€ํ•˜๋‹ค๋ณด๋‹ˆ ์ธํ„ฐ๋„ท ์ƒ์˜ ๋‹ค๋ฅธ ๋ถ„๋“ค์ด ๋งŒ๋“ค์–ด๋†“์€ ๋ฆฌ์Šต ํŒŒ์ผ์„ 500์›, 1000์› ๋“ฑ ์ €๋ ดํ•œ ๊ฐ€๊ฒฉ์„ ์ฃผ๊ณ  ์‚ฌ์„œ ์“ฐ์‹œ๋Š” ๋ถ„๋“ค์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” ๊ทธ ๋ถ„๋“ค ์—ญ์‹œ ํ•ต์‹ฌ์ ์œผ๋กœ ๋ณธ์ธ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ๋‹จ์ถ•ํ‚ค๋“ค๋งŒ ๋งŒ๋“ค์–ด๋‚ด๋‹ค๋ณด๋‹ˆ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ณธ์ธ์ด ํ•„์š”ํ•œ ๋ช…๋ น ์ˆ˜ํ–‰์ด ์—†์œผ๋ฉด ๊ทธ๋ƒฅ ์ˆ˜์ž‘์—…์œผ๋กœ ํ•ด๋ฒ„๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.





์‚ฌ์‹ค ์บ๋“œ ๋ฆฌ์Šต์„ ๋งŒ๋“œ์‹œ๋ ค๊ณ  ํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด ์บ๋“œ ๋ฆฌ์ŠตํŒŒ์ผ์„ ๋ด๋„ ์ด๊ฒŒ ๋ญ” ์†Œ๋ฆฌ์ธ๊ฐ€~ ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋‹น์—ฐํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒ๋ฉด CAD LISP ์€ ์บ๋“œ์— ๊ด€ํ•œ ๋จพ์šด ์ง€์‹์„ ์š”๊ตฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์ธํ„ฐ๋„ท ์ƒ์˜ ์บ๋“œ ๋ฆฌ์Šต ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์„œ ์˜ฌ๋ฆฌ๋Š” ๋ถ„๋“ค์€ ์บ๋“œ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ๋งŒ ์•Œ๊ณ  ๊ณ„์‹  ๋ถ„๋“ค์ด ์‚ฌ์‹ค ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๊ฒŒ ๋ญ” ์†Œ๋ฆฌ๋ƒ ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ์ž ์‹œ ๊ฐ„๋‹จํ•œ ์˜คํ† ์บ๋“œ ๋ฆฌ์Šต ๋งŒ๋“ค๊ธฐ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด์„œ ์˜คํ† ์บ๋“œ ๋ฆฌ์Šต์ด ์–ด๋–ป๊ฒŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๋ฉด์„œ ์ถ”ํ›„์— ์ด๋Ÿฌํ•œ ๋ฐฉํ–ฅ์„ ์ค€๋น„ํ•˜์‹œ๋ ค๋Š” ๋ถ„๋“ค์—๊ฒŒ ์ •๋ณด๋ฅผ ๋“œ๋ฆฌ๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.





(defun c:a1()

 (setq ob (ssget ))

 (setq po (getpoint "๊ธฐ์ค€์  ์ง€์ •"))

 (setq de 100)

 (command "rotate" ob"" po de)

)


์ž ์ด๊ฒŒ ๋Œ€ํ‘œ์ ์ธ ์บ๋“œ ๋ฆฌ์Šต ๋ช…๋ น์–ด ์†์— ์ด๋ฃจ์–ด์ง„ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์บ๋“œ์— ๋Šฅ์ˆ™ํ•˜์‹  ๋ถ„๋“ค์€ ์ด๊ฑธ ๋ด๋„ ๋ฌด์Šจ ๋ง์ด๋ƒ ๋ผ๊ณ  ํ•˜์‹œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋Œ€ํ‘œ์ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ํด๋ฆญํ•ด์„œ ์“ฐ์ง€ ๋ญ ๋ผ๊ณ  ํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”? ์ž ์‹œ ํ’€์–ด์„œ ์จ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.





(defun cLa1() 

์‹œ์ž‘์„ ํ•œ๋‹ค๋Š” ์„ ์–ธ์ž…๋‹ˆ๋‹ค. a1 ์ผ์ข…์˜ ๋ช…๋ น์–ด๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด์ฃ .


 (setq ob(ssget )) 

 ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ssget๋Š” ๊ฐ์ฒด๋ฅผ ์„ ํƒํ•œ๋‹ค๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ์„ ํƒํ•œ ๊ฐ์ฒด๋ฅผ "ob"๋ผ๋Š” ๋ณ€์ˆ˜์— ์ž…๋ ฅํ•œ๋‹ค๋Š” ๋œป์ด์ฃ . ์‰ฝ๊ฒŒ ๋งํ•ด์„œ setq ๋ผ๋Š” ๋‹จ์–ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ดˆ๋“ฑํ•™๊ต ๋•Œ ๋ฐฐ์šด ์‚ฐ์ˆ˜๋กœ ์น˜๋ฉด = ์ด๋ผ๋Š”ํ‘œํ˜„์ž…๋‹ˆ๋‹ค.


 (setq po (getpoint "๊ธฐ์ค€์  ์ง€์ •"))

 getpoint๋Š” ์ (point)๋ฅผ ๊ธฐ์–ตํ•˜๋ผ! ๋ผ๋Š” ๋ง์ž…๋‹ˆ๋‹ค. ๊ธฐ์–ตํ•œ ์ ์„ po ๋ผ๋Š” ๋ณ€์ˆ˜์— ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ช…๋ น์ด์ฃ .


 (command "rotate" ob"" po de)

 ๋ณธ๊ฒฉ์ ์ธ ๋ช…๋ น์–ด ์ค„์ž…๋‹ˆ๋‹ค. command๋Š” ์ดํ›„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋‹จ์–ด์ž…๋‹ˆ๋‹ค.

 rotate ๋ผ๋Š” ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ  ob ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 "" ๋Š” ์—”ํ„ฐ ์™€ ๊ฐ™์€ ํ‘œํ˜„์ž…๋‹ˆ๋‹ค.

 po(๊ธฐ์ค€์ ), de(๊ฐ๋„) ๊ฐ€ ์ž…๋ ฅ ์ˆœ์„œ ์ž…๋‹ˆ๋‹ค.


)

 ์ด ๋ช…๋ น์–ด๋“ค์„ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰ํ•˜๋ผ๋Š” ๋งˆ์นจํ‘œ ์ ๊ณผ ๊ฐ™์€ ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.





์ž ์–ด๋–ค๊ฐ€์š”? ์ดํ•ด๊ฐ€ ๋˜์…จ๋‚˜์š”? ์‚ฌ์‹ค ๋ฌด์Šจ ๋ง์ธ์ง€ ์ดํ•ด๊ฐ€ ์•ˆ๋œ๋‹ค, ์•Œ๊ฒ ๋Š”๋ฐ ๊ทธ ์ด์™ธ์—๋Š” ์–ด์ฉŒ๋ผ๊ณ ? ๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ Š์€ ์นœ๊ตฌ๋“ค ๊ฒฝ์šฐ์—๋Š” ์ด ๋ถ€๋ถ„๋“ค์„ ํ•œ๋ฒˆ์ฏค ๋ณด์…จ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ....




์ปดํ“จํ„ฐ ๊ณต๋ถ€ ์ค‘ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋“ค์–ด๊ฐ€๋Š” ๋ช…๋ น์–ด๋“ค์ด ๋ณตํ•ฉ์ ์œผ๋กœ ์„ž์—ฌ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.



Auto Cad Lisp ์˜ ๊ฒฝ์šฐ ์บ๋“œ์— ๋Œ€ํ•ด์„œ ์ž˜ ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„๋“ค์ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜๋Š” ์ด์œ ๋Š” ๋ฐ”๋กœ ๊ทธ ๋ถ„๋“ค์˜ ์ฃผ ์ „๊ณต์ด ์บ๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . ๊ทธ๋ž˜์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ชฝ์˜ ๋ฆฌ์Šต๊ณผ ๊ด€๋ จ๋œ ์–ธ์–ด๋“ค์„ ๊ณต๋ถ€ํ•ด์„œ ์ตํžŒ๋‹ค๋ฉด ์ด๋Ÿฌํ•œ ๋ฆฌ์Šต์„ ๋งŒ๋“œ๋Š”๋ฐ  ๋„์›€์ด ๋˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์•„์ง๊นŒ์ง€ ๊ตญ๋‚ด์—์„œ๋Š” ๋ฆฌ์Šต๋งŒ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€๋“ค์€ ์—ด๋ฆฌ์ง€ ์•Š๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์บ๋“œ ๋ฆฌ์Šต์€ ์–ธ์ œ๋‚˜ ์ˆ˜์š”๊ฐ€ ๋งŽ์€ ํŒŒํŠธ์ž…๋‹ˆ๋‹ค. ๊ตญ๋‚ด ์ œ์กฐ์—…๊ณผ ๊ฑด์„ค์—…์„ ๋ง‰๋ก ํ•˜๊ณ  ์บ๋“œ๊ฐ€ ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š” ํŒŒํŠธ๋“ค์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‹ค๋ณด๋‹ˆ ์†Œ์ˆ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ ๋ถ„๋“ค๊ณผ ์†Œ์ˆ˜์˜ ์ด๋Ÿฌํ•œ ์บ๋“œ ๋ฆฌ์Šต์„ ๋งŒ๋“œ์‹ค ์ค„ ์•„๋Š” ๋ถ„๋“ค์ด ๋…์ ์ ์œผ๋กœ ์ €๋ ดํ•œ ๊ฐ€๊ฒฉ์— ๋ฆฌ์Šต์„ ํŒ๋งคํ•˜๊ณ  ์žˆ์ฃ . ๋‹ค๋งŒ ๊ทธ ๋‹ค์šด๋กœ๋“œ ์–‘์ด ์–ด๋งˆ์–ด๋งˆ ํ•˜๋‹ค๋Š” ๊ฑด ์ด๋ฏธ ๋ชจ๋‘๊ฐ€ ์•Œ๊ณ  ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.





์ด ํฌ์ŠคํŒ…์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ KG ์•„์ดํ‹ฐ๋ฑ…ํฌ ๋ผ๋Š” IT๋ถ„์•ผ ์ „๋ฌธ๊ธฐ์ˆ ํ•™์›์—์„œ ์ ์–ด๋“œ๋ฆฝ๋‹ˆ๋‹ค. ํƒ€ ๊ธฐ๊ด€๋ณด๋‹ค ์‹ค๋ฌด์ ์ธ ๊ณต๋ถ€๋ฅผ ํ†ตํ•ด์„œ ํ•™์ƒ๋“ค์˜ ์‹ค๋ ฅ ํ–ฅ์ƒ์„ ๋‹จ๊ธฐ๊ฐ„์— ์ง‘์ค‘์ ์œผ๋กœ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๊ณ , ์‹ค์ œ๋กœ ์บ๋“œ์˜ ๋ช…๋ น ๊ตฌ๋ฌธ๋“ค์ด ๋Œ€๋ถ€๋ถ„ C์–ธ์–ด์™€ ์ž๋ฃŒ๊ตฌ์กฐ,C++์„ ๊ธฐ์ค€์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ณธ์›์—์„œ ์ œ์ž‘๋˜๋Š” LISP ํŒŒ์ผ ์—ญ์‹œ ์ œ๋ฒ• ์žˆ๋Š” ํŽธ์ด์ฃ . (๋‹จ ์ด ๊ฒฝ์šฐ์—๋Š” ํ•™์ƒ ๊ฐœ์ธ์˜ ์ €์ž‘๋ฌผ๋กœ ์ทจ๊ธ‰๋˜์–ด ํ•จ๋ถ€๋กœ ๊ณต๊ฐœ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.)




์บ๋“œ LISP ๋งŒ๋“ค๊ธฐ? ์งง์€ ์‹œ๊ฐ„๋งŒ ํˆฌ์žํ•œ๋‹ค๋ฉด ๋ˆ„๊ตฌ๋‚˜ ๋ณธ์ธ์ด ์›ํ•˜๋Š” LISP ํŒŒ์ผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ๋ณธ์ธ ์ง€์—ญ์— ๋งž๋Š” ๊ณต๋ถ€๊ธฐ๊ด€๊ณผ ๋ฐฉ๋ฒ•์„ ์•ˆ๋‚ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.





๋ฐ˜์‘ํ˜•