elsa in mac

스트링(String)과 리트렉션(Retraction) 본문

3D 프린터/3D 프린터 관련 정보

스트링(String)과 리트렉션(Retraction)

elsa in mac 2017. 8. 25. 11:36

string 발생 예시

3D 프린터를 사용하게 되면, 맞닥뜨리게 되는 문제 중 하나가 바로, String 발생 문제 입니다. 소위 "거미 줄"이라고 칭하기도 하는 문제인데요..

String이 발생하는 이유는 필라멘트가 노즐(Nozzle)의 고온으로 녹아 있는 상태가 되면 중력에 의해 자연스럽게 그리고 끊임없이 노즐의 구명을 통해 흘러나오기 때문입니다.  물론, 이 것은 어쩔 수 없습니다. 계속 흘러나와야 프린팅을 할 수 있으니 말이죠..

문제는 연속된 프린팅 과정에서는 문제가 없지만, 어느 한 점에서 다른 한 점으로 프린팅을 하지 않고 이동하는 이동(Move) 시점 입니다. 말 그대로 프린팅이 되지 않는 상태로 노즐이 이동해야 하는 시점들이 존재하는데, 이 경우에도 필라멘트는 끊임 없이 노즐을 통해 흘러 나오기 때문에, 최종 프린팅 지점에서 새로 이동할 지점까지 가늘고 긴 필라멘트 선이 이어지게 됩니다.  이런한 과정이 적층되는 과정에서 반복되게 되면, 위의 그림과 같이 출력물 곳곳에 실이 엉킨 것 처럼 지저분한 결과를 초래하게 되는 것이죠..

이 문제를 해결하기 위해서 모든 Slicer 소프트웨어들은 기본적으로 Retraction기능을 지원합니다. 우리말로 하자면, 역회전이라는 뜻인데, 필라멘트를 Hotend로 밀어주는 Extruder의 회전 방향을 순간적으로 역회전 시킴으로써, 필라멘트이 압출을 일시적으로 멈추게 하는 것 입니다. 

기본적으로 3D프린터의 압출은 말 그대로, melting된 필라멘트를 압력으로 밀어 내는 것입니다. 따라서, 상존하는 압력을 일시적으로 제거하게 되면, 압출이 멈추게 됩니다.  흔히 retraction을 주게 되면, 필라멘트가 노줄 구멍에서 뒷쪽으로 댕겨지는 Sunction 현상이 발생할 것이라고 생각할 수 있는데, 이는 틀린 생각입니다. 

여기서 세 가지를 생각해 볼 수 있습니다. 
즉, 필라멘트가 노즐 구멍(orifice)를 통해 나오는 것은 두 가지 경우인데, 첫번째는 앞서 살펴본 봐와 같이 압력에 의해 밀려나오는 것과 압력이 존재하지 않아도 중력에 의해 저절로 흘러나오는 경우가 있습니다. 

즉, string 발생을 최소화 하려면, 두 가지 factor를 고려해야 합니다.   우선 가해진 압력을 가급적 빠른 시간에 제거해야 하며, 노즐안에 녹아 있는 필라멘트가 노즐 구멍을 통해 흘러나오는 정도를 최소화 해야 하는데, 이는 노즐의 온도와 관련이 있습니다. 

S3D 리트렉션 설정창

위의 이미지는 대표적인 슬라이서 프로그램인 Simplify3D의 Ooze Control 부분을 캡쳐 한 것입니다. 보시면, Retraction 항목에 Retraction Distance와 Extra Restart Distance, Retracion Vertical Lift, Retraction Speed 등의 항목이 보입니다. 

얼마의 속도(Retraction Speed)로 얼마의 거리(Retraction Distance)를 역회전 시킬 것인가등에 대한 설정을 하는 것이죠.. 

retraction을 distance는 너무 크게 하면, 끝이 녹아있는 필라멘트가 Cold block 쪽까지 침범하면서 잔존 필라멘트가 빠르게 냉각되게 됩니다. 이런 현상이 발생하게 되면, PTFE나 혹은 Throat 외벽에 노즐이 고착되는 현상이 발생하게 되어 clogging즉, 필라멘트 압출에 문제를 발생시키게 됩니다. 반대로 너무 작은 거리를 이동하게 되면 압력제거 효과가 반감되게 됩니다. 

3D 프린터의 역사가 이젠 제법되었고, 너무나 다양한 소재의 필라멘트들이 나오다 보니, 이젠 단순하게 역회전 시키는 것 만으로는 효과적인 String 제거가 되지 않는 경우도 있습니다. 이를 위해 좀 더 다양한 아이디어들이 나왔는데요.. 

