이번에는 각인 매크로를 좀 더 편하게 작업하기 위하여 번호산출 원리와 프로그램 루틴을 좀 더 개선해서 한 개 프로그램(각인 메인 프로그램만 존재 / 호출프로그램 사용 안 함) 만으로 생성해 보겠습니다.
우선 기본적인 형식은 동일합니다.
중요점를 먼저 서술하면
1. 변수 #500에 기초 제품번호 (시작번호)를 입력합니다.
2. 변수 #500(제품번호)에 번호 자릿수 에 따른 각인 프로그램을 호출하나 전과 달리 #500(#501) 값은 유지하면서(1234>234>34 이러한 변동 없이) 현재 각인 중인 제품번호는 유지합니다.
3. 각인 완료되면 #501(증분값)만큼 #500 값을 증분 합니다.
4. 각 숫자별 각인프로그램은 해당 메인 프로그램에 같이 있으며 GOTO 문에 따라 이동됩니다.
5. 각인 제품번호의 위치(원점)는 별도의 워크좌표(G55, G56.....)에 정의하지 않고 해당 제품가공 프로그램의 원점(워크좌표)에 기준한 증분 된 절대(기계좌표)(각인 프로그램 내에서 변숫값 지정)에 정의됩니다.
사용상 변경내용은..
해당 각인작업 머시닝(장비 조작반)에서 설정 - 커스텀매크로 - #500 변수에 제품시작번호를 입력하고 제품번호 증분되는 갑수를 #501에 입력합니다.
각각의 각인 위치값(제품가공프로그램 원점에 위한 절대 좌표값 : #502,#503=천 단위, #504,#505=백단위, #505,#506=십 단위, #507,#508=일단위)을 입력(매크로 프로그램상)하여 해당 각인 프로그램을 실행합니다.
그럼 우선 #500(제품번호값)에 기초하여 각단 위별 숫자(천 단위(#101) , 백단위(#102) , 십 단위(#103) , 일단위(#104)) 갑수를 먼저 산출합니다.
*#500 변숫값은 이후 증분변수 #501 변숫값에 증분 됩니다.
#500 값에 2,345를 입력하였다는 전제하 에서
*(기타 사용변수 #101 , #102 , #103 , #104 , #105 은 전부 "0"으로 초기화합니다.
우선
천 단위 숫자 산출 (#101) 값
#101=FIX [#500/1000] <<<(제품번호 입력값 2,345중 "2"를 산출하기 위하여 #500 / 1,000 = 2,345 / 1,000 = 2.345 FIX(2.345)=2.0 = "2")
*즉 #101="2"값을 가집니다.
(현재 변수 변동값 #500=2,345 , #501=1 , #101=2 , #102=0 , #103=0. #104=0 , #105=0)
백단위 숫자 산출 (#102) 값
#105=#500-[#101*1000] <<<(제품번호 #500에서 천 단위 값을 삭제하여 #105에 입력 "2,345"- (2 * 1,000 = 2,000 > 2,345 - 2,000 = 345 #105 = 345)
#102=FIX [#105/100] <<<(제품번호 산출변수 #105 입력값 345중 "3"를 산출하기 위하여 #105 345 / 100 = 3.45 = FIX(3.45)=3.0 = "3")
*즉 #102="3"값을 가집니다.
(현재 변수 변동값 #500=2,345 , #501=1 , #101=2 , #102=3 , #103=0. #104=0 , #105=345)
십 단위 숫자 산출 (#103) 값
#105=#105-[#102*100] <<<(제품번호 산출잔여값 #105에서 백단위 값을 삭제하여 #105에 입력 "345" - (3 * 100 = 300 > 345 - 300 = 45 #105 = 45)
#103=FIX [#105/10] <<<(제품번호 산출변수 #105 입력값 45중 "4"를 산출하기 위하여 #105 45 / 10 = 4.5 = FIX(4.5)=4.0 = "4")
*즉 #103="4"값을 가집니다.
(현재 변수 변동값 #500=2,345 , #501=1 , #101=2 , #102=3 , #103=4. #104=0 , #105=45)
일단위 숫자 산출 (#104) 값
#105=#105-[#103*10] <<<(제품번호 산출잔여값#105에서 십 단위 값을 삭제하여 #105에 입력 "45" - (4 * 10 = 40 > 45 - 40 = 5 #105 = 5)
#104=FIX [#105] <<<(제품번호 산출변수 #105 입력값 5중 "5"를 산출하기 위하여 #105 = FIX(5)= 5.0 = "5")
*즉 #104="5"값을 가집니다.
(현재 변수 변동값 #500=2,345 , #501=1 , #101=2 , #102=3 , #103=4. #104=5 , #105=5)
이렇게 하여 각 숫자 단위별 값을 전부 산출하여 해당변숫값에 입력되었습니다.
(천 단위(#101) , 백단위(#102) , 십 단위(#103) , 일단위(#104))
그럼 이러한 변수를 적용하여 해당 숫자별 각인 가공 프로그램으로 진행합니다.
이때 먼저 설정하여야 할 것이 각인 프로그램의 가공원점(글자틀 박스 상단점)으로 각 숫자단위별 위치로 이동하여야 합니다.
그래서 위에서 먼저 애기 한대로 각인적용 할 제품의 가공원점(예:G54 워크좌표값)에 기반한 각 증분 된 절대 좌표값(#502,#503=천 단위(X, Y) , #504,#505=백단위(X, Y) , #505,#506=십 단위(X, Y) , #507,#508=일단위(X, Y)로 이동하여야 합니다.
* Z값은 가공원점(G54 워크좌표)에 기반하여 일률적으로 적용합니다.
천 단위 숫자 각인시 이동좌표는 해당 원점에서 증분값(절대값) (#502(X) , #503(Y)) 적용하여 해당 이송명령를 실행합니다.
여기서 예제 도면을 다시 보면 각 숫자단위별 위치가 아래와 같이 정의됩니다.
천단위
#502=95.75 (X)
#503=-10.0(Y)
백단위
#504=99.67(X)
#505=-10.0(Y)
십 단위
#506=103.60(X)
#507=-10.0(Y)
일단위
#508=107.53(X)
#509=-10.0(Y)
*Z값은 해당 이송지령에서 지정합니다.
그러므로 먼저 천-백-십-일단위로 각인이 되므로 우선 해당 공구를 각인시작점(천 단위부터)으로 이송합니다.
*이때 먼저 전체 가공 관련 설정은 먼저 일괄적으로 해줍니다.
O0001(Serial Engrave)
G0 G17 G40 G49 G80 G90
G91G 30Z0.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)
해석 : 우선 가공지령의 기초 설정 지령(각자 장비 사양에 맞게)을 하고 1파이 볼엔드밀로 가공하는 조건하에서 먼저 현재 작업평면(워크좌표 G54)에 기초한 천 단위 숫자 원점으로 이동합니다.
(천 단위 위치 (#502)X95.75 , (#503)Y-10.0 가공원점 기준 절대좌표값(G90) 위치로 이송합니다.)
*시작위치는 임의적으로 가능합니다. (여기서는 그냥 천단위 시작점으로 합니다.)
*선행제어 OFF(G5.1 Q0)는 선행제어 적용 시 해당 변숫값을 미리 읽어(아직 산출적용 안된 상태에서) 해당 변수값이 적용되어 차후 변수값 산출에 문제가 있을 수 있으므로 여기서는 선행제어를 적용치 않는 것이 좋습니다. (특히 구형장비)
(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)
해석 : #502 ~ #509 은 각 천, 백, 십, 일 단위별 각인원점 워치값입니다.
#101 = 천 단위 숫자 산출값용
#102 = 백단위 숫자 산출값용
#103 = 십 단위 숫자 산출값용
#104 = 일단위 숫자 산출값용
#105 = 각단 위 숫자 산출용 변수
(-------------- MARKING --------------)
(THOUSAND NUMBER)
#101=FIX [#500/1000]
해석 : 천 단위 숫자 산출 구간입니다.
#101 은 #500 값을 1,000으로 나눈 값의 소수점 이하 절사(이하를 삭제) 하여 입력됩니다.
예: 예제로 #500 값은 2,345 이므로 2345/1000 = 2.345 = FIX(2.345) = 2.0
#101 = 2의 값을 입력받습니다.
(HUNDERD NUMBER)
#105=#500-[#101*1000]
#102=FIX [#105/100]
해석: 백단위 숫자 산출 구간입니다.
#105 은 #101*1000 값(천 단위 숫자 값을 삭제하기 위한 값)을 #500에서 빼서 나온 값을 입력받습니다.
예 : #101 = 2 이므로 2*1000 = 2000
#500=2345 이므로 2345 - 2000 = 345
#105 = 345
#102 은 #105 값에서 100을 나눈 값을 소수점 이하 절사 하여 입력받습니다.
예 : #105 = 345 / 100 = 3.45
FIX(3.45) = 3.0
#102 = 3
(TEN NUMBER)
#105=#105-[#102*100]
#103=FIX [#105/10]
해석 : 십 단위 숫자 산출 구간입니다.
#105 은 #102 * 100 값(백단위 숫자 값을 삭제하기 위한 값)을 #105(345)에서 빼서 나온 값을 입력받습니다.
예 : #102 = 3 이므로 3*100 = 300
#500=345 이므로 345 - 300 = 45
#105 = 45
#103 은 #105 값에서 10을 나눈 값을 소수점 이하 절사 하여 입력받습니다.
예 : #105 = 45 / 10 = 4.5
FIX(4.5) = 4.0
#103 = 4
(ONE NUMBER)
#105=#105-[#103*10]
#104=FIX [#105]
해석 : 일단위 숫자 산출 구간입니다.
#105 은 #103 * 10 값(십 단위 숫자 값을 삭제하기 위한 값)을 #105(45)에서 빼서 나온 값을 입력받습니다.
예 : #103 = 4 이므로 4*10 = 40
#500 = 45 이므로 45 - 40 = 5
#104 = 5
#104 은 #105의 값을 소수점 이하 절사 하여 입력받습니다.
예 : #104 = FIX(#104) = 5
*위 과정은 특별한 의미는 없고 단지 최종 #104 값은 소수점이하 절사 된 값을 받기 위한 절차입니다.
여기까지 통과하면
각 단위 변수가 정해집니다.
예 : #101 = 2 (천 단위 값)
#102 = 3 (백단위 값)
#103 = 4 (십 단위 값)
#104 = 5 (일단위 값)
* 만일 단위 숫자가 "0.0" 인경우 (예 2,000) 위 연산 과정을 거치게 되면 연산값이 "0"를 유지 한채 각 변수 값에 입력됩니다.
이제 각 숫자 별 각인 프로그램 루틴으로 분배하는 과정을 알아보겠습니다.
* 분량 조절 문제로 이다음 내용은 다음 게시글로 넘기겠습니다.
'마스터캠 2021 기능 교육 자료(초안) > 마스터캠 2021 활용 소소한 팁' 카테고리의 다른 글
마스터캠 2021 활용한 소소한 팁-4-5 (각인 공정 관련 매크로 관련하여) (5) | 2023.08.18 |
---|---|
마스터캠 2021 활용한 소소한 팁-4-4 (각인 공정 관련 매크로 관련하여) (0) | 2023.08.15 |
마스터캠 2021 활용한 소소한 팁-4-2 (각인 공정 관련 매크로 관련하여) (0) | 2023.08.09 |
마스터캠 2021 활용한 소소한 팁-7 (NC 파일이름 변경 관련하여) (0) | 2023.07.29 |
마스터캠 2021 활용한 소소한 팁-6 (커습(CUSP)값 활용 관련하여) (0) | 2023.07.23 |