마스터캠 2021를 활용한 POST관련 정보(초기 간단 수정사항-1)

반응형

 이번에는 마스터캠 작업을 하면서 매번 NC데이터 출력을 하면서 맞이하는 포스트(POST)에 대하여 초보자 입장에서 설명하겠습니다.


* 저는 아직 포스트에 대하여 기초지식밖에 없어서 네이버카페 마캠뽀개기 알루미네이션님의 [POST 정보] 게시글을 참고로 보충 설명을 추가하는 것으로 진행하겠습니다.

 


 먼저 마스터캠에서 포스트(POST)사용에 대하여 잠시 간단하게 알아보고 시작하겠습니다.

1. 포스트의 역활 과 과정

 먼저 사용자가 마스터캠을 활용하여 가공경로(캠작업)를 완료한 후 실가공을 하기 위하여 NC데이터(G-Code)를 출력하여야 합니다.


이 과정 맨 마지막에 작동하는 것이 이른바 마스터캠의 포스팅(Posting) 작업입니다.


1. 마스터캠 가공정의 생성(사용자 인식)


사용자(인간)가 이해할 수 있는 형태로 가공경로 형태를 정의 하였습니다.

2. 마스터캠 NCI 생성(마스터캠 인식)


 마스터캠이 이해할수 있는 형태의 가공경로 풀이입니다.


 위에서 생성한 가공정의(가공경로)를 마스터캠이 이해할 수 있는 형태로(해당 가공경로의 G-CODE값, 좌표값등) 풀어 저장해 놓은 테이터입니다.


* 즉 사용자(인간)가 작성한 가공경로를 마스터캠이 이해할 수 있는 형태의 풀이 데이터라고 보시면 됩니다.

3. 마스터캠 컨트롤 정의 변환(해당 머신정의 적용)


 마스터캠의 해당 머신 컨트롤정의에 따라 재확립(사용자 컨트롤정의에 따른)하여 포스팅 작업으로 전달합니다.


* 먼저 생성된 가공경로 데이터(NCI)는 순수한 가공경로 데이터이며 이에 대하여 각 해당 마스터캠 머신 컨트롤정의 사항에 맞추어 재정립합니다.


* 그러므로 머신 컨트롤정의 역할은 해당 가공경로 데이터를 다음 포스팅(POST) 작업을 들어가기 전 사전 원시 데이터를 작성하는 중간 역할을 합니다.

4. 해당 지정 포스트 파일(*. PST)에 의하여 실제 가공장비에서 사용 가능한 NC데이터로 변환합니다.


 사용자가 생성한 가공경로를 마스터캠 머신 컨트롤을 거치어 나온 원시 데이터를 해당 포스트의 NC데이터 출력방식(G-CODE 문법)에 따라 출력합니다.


* NC데이터 출력방식 이란 간단하게 얘기하면 어느 순수한 가공경로(기본적인) 데이터를 사용자가 원하는 형식(주로 사용자가 사용하는 장비의 사양에 맞추어 가공에 용이하게 변화된 NC데이터)으로 출력하게 정의하는 방법입니다.

 이러한 과정으로 인해서 사용자가 선호하는 가공방식(예을 들면 너무 많은데...)을 포스팅을 통해서 원하는 방식으로 NC데이터를 출력 가능 합니다.

 


예(게시글 질문 사항에 준하여 설명하면)


- 해당 NC데이터 초반에 해당 사용 공구 정보를 표시하기 (적용 공구 재확인용)


- 해당 공구 가공 최소/최대 깊이 표시하기 (공구 돌출 길이 확인 및 가공 깊이 재확인용)


- 해당 NC데이터 시퀀스번호(프로그램 구분 번호) 출력에 대한 방식 또는 제한 여부


- 해당 가공정의별 종료 시 종료문단 특정 지령 출력 여부와 방식 (예 해당 가공정의 종료 후 배드 원점복귀 여부등)


- 해당 NC데이터 출력 시 출력 방식과 문단 변경 방식 정의 (한 블록에 한 개 또는 여러 지령 표시 여부)


- 해당 장비에 맞춤 각축 좌표값의 표시 여부 (예 부가축 좌표 출력)


- 해당드릴 사이클 변경 및 TAP작업 시 Q값 출력 여부등.

 이외에도 여러 가지 포스트 수정에 따른 사용자 편의에 맞게 NC데이터를 출력 가능 합니다.

* NC데이터 출력 방식(문법)은 위에서 설명한 마스터캠 머신 컨트롤정의와 포스트 내 정의와 중복 또는 조합되어야 하는 것이 많이 있습니다.

 


 잠깐 포스트 적용, 출력 방법에 대하여 잠깐 기초상식을 잠시 살펴보면...

 

 


우선 포스팅하는 과정에 대하여 알아보겠습니다.

1. 먼저 가공정의(가공경로)를 생성하고 해당 가공정의를 선택한 후 선택한 작업 포스트 아이콘을 클릭합니다.



2. 포스트 프로세싱(포스트 전환과정) 창이 출력되어 해당 가공정의에 대한 포스팅 전환이 시작됩니다.


