[3D프린터개발산업기사 필기] 3D프린터 프로그램

2019. 8. 19. 23:55공대남편/3D프린터개발산업기사

3D프린터개발산업기사 필기 시험의 각 과목에 대해 학습한 내용을 정리하였으며, 이와 관련된 기출문제 몇가지 풀이를 마지막에 정리하였습니다.

 

제어 프로그램 개발

제어프로그램 개발계획 수립

1. 3D프린터 제어 흐름도

  (1) 3D CAD 모델 : 3차원 모델링된 CAD 파일을 변환하기 위해 읽어 들이는 과정. (STL 파일 형식을 많이 사용한다.)

  (2) 슬라이싱 파일 생성 : CAD 파일을 실제 구현할 두께로 한층씩 나누는 과정.

  (3) 툴패스 생성 : 슬라이싱된 각 층의 형상을 노즐에서 나오는 재료를 점과 선으로 채우는 과정.

  (4) 제어 코드 생성 : 툴패스를 따라 노즐이 이동할 수 있도록 명령어를 생성하는 과정. (g code를 표준으로 사요한다.)

  (5) 제어 코드 전송 : gcode로 된 제어 명령 코드를 프린터로 전송하는 과정.

  (6) 제어 코드 저장 및 시스템 초기화 : 프로그램 수행을 위한 환경 셋업 과정.

  (7) 제어 코드 명령어 수행 : 제어 명령어 코드에 따라 재료를 분사하는 과정.

  (8) 시스템 상태 모니터링 : 제어 상태 데이터를 PC로 전송하여 모니터링하는 과정.

제어프로그램 개발

1. 컨트롤 보드

  (1) I/O 포트 : 전기 신호의 기본 동작인 On/Off 기능을 구현하는 포트이다. 입출력뿐만 아니라 ADC, Timer, Interrupt 등의 대부분의 기능을 겸한다.

  (2) A/D 포트 : 연속적인 아날로그 신호를 디지털 신호로 변환시킬 수 있는 포트이다. ADC의 성능은 Sampling Frequency와 Resolution bit로 나뉜다. (Atmega328P 분해능은 10bit. 0~1023의 값을 읽는다.)

  (3) PWM 포트 : 0과 1의 디지털 출력으로 아날로그인 것처럼 출력할 수 있는 포트이다. (0~255의 값을 출력한다.)

2. 스테핑 모터

   - 회전축에 부착된 로터와 회전축을 둘러싼 스테이터로 구성된다.

3. 모터 드라이버

  - 모터의 움직임을 제어해주는 전자부품이다. (서보 모터는 자체적으로 모터 드라이버가 내장되어 있다.)

4. 온도 센서

  (1) 접촉식 : 온도 측정점의 열전도를 통해 센서가 온도를 인식한다.

  (2) 비접촉식 : 온도 측정점의 열방사를 통해 센서가 온도를 인식한다.

5. 리미트 스위치

  - 3D 프린터가 축이동을 할 때 한계점을 넘어 가는 것을 방지한다.

제어프로그램 검증

1. G 코드

  (1) G0, G1 : 이송 명령어. G0는 빠른 이송, G1은 선형 이송(일반 속도)

  (2) G2, G3 : 원형 보간. G2는 시계 방향, G3은 반시계 방향 이송

  (3) G4 : 일시 정지. Pxx는 milliseconds 설정.

  (4) G10, G11 : 필라멘트 회수 및 투입.

  (5) G28 : 홈 위치로 이동.

  (6) G90, G91 : G90은 절대좌표, G91은 상대 좌표로 작동.

  (7) G92 : 새로운 좌표 지점으로 절대 좌표값을 수정한다.

  (8) M104 : 노즐 온도. Sxx로 온도값 설정.

  (9) M140 : 베드 온도 설정. Sxx로 온도값 설정.

2. 시리얼 통신

  - 직렬 통신으로, 통신 채널을 거쳐 한 번에 하나의 비트(bit) 단위로 데이터를 전송한다.

  - 비동기식 전송과 동기식 전송이 있다.

  - 통신 속도에는 bps(Bit Per Second)와 보레이트(Baud rate)가 있다.

 

응용 소프트웨어 개발

프로그램 호환성 검토

