이번에는 역시 저번에 이어 포스트 수정에 관한 정보를 설명하겠습니다.
역시 먼저 네이버카페 마캠뽀개기의 알루미네이션님의 게시글을 토대로 하여 설명하겠습니다.
https://cafe.naver.com/mcampokegi/139989
[POST 정보] 입문편 - 4. psof$ 및 ptlchg$ - 띄어쓰기 설정 및 G17 삭제
대한민국 모임의 시작, 네이버 카페
cafe.naver.com
* 이번 4편 내용은 어떠한 수정사항을 수정한다기보다 포스트 블록 구성구조를 인지하여 사용자 편의에 맞게 수정할 경우에 해당되는 애기이라 수정방법에 대한 좀 포괄적인 내용입니다.
* 이해를 하시면서 넘어가여한다는 의미입니다.
먼저
포스트 출력문중의 어느 한 특정 지령문을 찾아서 삭제 또는 수정하는 문제에 대하여 설명하겠습니다.
예제로 가공프로그램 중 각 공정별 선두에 일률적으로 출력되는 기본 지령문중 하나 "G17"를 삭제하는 문제입니다.
우선 예제로 사용되는 출력문을 보면 다음과 같이 되어 있습니다.
* 해당 사용 포스트는 마스터캠 2021 기본 제공 MPMAN.pst입니다.
보시면 "G17" 이 출력되는 부분이 2군데(psof$ , ptlchg$)(가공 프로그램 선두문, 공구 교환 시점)인 것으로 나옵니다.
* 실제로는 3군데 수정하셔야 합니다. 아래 설명...
그러면 해당 포스트를 텍스트 편집 프로그램(심코 : cimco edit)을 이용하여 열어봅니다.
그리고 먼저 psof$ 항목을 찾아봅니다.
*혹시나 어딘가에 "G17" 문자열이 있나 살펴보았지만 없어서 어느 것이 "G17"을 출력하는 부분인지 알 수가 없습니다.
그래서 이번에는 ptlchg$ 항목을 찾아보았습니다.
그렇지만 여기에도 "G17"이라는 문자열을 찾아볼 수 없습니다.
그래서 한번 포스트 전체에서 "G17"를 검색해 보았습니다.
*보통의 경우 이러한 지령문은 변수 선언(어떠한 이름의 변수명에 어떠한 명령문을 넣을 것인지)을 하기 마련이라 그것을 찾는 것입니다.
찾아낸 "G17"위치 항목을 보면 포스트의 작업평면 G-code 선택 정의 항목이 있습니다.
여기서 보면 G17은 "sg17" G18은 "sg18" G19은 "sg19"로 변수명이 정의된 것을 볼 수 있습니다.
그리고 아래 변수정의를 보면 sgplane 가 작업평면 적용 변수로 지정되어 있는 것을 알 수 있습니다.
그 아래 변수 정의 선언문이 fstrsel sg17 plane$ sgplane 3 -1 (마스터캠에서 지정된 작업 평면 (G17,18,19....)(G17일 때 "0"값 G18이면 "1"값 G19이면 "2" 값을 plane$ 변수에 대입하여 포스팅을 진행합니다.)
그러므로 변수정의 plane$ 값에 따라 sg17 값을 sgplane변수에 대입한다
* plane$값이 "0" 이면 sg17의 값 "G17"을 sgplane 변수에 입력하여 다음에 출력 시 이러한 값을 표시합니다.
이러한 형태는 비주얼베이식 형태의 프로그램 방식입니다.
이렇게 변수 선언 하면 계속적으로 하나의 값으로 여러 부분에서 활용됩니다.
* 예를 들면 이러한 변수선언이 활용되는 것을 보면 방금 작업평면 변수(sgplane)가 다른 곳에서는 저렇게 활용됩니다.
*마스터캠 컨트롤 정의에서 원호 IJK출력 시 지정된 작업평면 값(plane$) 값에 따라 IJK 출력 방식을 정의합니다.
이렇게 해당 편집프로그램의 검색 기능을 이용하여 원하는 G-code의 문자열을 검색하여 사용 변수명을 찾아서 다시 실제 포스팅상 적용하는 부분을 찾아야 합니다.
그럼 다시 "G17"의 활용 변수명이 sgplane 인 것을 알았으니 다시 이 문자열을 검색해 봅니다.
그러면 총 3군데가 검색됩니다.
* 이것은 어떻게 생각해 보면 당연하다고 생각할 수 있는데 이러한 작업평면이 출력되는 위치가 처음 가공프로그램 시작되는 선두문(psof$), 그리고 공구교환이 이루어져서 다시 기본적인 초기 선언문이 지령될 경우에 포함되는 경우(ptlchg0$, ptlche$)로 총 3군데 일수 밖에 없습니다.
가공 공정 프로그램 시작 선두문 (psof$)
공구 교환 후 다음공정 프로그램 선두문(ptlchg$)
이전 공구 사용 시 프로그램 선두문(ptlchg0$)
이제 "G17"이 출력되는 부분을 알았으니 만일 삭제하려면 해당 문장을 삭제하시면 됩니다.
* 예로서 psof$ 부분을 수정하는 것이고 실제는 3군데를 같은 요령으로 삭제하셔야 합니다.
그러면 위와 같이 작업평면 "G17" 지령이 삭제됩니다.
* 변수항목 삭제 시 각 변수 별로 ", " 기호로 구분되며 1개의 변수는 "_"(빈칸) + 변수명"*sgplane" + ", "(변수간 구분 기호)로 이루어져 있으므로 해당 영역을 잘 보시고 삭제하셔야 합니다.
만일 잘못 수정하시면 포스팅 시 아래와 같은 경고 메시지가 출력됩니다.
자 그럼 다시 설명을 원점으로 돌려서 빈 줄을 추가 하는 방법을 알아보겠습니다.
가공데이터의 구간별 구분을 위하여 의도적으로 빈줄을 추가하길 원하는 사용자가 있습니다.
* 예를 들면 공구 교환 시 앞전에 빈 줄을 넣어 구분하고 싶은 경우...
우선 공구교환 앞전이므로 당연히 "M6" 지령문을 찾으면 됩니다.
* 사실 여기까지 오신 분이라면 당연히 공구교환 지령이 들어가는 블록항목 (psof$, ptlchg$)을 찾아가면 되는데요?..... 하셔야 합니다.
우선 "M6"을 검색해 봅니다.
"M6" 문장을 검색해 보니 사실상 하나만 나옵니다.
즉 "M6" 지령에 대한 변수정의 입니다.
"M6"을 그대로 쓸 수 없으니 어떤 규칙에 따른 변수명을 토대로 변수정의를 하고 활용하는 것입니다.
M6 = sm06 : M6 지령문을 s(String : 문자 : 이 변수는 문자 그대로 출력되는 지령문이다) + m06 =sm06으로 지정합니다.
* 변수명은 소문자 사용이 기본적입니다.
* 만일의 경우 이 변수명을 수정하시면 포스트 전체 내에서 이 변수명이 사용된 블록을 찾아서 전부 변경해주어야 합니다.
그래서 다시 "sm06"을 검색해 봅니다.
가공 공정 프로그램 시작 선두문 (psof$)
공구 교환 후 다음공정 프로그램 선두문(ptlchg$)
* 예상대로 공구교환이 되는 2개의 블록위치가 검색됩니다.
그럼 공구교환 위치에서 위에 빈 줄을 입력하는것이 목포 이므로 해당 빈줄 출력 지령을 입력합니다.
* 빈줄을 출력하여야 하므로 "_"(빈칸 : 스페이스키) + ",_"(쉼표+빈칸 : 변수 구분) + "e$"(EOB : 해당 열끝부분)을 입력하셔야 합니다.
가공 공정 프로그램 시작 선두문 (psof$)
공구 교환 후 다음공정 프로그램 선두문(ptlchg$)
이렇게 하면 맨 처음 예제문처럼 공구교환 전에 빈 줄이 출력됩니다.
이것을 응용하면 만일 가공데이터 상에 별도로 추가하고 싶은 경우 (주석문)을 추가할 수 있습니다.
*예제로 공구교환 시 "M00" + "공구 파손을 확인하세요. / 확인 후 다시 스타트 버턴을 누르십시오." 문구를 추가할 수 있습니다.
그럼 여기서 위와 같은 메시지를 출력하려면 다음과 같이 입력하여야 합니다.
먼저 전 공정 완료 후("M01" 출력 후) 빈 줄을 출력하고 "M00"지령을 출력후 다음과 같은 메세지를 두줄에 걸쳐 출력한후 다시 빈줄을 출력하는것으로 하였습니다.
즉
빈줄
M00;
(공구 파손을 확인하세요.);
(확인 후 다시 스타트버턴을 누르십시오.);
빈 줄
그럼 앞뒤 빈 줄은 위에 설명한 대로 입력하시면 되며 "M00" 지령은 그대로 출력(지령이 실행될 수 있도록)되어야 하므로 pbld(post block line delete : 블록라인 삭제 "/"), +"M00", e$(EOB)으로 입력하셔야 합니다.
pbld는 흔히 얘기하는 Optional block skip(옵티널 블록 스킵)과 같은 역할을 하며 그냥 출력 시 미실행문 형식으로 출력되므로 이 문장열은 실행 가능한 지령문이라는 의미가 됩니다.
즉 실행 지령문은 이것을 앞에 붙이고 출력해야 실행이 됩니다.
다음 메시지는 말 그대로 주석문 이므로(실행불가 문장) 주석문이 되기 위하여 "(" , ")"을 문장 앞뒤에 달아주어야 합니다.
즉 "(" + "공구 파손을 확인하세요" + ")" 이 되어야 하므로 이에 대한 지령문은 sopen_prn, (문자 "(" 출력) , sclose_prn, (문자 ")" 출력)을 앞뒤에 출력하여야 합니다.
sopen_prn, "공구 파손을 확인하세요", sclose_prn, e$(EOB)이 됩니다.
이것을 응용해서 공구교환 블록(ptlchg$)의 공구교환 지령 앞에 넣어줍니다.
그리고 다시 포스팅하여 출력해 보면 다음과 같이 출력됩니다.
마지막으로 가공데이터의 지령문(G-code) 간의 공백부여 설정에 대하여 알아보겠습니다.
보통 출력되면 각각의 G-code들이 간격(빈칸) 없이 붙어서 출력됩니다.
이는 식별을 좋게 하기 위하여 보통의 경우(?) 한 칸 정도 띄어쓰기를 하지만 사실 대부분의 작업자분들은 빈칸이 없는 붙여쓰기를 사용하십니다.
* 사실 이는 선택했다기보다 기본이 보통 붙여쓰기라 그냥 쓰시는 경우입니다.
* 그리고 빈칸이 추가(?) 되므로 가공데이터(*. nc) 용량이 좀 증대되는 효과가 있지만 생각보다 크지는 않습니다.
그러면 우선 출력된 예제를 보겠습니다.
각 지령 간 간격(빈칸 수)을 지정하는 것은 "spaces$"(스페이스 : 빈칸)입니다.
spaces$ = 0 : 지령문간 간격 없음 붙여쓰기
spaces$ = 1 : 지령문간 빈칸 1개 띄어쓰기
spaces$ = 2 : 지령문간 빈칸 2개 띄어쓰기
이러한 식으로 설정된다고 보시면 됩니다.
수정 방법은 가공 프로그램 최선두 블록(pheader$)에 있는 spaces$문의 숫자를 수정하시면 됩니다.
* 기본값이 아래와 같이 되어 있는데 실제로 적용되려면 (sav_spc = spaces$ 가 실제 적용되는 지령이므로) spaces$문이 sav_spc문보다 앞에 있어야 합니다.
수정하려면
* 하단에 전에 있던 spaces$문은 불필요하므로 "#"로 불실행 상태로 만듭니다.
'마스터캠 2021 기능 교육 자료(초안) > POST(포스트)활용 관련하여' 카테고리의 다른 글
마스터캠 2021를 활용한 POST관련 정보(탭 싸이클 Q값 적용-6) (2) | 2024.02.03 |
---|---|
마스터캠 2021를 활용한 POST관련 정보(수동입력시 괄호삭제-5) (5) | 2024.02.01 |
마스터캠 2021를 활용한 POST관련 정보(포스트 대기툴 설정-3) (2) | 2024.01.04 |
마스터캠 2021를 활용한 POST관련 정보(포스트 블럭 구조 사항-2) (1) | 2024.01.01 |
마스터캠 2021를 활용한 POST관련 정보(초기 간단 수정사항-1) (6) | 2023.11.18 |