* 여기서 잠시 소소한 팁을 소개하겠습니다.


 만일 지금 정의된 포스트 파일(현재 예제에서는 Mpmaster.PST)을 변경하고자 하는 경우 실행 방법에 대하여 설명합니다.


 위 이미지처럼 현재 정의된(선택된) 포스트 파일을 변경하기 위해서는 현재 포스팅 프로세싱창에서 해당 기능키(Ctrl+Alt+Shift+"P")(컨트롤키+알트키+시프트키+알파벳"P"=4개 키 동시 누름)을 누르면 해당 기능창에서 포스트 변경 버턴이 기능 활성화가 됩니다.


 그러면 그 포스트 변경 버턴을 눌러 변경하고자 하는 포스트 파일이 있는 해당 폴더로 이동하여 해당 포스트 파일을 선택하면 그 지정 포스트로 포스팅 프로세싱창의 적용 포스트로 변경됩니다.


* 마스터캠의 경우 통상적으로 해당 포스트 파일 저장폴더를 "C:\Users\Public\Documents\Shared Mastercam 2021\mill\Posts"(마스터캠 2021 버전 경우)로 지정되어 있습니다.


* 만일 별도의 다른 폴더에 있는 포스트 파일을 별도로 찾아서 선택하셔도 사용하시는데 문제없으나 이후 마스터캠 저장파일을 다른 시스템에서 사용하거나 현재 마스터캠 환경이 변경되면 별도로 다시 해당 폴더를 지정해야 하는 경우가 있습니다.


* 경우에 따라 아래와 같은 메시지가 출력되는 경우가 있느냐 이것은 현재 변경하고자 하는 포스트 파일을 마스터캠이 인식 못하는(버전 문제나 임의적으로 수정된 포스트 파일) 경우이라 통상적인 경우 그냥 확인하여 적용하셔도 문제없습니다.



* 그리고 만일 이미 포스팅을 마친 마스터캠 저장 파일 경우 다시 오픈 시 또는 다른 시스템에서 오픈시 해당 지정된 포스트 파일이 없어서 (포스트 파일 자체가 없거나 위 예와 같이 다른 폴더에 저장된 포스트 파일을 불러온 경우 등) 표시되는 경고 메시지 이므로 위 설명처럼 포스트 변경 버턴을 눌러 다시 사용자가 원하는 포스트 파일을 선택하여 포스팅 프로세싱 작업을 완료하시면 됩니다.



 여기까지 진행되어 사용자가 원하는 포스트 파일이 지정되면 현재 포스팅 프로세싱창에서 하단 확인 버턴을 눌러 포스팅 작업을 진행합니다.


 그러면 해당 NC데이터(포스팅 작업된)를 저장할 폴더를 지정하면서 저장될 파일명(*. NC)을 지정하여 저장합니다.

 

* 기본적으로 마스터캠의 NC데이터 저장 폴더는 "C:\Users\(사용자 ID명)\Documents\My Mastercam 2021\Mastercam\Mill\NC"으로 되어 있습니다.
(사용자 ID명은 윈도 시작 시 로그인 시 표시된 사용자 이름입니다.)


* 그렇지만 보통의 경우 해당 마스터캠 파일 (CAM작업한) 저장 폴더 또는 바로 앞에서 사용된 포스트 완료한 NC데이터 저장 폴더가 지정됩니다.

 포스팅된 NC데이터 파일이 저장폴더와 파일명이 정의되면 확인을 눌러 진행합니다.


그럼 화면 상단 좌측에 다음과 같은 포스팅 진행창이 잠시 표시되고 해당 NC 데이터가 출력됩니다.

 이때 해당 마스터캠 환경설정에 따라 해당 텍스트 에디팅 프로그램(문자 기반 편집 프로그램)으로 오픈됩니다.


* 마스터캠 환경설정 시작/종료 항목의 에디트 설정에 따라 NC데이터 출력 후 편집 가능한 텍스트 에디터로 오픈할 프로그램이 지정되어 있습니다.


* 마스터캠 기본설정은 마스터캠에서 제공하는 MASTERCAM CODE EXPERT으로 되어 있으며 사용자가 필요시 해당하는 텍스트 에디트 프로그램을 지정합니다.


대표적인 에디터 프로그램별 표시 사항


* 윈도에서 제공하는 노트패드(NOTE PAD)는 머시닝 관련 NC-CODE 전용 기능이 없습니다.

 이러한 에디트 프로그램상에서 수기로 NC데이터를 수정하거나 오류여부를 확인하면 해당 NC데이터 파일을 저장하고 실제 해당 가공 장비에 직접 전송하거나 저장한 파일을 별도 전송프로그램(RS232, LAN, DATA SERVER) 또는 해당 저장장치(USB, CF-CARD 등)에 복사하여 해당 장비에 전달합니다.

 


자 이제 원론인 알루미네이션님이 작성하신 게시글을 다시 복기해 봅니다.

 원본글은 여기서..
https://cafe.naver.com/mcampokegi/139939

 

[POST 정보] 입문편 - 1. 기본 수정

대한민국 모임의 시작, 네이버 카페

cafe.naver.com

 

 

[POST 정보] 입문 편 -1. 기본수정

설명한 내용은.
1. 포스팅된 NC 데이터 선두 프로그램 개요에 대한 표시 여부
2. 기존 3축 장비에서 부가축 사용등으로 (A/B) 축 좌표 출력 여부
3. 포스팅된 NC 데이터에서 시퀀스 번호 출력 시 출력 방지

  3가지입니다. 


 이중 1번 NC데이터 선두 프로그램 개요 표시에 대하여 설명하겠습니다.

 프로그램 개요 표시는 NC데이터 초반에 현재 사용 중인 NC데이터(가공프로그램)의 대한 식별가능한 분류에 대한 정보(해당 프로그램의 명칭 또는 가공 프로그램 파일명, 생성 날짜, 특이사항 등)를 표시하는 것을 말합니다.


