마스터캠 2021 활용한 소소한 팁-4-4 (각인 공정 관련 매크로 관련하여)

반응형

 저번에 이어서 각인 메크로 프로그램을 설명하겠습니다.

먼저 지금 까지 생성된 각인 매크로 프로그램을 살펴보겠습니다.
 
O0001(Serial Engrave)
G0 G17 G40 G49 G80 G90
G91G30Z0.M19
T2 M6 ( 1 SPHERICAL / BALL-NOSED ENDMILL   )
G0 G90 G54 X95.75 Y-10.0 (XY origin)
S12000 M3
G43 H2 Z50. M8
G5.1 Q0
Z5. (Z origin)

(REQUIRED PARAMETERS--------------)

(THOUSAND NUMBER XY ORIGIN)
#502=95.75 (X)
#503=-10.0 (Y)

(HUNDERD NUMBER XY ORIGIN)
#504=99.67 (X)
#505=-10.0 (Y)

(TEN NUMBER XY ORIGIN)
#506=103.6 (X)
#507=-10.0 (Y)

(ONE NUMBER XY ORIGIN)
#508=107.53 (X)
#509=-10.0 (Y)

(INITLAL SETTING MARKING NUMBER)
#101=0 (THOUSAND NUMBER) 
#102=0 (HUNDERD NUMBER) 
#103=0 (TEN NUMBER)
#104=0 (ONE NUMBER)
#105=0 (VARIABLE OPERATION)

(-------------- MARKING --------------)

(THOUSAND NUMBER)
#101=FIX [#500/1000]

(HUNDERD NUMBER) 
#105=#500-[#101*1000]
#102=FIX [#105/100]

(TEN NUMBER)
#105=#105-[#102*100]
#103=FIX [#105/10]

(ONE NUMBER)
#105=#105-[#103*10]
#104=FIX [#105]

여기까지 진행하셨으면 중요 포인트 인 각 단위별 숫자 (천, 백, 십, 일단위)가 산출되어 있습니다.
#101 = 2 (천 단위 값)
#102 = 3 (백단위 값)
#103 = 4 (십 단위 값)
#104 = 5 (일단위 값)

그럼 이 산출된 변숫값을 이용하여 해당하는 숫자별로 각인하는 프로그램 루틴으로 이동하여야 합니다.

 


 그전에 고려해야 할 점이 여기서 사용될 각인 프로그램(각 숫자별 각인 프로그램)이 실가공 이송이 상대값(G91)으로 생성되어야 합니다.

 (절대좌표로는.... 하나의 고정된 각인 프로그램을 쓸 수 없고 그때그때 새로 좌표값 적용해 각인프로그램을 만들어야 합니다.)


* 각 단위별 숫자 각인 위치(원점)로 이동하는 것은 절댓값으로 가능하나 이 이송된 원점 위치에서 각인하는 좌표값은 각인 원점에서 상대좌표로 이송되어야 합니다.


* 만일 전부 절대좌표값으로 이루어지려면 각 제품별 위치별로 각인 프로그램을 각각 산출하거나 (여기 예제 같은 경우 0~9 이면 4자리 40개 필요) 하여야 합니다.


* 좀 더 고급스러운 것은 다음기회에....

 


 그러므로 해당 각인 프로그램(각숫자별) 생성 시 증분값으로 출력하여 잠깐 수기로 불필요한 것 을 삭제하고 각인 프로그램에서 적용하여야 합니다.

그 방법에 대하여 잠시 설명하겠습니다.

 

먼저 해당 각인 프로그램 NC데이터를 상대좌표값(G91)으로 출력을 하여야 합니다.


* 이 방법은 무조건 G91로 전체 가공경로가 적용되는 것이 아니고 급송이송 부분(G00) 부분은 절대좌표값(G90)으로 출력되고 절삭이송(G012,02,03... 등) 부분만 (G91)로 출력됩니다.
* 그러므로 링크 파라미터의 각 높이값을 자세히 보셔야 합니다. (중요!!!!!)


우선 해당 가공정의 파리미터의 기타 값의 기타 정수 #2값을 "1" 로 전체 수정하여야 합니다.
*해당 기타정수 값은 절대좌표(Absolute) / 상대좌표(Incrementa) 구분으로서 "0"=G90(ABS) , "1"=G91(INC) 값입니다.
* 그러므로 가공경로(절삭이송)를 상대좌표값(G91)으로 하시려면 "1"로 수정하시면 됩니다.


* 만일 계속적으로 상대좌표값으로 출력을 원하시면 머신정의를 수정하셔야 합니다.
해당머신정의 컨트롤러 설정에서 NC출력 - 밀링에서 메인프로그램 절댓값/증분값 기본설정에서 증분값으로 변경 -저장(중요!!) 하셔서 그 머신정의 적용받는 가공정의는 상대좌표로 적용받습니다.


*대신 이러한 설정은 기본적으로 절삭이송(G01,02,03.... 등)만 적용되며 만일의 경우 포스트상에서 강제적으로 (일부 초보자용 교육 포스트는 무조건적으로 절대좌표값으로만 출력되게 된 것이 있습니다.) 절댓값만 적용받게 되어 있는 경우 출력이 안 되는 경우가 있습니다.

 


