This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

*/

Linux 버전 확인

리눅스에서 버전 확인 하기

커널 확인

user@system:~$ uname -a
 

user@system:~$ cat /proc/version
 

배포판 정보 확인
user@system:~$ cat /etc/*release*
 

Python - Bytes, bytearray vs c struct variable

Python에서 bytes, bytearray 를 다룰 때 참고

Format string - Byte order, size, alignment

기본적으로 C 유형은 시스템의 기본 형식 및 바이트 순서로 표시
첫 번째 문자가 이들 중 하나가 아니면 '@'으로 가정
네이티브 바이트 순서는 호스트 시스템에 따라 big-endian 또는 little-endian으로 구분. 예를 들어 Intel x86 및 AMD64 (x86-64)는 little-endian.  Motorola 68000과 PowerPC G5는 big-endian



Format character



Example

>>> from struct import *
>>> pack('hhl', 1, 2, 3)
b'\x01\x00\x02\x00\x03\x00\x00\x00'
>>> unpack('hhl', b'\x00\x01\x00\x02\x00\x00\x00\x03')
(256, 512, 50331648)

>>> pack('<hhl', 1, 2, 3)
b'\x01\x00\x02\x00\x03\x00\x00\x00'
>>> pack('>hhl', 1, 2, 3)
b'\x00\x01\x00\x02\x00\x00\x00\x03'

>>> unpack('<hhl', b'\x00\x01\x00\x02\x00\x00\x00\x03')
(256, 512, 50331648)
>>> unpack('>hhl', b'\x00\x01\x00\x02\x00\x00\x00\x03')
(1, 2, 3)

Windows PC에서 endian을 지정하지 않고 했을 경우 => 네이티브로 판단하여 intel계열의 little-endian 으로 출력

>>> pack('hhl', 1, 2, 3) # Native'@'를 지정한 것으로 처리
b'\x01\x00\x02\x00\x03\x00\x00\x00'
>>> unpack('hhl', b'\x00\x01\x00\x02\x00\x00\x00\x03')
(256, 512, 50331648)


Little-endian vs Big-endian

>>> pack('<hhl', 1, 2, 3)           # little-endian
b'\x01\x00\x02\x00\x03\x00\x00\x00'
>>> pack('>hhl', 1, 2, 3)           # big-endian
b'\x00\x01\x00\x02\x00\x00\x00\x03'

>>> unpack('<hhl', b'\x00\x01\x00\x02\x00\x00\x00\x03')     # little-endian
(256, 512, 50331648)
>>> unpack('>hhl', b'\x00\x01\x00\x02\x00\x00\x00\x03')     # big-endian
(1, 2, 3)



Python - Type Error

Python에서 아래와 같은 오류가 발생할 경우

A Bytes-Like Object Is Required, Not ‘Str'

  bytes-likes 오브젝트가 필요하니 str 타입 말고 bytes 타입의 변수를 넣으라는 의미로 라이브러리등을 사용하다 보면 주로 발생하고 string type 과  bytes 타입은 아래와 같은 상관 관계가 있다.

str –> 디코딩 –> bytes

bytes –> 인코딩 –> str

text = "Hello"    
text_byte = text.encode('utf-8')
text_str = text_byte.decode('utf-8')
text_byte = "Hello".encode('utf-8')


참고


Python - VS Code에서 Qt Designer로 GUI 개발

VS Code에서 작업할 디렉토리를 선택(여기서는 test01폴더)하고 오른쪽 마우스를 클릭한다.
팝업 메뉴의 제일 아래쪽 PyQT: New Form을 선택하면 Qt Designer가 실행 된다.

새 폼(New form) 창이 뜨며 아래 5가지 Form 중에서 하나를 선택할 수 있다
  • Dialog with Buttons Bottom  - Dialog 타입, OK, Cancel 버튼이 하단 오른쪽에 위치
  • Dialog with Buttons Right - Dialog 타입, OK, Cancel 버튼이 오른쪽 상단에 위치
  • Dialog without Buttons - Dialog 타입, 버튼 없음
  • Main Window - Main window 타입, 상단에 메뉴바, 하단에 상태바
  • Widget - Widget 타입




 


참고

VS Code에서 Python 과 Qt5 사용하기

설치환경

  • OS : Windows 10
  • Python version : 3.7.9

설치순서

  1. CMD 실행
  2. 프롬프트상에 pip install qt5-tools 입력

  3. 설치된 PyQt의 버전을 확인 pip show pyqt5 입력
  4. vscode를 실행
  5. Extentions(Ctrl+Shift+X)에서 PyQt integration을 찾아 install

  6. vscode에서 새로운 파일(test.py)을 만들고 아래 코드를 넣는다.
    import sys
    from PyQt5.QtWidgets import QApplication, QWidget

    class MyApp(QWidget):

        def __init__(self):
            super().__init__()
            self.initUI()

        def initUI(self):
            self.setWindowTitle('My First Application')
            self.move(300, 300)
            self.resize(400, 200)
            self.show()


    if __name__ == '__main__':
       app = QApplication(sys.argv)
       ex = MyApp()
       sys.exit(app.exec_())
  7. 화면 오른쪽 상단의 삼각형 버튼을 눌러 코드를 실행한다.
  8. 화면 상에 창이 만들어졌는지 확인한다.

참고자료

ROBOT ARM 만들기

6축 로봇팔

  로봇팔에 대한 자료를 보고 한번 만들면서 공부해 보자는 생각에 자료를 정리한다. open source로 진행된 로봇 팔에 대한 아래와 같은 여러 자료들이 있다.
위에서 나온 대부분의 모델들은 3D 프린터를 이용하여 부품들을 인쇄하여 제작하도록 구성되어 있다.


사전 준비 사항

  • 3D 프린터 :  22x22 cm 이상 인쇄할 수 있는 프린터. 현재 보유하고 있는 델타 프린터로는 크기가 큰 부품들을 인쇄할 수 없어 새로운 Cartesian 타입(직교 타입)의 프린터를 만들었다.

Windows CMD 환경에서 PATH 설정 내용을 알고자 할때

PATH 는 CMD 창에서 실행파일이 있는 경로(디렉토리)를 지정한 환경 변수다.

어떤 경로가 설정되어 있는지 확인은 아래와 같이 echo명령과 같이 사용한다.

c:\ > echo %path%

PATH에 내가 원하는 디렉토리를 추가하고자 할 때는 set명령과 같이 사용한다.

경로의 구분은 콜론(:)으로 구분한다. 기존 path에 d:\test 디렉토리를 추가

C:\ > set path=%path%:d:\test

코로나 백신 부스터샷 괜찮을까?

 지난 6월 17일 얀센 백신을 맞고 4개월 반이 지났다. 얀센은 백신 효과가 접종 후 2달이 지나면서 급속도로 떨어져 부스트 샷을 맞는 것이 바람직 하다 하여  금주 목요일에 모더나로 예약을 하고 보니 집에서 걱정이 태산이다.


더 많은 사람들이 접종하고 난 다음에 하는게 어떠냐고 계속 챌린지하는데... 어찌해야 하나....

예약 날짜를 변경하고자 하니 변경일 기준으로 2주 뒤쪽 날짜로 변경 가능하다고 한다.
예를 들어 11/10일 날 변경 신청을 하면 2주 지난 24일 이후 날짜로 가능하다.

참고 

Delta 3D Printer Bed Leveling

3D 프린터 정보

  • 3D Printer Type : Delta 
  • Firmware : Marlin 1.1.x
  • 프린트 가능 높이 : 약 300 mm
  • 베드 반지름 : 약 90 mm

필요 S/W

  • Compiler : Arduino IDE
  • 제어 S/W : Frontface or Repetierhost

명칭

  • 델타프린터 기둥 : 정면에서 봤을 때 X Tower(왼쪽), Y Tower(오른쪽), Z Tower(뒤쪽)
  • 좌표계 


프린트 최대 높이 찾기

 델타타입 3D프린터에서 최대 프린트 높이는 프린터의 핵심 파라메터다. 프린트 높이 결정 및 베드 Calibration을 위해 제어SW(Repetierhost or Frontface)를 이용하여 아래를 수행한다.
  1. GCODE G28을 전송하여 노즐을 홈으로 보낸다.
  2. MCODE M114를 전송하여 홈위치에서 Z Height를 확인한다. 확인된 Z:274는 [configuration.h]에서 MANUAL_Z_HOME_POS 274에 해당한다.
  3. MANUAL_Z_HOME_POS 를 274에서 284로 10정도 올려 저장하고 FW 컴파일해서 제어보드에 flashing한다. 프린터 리셋 후 GCODE G28를 전송하여 노즐을 홈으로 보낸다.
  4. GCODE G1 Z11 명령을 전송하여 노즐을 프린트 베드에 가까이 이동시킨다.
  5. 베드 위에 종이 한장을 올린다.
  6. 제어SW를 이용하여 노즐을 베드쪽으로 1mm 이동 시킨다.
  7. 노즐과 베드 사이가 1mm 이하가 될 때까지 6을 반복한다.
  8. 노즐과 베드가 거의 닿도록 0.1mm씩 반복 이동 시킨다. 
  9. 8을 반복하면서 베드위에 있는 종이를 살짝 당겨 보아 노즐과의 간격을 확인한다. 종이가 움직이지 못할 정도까지 이동하면 노즐은 0.1mm 위로 이동 시킨다. 현재 노즐 위치를 프린트 베드 센터(0,0,0)으로 정의 한다.
  10. MCODE M115를 이용하여 현재 Z 값을 확인한다.
  11. 새로운 MANUAL_Z_HOME_POS 값은 'MANUAL_Z_HOME_POS - 현재 Z 값' 이다. 이 값이 최대 프린트 높이 값이 된다. 예를 들어 Z 값이 7.3 이 나왔으면 284-7.3=276.7(mm) 이 실제 최대 값이 된다.
  12. [configuration.h]에서 MANUAL_Z_HOME_POS 값을 새로운 값으로 수정하여 F/W를 새로 업데이트 한다.

프린터 베드 레벨링

  프린터 베드에 아래 그림과 같이 높이 조절좌가 있는 경우. 세개의 타워 중간에 베드 높이 조절좌가 위치 
  1. 위에서 P0(0.0, 0.0)의 높이를 조절한 상태에서 진행
  2. 베드위에 A4종이를 올려 놓는다.
  3. 제어S/W 에서 GCODE G28 전송해서 Home위치로 이동
  4. GCODE G1 Z10 or G1 X0 Z0 Z10 전송. (베드에서 P0위치에서 10mm 높이로 이동)
  5. GCODE M114 전송. 현재위치 X0 Y0 Z10이 표시되는지 확인
  6. GCODE G1 X0 Y60 Z10 전송. (베드에서 P1위치에서 10mm 높이로 이동)
  7. 제어SW를 이용하여 노즐을 베드쪽으로 1mm 이동 시킨다.
  8. 노즐과 베드 사이가 1mm 이하가 될 때까지 7을 반복한다.
  9. 노즐과 베드가 거의 닿도록 0.1mm씩 반복 이동 시킨다. 
  10. 노즐의 높이 Z의 값이 0.0 이 되기 전에 베드와 노즐이 닿았으면 바로 옆에있는 높이 조절좌를 움직여 베드의 높이를 낮추고 9번 부터 반복한다.
  11. 노즐의 높이 Z값이 0.0이 되었는데 베드와 노즐의 간격이 있다면 옆에 있는 높이 조절좌를 움직여 베드의 높이를 조금씩 높인다.
  12. 베드와 노즐 사이의 종이를 움직일 때 종이가 안 움직일 때 까지 11번을 반복한다.
  13. 종이를 움직일 때 살짝 움직일 정도로 조절좌를 이용하여 베드 높이를 낮춘다.
  14. GCODE G1 X52 Y-30 Z10 전송. (P2위치의 10mm 높이로 이동)
  15. 7번에서 13번까지 수행
  16. GCODE G1 X-52 Y-30 Z10 전송. (P3위치의 10mm 높이로 이동)
  17. 7번에서 13번까지 수행


관련글

G-Code

Specific codes

 3D 프린터에서 사용되는 G-코드는 RepRap 펌웨어 기준으로 문자 G로 시작하는 CNC프로그램에서 사용하는 것과 유사하다. 일반적으로 아래와 같은 작업 유형에 사용.

  • 빠른 이동
  • 직선 또는 호의 제어된 이송
  • 오프셋 등의 공구 정보 설정
  • 좌표계 전환

문자 코드

 A부터 Z까지 밀링이나 선반에서 사용되는 기능들이 정의 되어 있으나 아래에서는 3D프린터에서 주로 사용되는 코드들만 정리

문자설   명추가 정보
F움직임 비율(feed rate)
G준비 명령을 위한 코드G 명령은 원하는 동작의 종류(예: 빠른 위치 지정, 선형 피드, 원형 피드, 고정 주기) 또는 사용할 오프셋 값을 제어 장치에 알려주는 경우가 많다.
M기타 기능동작코드, 보조 명령 등
N프로그램의 라인 번호
XX축의 기준으로 한 절대 위치 혹은 증가된 위치 값
YY축의 기준으로 한 절대 위치 혹은 증가된 위치 값
ZZ축의 기준으로 한 절대 위치 혹은 증가된 위치 값


G-Code

Xnnn : X축으로 nnn만큼 위치 이동
Ynnn  : Y축으로 nnn만큼 위치 이동
Znnn  : Z축으로 nnn만큼 위치 이동
Ennn : 시작점과 끝점 사이에 nnn만큼 사출
Fnnn : 시작점과 끝점 사이의 분당 움직임 비율 (feedrate per minute)
Hnnn (RepRapFirmware) Flag to check if an endstop was hit (H1 to check, H0 to ignore, other Hnnn see note, default is H0)1
Rnnn (RepRapFirmware) Restore point number 4
Snnn Laser cutter/engraver power. In RepRapFirmware, when not in laser mode S in interpreted the same as H.

Code설명결과 정보
G00Rapid Move

Usage 

G0 Xnnn Ynnn Znnn Ennn Fnnn Snnn
G1 Xnnn Ynnn Znnn Ennn Fnnn Snnn

Parameters

Not all parameters need to be used, but at least one has to be used

Examples

G0 X12  ; move to 12mm on the X axis
G0 F1500  ; Set the feedrate to 1500mm/minute
G1 X90.6 Y13.8 E22.4 ; Move to 90.6mm on the X axis and 13.8mm on the Y axis while extruding 22.4mm of material

G01Linear Move
G02Controlled Arc Move, 시계 방향

Usage 

G2 Xnnn Ynnn Znnn Ennn Fnnn Snnn
G3 Xnnn Ynnn Znnn Ennn Fnnn Snnn

G03Controlled Arc Move, 시계 반대 방향
G04살다드웰 기간에 대한 주소를 사용합니다( X , U 또는 P 일 수 있음 ). 드웰 기간은 일반적으로 밀리초로 설정되는 제어 매개변수로 지정됩니다 . 일부 기계는 X1.0( s ) 또는 P1000( ms )을 허용할 수 있으며 , 이는 동등합니다.드웰 지속 시간 선택 : 종종 드웰은 한 번 또는 두 번의 전체 스핀들 회전만 지속하면 됩니다. 이는 일반적으로 1초 미만입니다. 긴 드웰은 사이클 시간의 낭비라는 지속 시간 값을 선택할 때 주의하십시오. 어떤 상황에서는 중요하지 않지만 대량 반복 생산(수천 사이클 이상)의 경우100ms만 필요하고 안전하기 위해 200이라고 부를 수 있지만 1000은 그냥 낭비(너무 길다).
G05 P10000고정밀 윤곽 제어(HPCC)윤곽 밀링 중에 더 나은 축 이동 가속 및 감속을 제공하기 위해 심층 예측 버퍼 및 시뮬레이션 처리를 사용합니다.
G05.1 Q1.AI 고급 미리보기 제어윤곽 밀링 중에 더 나은 축 이동 가속 및 감속을 제공하기 위해 심층 예측 버퍼 및 시뮬레이션 처리를 사용합니다.
G06.1NURBS( Non-Uniform Rational B-Spline ) 가공복잡한 곡선 및 파형 가공을 위해 Non-Uniform Rational B Spline 활성화(이 코드는 Mazatrol 640M ISO 프로그래밍에서 확인됨)
G07허수축 지정
G09정확한 정지 확인, 넌모달모달 버전은 G61 
G10프로그래밍 가능한 데이터 입력작업 좌표 및 도구 오프셋 값 수정
G11데이터 쓰기 취소
G17XY 평면 선택
G18ZX 평면 선택
G19YZ 평면 선택
G20인치로 프로그래밍미국과 캐나다 및 영국을 제외하고 다소 드문 경우입니다. 그러나 글로벌 시장에서 G20과 G21 모두에 대한 역량은 언제든지 필요할 가능성이 있습니다. G20의 일반적인 최소 증분은 1/10,0001인치(0.0001")이며, 이는 G21의 일반적인 최소 증분(1/1000밀리미터, .001mm, 즉, 1 마이크로미터 ) 보다 더 큰 거리 입니다. 물리적 차이는 때때로 G21 프로그래밍을 선호합니다.
G21밀리미터 (mm) 단위 프로그래밍전 세계적으로 널리 퍼져 있습니다. 그러나 글로벌 시장에서 G20과 G21 모두에 대한 역량은 언제든지 필요할 가능성이 있습니다.
G28원점 복귀(기계 제로, 기계 기준점이라고도 함)공구 팁이 기계 0으로 돌아가는 도중 통과할 중간 지점을 정의하는 XYZ 주소를 사용합니다. 기계 제로가 아니라 부품 제로(프로그램 제로라고도 함)와 관련이 있다.
G302차 원점 복귀(기계 제로, 기계 기준점이라고도 함)은 P 어드레스 지정 얻어 기계 원점 사용하는 경우, 시스템이 여러 보조 점 (P1 내지 P4)을 가진다. 도구 설명이 기계 0으로 돌아가는 길에 통과하는 중간 지점을 정의하는 XYZ 주소를 사용. 이는 기계 제로가 아닌 부품 제로(프로그램 제로라고도 함)로 표현.
G31건너뛸 때까지 피드 기능 프로브 및 도구 길이 측정 시스템에 사용됩니다.
G32단일 포인트 스레딩, 긴 손 스타일(싸이클을 사용하지 않는 경우, 예: G76 )단일 포인트 스레딩을 위한 자동 스핀들 동기화를 제외하고 G01 선형 보간과 유사.
G33일정한 피치 스레딩
G33단일 포인트 스레딩, 긴 손 스타일(싸이클을 사용하지 않는 경우, 예: G76 )일부 선반 컨트롤은 이 모드를 G32가 아닌 G33에 할당.
G34가변 피치 스레딩
G40공구 반경 보정 꺼짐커터 반경 보정(CRC)을 끈다 . G41 또는 G42를 취소.
G41공구 반경 보정 왼쪽
G42공구 반경 보정 오른쪽
G43도구 높이 오프셋 보정 네거티브공구 길이 오프셋 레지스터 값을 호출하기 위해 주소(일반적으로 H)를 사용. 게이지 라인 위치에 추가 되기 때문에 값은 음수 다. G43은 일반적으로 사용되는 버전(대 G44).
G44공구 높이 오프셋 보정 포지티브공구 길이 오프셋 레지스터 값을 호출하기 위해 주소(일반적으로 H)를 사용. 게이지 라인 위치에서 빼기 때문에 값은 양수 다. G44는 거의 사용되지 않는 버전이다(G43 대비).
G45축 오프셋 단일 증가
G46축 오프셋 단일 감소
G47축 오프셋 두 배 증가
G48축 오프셋 이중 감소
G49공구 길이 오프셋 보정 취소G43 또는 G44를 취소 .
G50최대 스핀들 속도 정의
G50스케일링 기능 취소
G50위치 레지스터(부품 0에서 툴팁까지 벡터 프로그래밍)
G52로컬 좌표계(LCS)
G53기계 좌표계프로그램 제로가 아닌 기계 제로를 기준으로 절대 좌표(X,Y,Z,A,B,C)를 취한다. 도구 변경에 도움이 될 수 있다. 비모달 및 절대 전용. 후속 블록은 명시적으로 프로그래밍되지 않은 경우에도 " G54로 돌아가기"로 해석.
G54 ~ G59작업 좌표계(WCS)축 오프셋의 각 튜플은 프로그램 제로를 기계 제로에 직접 연결한다. 표준은 6개 튜플(G54 ~ G59)이며 선택적으로 G54.1 P1 ~ P48을 통해 48개 튜플을 추가로 확장할 수 있다.
G54.1 P1 ~ P48확장된 작업 좌표계G54 ~ G59에서 표준으로 제공되는 6개 외에 최대 48개의 추가 WCS. G 코드 데이터 유형(이전의 모든 정수)의 부동 소수점 확장에 유의. 
G61정확한 정지 확인, 모달G64 로 취소할 수 있다 . 논모달 버전은 G09 이다.
G62자동 코너 오버라이드
G64기본 절단 모드(정확한 정지 확인 모드 취소)G61을 취소.
G68좌표계 회전
G69좌표계 회전 끄기G68을 취소 .
G90절대 프로그래밍부품 0을 기준으로 정의된 위치 지정.
밀링: 항상 위와 같다.
터닝: 때때로 위와 같이(Fanuc 그룹 유형 B 및 유사 설계), 대부분의 선반(Fanuc 그룹 유형 A 및 유사 설계)에서 G90/G91은 절대/증분 모드에 사용되지 않는다. 대신 U 와 W 는 증분 주소이고 X 와 Z 는 절대 주소입니다. 이러한 선반에서 G90은 황삭을 위한 고정 사이클 주소다.
G90고정 싸이클, 단순 싸이클, 황삭용(Z축 강조)절대 프로그래밍을 제공하지 않는 경우(위)
G90.1절대 아크 프로그래밍I, J, K 포지셔닝은 부품 0을 참조하여 정의.
G91증분 프로그래밍이전 위치를 참조하여 정의된 위치 지정.
밀링: 항상 위와 같다.
터닝: 때때로 위와 같이(Fanuc 그룹 유형 B 및 유사 설계), 대부분의 선반(Fanuc 그룹 유형 A 및 유사 설계)에서 G90/G91은 절대/증분 모드에 사용되지 않는다. 대신 U 와 W 는 증분 주소이고 X 와 Z 는 절대 주소다.
G91.1증분 아크 프로그래밍I, J, K 위치는 이전 위치를 참조하여 정의.
G92위치 레지스터(부품 0에서 툴팁까지 벡터 프로그래밍)G50 위치 레지스터 에서와 동일한 결과 정보.
밀링: 항상 위와 같다.
터닝: 가끔 위와 같이(Fanuc 그룹 유형 B 및 유사 설계), 그러나 대부분의 선반(Fanuc 그룹 유형 A 및 유사 설계)에서 위치 레지스터는 G50 .
G92스레딩 사이클, 단순 사이클
G94분당 이송 속도그룹 유형 A 선반에서 분당 이송 속도는 G98 .
G94고정 주기, 단순 주기, 황삭용( X 축 강조)분당 이송 속도를 제공하지 않을 때(위)
G95회전당 이송 속도그룹 유형 A 선반에서 회전당 이송 속도는 G99 입니다.
G96일정한 표면 속도(CSS)일정한 표면 속도를 얻기 위해 스핀들 속도를 자동으로 변경합니다. 속도 및 피드를 참조 . G20 모드 에서는 sfm 으로 , G21 모드 에서는 m/min으로 해석되는 S 주소 정수를 취 한다.
G97일정한 스핀들 속도rev/min(rpm)으로 해석되는 S 주소 정수를 사용한다. 모드가 프로그래밍되지 않은 경우 시스템 매개변수당 기본 속도 모드다.
G98고정 사이클에서 초기 Z 레벨로 복귀
G98분당 이송 속도(그룹 유형 A)분당 이송 속도는 그룹 유형 B에서 G94 .
G99고정 사이클에서 R 레벨 로 복귀
G99회전당 이송 속도(그룹 유형 A)회전당 이송 속도는 그룹 유형 B에서 G95 .
G100공구 길이 측정

M-Code



참조

3D 프린터

3D프린터에 관련된 사항들 정리

용어

  • G Code : 가장 널리 사용되는 CNC 프로그래밍 언어. 주로 자동화된 공작 기계를 제어 하는 데 사용되며 다양한 변형이 있다. G 코드 명령은 모터가 어디로 이동해야 하는지, 얼마나 빨리 이동해야 하는지, 어떤 경로를 따라야 하는지 알려주는 기계 컨트롤러(산업용 컴퓨터)에 사용 된다. 
  • Modeling : 가상공간의 2차원, 3차원 모델을 통해 실세계의 물체를 묘사하거나 혹은 물리적 환경을 모델링하여 가상환경 속에서 물체의 모습을 만들어낼 수도 있다. 3차원 모델링은 컴퓨터가 이해할 수 있는 형태의 데이터로 저장된다.
  • Slice : 모델링된 데이터를 일정한 두께로 나누는 작업. 두께가 얇을수록 모델이 정밀하게 표현되나, 모델이 프린팅되는 시간이 증가한다.

3D 프린터 종류

  • FDM (Fused Deposition Modeling) : 필라멘트 압출 방식
  • SLA (Stereo Lithography Apparatus) :
  • SLS (Selective Laser Sintering) :
  • DLP (Digital Light Processing) :

3D프린팅하기

  • 모델링 
  • 슬라이싱
    • 슬라이서는 솔리드 3D 모델을 얇은 슬라이스(레이어)로 나누어 준비한다. 이 과정에서 모델을 제작하는 방법을 프린터에 자세히 알려주는 G코드를 생성한다 .

  • 프린팅


관련글 보기

21.08.22 소양강변길과 불타는 춘천역

 지난 주말에 이어 부족한 운동량을 채우려 산행을 하려 하였으나 계속되는 비 소식에 산행은 포기하고 춘천 주변을 돌아보자는 마눌님의 의견에 오후 2시에 춘천으로 전철여행을 떠났다.

춘천역에 도착하니 어느덧 5시가 되어 간다. 우선 돌아갈 차량 시간들을 확인한다.

소양강변으로 나가려면 춘천역 2번 출구쪽으로 나가야 한다.
출구앞에 안내도가 있다. 주변 산책로를  보며 첫번째 목적지를 스카이워크로 결정하고 출발.
강변을 따라 스카이워크, 소양강 처녀 동상까지 가서 저녁을 먹고 돌아갈 생각이다.
다행히도 비는 안오고 구름 반 파란하늘 반이다.

강을따라 조금 올라가니 6.25때 춘천대첩 기념 평화 공원이 있다. 1950년 6월 25일 부터 27일까지 3일간의 전투에 대해 기록되어 있다. 그옆으로 625참전 학도병 기념탑등 625 및 월남전 기념탑등이 위치하고 있다.





소양강 스카이워크는 춘천시민들에게는 무료 입장, 외지인은 이천원의 입장료를 받는데 이천원어치의 춘천사랑상품권을 제공하여 무료로 입장하는것과 같다. 춘천사랑상품권은 춘천시내 사업장 대부분에서 현금 처럼 사용가능하다고 한다. 


스카이워크는 바닥이 유리로 되어있어 고소 공포증이 있는 사람에게는 약간의 무서움을 줄수도 있다. 한번쯤은 가볼만한 곳 인 것 같다. 끝쪽에는 잉어 분수가 있고, 강상류쪽으로는 소양강 처녀 동상이 보인다.

잠시 구경하니 배가 고프다.. ㅡ.ㅡ 
춘천까지 왔으니 저녁은 닭갈비로... 스카이워크 주변에 식당들이 몇몇 있는데 괜히 가기가 싫어 외지인이 조금 적은 곳을 찾으려 시내쪽으로 걸어 들어갔다. 

주말인데 문닫은 가계들이 많다.. 코로나영향인지... 식당 몇 군데가 모여있는 곳까지 와서 춘천사랑이라는 식당에 들어가 닭갈비를 주문해서 먹었다. 요리를 해서 나오는데 맛이 역대급이다. 이제까지 춘춘에서 먹은 닭갈비중 가장 맛있게 먹은 것 같다..


맛있는 식사를 마치고 춘천역으로 향하는데 석양으로 춘천역이 불타오른다.. 대~박~


집에 도착하니 10시가 넘었다..ㅡ.ㅡ


관련글