* 겸붙여서 하단의 해당 가공프로그램의 사용 공구에 대한 정보 등이 표시되나 이것은 좀 복잡한 과정이 있어 생략합니다.

 


예을 들어보면.


우선 4가지 포스팅 파일이 있습니다.


1. MPFAN.PST


2. MPMASTER.PST


3. X9_POST.PST(마뽀 카페에서 습득한....)


4. CHILSUNG2017.PST(이칠성 님 카페에서 습득한....)


* 참고로 포스트파일 앞의 MP는 "MASTERCAM POST"의 약자입니다.

 


 먼저 동일한 가공정의를 동일하게 포스트 파일만 변경하여 포스팅하여 NC데이터를 출력해 보았습니다.

 

 


MPFAN.PST 포스트 파일을 적용한 NC데이터입니다.


 선두 출력된 프로그램 개요 소개는..

O0000(MM-) >>> 해당 마스터캠 지정 가공 프로그램명 (마스터캠 머신정의 기본값)
(DATE=DD-MM-YY - 14-11-23 TIME=HH:MM - 15:49) >>> 해당 포스팅 작업 날짜 시간
(MCAM FILE - D:\사용자폴더명\MM-001.MCAM) >>> 해당 마스터캠 작업파일 명
(NC FILE - C:\USERS\MOMOMAN\DOCUMENTS\MY MASTERCAM 2021\MASTERCAM\MILL\NC\MM-. NC) >>> 포스팅된 해당 NC데이터 파일 저장폴더 및 파일명
(MATERIAL - ALUMINUM MM - 2024) >>> 해당 적용 공작물 소재 정의

( T1 | 80 FACE MILL / SHELL MILL | H1 ) >>> 1번 공구 규격 | 명칭, 가공경로명, 공구 길이보정 번호
( T2 | 10 FLAT ENDMILL | H2 | XY STOCK TO LEAVE -. 1 | Z STOCK TO LEAVE - -. 2 ) >>> 2번 공구 규격 | 명칭, 가공경로명, 공구 길이보정 번호, 해당 공구의 가공여유값
( T3 | 10 FLAT ENDMILL | H3 ) >>> 3번 공구 규격 | 명칭, 가공경로명, 공구 길이보정 번호
( T4 | 8 CHAMFER MILL | H4 ) >>> 4번 공구 규격 | 명칭, 가공경로명, 공구 길이보정 번호

 

 


MPMASTER.PST 포스트파일을 적용한 NC데이터입니다.


선두 출력된 프로그램 개요 소개는..

O0000 (MM-) >>> 해당 마스터캠 지정 가공 프로그램명 (마스터캠 머신정의 기본값)
(MCX FILE  - D:\사용자폴더명\MM-001.MCAM) >>> 해당 마스터캠 작업파일 명
(PROGRAM   - MM-. NC) >>> 포스팅된 해당 NC데이터 파일명
(DATE      - NOV-14-2023) >>> 포스팅된 날짜
(TIME      - 4:12 PM) >>> 포스팅된 시간
(T1   - 80 FACE MILL / SHELL MILL - H1   - D1   - D80.000 mm) >>> 1번 공구 규격 | 명칭, 공구 길이보정 번호, 공구경 표시
(T2   - 10 FLAT ENDMILL      - H2   - D2   - D10.000 mm) >>> 2번 공구 규격 | 명칭, 공구 길이보정 번호. 공구경 표시
(T3   - 10 FLAT ENDMILL      - H3   - D3   - D10.000mm) >>> 3번 공구 규격 | 명칭, 공구 길이보정 번호, 공구경 표시
(T4   - 8 CHAMFER MILL       - H4   - D4   - D8.000 mm) >>> 4번 공구 규격 | 명칭, 공구 길이보정 번호. 공구경 표시
(OVERALL MAX - Z12.) >>> 지정된 가공경로 최대(안전높이) 높잇값 표시
(OVERALL MIN - Z-25.9) >>> 지정된 가공경로 최소(가공깊이) 높이값 표시

 

 


X9_POST.PST 포스트 파일을 적용한 NC데이터입니다.


선두 출력된 프로그램 개요 소개는..

O0000  (PROGRAM NAME-MM-) >>>해당 마스터캠 지정 가공 프로그램명 (마스터캠 머신정의 기본값)
 
(T1 | H1 | D1 | 80 FACE MILL / SHELL MILL | Z0.) >>> 1번 공구 | 공구 길이보정 번호 | 공구 경보정 번호 | 공구 명칭, 가공 최대 깊이값
(T2 | H2 | D2 | 10 FLAT ENDMILL | Z-14.9) >>> 2번 공구 | 공구 길이보정 번호 | 공구 경보정 번호 | 공구 명칭, 가공 최대 깊이값
(T3 | H3 | D3 | 10 FLAT ENDMILL | Z-14.98) >>> 3번 공구 | 공구 길이보정 번호 | 공구 경보정 번호 | 공구 명칭, 가공 최대 깊이값
(T4 | H4 | D4 | 8 CHAMFER MILL | Z-16.9) >>> 4번 공구 | 공구 길이보정 번호 | 공구 경보정 번호 | 공구 명칭, 가공 최대 깊이값

 

 

 

 

CHILSUNG2017.PST 포스트 파일을 적용한 NC데이터입니다.

 

선두 출력된 프로그램 개요 소개는..

O0000
(LEE CHILSUNG  15-11-23 ) >>> 포스트 수정자 이름 출력 날짜
G0 G17 G40 G49 G80 G90
G91G 30Z0.M19
T1 M6 ( 80 FACE MILL / SHELL MILL   )
G0 G90 G54 X244.5 Y-32.5 

