S2-1 2016 한국 CDE 학회부문연합학술대회논문집 Proceedings of the Society for Computational Design and Engineering Conference Mixing chamber 를사용하여그라데이션색상을구현하기위한 G-code 생성기개발 노경석 서해원 김태영 이용구 광주과학기술원기계공학부 1 Development of a G-Code generator for color gradation generations in a mixing chamber FDM 3D printers Kyoung-Seok Noh, Hae-Won Seo, Tae-Young Kim, Yong-Gu Lee School of Mechanical Engineering, Gwangju Institute of Science and Technology (GIST) ABSTRACT: The recent 3D printing industry has been focusing on developing 3D printers to fulfill the user s need to bring more colorful and realistic outcomes. Several 3D printers have deployed multiple extruders to print different colors. However, this method has a limit on its availability of colors. To solve this, recent research is focused on using mixing chambers to mix the possible colors to provide more color availability. In this paper, we discuss the environment and algorithm behind the development of G-code which allows a gradation effect of the mix of two filaments. The generation algorithm to make gradient G-code has been implemented in Cura using C ++ and Python. Key Words: 3D Printing, Cura, G-code, Mixing chamber. 1. 서론 3D 프린팅의발전으로다양한 3D 조형물을출력할수있는기술을갖추게되었다. 이에 3D 프린팅은일반적인기계가공분야뿐만아니라식품, 패션등에도적용되어우리의생활전반적인분야에영향을미치고있다. 3D 프린팅은재료의종류와적층하는방식에따라다양한기술이존재하며, 이가운데가장많이사용되는 3D 프린팅방법으로는소결형의 SLS(Selective Laser Sintering) 방식과압출형의 FDM(Fused Deposition Modeling) 방식 [1, 2] 이있다. 특히 FDM 방식의경우고체상태의필라멘트를사용하여 Corresponding Author, lygu@gist.ac.kr C Society for Computational Design and Engineering 출력을하는데, 이방식은필라멘트가녹아노즐을통해압출되어경화된얇은막을쌓으므로제작비용과시간면에서효율적이며, 타방식에비해장치의구조와프로세스가간단하기때문에장비가격과유지보수비용이낮아 3D 프린팅기술대중화를주도하고있다. 또한최근에는 FDM 방식의 3D 프린터의기술이점차발전함에따라다수의노즐을배열하거나 mixing chamber 를이용하여다양한색상이나재료를출력 [3, 4, 5] 할수있는방법들이등장했다. 이에사용자는자신이원하는색상으로 3D 조형물을 2 차가공없이생산할수있게되었다. 하지만보편화된 FDM 3D 프린터방식인다중노즐방식으로는필라멘트색만을독립적으로출력할수있다는단점이있다. - 23 -
따라서본문서는색을다양한배율로혼합가능한 mixing chamber 방식의 FDM 3D 프린터를사용하여그라데이션색상을출력할수있는 G-code 생성기를개발하였다. 일반적인 FDM 3D 프린터가단색, 혹은 2 가지이상의색상을독립적으로출력하는반면, 본연구에서제안하는슬라이서는그라데이션색상을출력할수있게지원함으로써보다더사용자의요구에가까운결과물을출력해낼수있다는장점이있다. 개발을위해사용한슬라이서는 Ultimaker 에서오픈소스로제공하는 Cura 이다. 본논문에서는제안하는그라데이션 G-code 를개발하기위해서필라멘트를섞을수있는 M2030 (MakerPi) 3D 프린터를이용했다. Mixing chamber 를장착한이모델은두개의필라멘트를주입하고하나의 extruder 를통해필라멘트를압출할수있는기능을갖추었다. 그리고그라데이션효과를검증하기위해서로다른두가지색의 PLA 필라멘트 (Print Temp. 190~220 ) 를사용하였다. 2. 선행연구 컬러 3D 프린팅이다양한산업분야에서적용되면서이에관한연구가꾸준히진행되고있다. Reiner 등은 3D 프린팅으로조형할수있는물체에두가지색상을이용하여텍스처를맵핑하는연구를진행하였다. 이에 Reiner 등은레이어의색상을서로번갈아지정하면서 tool path 를엇갈리게생성할수있는 G-code 생성기를개발하여 checkboard 형상의맵핑효과를물체에적용하였다 [6]. 그리고 Hergel 등은다중노즐방식의 3D 프린터를이용할때, 융해된필라멘트가다른색상영역으로침범하는문제를개선하기위해서다른색상영역으로침범하는 tool path 를최소화할수있는 G-code 생성기를개발하는방법에대해연구하였다 [7]. 또한이미 3D 프린터제작회사에서는다양한색상을표현하기위해서필라멘트를섞어사용하려는움직임을보이고있다. 3D4C(Felix Chan) 프린터는파랑 (Cyan), 자주 (Magenta), 노랑 (Yellow), 검정 (Key=Black) 의 4 가지색상을섞어서사용함으로써 CYMK 색상을이용하여다양한색상을표현할수있는 3D 프린터를생산하였다. 이외에도 M2030X(MakerPi) 는두가지색상에대해그라데이션효과를줄수있는 3D 프린터를개발한상태이다. 하지만하지만이들모두자체개발한슬라이서를 GUI 에내장하고있기때문에국산화가쉽지않은실정이다. 따라서본논문에서는자체적인슬라이서개발을통해두가지색상을이용하여그라데이션효과를구현할수있는 G-code 생성기에대한연구를수행하였다. 3.1 Hardware 3. System configuration Fig 1. M2030X(MakerPi) 3D printer with mixing chamber 3.2 Software architecture 3D 프린팅시필요한 G-code 를생성하기위해서본논문에서는 Cura 의 Engine 과 GUI 를사용하였다. CuraEngine 은 CAD 소프트웨어를사용하여모델링한파트를슬라이싱하여각각의레이어를 G-code 로표현하는역할을한다. 본논문에서는 STL 파일을 CAD 모델로사용하였다. CuraGUI 에서는사용자가임의로지정한헤드, 플랫폼온도와같은환경설정값이나 3D 프린터의기기정보혹은모델파트의위치등을조절할수있다. CuraEngine 과 CuraGUI 는 Fig. 2 와같은소켓통신을이용하여 STL 데이터와프린팅환경설정값을전달한다. CuraGUI 에사용자가입력한옵션정보를 CuraEngine 으로전달하는소켓통신방법은다음과같은절차를따른다. 1) CuraEngine 과소켓연결 2) Settings 에프린팅설정값저장 - 24 -
3) Settings 정보를 commandlist 에저장 4) commandlist 를 CuraEngine 에소켓을통해전송 Fig. 2 The connection between CuraGUI and CuraEngine CuraGUI 에서입력된프린팅환경설정값들은 commnadlist 로저장되어 CuraEngine 으로전달된다. commandlist 에는헤드의프린팅속도, 노즐의온도와같은하드웨어옵션을비롯하여컬러모드, 그라데이션비율과같은옵션도포함되어있다. 이때전달하는 commandlist 의구조는 Fig. 3 과같다. CuraEngine 프린팅정보를전달하고나면 CuraEngine 의각클래스들은전달받은정보를토대로 G-code 를생성하게된다. G-code 생성에관여하는클래스는크게 3 가지다. Fig. 4 에서확인할수있는것처럼 G-code 를생성하기위해서는 fffprocessor, settings, gcodeexport 클래스의변수와함수를이용해야한다. fffprocessor 는 CuraGUI 에서받은데이터들을처리하여실질적으로 G-code 를작성하는클래스이다. Fig. 4 와같이 fffprocessor 는 writemove() 함수를사용하여 G-code 를작성하게된다. G-code 의현재레이어수를의미하는 currentlayer 와총레이어개수를의미하는 totallayers 은 CuraEngine 에서 G-Code 를생성하면서생성되는변수이다. 그리고 settings 클래스는 G-code 작성이필요한환경값을설정하는곳으로 commandlist 를통해전달받은프린팅에필요한환경설정값을설정하고, 특히그라데이션을출력하기위해추가된 colora, colorb, colormode 변수를제어하는클래스이다. 전달된값중 colora, colorb 은그라데이션의시작과끝백분율을나타내며, colormode 를통해단일, 듀얼, 그라데이션모드를선택해서출력할수있게된다. 그리고 gcodeexport 의경우실제로그라데이션 G-code 를생성하기위한알고리즘을내장하고있는부분으로구체적인프린터헤드의움직임과필라멘트압출량에대한 G-code 를출력한다. Fig. 3 The information of commandlist Fig. 3 과같이 commandlist 를작성하여 Fig. 4 Class of CuraEngine to make gradient G-code - 25 -
Fig. 4 에서언급된변수들이각기다른클래스의변수이기때문에그라데이션 G-Code 를생성하는 gcodeexport 에서사용하기위해서그라데이션설정값을받기위한 getconfig() 와총레이어개수를전달받은 writelayernum(), 현재프린팅하고있는레이어의수를받기위한 writecurrentlayer() 를 gcodeexport 클래스에생성한다. 3. 알고리즘 그라데이션 G-code 는일반 G-code 와는달리두가지필라멘트압출량을고려하여야한다. Fig. 5 와같이단일컬러모드를나타내는 Fig. 5(a) 의 G-code 와그라데이션컬러모드를의미하는 Fig. 5(b) 의 G-code 가프린팅헤드의위치에서는차이가없다는것을확인할수있다. 하지만두컬러모드는필라멘트의압출량을표기하는방법에서차이가있다. 단일모드인 Fig. 5(a) 의경우필라멘트의압출량을 E 로나타내지만그라데이션컬러모드인 Fig. 5(b) 의경우첫번째필라멘트압출량은 E 를통해표현되고두번째필라멘트압출량은 B 로나타낸다. 레이어와그라데이션이끝나는레이어사이에있을경우이다. 이때는현재레이어의높이에따라첫번째필라멘트의비율을점차낮추고그만큼두번째필라멘트의비율을높이면서 G-code 생성하게되는데, 압출되어야하는총량에현재레이어에해당하는변화비율을곱하여첫번째필라멘트의압출량 (E 로표현 ) 을구한다. 두번째필라멘트의양 (B 로표현 ) 은압출되어야하는총량과첫번째필라멘트의양의차로나타낸다. 마지막세번째경우는현재레이어가그라데이션이끝나는레이어보다클때이다. 이경우에첫번째필라멘트의압출량은더이상증가하지않으며, 두번째필라멘트의압출량을높이면서 G-code 를생성한다. Fig. 5 The difference between one color and gradient color mode 본논문에서구현한그라데이션알고리즘은 Fig. 6 과같다. 두가지색상을이용하는이알고리즘은 CuraGUI 에입력되는 colora 와 colorb 의백분율값에따라그라데이션이적용되는부분을조절할수있다. 알고리즘은크게세부분으로나눌수있다. 첫번째는현재레이어가그라데이션이시작되는레이어보다작을때이다. 이때는그라데이션효과가적용되지않고 Color A 만을출력하게된다. 이때의 Color B 출력량은 0 이다. 두번째경우는현재레이어가그라데이션이시작되는 Fig. 6 Gradient color mode algorithm Fig. 7 는 CuraGUI 에서 colora 에 0, colorb 에 - 26 -
100 을입력했을경우결과값이다. 압출량은단일컬러를뽑을때와같은양이지만레이어가증가함에따라 colora 의압출량은줄어들고 colorb 에압출량은늘어나서파트의처음레이어부터마지막레이어까지그라데이션효과가생길수있다. Fig. 9 은 colora 와 colorb 에입력되는값을조절해가면서뽑은출력물이다. Fig. 9 (a) 는 colora 에 0, colorb 에 100 을넣은결과물이다. 프린팅환경값이 0 ~ 100% 까지그라데이션효과를주게설정되었으므로, 출력된결과물을보게되면처음레이어부터마지막레이어까지그라데이션효과가생긴것을확인할수있다. 그리고 Fig. 9 (b) 는 colora 에 20, colorb 에 80 을입력했을때결과물이다. 이출력물은파트의 20 ~ 80% 지점에그라데이션이생긴것을확인할수있으며, 그라데이션효과가생기지않은끝단에는각각 colora 와 colorb 로출력이진행된것을확인할수있다. 따라서파트는노란색 그라데이션 분홍색의총세개의층을이루게된다. Fig 7. Progress Feed rate ratio graph at colora = 0, colorb=100 또한 Fig. 8 의경우는 colora 에 30, colorb 에 70 을입력했을경우의진행률 - 압출량그래프이다. 이경우는앞선 Fig. 7 의경우와는달리 0 ~ 30% 는 colora 로만출력을하게되고, 30 ~ 70% 는그라데이션효과가적용된다. 그리고 70 ~ 100% 는 colorb 로출력을진행하게된다. Fig 9. The result of gradient effect Fig 8. Progress Feed rate ratio graph at colora = 30, colorb=70 4. 결과 Fig. 9 (c) 는 colora 와 colorb 에각각 50 을입력한결과이다. 이모델은시작점과끝점비율이같으므로그라데이션이나타나는부분이존재하지않는다. 전체길이의 0 ~ 50% 인부분은 ColorA 에설정된필라멘트로출력되고 50 ~ 100% - 27 -
인부분은 ColorB 에설정된필라멘트로출력되어노란색 - 분홍색총 2 개의층을이루게된다. Fig. 9 (d) 는 colora 에 80, colorb 에 100 을입력한결과이다. 이모델은전체길이의 0 ~ 80% 인부분은 ColorA 에설정된필라멘트로출력되고, 나머지부분은그라데이션이나타나노란색 - 그라데이션의총 2 개의층을이루게된다. 5. 고찰및향후연구계획 본논문에서는 3D 프린터를이용하여다양한색상을구현하기위한방법으로두색상사이에그라데이션을구현할수있는 G-code 생성기에관한연구를진행하였다. 이를구현하기위해 G-code 를이용하여 mixing chamber 에주입되는필라멘트의비율을조절할수있는알고리즘을제작하였고, 그출력결과를비교하였다. 이를통해필라멘트가주입되는비율을 G-code 를통해자체적인그라데이션슬라이서를구현할수있었으며, 두가지색상사이의모든색을그라데이션을통해구현하였다. 이알고리즘을색상의혼합이아닌재료물성의혼합개념에적용한다면, 물성이다른두개의재료사이에존재할수있는혼합된물성치또한모두구현할수있을것으로기대된다. 또한이를발전시켜향후에 Fig. 10 과같이 CMYK 와흰색의필라멘트를적용할수있는알고리즘을구현할계획이다. 3D 프린터는종이에출력하는것이아니므로일반적인 2D 프린터와는달리 CMYK 에흰색이추가되어야만모든색상을구현할수있다. 따라서향후에는본알고리즘을토대로 5 개의필라멘트를공급받을수있는 mixing chamber 를고안하여모든색상을구현할수있는 3D 프린터제작에초점을맞춰연구를진행하고자한다. 감사의글 본연구는문화체육관광부및한국콘텐츠진흥원의 2015 년도문화기술연구개발지원사업의연구결과로수행되었음. [R2015120006, 컨텐츠형온오프라인 3D 프린팅포털 / 센터구축을위한통합솔루션개발 ] 참고문헌 1. Chua, C.K., Leong, K.F. and Lim, C.S., 2003, Raping prototyping: Principles and applications, Singapore: World Scientific, doi: 10.1142/5064. 2. Gibson, I., Rosen, D.W. and Stucker, B., 2010, Additive Manufacturing Technologies, Springer, New York. 3. Reiner, T. et al, 2014, Dual-Color Mixing for Fused Deposition Modeling Printers, In Computer Graphics Forum, 33(2), pp. 479-486. 4. Masood, S.H. and Song, W.Q., 2004, Development of new metal/ polymer materials for rapid tooling using fused deposition modelling, Materials & Design, 25, pp. 584-94. 5. Novakova - Marcincinova, L. and Novak-Marcincin, J., 2012, Testing of Materials for Rapid Prototyping Fused Deposition Modelling Technology, International Journal of Mechanical, Aerospace, Industrial, Mechatronic and Manufacturing Engineering, 6(10), pp. 2082-2085. 6. Hergel, J. and Lefebvre, S., 2014, Clean color: Improving multi-filament 3D prints, Computer Graphics Forum, 33(2), pp. 469-478. 7. Macy, B., 2011, Rapid/Affordable Composite Tooling Strategies Utilizing Fused Deposition Modeling, SAMPE Journal, 47(4), pp. 37 44. Fig. 10 CMYK + White : subtractive colors for printer - 28 -