상세 컨텐츠

본문 제목

실측에 기반한 정밀한 스텝값 조절

취미 : 3DPrinter

by 미련퉁이 2018. 7. 25. 18:45

본문

반응형

부끄럽지만 지금까지 X, Y 스텝값은 딱히 조절할 필요가 없다고 믿었었다. 

하지만 출력물의 Dimension이 미세하게 맞지 않는 경향이 있다는 걸 알게 되었고, 한번 Calibration을 진행해 보았다. 결과가 생각보다 의미가 있었다.


오늘 이용할 방법은 간단하지만, 가정을 이해해야 한다.

원하는 Dimension과 출력된 결과물의 실제 Dimension을 1차함수의 관계에 있다고 가정할 수 있다.


Y를 출력물에서 측정된 실제 크기, X를 모델에서의 이상적인 크기라고 가정하면, 

<y(관측값)=ax(실제값)+b>

즉 a라는 일정한 배수(기울기)가 있고, b라는 글로벌한 offset(y절편) 두가지 상수로 관계를 정의할 수 있다. 

a*x+b 그래프의 예시. a값이 1이고 b값이 0인 경우(파란색 선)이 프린터의 스텝이 이상적인 경우이다. 다른 색의 선은 모두 기울기값이 다르다. 이는 잘못된 스텝값을 갖고 있는 경우를 비유한다.

만약 우리가 틀린 스텝값을 이용하고 있다면 a값이 1이 아니라는 이야기가 된다. 이 때에는 출력하는 물체가 커질수록 오차도 커질것이다. 여기에 더해서 일정한 값의 오차가 상수로 나타날 수도 있고, 이 값은 b값으로 표현될 것이다. 0이 아닌 b값의 원인은 압출량(Etrusion rate or Extrusion multiplier)의 과다 혹은 부족, play(구동부의공차?), slicer의 특수 설정(Horizontal size compensation 등) 에 의해서 일어날 수 있다.


위와 같은 그래프를 그리기 위해서, 모델상 크기를 알고있는 물체를 뽑고, 실제 크기를 재보면 이렇게 프린터의 스텝값을 진단할 수 있을 것이다. 

Thingiverse를 찾아보니 이미 이 작업을 자동화해준 사람이 있다. 

https://www.thingiverse.com/thing:2484766

https://www.thingiverse.com/thing:2484766 Calibration Cross


들어가서 받아보자. 받으면 십자가모양의 모델, 기둥모양 모델과 엑셀파일이 같이 있다.

십자가 모양 모델은 XY축, 기둥모양은 Z축 보정을 위한 모델이다. XY 보정을 하는법을 알면 Z축도 똑같이 할 수 있다. 

0. 기존의 스텝값을 알아놓는다. 

1. 해당 모델을 받아서 압출량을 100%(1.00)로 해서 출력한다. XY쪽 길이가 중요한 것이므로 Top/bottom판은 꼼꼼히 채울 필요 없다. 나같은 경우는 윗판 아랫판 모두 1장씩만 깔았고, 외벽은 2장으로 하였다. 

2. 버니어 캘리퍼스로 각 부분의 크기를 재서, 엑셀 노란색 칸에 집어넣는다.

3. 엑셀의 초록색 창에 추천되는 새로운 스텝값이 나온다.


엑셀파일을 열면 이렇게 생겼다. 

첨부되어있는 엑셀파일 복잡해보이지만 우리는 노란색 칸만 쓰면 된다.

 (노란색 부분만 건들면 된다.)


스텝값을 프린터에 적용하고, 보정이 잘 되었는지 다시 인쇄해서 확인한다.


이론적인 스텝값은 나의 경우는 100, 100 이지만, 계산 결과 100.22 / 100.55가 되었다. 같은 모터에 같은 종류의 벨트, 같은 풀리를 이용하는데 이게 왜 다를까, 이상하긴 했다.

내 생각엔, 텐션으로 인해 벨트가 미세하게 늘어나서 바뀐게 아닌가 생각된다. (여기에서 든 생각이, 벨트를 쓰면서 계속 필요이상의 텐션을 가하면 수치적 정확도도 계속 바뀔 수 있을 것 같다. ) 


무튼 수정된 스텝값을 펌웨어에 적용하였다. 통신케이블을 못찾아서 나는 그냥 프린터 인터페이스에서 변경하고, 저장하였다. (marlin기준)


이후 십자가를 다시 뽑고 테스트 해본 결과, 모든 경우가 반올림해 소수점 첫째자리까지 맞아들어갔다. 이정도면 됐다 싶어서 그만했다. 이제 프린터의 오차를 생각할 필요없이 바로 바로 뽑아도 된다. 



PS : 엑셀을 자세히 보시면 알겠지만, 나의 경우는 0.4만큼의 추가적인 일정한 오차가 계속 발생하였는데, 그 원인은 simplify3D에서 Horizontal size compensation을 0.2만큼 주고 깜박 잊고 있었던 것이었다.

이 옵션은 지정한 값 만큼 출력물의 외곽을 xy방향으로 확장한다. 예를 들어 0.1mm의 벽이 있다면, 원래는 인쇄가 불가능하지만 이 옵션을 준다면(e.g 0.2) 0.2+0.1+0.2 = 총 0.5 mm의 구조로 바뀌게 된다. 


만약 이런 옵션이 없는데 계속 일정한 오차가 발생한다면 그것은 extrusion multiplier를 조절해서 고쳐야 한다. 

참고로, 출력시 한 라인의 두께(width)는 노즐 직경의 110%~120%가 적당하다고 한다. 즉 0.4mm 노즐이면 0.44~0.48정도를 이용한다. 만약 매우 꼼꼼히 채워져있는 물건을 뽑고싶다면(예를 들어 방수가 되는 그릇 등) 노즐값 그대로 라인의 두께를 선정하는것도 좋을 것 같다. 



반응형

관련글 더보기

댓글 영역