본문 바로가기

▶3D 프린팅/삼디강좌

[김성민의 삼디 Life] 3D 프린터 압출불량을 해결하다

[김성민의 삼디 Life - 3D 프린터 압출불량 해결]


완성품이 아닌 자작이나 조립품 3D 프린터를 사용하는 사람은

어딘가에서 튀어나올지 모르는 불량가능성에 휩싸여 있다. 


조립후 가장 초기에 빈번하게 발생하는 문제를 해결하고

표면 품질 개선을 위해 조건과 하드웨어 셋팅을 잡는 것은 어느정도 예상가능한 길을 가는 것이었다. 


그러나 전혀 예상치도 못한 불량을 만나기도 하는데 

그중 대표적인 것이 크게 2가지가 있다고 본다. 


첫째는 안착 불량

둘째는 압출 불량


이 중 안착불량에 대해서는 왕초보 불량 삽질기에서 한번 다뤘던적이 있어서

어느정도 안착 문제를 해결하는 방법은 나와있다고 생각했고 해결방법도 알 수 있다고 여겼다. 

(http://bookledge.tistory.com/854)


그러나 전혀 감이 잡히지 않는 불량이 지속해서 발생했는데

결론적으로 그것은 압출불량에 의해 발생하는 안착불량이었다. 



위 두장의 사진은 서로 전혀 다른 양상의 불량으로 보이지만 

실은 정확히 동일한 원인에 의해 발생한 문제였다. 


그 하나의 원인을 조치하자 두가지 모두 해결이 되었다. 

이번 포스팅에서는 압출 불량 / 압출 부족을 해결한 2가지 조치에 대해 이야기해보도록 하겠다. 



1. 익스트루더 스프링 장력 조절



안착의 가장 기본되는 접근은 다음 3가지이다.

1) 베드를 접착력 좋은 녀석으로 바꾼다
    (외국의 게코 시트지 부터해서 안착이 잘된다고 하는 베드시트지 혹은 베드가 있다)

2) 기존 베드를 안착이 잘되게 조건을 잡는다.

   (다이소 천원짜리 마스킹 테이프에다가 딱풀칠 한다거나, 베드온도를 평소보다 높여서 필라멘트가 잘 붙도록 유도한다)

3) 노즐과 베드와의 간격을 더 가깝게 한다.

   (노즐-베드 간격은 안착에 있어 핵심중의 핵심이다. 동일한 베드의 경우도 간격이 좁으면 같은 양의 필라멘트가 더 눌러져 붙어 강한 안착이 되고, 반대로 간격이 멀면 녹아져 내려온 필라가 슬쩍 올려만 놓은 상태라서 안착에 취약할 수 있다. 아래 사진하나가 설명해주리라 본다)


그러나 나의 경우는 위의 방법들이 모두 통하지 않는 상태였다. 


그러던 중 안착불량과 출력물 벽면의 압출부족이 별개의 문제가 아니라 혹시 같은 이유에서 발생하는게 아닐까 하는 의심이 들었다. 

첫번째 레이어를 출력할 때 노즐이 이동하고 나서 5mm 에서 10mm 가량을 압출이 안되거나 얇은 거미줄 형태만을 뽑다가 압출이 되기 시작하는데 이것도 베드에 충분히 밀착되는 느낌이 아니었다. 


일단 "이동 후 압출부족" 현상을 해결해보자는 마음을 먹었다. 

다른 말로는 "리트랙션 후 압출 부족" 이라고 할 수 있었다. 

이 문제에 대한 대표적인 해결안은 리트랙션을 줄이거나 끄라는 것이었다. 

그런데 리트랙션은 다 필요해서 기능을 켜놓은게 아닌가. 일명 거미줄을 보고 싶지 않아서 설정해놓은 건데 이것을 끄는게 과연 답이 될까? 


(리트랙션을 꺼놓은 상태에서 출력하면 위와 같이 기둥사이의 거미줄이 형성된다. 이런 거미줄은 후처리 과정에서 없앨 수도 있으나 출력시 나타나지 않게 하려고 리트랙션을 해준다.)


