форумы поддержки mastercam в россии
 
 | Начало | Регистрация | Ответить | Поиск | Статистика |
Форум Форум Mastercam в России. Советы, помощь, поддержка, скачать / Форум /

Постпроцессоры и постпроцессирование

 Страница Страница 9 из 46:  ««  1  2  ...  7  8  9  10  11  ...  45  46  »» 
Автор Aleksandr
Участник
#121 | Дата: 13 Авг 2011 21:29
Файл обработки - MCX
Автор Nutsigner
Участник
#122 | Дата: 13 Авг 2011 22:25
"C-AxisTest_-_13.08.2011.MCX"(13.Авг 23:23:52)


Вот файлик. Тестовая программка, на которой мы проверяли все развороты геометрии.
Автор Aleksandr
Участник
#123 | Дата: 14 Авг 2011 15:35
Добрый день,

Если вас полностью устраивает постпроцессор Generic Fanuc 4X MT_Lathe и проблема только в том, что при сверлении нужно поставить G112/G113, то я исправил пост под ваши нужды.

С Уважением,
Александр
"Generic_Fanuc_4X_MT_Lathe.pst"(14.Авг 15:35:39)
Автор Nutsigner
Участник
#124 | Дата: 14 Авг 2011 17:18
Александр, огромное спасибо! Свой пост я уже чуть-чуть декоративно правил, но это не проблема. Сейчас сравниваю исходный и Ваш, разбираюсь, в-общем
Автор Nutsigner
Участник
#125 | Дата: 15 Авг 2011 20:32
Александр, хотел бы задать пару вопросов, если не Вас не затруднит...

-----------------------------------------------------------------------------
Процедура pmillccb:
...
if cutpos2$ = one | (opcode$ = 3 & gcode$ = 81),
[
result = newfs(two, cabs)
result = newfs(two, cinc)
#Cross/Face canned cycle start code
if abs(cuttype) = two | (opcode$ = 3 & gcode$ = 81), # Добавленная проверка
[
if is_sg112 = 0, # Добавленная проверка
[
#Face canned cycle start code, G112 (break ramp)
pbld, n$, *sgfeed, "G0", *sg112, is_sg112 = 1, e$
...
Где-нибудь можно прочитать возможные значения переменных cutpos2, opcode?
Я так понимаю opcode - код Мастеркамовской операции?

cuttype - в теле поста нашёл, не пойму, как эта переменная меняется, но мне, в принципе, это и не нужно...

-----------------------------------------------------------------------------
pmillcca #Cross/Face canned cycle code, after
if cutpos2$ = three | (opcode$ = 3 & gcode$ = 80),
[
#Cross/Face canned cycle end code
if abs(cuttype) = two | (opcode$ = 3 & gcode$ = 80), # Добавленная проверка
[
if is_sg112, # Добавленная проверка
pbld, n$, *sg113, is_sg112 = 0, e$ #Face
]
...
-----------------------------------------------------------------------------
Процедура pdrill0$ #Pre-drill postblock call
if gcode$ = 81 & millcc, pmillccb #Только для стандартного цикла сверления?
-----------------------------------------------------------------------------
Процедура pcanceldc$ #Cancel drill cycle
...
gcode$ = zero
...
gcode$ = 80
if millcc, pmillcca
gcode$ = zero #Восстанавливаем gcode
-----------------------------------------------------------------------------
Процедура pxyzcout #Perform calls for mapping coordinates and shifts
if millcc,
[
if fmtrnd(cabs) = 360, cabs = zero #Always try to start at zero
if (cutpos2$ > zero & cutpos2$ < four) | ((opcode$ = 3 | opcode$ = 16) & is_sg112), # Добавленная проверка
[
if abs(cuttype) = two, ppolar_fcyc
]

Вот совместно для этих 5-ти процедур:
Зачем в pmillccb, pmillcca нужны проверки на gcode$ и _затем_ на введённую Вами переменную is_sg112? Ведь мы в эти процедуры попадём, только если millcc=1
В процедуре pxyzcout тоже появилась проверка is_sg112...

Почему недостаточно внести:
-----------------------------------------------------------------------------
Процедура pdrill0$ #Pre-drill postblock call
if millcc, pmillccb
Процедура pcanceldc$ #Cancel drill cycle
if millcc, pmillcca
Процедура pxyzcout #Perform calls for mapping coordinates and shifts
if millcc,
[
if fmtrnd(cabs) = 360, cabs = zero #Always try to start at zero
if (cutpos2$ > zero & cutpos2$ < four) | ((opcode$ = 3 | opcode$ = 16) ),
[
if abs(cuttype) = two, ppolar_fcyc
]

Кстати, новый пост замечательно отрабатывает и цикл глубокого сверления G83 [хотя есть проверка "(opcode$ = 3 & gcode$ = 81)"]
Автор Aleksandr
Участник
#126 | Дата: 15 Авг 2011 21:24
Добрый день,

1) пишите стоку: *e$, *cutpos2, *opcode$, *e$
и пост выдаст значения этих переменных.

2) cuttype - вычисляется в процедуре pcut_cctyp перед началом работы постпроцессора.

3) gcode$ = 81 - это все циклы сверления, если у вас токарка то opcode$ = 105 если фрезеровка то opcode$ = 3 или opcode$ = 16 (5-ти осевое сверление), а конкретный цикл определяется переменной drillcyc$.

4) переменная is_sg112 = 1 - указывает, что код G112 уже введён, дело в том, что millcc действует на всю операцию, а в операции много перемещений, если уберёте is_sg112 - то G112 будет вводиться несколько раз.

5) в операции сверления переменная cutpos2$ - не работает, поэтому ставлю условие "ИЛИ". Или работаю по этой переменной cutpos2$ > zero & cutpos2$ < four ИЛИ по коду сверления opcode$ = 3 | opcode$ = 16

С Уважением,
Александр
Автор Nutsigner
Участник
#127 | Дата: 16 Авг 2011 06:03
>> 4) переменная is_sg112 = 1 - указывает, что код G112 уже введён, дело в том, что millcc действует на всю операцию, а в операции много перемещений, если уберёте is_sg112 - то G112 будет вводиться несколько раз.