위의 설정을 보면, Retraction Vertical Lift가 있습니다. 이 옵션은 Retraction 시 Z축 즉, Nozzle을 수직으로 살짝 들어 올리는 기능 입니다. 물론 얼마나 들어 올릴지를 사용자가 정의하게 되어 있죠..  retraction 시 Z축을 들어 올리는 이유는 Hotend가 출력을 멈추고 새로운 시작 시점으로 이동하는 할 때, 이미 출력된 부분위를 지나가야 되는데, 이 때 노즐이 출력물에 부딧칠 수 있기 때문입니다.  이 기능을 이용하면 충돌 현상을 방지할 수는 있지만, 들어 올리고 이동하고 다시 내리는 부수적인 시간이 필요하게 되므로 그 만큼 출력시간이 늘어나게 됩니다. 

Extra Restart Distance는 Retraction의 결과 다시 프린팅을 시작하는 시점에서 필라멘트의 압출을 얼마나 가감할 것인지를 설정하는 것입니다. Retraction은 역회전 -> 노즐 이동 -> 정상회전 -> 프린팅 재 시작의 단계를 거치게 되는데, 이 때, 당연히 역 회전 한 만큼을 다시 순방향 회전을 시켜 줘야 필라멘트가 다시 노즐을 통해 나오게 됩니다. 헌데, 필라멘트의 특성에 따라서는 노즐을 통해 다시 흘러나오는 타이밍이 느릴 수도 있고, 반대로 빠를 수도 있습니다. 필라멘트의 양도 많이 흘러나올 수 있죠.. 따라서, 순방향 회전 시점에 노즐을 통해 나오게 될 필라멘트의 양을 적절하게 조정해 주는 기능이 필요하다는 것이 이 옵션을 만들게 된 이유입니다. 

만약 재 시작 시점에 너무 많은 양의 필라멘트가 나오는 경향이 있다면, Extra Restart Distance의 값을 -(마이너스) 값을 주면 됩니다. 즉, 역회전한 거리 만큼을 순방향 회전 시키는 것이 아니라, 순방향 회전을 역방향 시점보다 조금 덜 회전 시켜서 필라멘트가 조금만 혹은 천천히 흘러나오도록 하는 것입니다. 반대로 retraction 이 후에 노즐을 통해 필라멘트가 곧 바로 나오지 않는 다면 +(플러스) 값을 주게 되어, 역회전 시점보다 더 많은 거리를 순 방향 회전 시켜서 더 많은 양의 필라멘트가 나오게 하는 것이죠.

Coast at End라는 옵션은 retraction 하기 직전 어느 정도의 거리에서 필라멘트의 사전에 압출을 중지 시킴으로써, 서서히 압력을 줄이는 방법 입니다.  

cost 예시

위의 그림에서, A지점에서 B지점까지 프린트를 해야 한다면, 일반적으로 A ~ B 구간에서는 계속 필라멘트를 압출 시킵니다. 그리고, Retraction 옵션을 주었다면, B지점에서 Retraction이 발동을 하게 되겠죠.. 위 그림에서 아랫쪽은 Coast 옵션을 준 경우로 B 지점에 도착하기 전 특정 거리에서 부터 필라멘트의 압출을 멈추게 됩니다. 즉, 필라멘트를 압출 시키는 것이 아니라, 노즐 내부의 잔존해 있는 필라멘트 만을 가지고, 나머지 거리를 프린트 하는 것이죠. 즉, B 지점에 도착했을 때, 노즐 내부의 필라멘트의 양은 좀 줄어 있게 됩니다. 이 시점에 Retraction을 하게 되면, 보다 효과적으로 String 발생을 억제할 수 있다는 것이 Coast의 원리 입니다. 

그럼 Retraction과 Coast 값을 적절히 주면 String이 발생하지 않는가 ? 그렇지 않습니다. 
String 발생 요인 중 가장 큰 Factor는 바로 노즐의 온도 입니다. 바꿔 말하면 필라멘트에 가해지는 온도로 이는 필라멘트의 녹는점, 점성등과 관련이 있습니다. 상식적으로 필라멘트에 높은 열을 가하면 가할 수록 액화(적절한 표현인지는..)되는 정도가 높아지고 액화 유지 시간이 길어지게 됩니다.  즉 아무리 적절한 Retraction과 coast값을 주었다 하더라도 팔라맨트의 점성의 정도와 녹아있는 정도에 따라 끊임없이 노즐을 통해 딸려 나올 수 있습니다. 