그렇지만 지푸라기라도 잡는 심정으로 실험을 해보기로 하였다. 

일단 내가 간단하게 테스트를 위해 사각형에 작은 원이 3개 뚫린 형태를 만들어서 그것으로 리트랙션 실험을 해보기로 하였다. 



역시 하나의 원을 그리고 다음 원으로 이동하면 꼭 5mm ~ 10mm 의 압출안되는 구간이 존재하였다. 

그전에는 Retraction 의 원리를 잘 몰라서 무조건 이동하기 전에 필라를 빨아들이니깐 그 거리만큼 나오지 않는거라고 생각했다. 그래서 이전에 쓴 글을 읽다보면 리트랙션을 길게 하면 이동하고 나서 나오지 않는 거리가 길어지니깐 리트랙션은 가능하면 짧게 하면 좋지 않느냐는 투로 적어놨던게 있는데, 잘 모르고 했던 말이다. 


리트랙션의 메카니즘은 다음과 같았다. 


1) 이동 준비

2) 리트랙션을 한다. (예. 설정값... 4mm 를 당긴다)

3) 이동한다.

4) 프라임 한다 (예. 아까전에 당겼던것을 원복시킨다 4mm)

5) 다음 출력을 진행한다.


그러니깐 막연히 생각했던 것처럼 리트랙션으로 줄어든 만큼 나오지 않는상태가 아니었던 것이다. Prime 이라고 하는 원복 과정이 반드시 존재하는게 Retraction 하는 것이었고 Gcode 상에도 확인할 수 있었다. 


(G code 에서 E로 시작하는 숫자는 Extruder 모터 회전 위치의 절대값으로서 필라멘트의 위치라고 보아도 무방하다. 위 그림에서 나는 리트랙션값을 2mm 주었기에 34.96에서 32.96로 정확히 2mm 값만큼 후퇴했다가 다음 출력위치로 이동후 다시 34.96로 복귀하는 G-code 로 확인할 수 있었다)


혹시 몰라서 리트랙션 값을 줄이거나 속도를 달리한 실험을 해보았다. 



결과는 보는바와 같이 리트랙션 변경에 따른 개선효과는 전혀 없었다. 

물론 리트랙션을 껐을 때 큰 원의 끊긴 거리가 좀 줄은 형태를 보였지만

작은 원 하나는 안착이 안되서 날아가버렸고, 나머지 한개도 리트랙션 있을 때보다 더 나아졌다고 보기 힘든 상황이었다. 


결론은 리트랙션 문제는 아니다라는 것이었다. 


실망과 좌절 속에 있을 때 카페에 오니뽄님이 새로운 가능성에 대해 의견을 주었다.


그때까지는 줄이 뭐에 걸렸거나 노즐이 막혔거나 하는 등의 압출 

불량을 생각했지 스프링 장력은 전혀 생각해보지 못했던 문제였다. 

검색해보니 익스트루더의 스프링 장력은 필라멘트를 제대로 밀어내기 위해 매우 중요한 부분이었다. 

마치 X, Y 의 벨트가 장력이 약하면 탈조가 발생하듯이 

익스트루더의 장력 스프링이 약하면 압출이 제대로 되지 않게 되는 것이었다. 

의외로 Anet A8 혹은 A6 사용자들 중에 압출 불량 문제나 베드 안착문제를 호소하는 사람이 많은데, 기기의 장력 기본 셋팅이 약하게 되어 있는게 아닌가 하는 의심이 된다. 

어쨋든, 우여곡절 끝에 나는 다음 사진에 나오는 아래부위에 너트를 하나 추가해서 스프링의 장력을 높였다. 



해놓고 보니 아래에 있는 너트를 위로 돌리는 것만으로도 스프링을 좀더 조여주는 효과가 있었을텐데 싶다. 어쩌면 그렇게 해두는 것이 향후 텐션이 너무 과하거나 할 때 조금 풀어주는 식으로 조절해 줄 수 있으니 더 나은 방법이 아닐까 한다. 