위와 같이 아예 프로그램 개요 (공구 데이터 도 포함)를 없앤 경우도 있습니다.
* 주로 1인 작업자분(대인 작업이 없는 혼자서 전부 하는 경우....)들이 사용하십니다.

이렇게 포스트에 따라 여러 가지 NC데이터 선두에 가공프로그램 개요 데이터를 표시할 수 있습니다.

 


그래서 다시 원점으로 돌아가서 이러한 가공 프로그램 표시를 수정, 삭제, 표시하는 방법을 알아봅니다.

 

* 원래 밑의 부분의 가공 공구 데이터 표시까지 하려고 했으나 설명내용이 너무 많아져서 일단 다음 기회로....

 우선 해당 포스트를 텍스트기반 편집기(위에서 애기한 마스터캠 지원 에디팅 프로그램등)에서 열어서 다음 항목을 검색해 봅니다.


* 여기서 샘플 포스팅 파일은 MPMASTER.PST을 기준으로 하겠습니다.


* MPMASTER.PST 는 IHS MASTER GENERIC MILL G-CODE POST(IHS는 in-House Solutions사의 캐나다의 마스터캠 사용 솔리션 제공 업체입니다.)에서 제공하는 포스트입니다.

 

 

Pheader 포스트 블록


 "Pheader" 항목은 포스팅된 NC 데이터의 초반부(프로그램 해더 : Progam header) 포스트블록(프로그램 구간 단위)을 말하는 것으로 처음 표시되는 내용의 정의를 합니다.

 해당 포스트(MPMASTER.PST)의 해당하는 내용을 보면..

 검색방법은 아래와 같이 해당 포스트 파일을 찾아서 심코(또는 다른 편집 프로그램)로 열어서 검색 기능으로 해당 철자 "Pheader"을 찾아봅니다.


* Call before start of file 은 해당 가공 프로그램 실행 전에 호출되는 부분이라는 뜻입니다.

 


pheader$         #Call before start of file
      hour = int(time$)
      min = int((time$ - hour)* 100)
      if hour > 12, hour = hour - 12
      if hour = 0, hour = 12
      year$ = year$ + 2000

      "%", e$
      spaces$=0
      *progno$, " ", scomm_str, sprogname$, scomm_end, e$
      spathnc$ = ucase(spathnc$)
      smcname$ = ucase(smcname$)
      comment$  # File descriptor
      spaces$=0
      #scomm_str, "PROGRAM NAME - ", sprogname, scomm_end, e
      #scomm_str, "DATE=DD-MM-YY - ", date, " TIME=HH:MM - ", time, scomm_end, e
      #scomm_str, "MASTERCAM - V", *vers_no$, scomm_end, e$
      #scomm_str, "MASTERCAM - X", scomm_end, e$
      scomm_str, "MCX FILE  - ", smcpath$, smcname$, smcext$, scomm_end, e$
      if spostname_sav = snull, spostname_sav = spostname
      #scomm_str, "POST      - ", snamepst$, scomm_end, e$
      #scomm_str, "MP        - V", *dll_vers$, scomm_end, e$
      stck_matl$ = ucase(stck_matl$)
      #scomm_str, "MATERIAL  - ", stck_matl$, scomm_end, e$
      scomm_str, "PROGRAM   - ", sprogname$, sextnc$, scomm_end, e$
      scomm_str, "DATE      - ", *smonth, "-", *day$, "-", *year$, scomm_end, e$   # MON-DD-YYYY
      #scomm_str, "DATE      - ", *year$, "/", *month$, "/", *day$, scomm_end, e$  # YYYY/MN/DD
      #scomm_str, "DATE      - ", *day$, "/", *month$, "/", *year$, scomm_end, e$  # DD/MN/YYYY
      #scomm_str, "DATE      - ", date$, scomm_end, e$                             # DD-MM-YR
      scomm_str, "TIME      - ", *hour, ":", *min, [if time$ < 12, " AM"], [if time$ >= 12, " PM"], scomm_end, e$  # 12 hour
      #scomm_str, "TIME      - ", time$, scomm_end, e$  # 24 hour
      #scomm_str, "POST DEV  - ", *slicense, scomm_end, e$
      spaces$=sav_spc

 좀 복잡하게 되어 있는데 사실 찾아보아야 할부분은 아래 부분입니다.


 현재 포스트상에서 표시되는 부분(NC데이터 처음 출력되는 부분)이 적용된 것이 노란색 부분이고 그 부분이 출력된 것은 아래 NC데이터의 번호 따라 보시면 됩니다.

 그래서 현재 포스트상에서 잘 살펴보시면 여러 개 항목이 있는데 각블록 앞에 "#" 표시가 있는 것은 출력되지 않고 "#" 표시 없이 scomm_str 지령이 있는 부분만 표시됩니다.


* scomm_str 은 현재 제시되는 문장열(들)을 scomm_str 변수에 차근차근 저장해 놓는 것을 말합니다.


 이후 아래에서 종합적으로 문자열 출력 지령이 내려집니다.


* 위 같은 경우 최종 scomm_str 은 "(MCX FILE  - D:\사용자폴더\MM-001.MCAM) 줄 바뀜 (PROGRAM   - MM-3.NC) 줄바뀜 (DATE      - NOV-16-2023) 줄바뀜 (TIME      - 1:26 PM)"이 됩니다.


 그러므로 만일 사용자가 저러한 가공프로그램 개요 표시가 불편하다면 위 scomm_str 항목 앞에 전부 "#"를 입력해 놓으시면 전부 출력되지 않습니다.