그러하므로 임시적으로 가공정의를 상대좌표로 출력하는 것이므로 다음 작업을 진행합니다.

1. 해당 가공정의 파라미터의 기타 값의 기타 정수 #2 값을 "1"로 변경합니다.
* 이과정은 간단하면 그냥 해당 가공정의 파라미터를 열어서 수정하면 되지만 여기서는 일률적으로 수정하는 방법을 사용합니다.


2. 해당 가공정의를 전부 선택한 후 마우스 우클릭으로 가공경로 관리자창 옵션메뉴를 불러들립니다.
그리고 "선택된 작업수정" - "공통 파라미터 수정"을 선택합니다.

그러면 나오는 공통 파라미터 수정(밀링/라우터) 창에서 기타 값 항목 버턴의 체크를 하여 활성화를 합니다.


그리고 하단의 포스팅 시 포스트값을 자동으로 설정 칸의 체크를 해제하시고 해당 기타 정수[2]에 "1" 값을 입력합니다.


그다음 확인을 계속 클릭하여 본 작업화면으로 되돌아와서 해당 가공정의 NC데이터를 출력합니다.

 그리고 출력된 NC데이터를 다시 각인 프로그램의 구간(루틴)으로 사용하기 위하여 조금씩 수정합니다.

수정예
① 원본 *. NC에서는 절대좌표로 가공시작 위치로 이동하는데 이것은 각인 메인 매크로 프로그램에서 지정하므로 여기서는 삭제합니다.


② 여기서부터 상태좌표 값으로 출력되니 각 좌표값을 잘 보셔야 합니다.(중요!!!)
* 상대좌표 이므로 저 Z-2.0 은 절대좌표로는 Z3.0입니다. 절대 Z5.0 값에서 시작하므로...


③ 이와 같이 메인 매크로프로그램에서는 절대좌표값으로 해당 각인 가공원점으로 이동하므로 이후 각인과정에서는 G91로 작동하도록 지정해주셔야 합니다. (중요!!!!)
* 실제 각인 메인 프로그램에 삽입시 GOTO문에 의한 순환문이 추가됩니다.

 이렇게 우선 각인 가공프로그램이 준비되면 다시 각인 메인 매크로 프로그램의 각단 위별 배정 프로그램을 생성합니다.

해당 공구가 우선 천 단위 각인 가공원점 위치에 Z값 5.0 높이에 현재 위치해 있습니다.

 

 이제 각 단위별 각인위치로 이동후 각인 작업을 완료 후 다시 복귀하여 다음 단위 각인 작업을 진행하는 방식으로 진행합니다.