이렇게 장력을 조이니 왠지 필라멘트가 더 잘 밀려나오는것 같다는 느낌을 받았다. 

한번 Step per unit 을 테스트할 때 했던 필라멘트 15cm 정도에 표시를 하고 100mm 를 압출해보았다. 

기존에는 압출속도가 높아지면 압출량이 줄어들었는데, 신기하게도 압출속도를 300mm/Min 으로 하고 진행했는데도 정확히 100mm 가 밀려들어가는 것을 볼 수 있었다. 이전에 있었던 문제도 다 스프링 장력 하나때문에 발생했던것이구나 하는 깨달음의 순간이었다. 


장력 조절이후 이동 후 압출 부족현상이 사라졌고 출력물 표면도 실빠짐 없이 잘 나오고 있다.  ^^v



그런데 또 다시 압출 부족 문제가 발생하였다. 


도대체 왜?~!!  이게 끝이 아니었어? 




2. Combing 기능 해제



그전 부터 교육용 카드를 제작해놓고 케이스가 마땅치 않아서 고민하고 있었는데, 이참에 3D 프린터를 이용해서 만들어 보기로 하였다. 

모델링 이런거 잘 못하지만, 그냥 사각형 3개 그려넣고 합치고 빼고 하면 되지 않을까?  해봤는데 의외로 치수 고려하고 하다보니 쉽지는 않았다.

그래도 만들어졌다. 짜잔~!



이 카드케이스는 포커카드 사이즈로 장점이라면 카드 더미의 두께만큼 앞으로 내가 원하는대로 조절해 출력할 수 있다는 점이다. 


그런데, 그럴듯한 앞면과는 달리 뒷면에 아주 속상하게 만드는 부분이 보였다. 



살짝 살짝 손으로 문지르니 이 부위가 꺼풀이 벗겨져서 아주 흉칙하게 되었다. 



가까이서 보니 더 심각하다.  가만히 보자하니 이 녀석도 압출 불량 (압출부족) 현상이다.  내가 자꾸 압출불량 이라는 말과 압출부족이라는 말을 병행해서 쓰는 이유가 있다. 이것도 엄연히 압출과 관련된 문제로 압출불량이 맞긴 하지만 전체적으로 노즐 사이즈 입력이 잘못되었다거나 필라가 걸려서 마찰이 심해졌다거나 노즐이 막혔다거나.. 등등의 일반적인 압출불량과 양상이 달라서 구분해주고 싶었기 때문이다. 보통의 압출불량은 출력 도중 계속해서 압출이 잘 안되는 문제를 보이고 전반적인 외형이 압출이 부족했다는 것을 눈으로 쉽게 확인할 수 있는 반면에 압출부족의 경우에는 특정 위치에 실이 빠지는 것처럼 압출이 안되어 있거나 가늘게 되어 있는 것을 말한다. 해외에서는 Under Extrusion 이라고 명명하는 것 같다. 


이건 어떻게 해결하면 좋을까? 


이미 장력문제는 해결했기 때문에 내가 아는 지식에서는 뾰족한 방법이 없었다. 

그러던 중 카페에서 한분이 리트랙션 이후에 다시 익스투르드 하는 과정에서 필라멘트를 조금 더 뽑아내는 옵션이 슬라이서에 있다는 말을 해주었다. Cura 에 있는 Retraction Extra Prime Amount 기능이다. 



이 값은 mm3 이라는 부피단위를 가지고 있는 것으로 보아 이동 이후 무조건 해당하는 양만큼의 필라를 더 밀어내주는 기능으로 생각된다. 

설명에 보면 Travel 동안 흘러나간 필라멘트양을 보정해주는 옵션이라고 적혀 있었다.  그래서 한번 동일한 stl 파일을 위의 옵션값만 0.5 mm3 으로 바꾸고 출력해보았다. 