* 만일 반대로 전부 "#"자를 삭제하시면 저기에 설정된 항목이 모두 출력됩니다.


* "#"의 의미는 "#" 이후 문장들은 주석문(실행되지 않는 설명 & 메모를 위한 비실행형 표기문)으로 처리되어 실제 포스팅 시 적용되지 않습니다.

 

그리고 다른 포스트(좀 더 보편적인 : MPMAN.PST)의 경우도 동일한 방법을 사용하여야 하나 사용 변수가 틀립니다.

 


마스터캠 기본 제공 MPFAN.PST의 Pheader 부분입니다.

 

pheader$         #Call before start of file
      if subs_before, " ", e$ #header character is output from peof when subs are output before main
      else, e$
      sav_spc = spaces$
      spaces$ = 0
      *progno$, sopen_prn, sprogname$, sclose_prn, e$
      #sopen_prn, "PROGRAM NAME - ", sprogname$, sclose_prn, e$
      sopen_prn, "DATE=DD-MM-YY - ", date$, " TIME=HH:MM - ", time$, sclose_prn, e$ #Date and time output Ex. 12-02-05 15:52
      #sopen_prn, "DATE - ", month$, "-", day$, "-", year$, sclose_prn, e$  #Date output as month, day, year - Ex. 02-12-05
      #sopen_prn, "DATE - ", *smonth, " ", day$, " ", *year2, sclose_prn, e$ #Date output as month,day,year - Ex. Feb. 12 2005
      #sopen_prn, "TIME - ", time$, sclose_prn, e$  #24 hour time output - Ex. 15:52
      #sopen_prn, "TIME - ", ptime sclose_prn, e$  #12 hour time output 3:52 PM
      spathnc$ = ucase(spathnc$)
      smcname$ = ucase(smcname$)
      stck_matl$ = ucase(stck_matl$)
      snamenc$ = ucase(snamenc$)
      sopen_prn, "MCX FILE - ", *smcpath$, *smcname$, *smcext$, sclose_prn, e$
      sopen_prn, "NC FILE - ", *spathnc$, *snamenc$, *sextnc$, sclose_prn, e$
      sopen_prn, "MATERIAL - ", *stck_matl$, sclose_prn, e$
      spaces$ = sav_spc


 현재 포스트상에서 표시되는 부분(NC데이터 처음 출력되는 부분)이 적용된 것이 노란색 부분이고 그 부분이 출력된 것은 아래 NC데이터의 번호 따라 보시면 됩니다.

* sopen_prn 변수도 위 scomm_str 변수와 같이 해당 출력할 문자열이 저장될 장소입니다.

(변수 이름 이므로 작성자 마음.....)

 수정 방법은 동일하게 앞에 있는 "#" 표시를 삭제하면 NC 데이터에 출력되며 "#" 표시를 앞에 입력하면 주석문으로 처리되어 NC데이터 출력 시 실행되지 않아 표시되지 않습니다.

* 각 표시되는 방식(문법)은 다음 공구 데이터 표시 설명시 같이 설명하겠습니다.

 

 



2. 기존 3축 장비에서 부가축 사용등으로 (A/B) 축 좌표 출력 여부

 3축 머시닝 장비에서 부가축장비(인덱스) 장착하여 가공 시 부가축(A/B) 좌표 출력이 필요한데 단순 가공(다축가공이 아닌)의 경우는 간단하게 부가축 출력 포스트로 전환이 가능합니다.


* 즉 기존의 쓰고 있는 3축 포스트에 간단한 부가축 출력 적용 파라미터만 수정하여 그대로 사용 가능합니다.

 


 먼저 예로서 마스터캠 기본 포스트 MPFAN.PST 기준으로 설명하겠습니다.

 해당 포스트를 심코에디터(텍스터기반 편집 프로그램)에서 오픈합니다.
그리고 검색기능으로 ROTARY 항목을 찾아봅니다.



포스트의 로터리 축 설정 항목을 찾아보면.. 

#region Rotary axis settings
# --------------------------------------------------------------------------
# Rotary Axis Settings
# --------------------------------------------------------------------------
read_md      : no$   #Set rotary axis switches by reading Machine Definition?
vmc          : 1     #SET_BY_MD 0 = Horizontal Machine, 1 = Vertical Mill
rot_on_x     : 1     #SET_BY_MD Default Rotary Axis Orientation
                     #0 = Off, 1 = About X, 2 = About Y, 3 = About Z
rot_ccw_pos  : 0     #SET_BY_MD Axis signed dir, 0 = CW positive, 1 = CCW positive
index        : 0     #SET_BY_MD Use index positioning, 0 = Full Rotary, 1 = Index only 

 이중 "rot_on_x" 항목이 부가축 출력 여부에 대한 설정 부분입니다.

 

 

rot_on_x


 항목 내용을 보면 기본적인 로터리축(부가축) 안내 설정인데 설정값은 0 = 부가축 미적용(off) , 1 = X축 방향 부가축 적용 , 2= Y축 방향 부가축 적용 , 3 = Z 축 방향 부가축 적용을 의미합니다.


* 각축 부가축 의미는 아래 그림을 참고하시면 이해가 빠릅니다.


위와 같이 현재 사용하고자 하는 장비(부가축) 상태에 따라 해당 값을 적용하시면 됩니다.

rot_on_x     : 0     #SET_BY_MD Default Rotary Axis Orientation   : 부가축 미적용