N9999 (THOUSAND NUMBER ENGRAVE)
G90 G54 G0 X#502 Y#503
#106=#106+1
GOTO [#101+100]

N1001 (HUNDERD NUMBER ENGRAVE)
G90 G54 G0 X#504 Y#505
#106=#106+1
GOTO [#102+100]

N1002 (TEN NUMBER ENGRAVE)
G90 G54 G0 X#506 Y#507
#106=#106+1
GOTO [#103+100]

N1003 (ONE NUMBER ENGRAVE)
G90 G54 G0 X#508 Y#509
#106=#106+1
GOTO [#104+100]

N1004 (END ENGRAVE)
#500=#500+#501

M9
M5
G91 G28 Z0.0
M30

해석 : 우선 각인공구를 각 단위별 위치로 일단 절대좌표값으로 이동후 해당 각인 숫자 프로그램 구간으로 이동합니다.

G90 G54(이것은 해당작업 시 적용되는 워크좌표를 지정하세요) G0 X(해당변숫값) Y(해당변숫값)으로 지정되어 이송됩니다.

#106=#106+1 이것은 여기서 해당 숫자 각인프로그램으로 진행 후 다시 다음 단위별 GOTO 문으로 되돌아와야 하므로 이에 대한 GOTO문 번호 지정용 변수입니다.

예 : 여기서 처음이면 첫 #106=0 이므로 여길 통과 하면 #106=1 이 됩니다.

 

 그럼 다시 설명하지만 각 숫자 각인프로그램 말단의 되돌아오기 위한 GOTO문의 프로그램 구간 번호가 여기서는 [#106+1001] = 1 + 1001 = 1002 즉 GOTO N1002 가 되며 현재 천 단위(N9999) 다음 백단위(N1002)로 프로그램이 진행됩니다.

 

 이후 #106=#106+1 이 반복되므로 #106=2가 되면 다음 되돌아올 GOTO N1003이 되어 십 단위 프로그램으로 진행하고 다시 #106=3 이 되면 마지막으로 GOTO N1004가 되어 각인 프로그램 종료 구간이 되어 제품번호 증분(#500=#500+#501) 절차를 진행 후 종료 절차를 마칩니다.

 

 

(ENGRAVE PROGRAM)

N101( N-1 )
G91 G1X1.322 Y-. 714
Z-2.
Z-3.05 F600
X.714Y.714 F1440
Y-5.
X-. 714
G0 Z5.05
X.714
Z-2.
G1 Z-3.05 F600.
X.715 F1440.
G0 Z5.05
GOTO [#106+1001]

N102 ( N-2 )
G91 G1 X-2.936 Y4.286
Z-2.
G1 Z-3.05 F600.
G2 X1.237Y.714 I1.237 J-. 715 F1440.
G1 X.111
G2 X1.427 Y-1.364 I0. J-1.429
X-. 369 Y-. 896 I-1.427J.064
X-1.284 Y-. 959 I-7.722 J9.005
G3 X-1.229 Y-1.781 I1.16 J-2.115
G1 X2.989
G0 Z5.05
GOTO [#106+1001]

N103 ( N-3 )
G91 G1 X-2.971 Y4.286
Z-2.
G1 Z-3.05 F600.
G2 X1.244Y.714 I1.244 J-. 727 F1250.
G1 X.184
G2 X1.039 Y-. 39 I0. J-1.577
X.39 Y-. 86 I-. 753 J-. 86
X-1.062 Y-1.245 I-1.261 J0.
G1 X-. 357
G0 Z5.05
X.357
Z-2.
G1 Z-3.05 F600.
G2 X1.133 Y-1.255 I-. 128 J-1.255 F1250.
X-. 39 Y-. 86 I-1.142 J0.
X-1.038 Y-. 39 I-1.038 J1.187
G1 X-. 327
G2 X-1.245Y.714 I0. J1.441
G0 Z5.05
GOTO [#106+1001]

N104 ( N-4 )
G91 G1X3.279Y.465
Z-2.
G1 Z-3.05 F600.
X-3.322 F1250.
X2.59 Y3.821
Y-5.
G0 Z5.05
GOTO [#106+1001]

N105 ( N-5 )
G91G 1X.712 Y5.
Z-2.
G1 Z-3.05 F600.
X-3.023 F1250.
Y-2.214
G2 X1.429Y.428 I1.342 J-1.878
X.845 Y-. 199 I0. J-1.89
X.583 Y-. 515 I-. 677 J-1.355
X.059 Y-1.714 I-1.357 J-. 905
X-1.362 Y-. 791 I-1.363J.779
G1 X-. 226
G2 X-1.328Y.714 I0. J1.591
G0 Z5.05
GOTO [#106+1001]

N106 ( N-6 )
G91 G1X3.085 Y3.546
Z-2.
G1 Z-3.05 F600.
G3 X-2.712 Y-. 27 I-1.297 J-. 727 F1250.
X-. 099 Y-2.856 I4.167 J-1.575
G0 Z5.05
X1.391 Y-1.129
Z-2.
G1 Z-3.05 F600.
G3 X1.467 Y1.029I.052 J1.486 F1250.
X-2.858Y.1 I-1.415J.453
X1.391 Y-1.129 I1.443J.357
G0 Z5.05
GOTO [#106+1001]

N107 ( N-7 )
G91 G1 G91 G1 X-1.505 Y5.
Z-2.
G1 Z-3.05 F600.
X3. F1250.
G3 X-1.5 Y-5. I7.587 J-5.001
G0 Z5.05
GOTO [#106+1001]

N108 ( N-8 )
G91G 1X.118 Y2.679
Z-2.
G1 Z-3.05 F600.
X-. 321 F1250.
G2 Y2.321 I0. J1.16
G1 X.321
G2 Y-2.321 I0. J-1.161
Y-2.679 I0. J-1.34
G1 X-.321
G2 Y2.679 I0. J1.339
G0 Z5.05
GOTO [#106+1001]

N109 ( N-9 )
G91 G1 X-1.268 Y-1.935
Z-2.
G1 Z-3.05 F600.
G3 X2.712Y.271 I1.297J.728 F1250.
X.1 Y2.855 I-4.167 J1.575
G0 Z5.05
X-1.392 Y1.129
Z-2.
G1 Z-3.05 F600.
G3 X-1.467 Y-1.029 I-. 052 J-1.486 F1250.
X2.859 Y-. 1 I1.415 J-. 452
X-1.392 Y1.129 I-1.444 J-. 357
G0 Z5.05
GOTO [#106+1001]

N100 ( N-0 )
G91G 1X.001Y.009
Z-2.
G1 Z-3.05 F600.
G3 X-1.168 Y-. 824 I0. J-1.239 F1250.
Y-3.368 I4.633 J-1.684
X2.336 I1.168J.415
Y3.368 I-4.633 J1.684
X-1.168Y.824 I-1.168 J-. 415
G0 Z5.05
GOTO [#106+1001]

M9
M5
G91 G28 Z0.0
M30

 

 이로서 두 번째 각인 매크로를 마치었습니다.

1탄보다는 좀 더 사용하기 편하지만 웬지 좀더 자동화(?) 그리고 범용성(별다른 수정 없이 다른 제품에도 적용하기) 를 볼때 뭔가 좀 불편해 보입니다.

 

 그래서 3탄에서는 좀더 자동화(첫 각인위치만 지정하면 나머지 각인위치는 자동으로 적용할 수 있는) 매크로와 4탄에서는 G65 적용 매크로작성에 대하여 알아보겠습니다.

반응형