1. 프로그래밍 언어

  (1) 컴파일러 : 고급 언어로 작성된 것을 컴퓨터가 이해할 수 있는 언어로 변환하는 프로그램.

  (2) 기계어(1세대 언어) : 컴퓨터가 이해하고 수행하는 언어로, 0과 1로 이루어진 명령어.

  (3) 어셈블리어(2세대 언어) : 기계어를 인간이 사용하기에 난해하여 이를 보완하기 위해 개발된 언어이다. 기계어와 명령어가 1:1로 대응되는 단어로 구성되어 있으며, 기호 언어라고도 불린다.

  (4) 3세대 언어 : PORTRAN, COBOL

  (5) 인공지능 언어 : PLOROG, LISP

  (6) 고급 언어 : 인간이 이해하고 사용하기 적합하게 개발된 프로그래밍 언어이다. C, C++ 등이 있다.

2. 고급 언어의 종류

  (1) FORTRAN : Formular+Translator의 약자이다. 과학 계산용으로 사용하는 언어이다.

  (2) COBOL : Common Business Oriented Language의 약자이다. 사무 처리용으로 만들어진 언어이다.

  (3) ALGOL : Algorithmic Language의 약자이다. 과학 기술 계산용 프로그래밍 언어이다.

  (4) PASCAL : ALGOL을 모티브로 개발되어, 블록 구조 및 유용성이 큰 제어문 등의 기능, 자료를 구조화하고 압축하는 기능을 보완한 언어이다.

  (5) Java : 객체 지향 언어로서 인터넷 웹페이지 상에서 실행이 가능하다. (특징: 단순성, 객체 지향 언어, 보안성, 이식성)

3. C언어

  (1) 특징 : 간결성, 효율성, 고수준의 프로그래밍도 가능, 이식성

  (2) 단점 : 초보자가 배우기 어렵다.

  (3) C++ : 기존의 C언어를 유지하면서 객체 지향적인 특징들을 추가한 언어로, C언어의 상위 집합이다.

4. 임베디드 시스템

  - 하나 또는 다수의 작업을 수행하거나 제품 내 특별한 작업을 수행하는 솔루션.

5. 알고리즘

  - 주어진 문제를 해결하기 위해 명확하고 구체적으로 정의된 규칙과 절차를 기술한 것, 한정된 규칙을 적용하여 문제를 해결하는 것.

6. 프로그램 개발 과정

  - 요구 사항 분석 → 알고리즘 개발 → 소스 작성 → 컴파일과 링크 → 실행과 디버깅 → 유지 보수

7. 운영 체제 (OS)

  - 컴퓨터 자원 관리 및 하드웨어와 응용 프로그램 간의 인터페이스 역할을 하는 것.

  - UNIX, Linux, MS-DOS, Android, OSX, Windows 등

8. 오픈 소스

  - 하드웨어 및 소프트웨어를 개발한 개발자의 권리를 지키면서 원시 코드를 누구나 열람하여 사용 가능할 수 있도록한 소스. 자유롭게 사용, 복사, 배포, 수정이 가능한 애플리케이션으로 자유 소프트웨어를 포함한 넓은 개념.

사용자인터페이스 프로그램 개발

1. 플라스틱 소재

  (1) ABS : 가전 제품이나 잡화에서 쓰이는 플라스틱 재료, 색상이 다양하며 가격이 저렴함, 히팅 베드가 아니면 출력물이 바닥에 접착이 되지 않음, 플라스틱 타는 냄새가 남, 수축현상이 발생함, 아세톤 열기로 후가공이 가능함.

  (2) PLA : 친환경 플라스틱 재료, 냄새가 거의 나지 않음, 히팅 베드가 없어도 접착이 잘됨, 수축에 강함, 단단하고 부러지기 쉬우며 수분에 민감함, 후가공이 어려움.

CAM 시뮬레이션(적층 시뮬레이션)

1. CAD

  - 설계 단계에서 주로 사용되며, 도면을 작성 또는 수정하는 작업을 한다.

2. CAM

  - 제조 단계에서 사용되며, 컴퓨터를 이용하여 제조 공정을 하는 것으로 생산성을 향상시킨다.


2019년 3D프린터개발산업기사 필기 기출문제 풀이

41. 베드 온도를 60도로 설정하고 제어권을 즉시 호스트로 넘기는 명령어는?

① M109 S60

② M140 S60

③ M141 S60

④ M109 S60 R100

  (M109 : 익스트루더 온도 설정, M141 : 챔버 온도 설정)

 