0.5 mm3 이라는 값은 압출부족의 양을 다음처럼 계산하는 과정으로 부터 얻어졌다



계산상으로는 1 정도 줬어야 맞다. 그러나 너무 급한 변화는 우려되는게 있어서 일단 살짝만 주고 경향을 보기로 하였다. 내가 걱정했던 부분은 결과 다음에 언급하도록 하겠다. 



결과는 예상한 바와 같이 나왔다. 

먼저 압출부족 거리가 5mm 가량 존재했던 측면의 불량은 거의 해결이 되었다. 

마찬가지로 후면에 주된 문제도 어느정도 개선이 된 것을 확인할 수 있었다. 

그러나 보는바와 같이 완전히 없어진게 아니었다. 

만약 완벽히 없애려면 계산했던것처럼 값을 0.5에서 1.3 정도로 올리면 해결이 가능하겠다는 생각이 들었다. 적어도 후면의 문제에 대해서는 말이다. 


그러나 한편으로 측면은 어떻게 될까? 

이동후 무조건 1.3mm3 만큼의 압출을 더하게 한다면 

부족한 부분을 보충하고도 0.8 mm3 가량의 필라가 동일한 자리에 더 나오게 되는 것이다. 우리는 이런 현상을 과압출이라고 말한다. 

과압출 자리에는 혹이 형성이 되거나 같은 위치에 반복되면 그곳만 불룩 선이 튀어나오게 될 것이다. 

물론 이런 단순한 상자 구조에서는 어쨋든 해결한다고 하더라도 아주 복잡한 구조에서는 저마다의 추가 압출이 형태에 어떻게 영향을 미칠지 미리 다 생각해야만하는 문제가 발생한다. 


따라서 Extra Prime 을 이용한 해결은 임시방편이지 근본 해결이라고 볼 수 없다는 판단이 들었다. 


Gcode 를 분석해보아도 retraction 이후에는 Prime 이 있고 이 값은 리트랙션값과 동일하기 때문에 필라가 밀리지 않는한 압출부족이 발생할 이유는 없다. 이론적으로는 그렇다는 말이다. 

그러나 실제 상황에서는 별의별 일이 다 벌어진다. 

일단 필라멘트가 녹으면 유체가 되는데 이는 아주 복잡한 메커니즘으로 움직여진다. 기본적으로는 중력이라는게 있어서 가만 놔두면 아래로 흘러 떨어지는 성질이다. 물론 표면장력등의 힘도 받겠지만 말이다. 

게다가 온도에 따라서도 유체의 점성은 달라지기 때문에 내가 깊이 들여다 보려면 아주 험난한 여정을 거쳐야 할지도 모른다는 불안감에 휩싸였다.  그래서 문제를 좀 쉽게 정의를 내리기로 했다. 


"어디서 없어졌는가?"


이동후 압출부족이 발생했다는 것은 필라멘트가 정확한 위치로 모터가 밀어줬어도 사라지고 없다라는 것이다. 아니, 어쩌면 모터는 정확히 움직였지만 필라가 안밀렸을 가능성도 있다.  가장 먼저는 후자쪽인 모터가 밀어내지 않았을 경우를 염두에 두고 테스트를 해보기로 하였다. 

몇가지 생각을 해보았다. 

1. 익스트루모터의 기어가 필라멘트를 이빨로 물어서 밀어내는 구조이다보니 필라멘트가 변형이 된다. 

2. 리트랙션은 이렇게 이빨에 의해 변형된 곳을 다시 이빨로 물어서 보내고

3. 프라임의 과정은 변형되고 변형된 곳을 세번째 변형을 일으키며 밀어내는 과정이다. 

이 과정에서 필라멘트가 없어졌을 수 있지 않을까? 

아니면 갈려서 가늘어져 있기 때문에 밀어낼때 제대로 밀지 못한건 아닐까?

리트랙션을 너무 짧게 해서 이동 중에 밑으로 다 흘러버린건 아닐까? 그럼 리트랙션을 좀더 길게 해볼까? 