따라서, 최종적으로 Retraction을 확인할 때 조정해 줘야 하는 것이 바로 Hotend 온도, 즉 노즐의 온도 입니다.  이론상으로는 필라멘트가 액화되는 최저 온도가 가장 좋습니다. 점성이 높아서 retraction의 효과가 극대화 될 수 있기 때문입니다. 하지만, 너무 낮은 온도의 필라멘트는 프린팅 적층 시, Layer와 Layer간의 접착력을 떨어뜨려서 전체적으로 프린트된 결과물이 약해지는 결과를 초래하게 됩니다. 

이는 소위 말하는 plated Nozzle 즉, 특수 코팅 노즐을 사용할 경우 프린팅 결과물이 약해지는 것과 같은 이유 입니다. 황동(Brass) 노즐은 열 전도도(Thermal Conductivity)은 우수하지만, 물성이 약합니다. 노즐을 오래쓰거나 필라멘트에 금속물질이 포함되어 있는 특수 필라멘트를 사용하면 노즐이 달아 구멍이 넓어지거나 손상을 입는다고 하는 이유이죠..

그래서 특수 필라멘트를 사용하려면 좀더 하드한 즉, 사용환경에 대해 보다 튼튼한  금속 소재로 만든 노즐들을 사용해야 합니다. 대표적으로 시중에 많이 나와 있는것이 스테인레스 스틸 노즐, 스틸 합금 노즐 등이죠.. 하지만, 상대적으로 이들 노즐들은 열 전도도가 매우 취약 합니다. 해당 금속등의 물성이 그러하기 때문인데요..

노즐 차트1

위의 차트는 3D 프린터 특수 노즐을 제조 판매하고 있는 P3-d에서 가져온 차트 입니다.
차트에서 Thermal Conductivity 항목을 보면, 일반 황동 노즐(Brass)가 100 ~ 120 의 thermal conductivity를 갖고 있을때, 일반 스테인레스 스틸 노즐은 18 정도 임을 알 수 있습니다. 거의 1/7 수준이죠.. 

저의 경우에도 실제로 스테인레스 스틸 노즐로 PLA와 PETG를 출력해본 경험이 있는데, 황동 노즐을 사용할때 설정한 온도 그대로 스테인레스 스틸 노즐로 출력을 해 보면, 출력은 되나, 출력물에 약한 힘을 줘도 그냥 부셔져 버리거나 층간 갈라짐이 생겨서 출력을 해도 거의 써 먹을 수가 없습니다.

그럼, 어쩔 수 없이 특수 필라멘트를 사용할 경우에는 어떻게 해야 하는가 ?
저는 아직 사용해 보지는 않았지만, 황동 노즐을 사용한다고 해서 아예 출력이 안되는 것은 아닙니다. 다만 노즐 Hole이 손상되어 망가진 다는 것인데.. 이것이 뭐 출력한지 5분만에 망가지고 하는 수준은 아닙니다. 수백 g의 특수 플라멘트를 연속해서 장시간 출력할 경우 빨리 닳을 수 있는 것이죠.. 따라서, 출력물이 1kg가까이 들어가는 수준의 큰 모델이 아니라면 그냥 황동 노즐로 출력하고 출력 후에 새 노즐로 바꾸면 됩니다. 황동노즐은 싸니까.... 큰 미련이나 아쉬움은 없겠죠 ?  

좀 길이 옆으로 셌는데요... 결론적으로 String을 제거하기 위해서는 Retraction을 사용해야 하고, 실제 자신이 사용하는 필라멘트에 맞는 적절한 옵션 값을 찾아야 하는 수고를 거쳐야 하지만, 무엇보다도 노즐의 온도를 얼마로 할 것인지를 반드시 찾아야 한다는 점 입니다.  

즉, 노즐의 온도와 관련되어 결과물의 품질과 String 발생 정도가 Trade-Off 관계가 있기 때문에, 완벽하게 String을 잡기는 어렵지만, 현격하게 줄일 수는 있습니다. 

자.. 그런데.. 노즐의 온도를 낮춤으로써 발생할 수 있는 문제가 또 있습니다. 바로, clog... extruder의 기어가 띡띡 거리며 헛도는 현상이죠.. 이유는 간단합니다. 노즐의 온도를 낮추면 필라멘트 압출에 보다 많은 힘이 필요 합니다. 

Tevo Tarantura의 경우를 보면, 기본적으로 딸려오는 Extruder의 필라멘트를 압출하는 힘의 원천은 hobbed Gear와 guide pully간의 밀착을 해주는 spring에 있습니다. 

tarantula 압출기 탠션

즉, 노즐의 온도가 낮아서 필라멘트의 압출에 보다 많은 힘이 필요하지만, extruder의 스프링 장력보다 큰 힘이 필요하다면, extruder의 기어가 필라멘트를 밀어 올리지 못하고 헛돌게 됩니다. 

