이번에는 매크로전문가 이신 알루미네이션님이 이전 각인 매크로의 개선점을 적용한 매크로 프로그램을 한번 알아보겠습니다.
일단 먼저 전체 매크로 프로그램을 표시하겠습니다.
%
O0000
( T1 | 1 BALL EM | H1 )
G5.1Q0
T1 M6
S6500 M3
G43 H1 Z10. M8
Z3.
(-------------- MARKING --------------)
#501=#500 (NUMBER ENGRAVING)
#101=0 (THOUSANDS DIGIT NUMBER)
#102=0 (HUNDREDS DIGIT NUMBER)
#103=0 (TENS DIGIT NUMBER)
#104=0 (UNIT DIGIT NUMBER)
#105=0 (CALL #500)
#110=0 (CALCULATION)
#111=1001 (RECALL SEQUENCE NUMBER)
(------------ CAL_WORK WCS ------------)
#112=5220 (COORDINATES IN USE - G54 )
#113=7040 (MARKING WCS - G54.1 P3 )
#114=5 (MARKING WCS INTERVAL X = 5 )
#115=0 (MARKING WCS INTERVAL Y = 0 )
(---------- MARKING WORK WCS ----------)
#[#113+1]=#5201
#[#113+2]=#5202
#[#113+3]=#[#112+3]
G54.1 P3
(------------- CAL_NUMBER -------------)
N1001
#105=[#501]/1000
#101=FIX [#105]
X0.0 Y0.0
GOTO[#101+100]
N1002
#[#113+1]=#[#113+1]+#114 ( G54.1 P3 X OFFSET - 5 )
#[#113+2]=#[#113+2]+#115 ( G54.1 P3 Y OFFSET - 0 )
#105=0.
#110=#501-[#101*1000]
#501=#110
#105=[#110]/100.
#102=FIX [#105]
X0.0 Y0.0
GOTO[#102+100]
N1003
#[#113+1]=#[#113+1]+#114 ( G54.1 P3 X OFFSET - 5 )
#[#113+2]=#[#113+2]+#115 ( G54.1 P3 Y OFFSET - 0 )
#105=0
#110=#501-[#102*100]
#105=#110
#105=[#110]/10
#103=FIX [#105]
X0.0 Y0.0
GOTO[#103+100]
N1004
#[#113+1]=#[#113+1]+#114 ( G54.1 P3 X OFFSET - 5 )
#[#113+2]=#[#113+2]+#115 ( G54.1 P3 Y OFFSET - 0 )
#105=0
#110=#501-[#103*10]
#105=#110
#104=FIX[#105]
X0.0 Y0.0
GOTO[#104+100]
N1005
#500=#500+1
M9
M5
G91G28Z0.0
M30
(--------- TOOLPATH - NUMBER ---------)
N100(0)
X.297 Y-.816
Z1.
G1 Z-.05 F100.
G2 X2.632 R1.239 F1300.
Y-4.184 R4.93
X.297 R1.24
Y-. 816 R4.929
G0 Z3.
#111=#111+1
GOTO [#111]
N101(1)
X.945 Y-.722
Z1.
G1 Z-.05 F100.
X1.659 Y-.008 F1300.
Y-5.008
G0 Z3.
X.945
Z1.
G1 Z-.05 F100.
X2.374 F1300.
G0 Z3.
#111=#111+1
GOTO [#111]
N102(2)
X.107 Y-.714
Z1.
G1 Z-.05 F100.
G2 X1.344 Y0. R1.429 F1300.
G1 X1.455
G2 X2.882 Y-1.364 R1.429
X2.513 Y-2.26 R1.428
X1.229 Y-3.219 R11.863
G3 X0. Y-5. R2.412
G1 X2.989
G0 Z3.
#111=#111+1
GOTO [#111]
N103(3)
X.071 Y-.714
Z1.
G1 Z-.05 F100.
G2 X1.316 Y0. R1.442 F1300.
G1 X1.5
G2 X2.538 Y-. 39 R1.577
X2.929 Y-1.25 R1.142
X1.867 Y-2.495 R1.262
G0 Z3.
X1.509
Z1.
G1 Z-.05 F100.
X1.867 F1300.
G2 X3. Y-3.75 R1.262
X2.61 Y-4.61 R1.143
X1.571 Y-5. R1.577
G1 X1.245
G2 X0. Y-4.286 R1.441
G0 Z3.
#111=#111+1
GOTO [#111]
N104(4)
X2.589 Y-5.
Z1.
G1 Z-.05 F100.
Y0. F1300.
X0. Y-3.821
X3.321
G0 Z3.
#111=#111+1
GOTO [#111]
N105(5)
X3.023 Y0.
Z1.
G1 Z-.05 F100.
X0. F1300.
Y-2.214
G2 X1.429 Y-1.786 R2.308
X2.274 Y-1.985 R1.89
X2.857 Y-2.5 R1.515
X2.916 Y-4.214 R1.631
X1.554 Y-5.005 R1.57
G1 X1.328
G2 X.28 Y-4.611 R1.591
X0. Y-4.291 R1.591
G0 Z3.
#111=#111+1
GOTO [#111]
N106(6)
X2.997 Y-.745
Z1.
G1 Z-.05 F100.
G3 X.285 Y-1.015 R1.487 F1300.
X.185 Y-3.871 R4.455
X3.044 Y-3.971 R1.487
X.185 Y-3.871 R1.486
G0 Z3.
#111=#111+1
GOTO [#111]
N107(7)
X0. Y0.
Z1.
G1 Z-.05 F100.
X3. F1300.
G3 X1.5 Y-5. R9.086
G0 Z3.
#111=#111+1
GOTO [#111]
N108(8)
X1.661 Y-2.321
Z1.
G1 Z-.05 F100.
G3 X2.821 Y-1.161 R1.16 F1300.
X1.661 Y0. R1.16
G1 X1.339
G3 X.802 Y-. 132 R1.161
X1.339 Y-2.321 R1.161
G1 X1.661
G2 X3. Y-3.661 R1.34
X1.661 Y-5. R1.339
G1 X1.339
G2 X.238 Y-4.423 R1.339
X1.339 Y-2.321 R1.339
G0 Z3.
#111=#111+1
GOTO[#111]
N109(9)
X2.926 Y-1.13
Z1.
G1 Z-.05 F100.
G2 X.068 Y-1.03 R1.485 F1300.
X2.926 Y-1.13 R1.487
X2.826 Y-3.985 R4.454
X.115 Y-4.256 R1.487
G0 Z3.
#111=#111+1
GOTO [#111]
M30
%
사용방법은 먼저 각인번호 첫 시작위치의 좌표값을 G54.1 P3(임의 좌표입니다. 다른 좌표 사용 시 해당 매크로 설정변숫값을 해당 좌표계에 맞게 수정하셔야 합니다.)에 입력합니다.
![](https://blog.kakaocdn.net/dn/bhi96R/btsrr3ceYeb/e7jIwmZ9vT1kh2Pz45Gxkk/img.png)
*본 매크로에서는 G54.1 P3 X,Y 좌표값을 제품 가공프로그램 완료 시 각인 시작위치로 이동후 각인 프로그램을 호출하는 방식입니다.
* Z값을 제외한 X , Y 값만 입력합니다.
* Z값은 제품가공에 사용될 워크좌표 (예기서는 G54)에 입력된 값을 사용합니다.
전과 동일하게 각 각인 숫자의 가공경로 NC데이터는 따로 출력하여 정리하여 해당 매크로에 삽입합니다.
![](https://blog.kakaocdn.net/dn/O3sxM/btsrq7lNbtE/qTwxAVZT4aKpdd8FpY9s70/img.png)
* 각인숫자 가공경로는 절대좌표값(G90) 기준으로 하셔야 합니다.
* 각인숫자 가공원점은 전과 동일하게 좌측상단에 위치합니다.
그러면 우선 각 사용변수에 대하여 알아봅니다.
#500 << 각인할 제품번호 (시작번호)
#501 << 제품번호 연산용 변수
#101 << 각인번호 중 천 단위 번호 산출용 저장용
#102 << 각인번호 중 백단위 번호 산출용 저장용
#103 << 각인번호 중 십 단위 번호 산출용 저장용
#104 << 각인번호 중 일천단위 번호 산출용 저장용
#105 << 제품번호(#500) 산출용 변수
#110 << 제품번호 연산용 변수
#111 << 해당단위 각인 후 다음단위 위치로 이동구간 변수
#112 << 제품 가공원점 좌표값 산출용 변수 (G54=5221~5223 )
#113 << 각인 시작원점 좌표값 산출용 변수 (G54.1 P3=7041~7043)
#114 << 각인 숫자 간격(X) 값 변수
#115 << 각인 숫자 간격(Y) 값 변수
#113+1 << 각인 시작원점(G54.1 P3) X축 좌표값 변수 (#7041)
#113+2 << 각인 시작원점(G54.1 P3) Y축 좌표값 변수 (#7042)
#113+3 << 각인 시작원점(G54.1 P3) Z 축 좌표값 변수 (#7043)
#112+3 << 제품 가공원점(G54) Z축 좌표값 변수 (#5223)
#5201 << 기계좌표(G53) X축 좌표값 변수
#5202 << 기계좌표(G53) Y축 좌표값 변수
매크로 작동 방식
1. 제품번호(시작번호)는 #500 변수에 MDI - OFS/SET - 설정 - 오른쪽 플러스 버턴 - 커스템매크로 항목에서 #500에 입력합니다.
![](https://blog.kakaocdn.net/dn/bmnqhu/btsrwCZefH0/mQMZKFCe5Px8sAuq2i3pDk/img.png)
![](https://blog.kakaocdn.net/dn/x5RfT/btsrjqTWNuV/4uvzjrREgows0ETYNKGlmK/img.png)
제품번호 증분값은 +1로 되어있으면 이외 단계로 증분시 해당 매크로 프로그램에서 증분치를 수정합니다. (LINE 71)
2. 먼저 공구 절삭 조건은 매크로 초기에서 설정하며 이후 종료까지 유지합니다.
* 이때 이 매크로 프로그램은 기존 제품 가공프로그램에서 가공완료 후 해당 각인공구가 각인시작위치(시작원점)로 이송 후 각인매크로를 호출하는 방식입니다.
그러므로 각인 매크로 호출 시 해당 공구가 각인시작원점위치에 와있어야 합니다.
*만일 이러한 과정과 틀리게 작업하신다면 매크로 프로그램 내 해당 각인 시작원점 위치로 이송시켜야 합니다.
본 프로그램은 매크로 시작되는 시점에 있는 공구 위치를 각인 시작원점으로 인식하고 시작하도록 연결된 프로그램입니다.(중요!!!!)
3. 해당 각인 작업이 진행 중에는 워크좌표 G54.1 P3 절대좌표값으로 이루어집니다.
4. 작업 전 해당 각인 시작워치 좌표값(기계좌표)을 G54.1 P3 X , Y 값을 입력합니다.
* G54 좌표값 입력하듯이 측정기구(아쿠센터) or 좌표계산등으로 측정하여 입력하시면 됩니다. (Z 축 불필요)
5. 각인되는 숫자 간격은 매크로 프로그램 내 #114 변숫값에 입력하시기 바랍니다.
*만일 Y축도 간격변동 된다면 #115 변숫값에 입력하시기 바랍니다.
![](https://blog.kakaocdn.net/dn/bEBIts/btsrwWpPxZo/2hBsbSIOK0hfscWQF27Tm1/img.png)
6. 각 각인에 사용될 숫자 가공정의를 생성한 후 이를 절대좌표값(평상시 대로) NC데이터 출력 후 워크좌표(G54?)를 삭제 정리한 형태로 수정 후 매크로 프로그램에 삽입하여 적용합니다.
N101(1) << GOTO문에서 지정할 각인 프로그램 구간명(이름) 표시 (가공정의에서 주석문에 기재 시 자동 출력)
X.945 Y-. 722 << 선두에서 G0이 지령되어 있는 상태(모달) 이므로 G0지령 생략가능 (절대좌표값(G90) 적용 중)
Z1.
G1 Z-. 05 F100. << 절삭이송 시 G01지령 필수
X1.659 Y-. 008 F1300.
Y-5.008
G0 Z3.
X.945
Z1.
G1 Z-. 05 F100.
X2.374 F1300.
G0 Z3. << 각인 완료 후 일정 이송높이(대기 중)로 이송
#111=#111+1 << #111(숫자 단위별 이동 지정변수) 현단 위에서 다음 단위로 넘어가기 위해 변숫값을 +1 증분함
GOTO [#111] << 해당 #111 변숫값에 위하여 다음 단위 숫자 산출용 구간으로 이동
* 위와 같은 형식으로 각 숫자별 각인 프로그램을 정리하여 각인 메인 매크로 프로그램에 삽입합니다.
7. 각 단위별 숫자가 각인 완료하면 해당 제품번호값(#500)을 +1 증분 하여 입력 후 Z값 원점 복귀 후 해당 프로그램을 종료(N1005)합니다.
8. 현재 증분 된 #500 변수가 전역변수 이므로 머시닝 전원과 관계없이 저장(기억) 되므로 각인 작업이 무사히 완료되면 별다른 조작 없이 다시 해당 각인 매크로프로그램을 실행하시면 됩니다.
* 다만 작업중단 후 다시 각인 매크로 실행 시 해당 제품번호가 #500 변숫값과 동일한지 확인하시고 작업하셔야 합니다.
매크로 연산 과정 설명
예제로서 제품번호 #500=1357 로지 정합니다.
![](https://blog.kakaocdn.net/dn/echLdd/btsrr1MgyJV/VhklVlkqi1obiPY2uOfKa0/img.png)
(-------------- MARKING --------------)
#501=#500 << 매회 각인 작업 시작 시 현재 제품번호(#500) 값을 #501 값에 입력합니다.
#101=0 << 각인번호 중 천 단위 번호 산출 저장용 "1"357
#102=0 << 각인번호 중 백단위 번호 산출 저장용 1"3"57
#103=0 << 각인번호 중 십 단위 번호 산출 저장용 13"5"7
#104=0 << 각인번호 중 입단 위 번호 산출 저장용 135"7"
#105=0 << 제품번호(#500) 산출용 변수를 초기화 "0"으로 합니다.
#110=0 << 제품번호 연산용 변수
#111=1001 << 해당단위 각인 후 다음단위 위치로 이동구간 변수 GOTON번호 산출을 위한 연산용 변수
(------------ CAL_WORK WCS ------------)
#112=5220 << 제품 가공원점 좌표값 산출용 변숫값 입력 (G54=5221~5223) 이므로 [#112+1]=5221
#113=7040 << 각인 시작원점 좌표값 산출용 변수값 입력 (G54.1 P3=7041~7043) 이므로 [#113+2]=7042
#114=5 << 각인 숫자 간격(X) 값 변숫값 입력 (여기서는 숫자 간 간격 5.0으로 지정)
#115=0 << 각인 숫자 간격(Y) 값 변숫값 입력 (여기서는 수직으로 간격변동 없으므로 0.0으로 지정)
(---------- MARKING WORK WCS ----------)
#[#113+1]=#5201 << #[#113+1] 값은 #5201(기계좌표 X축값 여기서는 -567.8로 설정)
#[#113+2]=#5202 << #[#113+2] 값은 #5202(기계좌표 Y축값 여기서는 -675.3로 설정)
#[#113+3]=#[#112+3] << #[113+3] 값은 #[#112+3] 값(G54Z축값 : 매크로 초기 가공 절삭조건 정의 시 지정된 Z3.0의 기계좌표값) 이 입력됩니다.
*이러한 점은 사실상 가공제품 가공원점(G54)의 Z값(사실상 Z0.0)을 같이 적용되는 형태의 각인이라는 전제 조건하에 이루어집니다.(중요!!!)
G54.1 P3 << 이제부터는 각인 가공원점을 G54.1 P3으로 지정합니다.
*이 각인 매크로 특성상(제품가공 프로그램과 연결된 방식) 매크로 시작 전 해당 각인위치로 공구가 이송되어 있어야 합니다.
그래서 위 #[#113+1](#7041:G54.1 P3X축) 변수에 현재 공구위치 기게 좌표 (X) 값을 입력받습니다.
#[#113+2](#7042:G54.1 P3Y축)은 현재 공구위치 기계좌표 (Y) 값
* 그러므로 만일 제품가공프로그램과 별도로 진행하는 각인프로그램 적용 시 매크로 최상단의 공구 이송위치를 수정하시거나 위 "CAL_WORK WCS"변수적용 를 수정하셔야 합니다.
* 단순히 분리하고 싶으시면 (전 제품가공 완료 후 공구위치와 관련 없이) 매크로 최상단에서 해당 각인 시작위치로 미리 이송시키거나 해당 변수 G54.1 P3 X, Y값을 입력 또는 적용하시면 됩니다.
이렇게 하여 현재 워크좌표 G54.1 P3에는 X 0.0(-567.8) Y 0.0(-675.3) Z 0.0 값이 입력됩니다. 괄호"( )"안의 숫자는 기계좌표값입니다.
(------------- CAL_NUMBER -------------)
N1001 << 숫자 천 단위 번호 산출용 구간 표시
#105=[#501]/1000 << #105 변수에 (#501(제품번호값 : 1357 / 1000) 값을 입력합니다.
* 1,357 / 1,000 = 1.357 = #105=1.357
#101=FIX [#105] << #101 변수에 FIX(#105) 값을 입력합니다.
* FIX(1.357)=1.0 #101=1 제품번호 천 단위 숫자 "1"를 산출하여 #101 변수에 입력합니다.
X0.0 Y0.0 << 이제 천 단위 숫자를 각인할 번호 "1"를 산출하였으니이제 각인 가공 구간으로 넘어가기 전 다시 한번 각인 가공원점으로 이동합니다.(확인 목적)
* 실제로는 모달 상태이므로 "G90 G54.1 P3 X0.0 Y0.0"를 지령한 것 과 동일합니다.
GOTO [#101+100] << 이제 천 단위 산출번호 "1"를 연산하여 해당 각인 가공구간으로 이동합니다.
*#101=[#101+100] 이므로 여기서는 1+100 = 101 #101=101 값을 입력받습니다.
* 그래서 각숫자별 각인 가공프로그램 작성 시 해당 프로그램 구간 N값을 "1"=101 , "2"=102 , "3"=103 이러한 형식으로 미리 정리해두어야 합니다.
N101(1) << 숫자 "1" 가공 프로그램
X.945 Y-. 722
Z1.
G1 Z-. 05 F100.
X1.659 Y-. 008 F1300.
Y-5.008
G0 Z3.
X.945
Z1.
G1 Z-. 05 F100.
X2.374 F1300.
G0 Z3. << 각인 작업 후 미리 정해둔 위치 Z값으로 이송(도피) 합니다.
![](https://blog.kakaocdn.net/dn/b7rzcy/btsrqwlPEXw/mzHW5hmnAklf6K6IkboLq0/img.png)
#111=#111+1 << 다음 단계 (백단위)으로 이동하기 위하여 단위별 구간 구별값을 증분 합니다.
* 맨 처음 #111=1001 값을 가지고 있는데 여기서 +1을 증분 하여 #111=1002 값을 가지게 합니다.
* 각인 구별 프로그램 구간을 천 단위는 N1001. 백단위는 N1002 , 십 단위는 N1003 , 일단위는 N1004입니다.
GOTO [#111] << 위에서 #111=1002 값을 가지므로 GOTO문은 GOTO 1002 이므로 N1002문으로 이동합니다.
N1002 << 백단위 숫자 구별구간
#[#113+1]=#[#113+1]+#114 << 앞서 천 단위 숫자에서 다음 백단위 숫자 각인을 해야 하므로 현재 워크좌표 G54.1 P3의 X축값[#113+1](0.0)+#114(+5)가 되어 X축 방향으로 +5가 됩니다.
#[#113+2]=#[#113+2]+#115 << 앞서 천단위 숫자에서 다음 백단위 숫자 각인를 해야하므로 현재 워크좌표 G54.1 P3 의 Y축값[#113+1](0.0)+#115(0)가 되어 Y축 방향으로 증분이 안됩니다.
#105=0.0 << 앞서 천 단위에서 단위 숫자 산출 용 변수에 임의의 값이 있으므로 "0"으로 초기화합니다.
#110=#501-[#101*1000] << 제품번호 #501(1357)깂에서 #101 값(1) * 1000 = 1000 즉 1,357 - 1,000 =357 #110 변수에 357값를 입력합니다. (백단위 숫자 값을 산출하기 위한 작업)
#501=#110 << #501 변숫값에 #110(357) 값을 입력합니다.
#105=[#110/100.0] <<#105 변숫값에 [#110/100] = 357 / 100 = 3.57 즉 #105 = 3.57 값이 입력됩니다.
#102=FIX [#105] << #102 변숫값에 FIX [#105](3.57) = 3.0 즉 #102 = 3 값이 입력됩니다. (백단위 숫자 값 산출)
X0.0 Y0.0 << 이제 백단위 숫자를 각인할 번호 "3"를 산출하였으니이제 각인 가공 구간으로 넘어가기 전 다시 한번 각인 가공원점으로 이동합니다.(확인 목적)
GOTO [#102+100] << 이제 백단위 산출번호 "3"를 연산하여 해당 각인 가공구간으로 이동합니다.
*#102=[#102+100] 이므로 여기서는 3+100 = 101 #102=103 값을 입력받습니다.
N103(3) << 숫자 "3" 가공 프로그램
X.071 Y-. 714
Z1.
G1 Z-. 05 F100.
G2 X1.316 Y0. R1.442 F1300.
G1 X1.5
G2 X2.538 Y-. 39 R1.577
X2.929 Y-1.25 R1.142
X1.867 Y-2.495 R1.262
G0 Z3.
X1.509
Z1.
G1 Z-. 05 F100.
X1.867 F1300.
G2 X3. Y-3.75 R1.262
X2.61 Y-4.61 R1.143
X1.571 Y-5. R1.577
G1 X1.245
G2 X0. Y-4.286 R1.441
G0 Z3. << 각인 작업 후 미리 정해둔 위치 Z값으로 이송(도피) 합니다.
![](https://blog.kakaocdn.net/dn/cMbunk/btsrvWqggku/TRSzJAUPK0G5wFFSTciYv1/img.png)
#111=#111+1 << 다음 단계 (십 단위)으로 이동하기 위하여 단위별 구간 구별값을 증분 합니다.
* #111=1002 값을 가지고 있는데 여기서 +1을 증분 하여 #111=1003 값을 가지게 합니다.
GOTO [#111] << 위에서 #111=1003 값을 가지므로 GOTO문은 GOTO 1003 이므로 N1003문으로 이동합니다.
N1003 << 십 단위 숫자 구별구간
#[#113+1]=#[#113+1]+#114 ( G54.1 P3 X OFFSET - 5 ) << 중복되는 내용이라 생략
#[#113+2]=#[#113+2]+#114 ( G54.1 P3 Y OFFSET - 0 ) << 중복되는 내용이라 생략
#105=0 << 중복되는 내용이라 생략
#110=#501-[#102*100] << #110 변숫값에 #501(357)-[#102(3)*100]=300 357 - 300 = 57 즉 #110 = 57
#501=#110 << #501 변숫값에 #110(57) 값을 입력합니다. #501 = 57
#105=[#110]/10 << #105 변숫값에 [#110(57)/10] = 57 / 10 = 5.7 즉 #105 = 5.7
#103=FIX [#105] << #103 변숫값에 FIX [#105(5.7)] FIX(5.7) = 5 즉 #103 = 5
X0.0 Y0.0 << 이제 십 단위 숫자를 각인할 번호 "5"를 산출하였으니이제 각인 가공 구간으로 넘어가기 전 다시 한번 각인 가공원점으로 이동합니다.(확인 목적)
GOTO [#103+100] << 이제 십 단위 산출번호 "5"를 연산하여 해당 각인 가공구간으로 이동합니다.
*#103=[#103+100]이므로 여기서는 5+100 = 105 #103=105 값을 입력받습니다.
N105(5) << 숫자 "5" 가공 프로그램
X3.023 Y0.
Z1.
G1 Z-. 05 F100.
X0. F1300.
Y-2.214
G2 X1.429 Y-1.786 R2.308
X2.274 Y-1.985 R1.89
X2.857 Y-2.5 R1.515
X2.916 Y-4.214 R1.631
X1.554 Y-5.005 R1.57
G1 X1.328
G2 X.28 Y-4.611 R1.591
X0. Y-4.291 R1.591
G0 Z3. << 각인 작업 후 미리 정해둔 위치 Z값으로 이송(도피) 합니다.
![](https://blog.kakaocdn.net/dn/blEmto/btsrthVEzo4/oxJ6C6hXqsKAyo9Hf9wNKk/img.png)
#111=#111+1 << 다음 단계 (일단위)으로 이동하기 위하여 단위별 구간 구별값을 증분 합니다.
* #111=1003 값을 가지고 있는데 여기서 +1을 증분 하여 #111=1004 값을 가지게 합니다.
GOTO [#111] << 위에서 #111=1004 값을 가지므로 GOTO문은 GOTO 1004 이므로 N1004문으로 이동합니다.
N1004 << 일단위 숫자 구별구간
#[#113+1]=#[#113+1]+#114 ( G54.1 P3 X OFFSET - 5 ) << 중복되는 내용이라 생략
#[#113+2]=#[#113+2]+#114 ( G54.1 P3 Y OFFSET - 0 ) << 중복되는 내용이라 생략
#105=0 << 중복되는 내용이라 생략
#110=#501-[#103*10] << #110 변숫값은 #501(57)-[#103(5)*10] = 57 - 50 = 7 즉 #110 = 7
#105=#110 << #105 변숫값에 #110(7) 값 입력
#104=FIX [#105] << #104 변숫값에 FIX [#105] 값 입력 #104 = 7
X0.0 Y0.0 << 중복되는 내용이라 생략
GOTO [#104+100] << 이제 일단위 산출번호 "7"를 연산하여 해당 각인 가공구간으로 이동합니다.
*#104=[#104+100] 이므로 여기서는 7+100 = 107 #104=107 값을 입력받습니다.
N107(7)<< 숫자 "7" 가공 프로그램
X0. Y0.
Z1.
G1 Z-. 05 F100.
X3. F1300.
G3 X1.5 Y-5. R9.086
G0 Z3.
![](https://blog.kakaocdn.net/dn/lzPeN/btsrsQw4voZ/dhLY5k2tD1PalkKJdt6741/img.png)
#111=#111+1 << 다음 단계 (일단위)으로 이동하기 위하여 단위별 구간 구별값을 증분 합니다.
* #111=1004 값을 가지고 있는데 여기서 +1을 증분 하여 #111=1005 값을 가지게 합니다.
GOTO [#111] << 위에서 #111=1005 값을 가지므로 GOTO문은 GOTO 1005 이므로 N1005문으로 이동합니다.
N1005 << 각인 매크로 종료구간
#500=#500+1 << 제품번호 #500 값에 증분값 +1을 더합니다.
M9
M5
G91 G28 Z0.0
M30 << 해당 매크로 종료
이렇게 하여 각인 작업이 완료됩니다.
위 매크로 내용은 실제로 각인 작업에 적용하시려면 해당 작업자 환경에 맞게 내용을 수정하셔야 합니다.
또한 제품 가공 프로그램 내 삽입된 매크로로 작동하는가? , 아니면 별도의 각인 프로그램으로 만들어서 호출하는 방법으로 만드냐? 에 따라 세부적인 내용이 달라집니다.
* 만일의 경우 제품 Z값과 틀리게 Z값을 적용하는 경우에는 특히 각인 가공프로그램 생성 시 공구충돌(링크파라미터)에 주의하셔야 합니다.
* 매크로 특성상 이러한 매크로는 단점이 사실상 제품에 따라 그때그때 수정하여 사용하여야 한다는 점입니다.
그래서 마지막으로 일정한 숫자형태를 각인 시작위치 와 숫자 크기, 숫자 간격등, 또는 가공일시 등 을 적용한 범용성을 가진 각인 매크로를 소개하겠습니다.
* 다만 개발 기간이 좀 걸리니 좀 기다리셔야 합니다.
이제 다시 머시닝 가공분야로 넘어가겠습니다.
'마스터캠 2021 기능 교육 자료(초안) > 마스터캠 2021 활용 소소한 팁' 카테고리의 다른 글
마스터캠 2021 활용한 다각도면 홀가공 작업에 대하여-1 (지그(ZIG)활용-1) (1) | 2023.10.14 |
---|---|
마스터캠 가공경로(가공정의) 복사 붙이기 관련 팁에 관하여 (0) | 2023.09.01 |
마스터캠 2021 활용한 소소한 팁-4-4 (각인 공정 관련 매크로 관련하여) (0) | 2023.08.15 |
마스터캠 2021 활용한 소소한 팁-4-3 (각인 공정 관련 매크로 관련하여) (0) | 2023.08.15 |
마스터캠 2021 활용한 소소한 팁-4-2 (각인 공정 관련 매크로 관련하여) (0) | 2023.08.09 |