이런 저런 생각에 기존에 리트랙션 1mm 40mm/s 를 2mm 25mm/s 로 바꾸어 출력을 해보았다. 

거리를 늘린것은 좀더 잘 안흐르도록 더 훌쩍 빨아들인 것이고,

속도를 낮춘것은 빠른 속도에 모터톱니가 제대로 기능을 하지 못한건 아닐까 하는 의심에서 좀 천천해 해준 것이었다. 


출력결과이다. 



 Extra Prime 은 문제를 근본적으로 해결해주지 않는다고 여겼기에 기능을 끄고 진행해서 그런지 뒷면 압출부족이 리트랙션 값의 변경에도 불구하고 전혀 개선되지 않은채 그대로 나타났음을 볼 수 있다. 


리트랙션으로는 어떤 것도 해결할 수 없음을 확인하는 순간이었다고 할 수 있다.  


멘붕속에 있던 중 인터넷의 바다를 헤매며 나와 동일한 불량을 호소하는 사진들을 보다가 뜻밖의 곳에서 해결의 실마리를 찾았다. 

Combing 이 압출부족 현상을 일으킬 수 있다는 내용이었다. 


Combing 은 노즐이 허공을 이동하면서 거미줄을 형성하는걸 방지하기 위해 노즐이 빗질을 하듯 기존이 이미 출력되어 있는 표면을 따라 목적지 까지 이동하는 기능을 말하는 것이었다. 


나는 케이스의 Top 과 bottom 을 동시에 두고 출력을 했는데, 슬라이싱한 3차원 모습을 보면 다음과 같다. 



이 중에서 출력이 아닌 오직 출력없이 노즐이 이동한 선만을 확인해보니 이렇게 보였다. 



좀더 명확히 보기 위해 위에서 보면 아래 사진과 같다. 



노즐이 한 곳에서 다른 곳으로 압출없이 이동하는 선이 정확히 출력물 위를 지나고 있었다. 그렇지 않은 곳은 앞쪽 케이스에서 뒤쪽 케이스로 넘어갈 때 정도였다.  설정값에서 Combing 을 활성화시켜서 확인해보니 All 로 되어 있었다. 




그런데, 이 Combing 이 압출부족을 만들 수 있다는 것이었다. 

왜 그럴까? 


Combing 을 Off 한 것과 All 을 한 결과 Gcode 를 단순 비교하는 것만으로 이유를 알게 되었다. 


(오른쪽에 리트랙션 E 값의 변화가 있는것에 반해, 왼쪽 값은 노즐의 X, Y 위치의 변화만 있지 E 값은 변화가 없다)



Combing 을 껐을 때에는 이동시 당연히 존재하던 리트랙션이

Combing 기능이 켜 있을 때에는 사라진 것이었다. 

앞서서 언급했던 바와 같이 리트랙션은 멀리 떨어진 곳으로 노즐이 이동할 때 노즐에서 녹아져 중력에 의해 흘러나오는 필라멘트를 빨아당김으로써 거미줄 같은 형상이 나타나지 않게 하기 위함이었다. 

공교롭게도 Combing 역시 동일한 목적을 가지고 있었다. 기존 출력물 위로 노즐이 지나가게 함으로써 거미줄이 보이지 않게 하는 것이다. 

그러다 보니 combing 에 의해 기존 출력물 위를 지나갈 때에는 리트랙션을 하지 않는 것이었다. 

유레카!!!


combing 으로 기존 출력물 위로 지니가게 함으로 거미줄이 보이지 않게끔 하지만 흘러내리는 걸 방지하지는 않는다. 오히려 기존 출력물과 노즐끝에 대기하고 있는 필라멘트가 접착하면서 아마도 이동중에 계속 출력물에 필라가 '쏟아' 졌을것이다. 


지금까지 아주 장황하게 실패기를 쓴 이유는 이 말 한마디 하고자 함이었다. 


