3D 프린터2017.06.21 23:05

2.5 옵션 공부 (1) 글을 쓰고 몇개 옵션 공부를 해보려고 하는데, 벌써 2.6이 나왔다.

이놈들 버전업을 너무 자주한다. 


락 걸어둔 옵션을 풀기도 하고.. 2.4에서 2.5는 레이어 프리뷰가 많이 바뀌었는데 2.6은 뭐가 바뀌었는지는 일단 나중에 알아보기로 하고, 2.5에 있는 옵션은 2.6에도 그대로 가져갈테니, 지난번에 알아보기로 한 옵션 Alternate Extra Wall 등을 알아보자.


1. Shell

  • Alternate Extra Wall: 
    • 채움(infill) 시 추가 벽을 만들어 채움 내부를 더 단단하게 붙을 수 있도록 해주는 옵션이다. 이건 내부 채움이라 실제 프린트 결과물로 테스트를 하려면 얼마만큼의 힘들 견디는지 테스트를 해봐야겠지만, 단순히 아래 레이어 뷰 모드로도 변화를 살펴볼 수 있다. 옵션을 적용하면 오른쪽 그림처럼 인필(어두운 노란색)이 내벽(초록색)과 겹치는 부분이 생성된다.

적용: 현재 레이어 채움 아래 내벽이 겹쳐져있음

미적용: 내벽과 채움 겹치는 부분이 없음

* 외벽(shell, 적색), 내벽(inner wall, 녹색), 채움(infill, 어두운 노란색), 바닥 천장(bottom and top, 밝은 노란색)



2. Infill

  • Infill Before Walls: 
    • 채움과 외벽 중 어느것을 먼저 압출하여 생성하는지 결정하는 옵션. 적용하면 선 채움 후 외벽으로 진행된다. 외벽을 먼저할 경우 치수 정확도 및 외벽 품질이 좋아지는 장점이 있으나, 오버행의 출력 품질이 낮아지는 단점이 있다. 채움을 먼저 출력할 경우 단단한 출력 결과를 얻을 수 있으나 채움 패턴이 외벽에 나타날 수도 있다고 CURA에서 설명하고 있다.


Posted by Chuck Hong
3D 프린터2017.06.18 20:18
최근에 (아직도) 포켓몬고를 하는 와이프에게 휴대폰 거치대를 뺏겼습니다.
하나 더 사야겠다 하던참에, 만들면 되잖아? 싶어서, 

thingiverse에서 찾다가 적당히 remix해서 만들어봤습니다.thingiverse 링크: https://www.thingiverse.com/thing:2391390 

이렇게 출력을 해서 




이렇게 조립을 하고.. 



이렇게 자전거에 고정시켰습니다. 

레이어 0.2, 채움 50%, 서포트 적용해서 출력했구요, 고정하고 동네 한바퀴 돌아보니 단단하니 괜찮았습니다. 보통 자전거면 25mm짜리 마운트를 쓰면 될 것 같습니다.



Posted by Chuck Hong
3D 프린터2017.06.10 20:38

심플리파이가 여러 기능이 많지만 유료로 가격이 만만치 않고,

큐라는 무료로 시간이 갈수록 기능이 추가되고 있어 큐라를 좀더 공부해서 잘 활용해보기로 했다.


현재 CURA는 2.5버전까지 나왔고 다운로드는 여기서 받을 수 있다.

다양한 옵션이 많아서 하나씩 읽어보고 써보며 공부하는 차원에서 정리해 본다.



  • 먼저, 큐라를 열면 기본 설정 외에 숨이있는 옵션이 있는데, 찾는 방법은 아래처럼 큐라를 실행해 오른쪽 설정화면에 보면 매뉴에 마우스를 올리면 기어모양 아이콘이 나온다. 이 아이콘을 누르면 모든 옵션을 볼 수 있고 선택 및 해제가 가능하다.



다양한 옵션이 많지만, 일단 출력 품질을 높여줄 수 있(을 것으로 보이)는 옵션을 위주로 정리해보았다.


1. Shell

  • Outer Wall Wipe Distance: 
    • 외벽 생성  외벽을 따라 일정길이를 움직여 재봉선(Z seam)을 가릴 수 있게 해준다근데 실제로 출력을 해봐도, 특별히 재봉선이 나아지진 않았다. 어떤 경우에 이 효과가 되는지, 아니면 큰 의미 없는지는 좀더 살펴봐야 할듯.