45. 아래의 프로그램(O0100)에서 보조프로그램(O2500)이 몇 번 반복되는가?

O0100;

G90G80G40G49G00;

T10M06;

G57G90X-5.00Y-5.00S2500M03;

G43Z50.0H10;

Z5.0M08;

M98P2500L5;

M98P1111;

G80G00Z50.0;

G91G28Z0;

M30;

 

O2500;

M98P1111;

G91X110.0Y-10.0L0;

G90M99;

① 1회

② 3회

③ 5회

④ 8회

  M98 : 보조 프로그램 호출 코드

  M98 P2500 L5 : 프로그램 번호 '2500'을 '5'회 반복한다.

 

48. I/O 포트의 구동 원리로 옳은 것은?

① 전자 회로에서 전기 신호의 기본적인 동작인 On/Off 기능을 구현하는 포트이다.

② AVR MCU의 ADC는 기본 전압을 내부에서 사용되는 기준 전압으로 변환하여 작동되는 포트이다.

  (ADC는 연속적으로 측정되는 수치를 전압의 세기로 변환시켜 기준 전압에 의해 일정 범위의 디지털 값으로 변경한 수치를 입력 받는다.)

③ 펄스폭 변조를 발생시켜 0과 1의 디지털 신호를 아날로그 신호인 것처럼 출력하는 포트이다.

  (PWM 포트에 대한 설명이다.)

④ 기준 전압에 의해 일정 범위의 디지털 값으로 변경한 수치를 입력 받는 포트이다.

  (A/D포트에 대한 설명이다.)

 

52. PWM 제어는 디지털 신호 상태의 지속 시간을 변화시켜 전압을 변환하며 전압 5V, 지원 포트(핀) DP 256개(0부터 255까지)의 범위 값을 출력할 수 있다. 다음 analogWrite함수에서 출력 전압은?

analogWrite(3, 255*0.15)

① 0.75

② 15

③ 38

④ 38.25

  (출력 전압 = (255*0.15)/255*5 = 0.15 * 5 = 0.75)

 

53. 원시 프로그램을 다른 기계에 적합한 기계어로 번역하는 프로그래밍 언어는?

① 어셈블리어

  (기계어를 인간이 사용하기에 난해하여 보완된 언어)

② 인터프리터

  (고급언어로 작성된 원시코드 명령문들을 한 번에 한 줄씩 읽어드려 실행하는 프로그램)

③ 프리프로세서

  (컴파일보다 먼저 실행되어 미리 처리하는 프로그램으로 매크로 확장, 기호 변환 등의 작업을 수행하는 것)

④ 크로스 컴파일러

 

55. 다음 프로그램 개발과정에서 (가)에 들어갈 내용으로 적절한 것은?

[소스코드(test.c)] → [오브젝트파일(test.obj)] → [ (가) ] → [실행파일(test.exe)]

① 링커(Linker)

② 에디터(Editer)

③ 실행(Execution)

④ 컴파일러(Compiler)

  (여러 개의 소스 파일로 구성된 프로그램의 경우 각각의 파일을 따로 컴파일한 후 링커를 통해 결합한다.)

56. 자바와 자바스크립트의 차이에 대한 설명으로 옳은 것은?

① 자바스크립트는 상속성이나 클래스가 존재한다.

  (자바스크립트는 상속성이나 클래스가 존재하지 않는다.)

② 객체에 대한 참조가 자바스크립트는 실행시에만 가능하지만 자바는 컴파일 시에 객체에 대한 참조가 이루어진다.

③ 두 언어 모두 안전하지만 자바스크립트의 경우 HTML 코드에 직접 연결하여 사용하기에 보안성이 있다.

  (자바스크립트는 HTML 코드에 직접 연결하여 사용하기에 보안성이 없다.)

④ 자바언어로 작성된 프로그램은 특정 머신(기종)에 의존적으로 실행된다.

  (자바는 이식성이 우수하여 다양한 운영 체제 및 CPU에서도 같은 코드를 사용해도 무방하다.)

 

60. 다음 G코드 내용의 의미가 틀린 것은?

① POOOO : 보조 프로그램 번호

② M98 : 보조 프로그램 호출 코드

③ F△△ : 이송 속도

④ P□□□□ ○○○○ : Fanuc 1 시리즈 호출 방식

  (Fanuc 0 시리즈의 호출 방식, P○ L□은 Fanuc 0 시리즈 이외의 호출 방식)