Да, это я заметил, при фрезеровке может быть выведено несколько раз подряд G112.
Станок, правда, это проглатывал.

ОК, посмотрю значения переменных.

Александр, спасибо ещё раз.
Автор Nutsigner
Участник
#128 | Дата: 28 Авг 2011 16:46
Ошибка при вводе коррекции на радиус, точнее - при её отмене...

Вывожу операции 2, 3 и 4. Работаю с коррекцией только в операции 2. Подвод/отвод в ней рисую _самостоятельно_ (может, в этом причина). Перед процедурой, в строчке N186 G41 X26. F80. (файл 1.NC) - коррекцию вводит. А после неё - не отменяет (а должен отменять в строчке N206 X46. или N208 Z5. F1000.).

Хорошо, пытаюсь найти в чём причина, в начало процедуры plinout поста добавляю строчку pbld, n$, *cc_pos$, e$
Выводит файл 2.NC, в котором даже вывод G41 исчез. Почему вывод в строку простой переменной так влияет на вывод коррекции? В plinout вывод psccomp не форсированный, но тем не менее...

Плюс, в 2.NC наглядно видно, что cc_pos$ единицей становится, а в ноль обратно - не возвращается.
"1.NC"(28.Авг 17:38:38)

"2.NC"(28.Авг 17:39:19)

"741428.022_-_OPRAVA.MCX"(28.Авг 17:41:46)
Автор Aleksandr
Участник
#129 | Дата: 29 Авг 2011 13:52
Добрый день,

пришли свой PST.