0 mm / 0.25 mm / 1 mm / 5 mm 재봉선이 크게 개선되진 않음.

 

  • Outer Before Inner Walls: 
    • 보통 출력할때는 내벽을 먼저 다음 외벽을 생성하는데, 이 옵션을 선택하면 외벽을 내벽보다 먼저 압출해서 생성한다
    • 해당 옵션 설명에는 높은 점성(viscosity)을 가지는 ABS 등에서 수치 정확도가 올라가는 장점이 있지만, 오버행 출력품질이나 표면의 질이 낮아지는 단점이 있다고 .


       아래 출력물 중 왼쪽은 옵션 없을 때, 오른쪽은 옵션 적용 후. PLA면서, 단순 원통 출력물이라 외벽에 큰 차이는 나지 않았지만, 천장(Top)과 채움 간격은 줄어들었다. (왜?)


      20mm 실린더 출력 외벽 품질에 차이 없었음


       채움과 내벽 사이 간격은 줄어듬


다음엔, Alternate Extra Wall, Infill Before Walls, Skin Overlap Percentage, Gradual Infill Steps 등을 알아볼 예정.

Posted by Chuck Hong
3D 프린터2017.04.30 14:30

지난 글(http://cortkd.tistory.com/42)은 X Y 축의 크기 교정을 위한 것이었다면, 높이 오차가 있는 경우에 어떻게 해야할까에 대한 정보도 궁금해서 간단히 서칭 및 정리해 본다.


3D프린터에서 출력물 높이는 크게 오차가 생길일이 없는데, 간혹 발생하지만 대부분 간단히 수정 가능한 문제이다.


구글에서 서칭을 해보면...


I am using a GT2 belt and a 20 teeth pulley on a NEMA 17 stepper motor

 

nema17 = 1.8 degrees per step (200 steps per revolution)

stepper driver microsteps default = 16 (16 microsteps per step on the stepper motor)

microsteps per revolution = 200x16 = 3200

gt2 belt = 2mm pitch

20T pulley = 20T per revolution => 20Tx2mm = 40mm per revolution = 3200 steps

steps/mm = 3200/40 = 80


출처: https://www.3dhubs.com/talk/thread/delta-printer-printing-dimensions-wrong


위 글에서 확인해볼 사항이 나와있다.


1. 사용하는 모터의 스텝 수

1.1. 1회전당 스텝수 및 마이크로 스텝

2. 벨트 피치

3. 풀리 잇수 및 직경


박스안에 예시의 계산은,


1. 스텝당 1.8도 (즉 1회전에 200스텝)

1.1.모터 드라이버의 마이크로스텝 수 = 16
즉, 1회전당 3200 마이크로 스텝

2. 2mm 피치

3. 20T 풀리 = 1회전당 20잇수


200( 1회전당 스텝 ) × 16( 마이크로스텝수 ) ÷ 2 ( 벨트 피치 ) ÷ 20 ( 풀리 잇수 ) = 80



마를린 코드에서 "configuration.h"에 아래와 같이 입력해주면 된다.


#define XYZ_FULL_STEPS_PER_ROTATION 200 // 1회전당 스텝수

#define XYZ_MICROSTEPS 16 // 마이크로 스텝

#define XYZ_BELT_PITCH 2 // 벨트 피치

#define XYZ_PULLEY_TEETH 20  // 풀리 잇수


마를린 펌웨어에 따라 개별적으로 입력하는 변수 정의가 없는 경우에는,


#define DEFAULT_AXIS_STEPS_PER_UNIT {X축,Y축,Z축,Extruder}


이 값에 입력해주면 되는데, 위의 계산을 통해나온 값인 80을 X축, Y축, Z축에 넣어줘야한다. 

Posted by Chuck Hong
3D 프린터2017.04.30 00:18


원제: Diagonal rod correction for delta printing XY dimensional calibration

원저자: Salmeron Valdivieso, H

2017-02

출처: http://www.thingiverse.com/thing:1274733




목차


1. 서론

2. 수학적 모델

3. 적용

a. Thingiverse 파일 사용

i. 리피터 펌웨어 값 수정

ii. 마를린 펌웨어 값 수정

iii. 예제

4. FAQ





1. 서론


가정용 3D프린팅은 지속적이고 문제가 많은 교정(calibration)으로 매우 실망스러운 작업이 될 수 있다. 이러한 어려움은 델타방식의 3D프린터를 사용할 경우 더 커지는데, 델타방식이 조형과 교정이 더 어렵기 때문이다. 이 글은 델타구조에서의 각 축(tower)의 "diagonal rod"값를 계산을 풀어낸 것이다. 이것으로 XY치수 오차를 해결할 수 있을 것이다(Horizontal Radius와 모터의 스텝수가 정확하다는 가정 하).



2. 수학적 모델


베드 중심에서 각 3개 중 하나의 축까지로 평행이동 모델을 만들어 보자. 여기서 D0를 컨트롤러에 입력한 "diagonal rod" 값으로, D를 치수가 정확해지는 실제 "diagonal rod" 값으로 정하자.


컨트롤러는 수평 방향으로 명령내려진 L*를 가기 위해 주어진 파라미터와 함수로 계산된 Dh만큼 "carriage"를 이동한다. 코드(software)는 파라미터를 교정하기 위해 h*를 계산한다. 노즐이 베드의 중심일때  "diagonal rod" 투영(대각선의 수평길이)은 "Horizontal Radius"인 R과 같다. 피타고라스 정리에 따라서:




그림 1: 평행이동의 개략도


노즐은 (실제로) 다른 거리인 L(실제 우리가 측정할 수 있는 거리)을 이동한다. 이것은 계산된 Dh가 실제 수치와 입력된 수치의 차이로 인해 달라졌기 떄문이다. 이때 실제 측정할 수 있는 L값을 이용해서 실제 "diagonal road"값 D를 계산해 볼 수 있다.



이 식에서 볼 수 있듯 직교방향(수직-수평간)의 수치 오차는 "diagonal rod"값에만 영향을 받는 것을 알 수 있는데, 이것을 바탕으로 각 축(tower)의 "diagonal rod"값에서 생긴 에러를 분간할 수 있다.



3. 적용


이러한 방법을 확인할 수 있는 쉬운 도구는 "Thingiverse"에 올렸다(http://www.thingiverse.com/thing:1274733).


상기 계산을 적용하기 위해서는 식 (1), (2) 및 (3)을 풀어야 한다. 정확한 "diagonal rod" D값을 계산하려면 L*, L, R, D0값을 구해야하고, 이를 위해 조형물을 하나 출력해서 측정해고 대입해야 한다. 이때 좋은 방법은 육각형을 출력하는 것인데, 각 축 방향으로 두 면을 가지고 있어 두번의 측정을 통해 두 배의 정확도를 가질 수 있기 때문이다.


a. Thingiverse 파일 사용

적용은 간단히 첨부된 육각형을 출력하고, 실제 출력된 길이를 측정하여 첨부된 스프레드시트에 넣으면 가능하다.

출력은 아무런 XY 치수나 "diagonal rod" 값을 수정하지 않아야 하며, 기계부 수정도 없이  진행해야 한다.

측정값의 표기는 아래 그림 2에 표시하였다.

그림 2: 육각형 출력물 측정

L은 양쪽 마주보는 면의 사이 거리로, 각 축방향의 직교방향으로 Lx, Ly 및 Lz가 측정해야할 길이이다.

Lx, Ly 및 Lz를 실제 상기 수식에 적용하기 위해서는 반으로 나눠야하는데, 이는 상기 식이 베드 중심에서 이동한 것으로 가정한 것이기 때문이다. 이것은 이미 주어진 엑셀 시트에 반영되어 있다.

Lx, Ly 및 Lz값을 엑셀 시트 LX, LY, LZ에 대입하여 넣고, 현재 펌웨어에 입력되어있는 "horizontal radius"와 "diagonal rod"값도 엑셀 시트에 넣어주면 아래 그림과 같이 결과를 얻을 수 있다.

그림 3: 스프레드 시트 입력 예시

i. 리피터 펌웨어 값 수정

상기 값을 이용해서 그림 4와 같이 리피터 소포트웨어에서 값을 수정할 수 있다. 

그림 4: Eprom 메모리 에디터 창

ii. 마를린 펌웨어 값 수정

마를린 펌웨어에서 각 "diagonal rod"값을 수정하는 것은 까다로운데, 아주 어려운 것은 아니다. 아래 내용은 하나의 방법으로 각 사용자에 따라 다른 버전 및 변형된 마를린을 사용하고 있으므로 아래 코드 부분이 이 사용자의 코드에 없을 수 도 있다.

1 단계

마를린 소스코드에서 "Marlin_main.cpp"를 연다. 그림 5에 있는 코드를 찾아서 그림 6의 코드로 수정한다. "Diag_rod_x", "Diag_rod_y" 및 "Diag_rod_z"가 새로운 "diagonal_rod" 값이다.

그림 5: 마를린의 원래 코드

그림 6: 새로운 코드

2 단계

그림 7의 코드를 그림 8의 코드로 바꿔준다.

그림 7: 마를린의 원래 코드

그림 8: 새로운 코드

3 단계

마지막으로 "Configuration.h"에서 DEFAULT_DELTA_DIAGONAL_ROD 값을 스프레드 시트에 있는 값으로 수정해 준다.

iii. 예제

패쓰.


4. FAQ

패쓰


5. 번역한 사람의 경우

a. 측정

그림 9. 교정을 위한 육각형 출력물

- 육쪽마늘 같은 출력물에 각 마주보는 변 사이를 측정해서 엑셀 시트에 투입하여 값 산출

- 처음 기존 치수가 맞지 않는 세팅값으로 출력한 것: 1st

- 수치 측정하여 펌웨어 수정 후 출력한 것: 2nd

- 다시 출력 후 "diagonal rod"값 재수정한 것: 3rd

그림 10. 최종 수정 후 20mm 큐브 결과물

- 교정 전 큐브 크기 가로 21.5, 세로 22mm 수준으로 오차에서 20±0.05mm로 교정 완료

b. 마를린 코드

저는 Anycubic Delta Kossel 버전의 마를린이었기 때문에, 제 경우에는 마를린코드가 달랐습니다. 

아래와 같이 수정하였습니다.

• "Configuration.h"에서:

(1) DELTA_DIAGONAL_ROD 부분

#define DELTA_DIAGONAL_ROD 217                     ← 원래 입력되있던 값

 

 

#define DELTA_DIAGONAL_ROD_X 221.324  

#define DELTA_DIAGONAL_ROD_Y 221.119 ← 스프레드 시트 결과 값

#define DELTA_DIAGONAL_ROD_Z 221.324  

(2) DELTA_DIAGONAL_ROD_2 부분

#define DELTA_DIAGONAL_ROD_2 pow(DELTA_DIAGONAL_ROD,2)  

#define DELTA_DIAGONAL_X_ROD_2 pow(DELTA_DIAGONAL_ROD_X,2)

#define DELTA_DIAGONAL_Y_ROD_2 pow(DELTA_DIAGONAL_ROD_Y,2)

#define DELTA_DIAGONAL_Z_ROD_2 pow(DELTA_DIAGONAL_ROD_Z,2)1

• "Marlin_main.cpp"에서:

(1) calculate_delta 함수 부분

 delta[X_AXIS] = sqrt(DELTA_DIAGONAL_ROD_2

                      - sq(DELTA_TOWER1_X-cartesian[X_AXIS])

                      - sq(DELTA_TOWER1_Y-cartesian[Y_AXIS])

                      ) + cartesian[Z_AXIS];

 delta[Y_AXIS] = sqrt(DELTA_DIAGONAL_ROD_2

                      - sq(DELTA_TOWER2_X-cartesian[X_AXIS])

                      - sq(DELTA_TOWER2_Y-cartesian[Y_AXIS])

                      ) + cartesian[Z_AXIS];

 delta[Z_AXIS] = sqrt(DELTA_DIAGONAL_ROD_2

                      - sq(DELTA_TOWER3_X-cartesian[X_AXIS])

                      - sq(DELTA_TOWER3_Y-cartesian[Y_AXIS])

                      ) + cartesian[Z_AXIS];

delta[X_AXIS] = sqrt(DELTA_DIAGONAL_X_ROD_2

                      - sq(DELTA_TOWER1_X-cartesian[X_AXIS])

                      - sq(DELTA_TOWER1_Y-cartesian[Y_AXIS])

                      ) + cartesian[Z_AXIS];

 delta[Y_AXIS] = sqrt(DELTA_DIAGONAL_Y_ROD_2

                      - sq(DELTA_TOWER2_X-cartesian[X_AXIS])

                      - sq(DELTA_TOWER2_Y-cartesian[Y_AXIS])

                      ) + cartesian[Z_AXIS];

 delta[Z_AXIS] = sqrt(DELTA_DIAGONAL_Z_ROD_2

                      - sq(DELTA_TOWER3_X-cartesian[X_AXIS])

                      - sq(DELTA_TOWER3_Y-cartesian[Y_AXIS])

                      ) + cartesian[Z_AXIS];



Posted by Chuck Hong
3D 프린터2017.03.27 21:38


리쏘페인(Lithophane)


리쏘페인이란 조각이나 몰딩을 통해 만든 예술작품으로 뒷면에 광원이 있을 때 그 그림이 보이도록하는 것을 의미하는데, 3D프린터를 통해 리쏘페인을 쉽게 제작할 수 있다.


사진 파일을 Cura로 불러오면 자동으로 Lithophane 출력 가능하도록 변형해주며, 출력은 수직으로 세워 출력하면 품질이 좋아진다.


친구 집에 놀러가기전 선물용으로 만들어 봤다. 케이스도 3D 프린터로,


^ 최종 결과물, 후면에 빛이 없으면 마치 예전 필름카메라로 찍은 인화 전 필름을 보는 듯 하다.


^ 케이스에 LED을 넣어주고,


^ 케이스를 잡아주고 약간 각도를 만들어줄 거치대


^ 다 조립하면 후면은 이렇게 된다.



^ 불을 키면, 사진과 같이 보인다.

Posted by Chuck Hong
3D 프린터2017.03.04 21:26
3D 프린터2017.02.20 21:01

3D 프린터 출력을 타임랩스로 촬영해보았다.


촬영은 라즈베리파이 카메라(어안(?)렌즈)를 이용했다.


출력물은 http://www.thingiverse.com/thing:511821


heat bed를 사용하지 않아서 가쪽이 수축으로 뜨는 것도 볼 수 있다.




결과물은 이렇게, 활용.



Posted by Chuck Hong
3D 프린터2017.02.12 22:25

기본으로 제공되는 모터드라이브는 모터 구동 시 상당히 시끄럽다.


이를 개선해주는 모터드라이브가 바로 TMC2100 인데, 한개당 10,000~15,000원 정도.



^ 이렇게 생겼다.



^ 보드에 이렇게 꽂아주고 (기본 제공 모터 드라이브가 녹색 왼쪽 두개)



^ 이렇게 팬을 달아주면 완성

(보드 마운트 및 팬 홀더는 여기)



TMC2100으로 교체는 기존 모터드라이브가 꽂혀있는 핀 배열을 확인하고 똑같이 꽂아주면 되고.


가변저항 회전부와 GND 사이 전압을 0.7~1.4V 정도로 해주면 좋지만, 


1V 이상 올리게 되면 발열이 크므로, 히트 싱크를 부착하고 팬으로 쿨링해주는 것이 좋다.


전압이 너무 낮으면 공급되는 전류가 낮아서 출력 속도를 느리게 해야하고, 

출력속도를 올리면 출력물이 이상하게 되니, 쿨링팬을 달고 전압을 올려주면 좋다.


마지막으로, 펌웨어 상에서 모터 방향을 반대로 바꿔주면 끝.


(모터 방향을 바꾸는 코드는 여기 참조)


마를린 펌웨어의 configuration.h 파일에서 아래 값이 true로 되어있으면 false로 바꿔주면 됨.

#define INVERT_X_DIR false    // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR false    // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR false    // for Mendel set to false, for Orca set to true


Posted by Chuck Hong
3D 프린터2017.02.04 15:39

내써팝(nasspop.com)에서 Anycubic Delta Kossel 구매한지 한달 됐다. 30만원.


조립은 의외로 어렵지 않지만 부피도 있고 부품도 있다보니 2일 나눠서 총 10시간 정도 걸렸다.


조립은 동봉된 매뉴얼만보면 가능하고, 배선연결 등은 카페의 메뉴얼(링크)를 참고했다.


^ 나사류와 사출 부품들


^ 알루미늄 프로파일과 롤러 등


^ 모터와 보드 등


^ 노즐 모듈과 롤러 등


^ 70% 정도 완성


^ 익스트루더까지 연결하고 끝.


^ 처음 교정 후 뽑아본 고양이, 이후 수평 및 높이조절이 쉽지 않았다.


생각보다 어렵진 않았지만, 쉽지도 않았다. 무엇보다 들인 노력에 비해 퀄리티가 좋고 가격이 저렴한것이 좋다.

Posted by Chuck Hong