Titan Extruder가 Tevo Tarantula의 기본 extruder 보다 좋은 점은 크게 보면 2가지로.. 바로 guide pully를 gear에 밀착시키는 스프링의 장력을 높힐 수 있는 구조라는 점과 Gear 비가 3배로 높다는 점 입니다. 

Titan Extruder 텐션

Titan의 경우 위의 그림에서 보는 바와 같이 Guide Pulley를 Gear에 보다 큰 힘으로 밀어 붙일 수 있도록 스프링의 장력을 조절할 수 있도록 되어 있습니다. 

즉, 기본 Extruder를 사용하는 경우, 노즐의 온도가 낮을 경우, gear가 중간중간 헛돌 수 있고, 이는 결국 압출의 불안정으로 나타나게 됩니다. 혹 일부 사용자들은 이 것을 Motor의 힘이 딸려서 발생하는 문제하고 착각하기도 하죠.. 

물론 너무 꽉 조이면 안됩니다. 필라멘트는 Gear에 의해 일부분이 갈리는데, Retraction이 많아지면 같은 부분이 너무 많이 갈려서 결국 필라멘트가 휘거나 끊어지게 될 수 있고,  반대로 너무 느슨하게 하면 또 기어가 헛돌게 될 수 있습니다.  휴~

참고로 Titan의 기어비가 3배로 좋다는 것은 그 만큼 정교하게 압출량을 조정할 수 있다는 의미가 됩니다. 실제 프린팅 중에는 좁은 구간 넓은 구간에 따라 가속이 달라집니다. 또한 기본적으로 사용자가 설정한 프린팅 속도도 관련이 있는데.. 속도가 빠를 수록 보다 빠르게 필라멘트를 압출해야 합니다. 몰론 압출의 가속정도는 Slicer가 G-Code를 만들 때, 사용자가 입력한 스피드 파라미터와 필라멘트 파라미터등을 기준으로 알아서 정의해 줍니다. 

일반적으로 노즐의 온도가 낮으면 낮을 수록 프린트 속도가 빠르면 빠를 수록 노즐 구멍에 작용하는 압출력이 점점 높아지죠.. 이를 해결할 수 있는 문제는 노즐의 온도를 높혀서 필라멘트가 그 때 그 때 술술 녹아 잘 흘러나오게 하면 됩니다 만, 앞서 살펴본 바와 같이 그 만큼 String 이 발생할 확률, Retraction이 잘 동작하지 않을 확률은 높아지게 됩니다. 

결론적으로 가급적 동일한 회사의 동일한 종류의 필라멘트를 사용하고, 노즐 교체 시에도 동일한 제조사의 동일한 노즐을 사용하는 것이 좋습니다. 그 만큼 품질을 좌우할 수 있는 Factor들을 Fix 시키게 되기 때문이죠.. 반대로 말하면, Hotend를 새로운 방식으로 변경하거나 노즐의 구멍 싸이즈를 다른 것으로 바꾼 다던가, 혹은 다른 제조사의 또는 다른 재질의 필라멘트를 사용한다면, 그에 따라 관련있는 파라미터들의 적절한 값들을 다시 찾아야만 합니다.  

마지막으로 살펴볼 factor는 이송 속도(Travel Speed)입니다. 
앞서 살펴본 것과 같이 string은 출력물과 노즐사이의 필라멘트가 출력하지 않고 Hotend가 다른지점으로 이동할 때, 엿가락 늘어지듯 필라멘트가 늘어져 생기는 현상입니다. 따라서, 노즐의 이동속도를 빠르게 하여 필라멘트의 잔존물이 출력의 마지막 지점에서 딱 끊어지게 만들 수 있는 방법으로 Travel Speed를 높이는 것입니다. 엿가락을 천천히 이동하면 주욱 늘어져 따라오지만, 순간적으로 확 잡아당기면 끊어지는 것과 같은 이치라고 생각하시면 되겠죠.  하지만, 이것도 적절한 속도를 찾는 것이 필요 합니다. 너무 높은 속도로 빠르게 움직이면 프린터 입장에서는 일종의 충격이 가해지는 것이므로, 구조적으로 큰 진동이 발생할 수 있기 때문입니다.  

3D 프린팅이 쉽지 않은 이유가 여기에 있는 것이죠.. 3D 프린트 자체의 품질은 차치해 두고라도, 출력을 위한 기본 파라미터들이 너무 많고, 그 각각이 조합되었을 때, 최종 출력물의 품질에 미칠 영향을 적절하게 판단해야 한다는 것..... 

만족할 만한 출력 속도에서 거미줄이 생기지 않으면서 술술 출력이 잘되게 하기 위해서는 매우 오랫동안 파라미터 찾기 게임을 반복해야 합니다. ^^

공유하기 링크
Comments