rot_on_x     :     #SET_BY_MD Default Rotary Axis Orientation   : X축 방향 부가축 적용

* 위처럼 해당 값을 수정하시면 됩니다.

 여기까지 하면 기본적으로 마스터캠에서 부가축 좌표 적용 가공정의가 포스팅하면 A 좌표값이 출력되며 만일 부가축 적용 되지 않은 가공정의 경우 A0.0 값이 적용됩니다.

 


rot_ccw_pos

 위 항목은 로터리축 좌표 지령이 발생 시 로터리축은 어느 방향(CW(시계방향)/CCW(반시계방향))으로 돌아갈 것인가를 정의합니다.


* 기본적으로 로터리축 좌표는 위치 좌표(X, Y, Z)가 아니고 회전축 각도값(0~360도)입니다.


 그러므로 로터리축 좌표값(플러스값 : A+)이 발생 시 해당 부가축이 축방향(전면부)에서 볼 때 CW/CCW 어느 방향으로 돌아가는가 하는 설정입니다.


* 기본값은 CW 방향입니다.

 이것이 어떠한 문제(고려해야 하는)가 있냐면 특히 X축 방향으로 인덱스가 장착될 때 두 방향으로 장착될 수 있습니다.
배드 기준으로 좌측 또는 우측으로 설치 가능 합니다.

 

 이러한 상태에서 만일 부가축 지령이 A+값(플러스)으로 출력된 경우 CW방향으로 회전하는 것으로 마스터캠 가공정의에서 설정하였는데.. 만일 우측에 장착된 인덱스는 당연히 CW방향으로 회전하게 됩니다.

 그런데 이설정을 그대로 좌측에 장착된 인덱스에 적용하면 CCW방향으로 회전하게 됩니다.

 즉 마스터캠 가공정의에서 우측에 인덱스가 장착된 것으로 설정하여 NC데이터를 출력하였는데 이 NC데이터를 좌측에 장착된 인덱스에 그대로 적용하면 회전이 반대 방향으로 돌아가게 되므로 가공방향이 대칭되는 (반대되는) 가공물이 나오게 됩니다.

 


 그래서 이런 경우 마스터캠 가공정의에서 CW방향으로 회전축 지령이 나왔는데 좌측에 장착된 인덱스에서 제대로 된 방향으로 회전하려면 반대로 CCW방향으로 돌아야 합니다.

 


* 즉 마스터캠은 CW방향으로 생성되지만 가공 NC데이터는 해당 포스트 로터리축 설정에 따라 CCW방향으로 돌아야 실제 가공물은 좌우 관계없이 동일한 방향(마스터캠에서 지령한 CW방향)으로 회전되는 것입니다.

 즉 마스터캠에서 부가축 회전지령이 CW방향으로 출력된 경우

rot_ccw_pos  : 0     #SET_BY_MD Axis signed dir, 0 = CW positive : 우측에 장착된 인덱스는 CW방향 회전, 좌측에 장착된 인덱스는 CCW방향 회전


rot_ccw_pos  : 1     #SET_BY_MD Axis signed dir, 1 = CCW positive : 우측에 장착된 인덱스는 CCW방향 회전 , 좌측에 장착된 인덱스는 CW방향 회전

* 이 포스트 설정은 해당 장비 사양과 실제 장비 파라미터 값에 영향받으므로 해당 장비 상태와 작업 전 실제로 사용자가 원하는 방향으로 회전하는지 허공에서 확인하시고 작업하셔야 합니다.


index 
 
 위 항목은 로터리축 회전지령이 Full Rotary(0도 에서 +/- 무한대) , Index only(0도 에서 360(0)도) 중 어느 쪽을 적용하는가 하는 설정 애기입니다.

 INDEX는 부가축의 회전축 좌표값(각도)을 0도 ~ 360(0)도 내에서 고정값으로 출력합니다.


 즉 단순 각도 분할 작업에 적합한 회전축 좌표값 적용입니다.


 이경우 만일 완전히 한 바퀴 회전하면 회전축 각도값이 0도 에서 359.999도 에서 다시 0도로 넘어가서 다시 시작됩니다.
(반대의 경우에도 마찬가지로 0도 에서 359.999도로 넘어갑니다.)


* 다만 이경우 주의사항이 해당 장비 파라미터 값에 따라서 0도에서 넘어가는 과정이 바로 넘어가는 것이 아니고 359.999도 에서 0도로 진행하면 살짝 회전하는 것이 아니고 0도로 넘어가기 위하여 반대로 방향으로 (359 , 358 , 357....... 0도)로 회전하는 경우가 있습니다.


* 위 같은 경우 공구 이송 높이 복귀가 이루어지지 않으면 바로 공구 충돌이 발생할 수 있으므로 충분한 주의가 필요합니다.


* 간단히 다시 얘기하면 시계 다이얼 표시를 생각하면 됩니다.

FULL ROTARY는 부가축의 회전축 좌표값(각도)을 0도 ~ +/- 무한대(한계는 있습니다.)로 적용합니다.


 즉 만일 359.999도 이상 적용 시 다시 0도로 돌아가는 것이 아니고 무한대에 가깝게 회전값이 적용됩니다. 
(360도 이상의 좌표값이 적용된다는 것입니다.)


(주의 사항 중 하나가 별도의 좌표계 정의(G53...)를 안 하시면 만일 작업 후 (예 36,000도 회전 후) 원점복귀를 하면 그 돌아온 만큼 역회전하여 원점복귀를 한다는 점입니다.)