С Уважением,
Александр
Автор Nutsigner
Участник
#130 | Дата: 29 Авг 2011 20:56
Вот здесь я пробовал это:
plinout #Output to NC, linear movement - feed
# Было:
# pcan1, pbld, n$, psgplane, sgfeed, pexct, psgcode, psccomp, pxout,
# pyout, pzout, pcout, pfr, pscool, strcantext, e$

#pbld, n$, *cc_pos$, e$
#if (cc_pos$ = zero) & (cc_pos$ <> prv_cc_pos$),
# [
# pbld, n$, 'G40', e$
# ]

"Generic_Fanuc_4X_MT_Lathe_-_MCX3.pst"(29.Авг 21:52:51)
Автор Nutsigner
Участник
#131 | Дата: 29 Авг 2011 20:57
Да, коррекцию не отменяет - G40 не выводит, а координаты выводимые - уже без коррекции, т.е. координаты - ОК
Автор Aleksandr
Участник
#132 | Дата: 10 Сен 2011 22:43
Ответ для Nutsigner


Добрый день,

извините, что долго не отвечал, был в командировке. Посмотрите пост кое-что подправил.

С Уважением,
Александр
"Generic_Fanuc_4X_MT_Lathe.pst"(10.Сен 22:43:23)
Автор Nutsigner
Участник
#133 | Дата: 13 Сен 2011 06:59
Александр, спасибо, буду разбираться
Автор Sparnai
Участник
#134 | Дата: 16 Сен 2011 14:30
какая команда отвечает за то чтобы 4 осный пост постил букву С а не А для врашения?
Автор Aleksandr
Участник
#135 | Дата: 16 Сен 2011 22:09
Добрый день,

в самом посте смотрите внимательно:

use_md_rot_label : no$ #Use rotary axis label from machine def? - Leave set to 'no' until available
srot_x : "A" #Label applied to rotary axis movement - rotating about X axis - used when use_md_rot_label = no
srot_y : "B" #Label applied to rotary axis movement - rotating about Y axis - used when use_md_rot_label = no
srot_z : "C" #Label applied to rotary axis movement - rotating about Z axis - used when use_md_rot_label = no

Если use_md_rot_label = yes$ то будет браться из машин дефинишен (Установки станка) а если use_md_rot_label = no то сработает процедура

pset_rot_label - она выглядит так:

if not(use_md_rot_label),
[
if rot_on_x = 1, srot_label = srot_x #Rotating about X axis
if rot_on_x = 2, srot_label = srot_y #Rotating about Y axis
if rot_on_x = 3,
[
if vmc, srot_label = srot_z #Rotating about Z axis - vertical machine
else, srot_label = srot_y #Rotating about Y axis - horizontal machine
]
]
result = nwadrs(srot_label, cabs)
result = nwadrs(srot_label, cinc)
result = nwadrs(srot_label, indx_out)

следовательно вы можете либо изменить абривиатуру в настройках станка, что лучше всего и поставить в постпроцессоре use_md_rot_label = yes$

или изменить тело процедуры pset_rot_label и жёстко зашить там srot_label = srot_z

С Уважением,
Александр
 Страница Страница 9 из 46:  ««  1  2  ...  7  8  9  10  11  ...  45  46  »» 
Форум Форум Mastercam в России. Советы, помощь, поддержка, скачать / Форум / Постпроцессоры и постпроцессирование Наверх
Ваш ответ Нажмите эту иконку для возврата на цитируемое сообщение

» Оставьте это поле пустым 

» АНТИСПАМ! Сколько будет ТРИ плюс ДВА? (ответ цифрой) 
» Логин  » Пароль 
Анонимные пользователи могут отправлять сообщения без предварительной регистрации. Для этого введите просто логин без пароля или оставьте оба поля пустыми. Зарегистрированные пользователи могут ввести свои логин и пароль при отправке сообщения. Отправлять ССЫЛКИ анонимным пользователям — нельзя.
 
  Форум Mastercam в России. Советы, помощь, поддержка, скачать Поддержка: Bulletin Board Script miniBB ®