"Combing 을 꺼야 한다"


그 판단에 이르자 마자 combing 을 OFF 한 G-code 를 만들어 출력을 진행시켰다. 

(물론 E in mm3 이라는 volumetric enable 이 펌웨어 단에서 처리가 되고 있어 정말 황당하게 실패를 한번 겪긴 했지만 곧 해결을 했다. 이번 포스팅에는 이 문제는 거론치 않기로 하겠다)




아래가 그 결과이다. 



고질적인 압출 부족의 문제는 현저하게 없어져 버렸다. 


물론 다른 문제가 하나 생기긴 하였다. 

하나만 출력하는게 아니라 케이스의 밑과 덮개를 함께 출력하다보니

한쪽에서 다른쪽으로 이동중에 Combing 을 할 때에는 없던 흠이 발생한다. 

이는 combing off 에 의해 노즐이 최단거리로 이동하면서 벽면을 슬쩍 긁고 가기 때문인 것으로 추정한다. combing 한것과 안 한것의 벽면이다. 




새롭게 문제가 보이긴 했지만 이는 얼마든지 해결할 수 있는 문제일 것으로 여겨진다. 

출력시 함께 출력하는게 아니라 하나씩 별도로 출력하면 이런 문제는 없앨 수 있다. 


그리고 cura 의 설정 기능을 살펴보다보니 이런 것을 발견할 수 있었다. 

이전에는 보았어도 이게 왜 필요한지, 무엇을 의미하는지 전혀 몰랐을 기능이 하나둘씩 눈에 들어오기 시작한다. 



이런 생각을 해보았다. Combing 을 할 때 왜? 리트랙션이 없을까? Combing 하더라도 리트랙션을 하게끔 하면 앞선 문제는 나타나지 않을텐데 말이다. 


그런데 이름만 보아도 왠지 그 기능일 것 같은게 보인다. 

Retract Before Outer Wall 

현재 나타난 문제가 리트랙션 없이 기나긴 Travel 을 한 이후 시작하는 외벽의 불량이 주요이슈이기 때문에 외벽을 시작할 때 무조건 리트랙션을 해주게 하면 간단히 해결될 수 있겠다는 생각이 들었다. 


역시 슬라이서 개발자들은 이미 경험을 통해서 이런걸 다 기능으로 만들어두었구나 싶었다. 


그런데 정작 문제가 발생하면 왜 이런 정보를 제대로 찾을 수가 없을까? 


아마도 문제라는 것이 단순하지 않고 저마다 자신이 가지고 있는 프린터 기종과 방식, 환경적인 변수들 때문에 일관되어 정리하기가 까다롭기 때문일 것이다. 그리고 누가 백과사전처럼 모든 불량을 하나씩 맞춤형으로 정리하겠으며, 정리했다고 하더라도 미국의 유튜버 톰 아저씨 같은 사람이 아니고서야 어차피 자신의 몇대 안되는 프린터에서 경험한 한정된 지식일 뿐일테니 정리된 내용의 한계성도 분명 있을 것이다. 

그리고 어딘가에 찾지 못해서 그렇지 누군가는 이렇게 지식을 정리해두는 사람도 물론 있을 것이다. 


결국 목마른 사람이 우물을 판다고 자신이 처한 문제를 직접 해결해볼 수 밖에 없는 것일까? 




어쨋든 세상에서 하나밖에 없는 나만의 Creative 카드 케이스 완성. ^^v


문제해결한다고 골치를 좀 썩었지만, 그만큼 배우는 것도 많았던 시간이었다.


니체가 이런말을 했다고 한다

"나를 죽이지 못하는 것은 나를 강하게 한다"



어려운 문제라도 해결할 수 있을거라는 희망을 갖고

몰입하다보면 결국에는 풀리게 되어 있는게 아닐까 하는 생각이 든다.


이것이 최근 3D 프린터를 개선하면서 느낀 것이다.







김성민의 북리지 - 함께 성장하는 책 리더십 지혜