* 위 INDEX 경우 많아야 1회전 내 원점 복귀.....

 이러한 회전축 지령 방법은 로터리형태 가공(?) 즉 스크루 형태 나 부가축 적용 곡면가공등에서 적용해야 하는 방법입니다. 
(계속 회전하면서 가공... 롤가공이나 다축, 로터리 가공 시 적용)



 

 


시퀀스 번호 삭제
 
 시퀀스 번호(Sequence 블록번호)는 해당 프로그램 블록별(구간별)로 일렬번호를 적용한 것으로 번호별로 식별할 수 있게 사용하는 번호입니다.

 통상적인 출력 예..


* 위 이미지처럼 실지령되는 프로그램 블록별로 선두에 N번호(시퀀스번호)가 붙어있습니다.

 

* 사실 이 시퀀스번호(블록번호)는 그대로 사용하셔도 가공 자체는 문제없습니다.


 다만 보기 불편하거나 전송요량문제, 장비 CNC메모리문제 등으로 삭제하고 싶은 경우 마스터캠 제공 CODE EXPERT 프로그램이나 CIMCO EDIT에서 제공하는 블록번호 삭제 기능으로 일률적으로 전체 삭제가 가능합니다.

 


 그런데 경우에 따라 매번 삭제하기 불편하시거나 아니면 특정 부분(가공 방식에 따른 분류, 공구 교환시등)에만 특정적으로 블록번호를 생성하고 싶은 경우가 있습니다.

 

 


 그에 대한 설명을 하겠습니다.

마스터캠에서 전체적으로 포스팅 시 블록번호 미출력 방법

1. 가공경로 관리자창에서 머신그룹의 속성 트리에서 파일을 선택합니다.
* 이때 현재 선택한 머신정의(속성)가 항상 사용하는 기본 머신정의이어야 합니다. (아니면 일회성 수정이 됩니다.)

 


2. 머신 그룹 속성에서 머신 - 가공경로 복사 항목에서 수정 아이콘을 클릭합니다.

 


3. 머신 정의 관리자에서 상단 컨트롤 정의 아이콘을 클릭합니다.

 


4. 컨트롤 정의 관리자 창에서 좌측 트리구조에서 NC출력을 클릭합니다.


NC출력을 선택하면 다음과 같은 NC출력 관련 설정 항목이 표시됩니다.

 


 그중 중단의 블록번호 항목에서 블럭번호 출력 체크란을 해제하시면 이후 포스팅 시 블록번호가 출력되지 않습니다.

 

* 현재 수정된 머신정의에 한정되어 적용됩니다.


 이후 다른 머신정의 또는 컨트롤 정의로 변경하시면 해당 설정은 변경된 해당정의로 변경됩니다.

* 또한 이러한 절차(과정)가 아니고 마스터캠 머신 리본탭 작업설정에서 바로 컨트롤정의 나 머신정의로 들어가서 해당 항목을 수정하시면 안 됩니다.


 그러한 작업설정에서 바로 컨트롤정의 나 머신정의로 들어가시면 선택된(사용자가 지금 적용된 정의가 아닐 수 있습니다.) 해당 정의의 항목만 수정되고 저장되지 않거나 현재 작업에 적용되지 않습니다.


 이러한 절차는 해당 수정사항을 지금 적용하는 것이 아니고 해당 항목에 대한 수정만 적용됩니다. (주의사항!!)

 


5. 컨트롤 정의 관리자 창을 확인 버턴을 클릭하면 해당 컨트롤 정의 정보가 변경되었다는 주의 메시지와 함께 저장하십니까 확인 메시지창이 표시됩니다.



6. 저장 확인 메세지창 확인 후 다시 머신정의 관리자 창으로 되돌아오고 다시 확인합니다.


7. 다시 머신정의 관리자창으로 되돌아오면 다시 확인하여 해당 창을 종료합니다.


8. 이후 해당 가공정의를 선택한 후 테스트 포스팅 하여 해당 블록번호(시퀀스)가 출력되는지 확인합니다.


9. 이때 주의사항으로 현재 변경한 머신정의가 마스터캠 기본 사용 머신정의 이어야 하며 항상 이것을 불러 사용하셔야 합니다.
* 만일 이후 사용 중 포스팅 시 블록번호가 다시 출력되면 해당 머신정의 외 다른 머신정의를 사용한 경우입니다.

 

 


포스팅 자체에서 블록번호 출력을 방지하는 법
* 사실상 이 방법은 권하지 않습니다.


 수정 절차도 좀 복잡하고(실수 가능성이 좀 있어서) 차후 블록번호 출력이 필요하면 다시 되돌리는 과정이 어려워서 권하지 않습니다.


( 그래서 뭐든 변경하면 원본 파일 백업이 필요하고 위 수정 사항을 문제없이 할 수 있으신 사용자는..... 여기 글을 읽을 실 필요가....)

 포스트에서 블록번호 삭제 하는 방법은 다음과 같습니다.

 

 포스트에서 블록번호 생성 변수는 "n$"입니다.


 그러므로 해당 포스트 내에서 모든 n$ 변수 적용된 부분을 삭제하면 됩니다.....
* 실제 삭제 하여야 할부분은 "스페이스+n$+,+스페이스"입니다.

 


표기된 예..
pbld, n$, *smetric, e$
      if convert_rpd$, pconvert_rpd
      pbld, n$, [if gcode$, *sgfeed], *sgcode, *sgplane, scc0, sg49, sg80, *sgabsinc, [if gcode$, *feed], e$


pbld, *smetric, e$
      if convert_rpd$, pconvert_rpd
      pbld, [if gcode$, *sgfeed], *sgcode, *sgplane, scc0, sg49, sg80, *sgabsinc, [if gcode$, *feed], e$
으로 변경하여야 합니다.


* 포스트 문법상 앞쪽의 지령문과 "_"스페이스(빈칸)를 두고 뒤쪽의 지령문과 ", "(쉄표)로 구분합니다.


* 문장의 끝에는 쉼표가 필요 없습니다.
즉 앞문장 + "_ "+n$+",_ "입니다.(중요!!)

" (따움표)는 실제 입력하지 않습니다. ( _n$,_) 


 그럼 우선 해당 포스트(MPMAN.pst)를 심코 에디터로 열어서 해당 변수를 검색합니다.

 우선 해당 심코에디터의 찾기(검색) 기능으로 "빈칸+n$,"을 검색해 봅니다.

 

* 검색만 하는 것이라면 빈칸은 필요 없을 수 있습니다.

 

* 심코에디터 최신기능에서는 전체 찾기가 가능합니다.


* 무려 83개소나 되네요... 이래서 나중에 포스트 수정 내용을 되돌리려면 어렵다고 말씀드리는 것입니다.

 다시 현재 검색창을 닫고 다시 교체(Replace)(치환) 기능으로 다시 해당 문자열을 치환합니다.


* 이때 치환할 문자열은 빈칸+n$,+빈칸이고 치환될 문자열은 아무것도 입력하지(삭제되어야 하므로) 말아야 합니다.


 실행하면 총 83개 치환하였다는 메시지가 출력됩니다.


 즉 이러한 과정을 거치어서 아래와 같은 과정이 전체적인 포스트 파일 내 에서 이루어집니다.


예.
if mi1$ <= one, #Work coordinate system
        [
        absinc$ = one
        pfbld, n$, sgabsinc, *sg28 ref, "Z0.", e$
        pfbld, n$, *sg28ref, "X0.", "Y0.", e$
        pfbld, n$, sg92, *xh$, *yh$, *zh$, e$
        absinc$ = sav_absinc
        ] 
에서
if mi1$ <= one, #Work coordinate system
        [
        absinc$ = one
        pfbld, sgabsinc, *sg28ref, "Z0.", e$
        pfbld, *sg28ref, "X0.", "Y0.", e$
        pfbld, sg92, *xh$, *yh$, *zh$, e$
        absinc$ = sav_absinc
        ]
으로 변경됩니다.

이러한 과정으로 해당 포스 트은 블록번호 출력이 전혀 안 되는 포스트가 됩니다.
(항상 실행 시 재심사후 사용하세요.)

 만약의 경우 이러한 시퀀스번호 변수 삭제로 포스트에 문제가 발생할 소지가 있는 경우에는 일일이 80여 개을 검색 하여 삭제하시면 됩니다.

 


 이것을 다시 보면 일부 구간에서만 시퀀스번호가 생성되길 바라는 경우가 있습니다.

 예 : 공구 교환 구간에만 시퀀스 번호 생성 할 경우...

공구교환 관련 변수가 "sm06"이므로 해당 문자열을 검색해 봅니다.


 총 3군데가 나옵니다. 이중 위 501번은 공구교환 변수 정의 과정이라 건드리시면 안 되고 나머지 두 군데 을 수정 하시면 됩니다.

 


 나머지 2개가 수정할 곳입니다.


942번


1017번


* 저기 심코번호(위치)는 각 포스트마다 변동이 있습니다.
* 해당 포스트는 위에서 제시한 "n$," 변수를 모두 삭제한 포스트입니다.

 

 아래와 같이 시퀀스번호 변수를 추가 입력 합니다.
942번


1017번



이후 해당 포스팅으로 출력하면 다음과 같이 공구 교환(M6) 부분에서 시퀀스번호가 출력됩니다.



 이러한 점을 활용해서 사용자가 원하는 구간에 시퀀스번호를 붙여서 해당 구간별로 구분이 가능합니다.
* 그래서 80 몇 개소에 시퀀스번호 출력 부분이 있는 것입니다.


 이러한 시퀀스번호를 시작번호, 증분단위를 설정하는 것이 위에서 본 머신정의의 컨트롤정의 관리자의 NC 출력의 블록번호에서 설정합니다.

다시 가공경로 관리자창에서 머신속성, 머신정의, 컨트롤정의 관리자로 들어옵니다.


① 시퀀스번호(블록번호)가 출력되어야 하므로 블럭 번호 체크적용 합니다.


② 시작 블록 번호 : 시퀀스번호(블럭 번호)가 시작할 번호를 입력 합니다. (증분 시작 번호)


③ 블럭 번호 증분값 : 시퀀스번호 단계별로 증분(연속되는) 단위 값을 입력 합니다.
* 기본값은 블럭 번호가 100에서 시작하여 10 단위로 증분 됩니다.
(100, 110, 120, 130....)


 이것을 변경하려면 위 컨트롤 정의 관리창의 블럭번호 ②③칸의 값을 변경 하시면 됩니다.

 

 예로서 시작번호 1 증분값 1로 할려면 각각 1.0 , 1.0을 입력합니다.


이후 되돌아와서 포스팅해보면 아래와 같이 변경됩니다.


* 다시 말씀드리지만 이러한 설정은 각각의 적용되는 머신정의에 따라갑니다.
다른 파일 불러와서 출력했는데 위와 같이 출력되지 않는 이유는 그 파일에 적용한 머신정의가 틀리기 때문입니다.

반응형