Перейти к публикации

Vericut


Alexandr

Рекомендованные сообщения

Знатаки Vericut есть пару вопросов, помогите пожалуста.

1. В системах cnc-88 и fanic 6m обязательно в конце координат целого числа ставить точку, например X300. Y56. Как заставить систему, что б она за этим следила

2. B CNC - 88 (FADAL) есть макрокомманды L9601 - выборка пряммоугольного кармана, как сделать чтоб система эту команду понимала?

Или может постпроцессором кто поделится.

Адресс мой alex-sas@yandex.ru

Ссылка на сообщение
Поделиться на других сайтах


По первому пункту решение сразу в голову не пришло :wallbash: ,

а по второму пункту -

Есть два способа:

1) В VERICUT есть целый набор макросов, названия которых начинаются с CycleMillPocket... - они служат для описания циклов выборки кармана.

2) в VERICUTе на команду L9601 назначить вызов подпрограммы, в которой с помощью переменных самому описать движение инструмента X,Y,Z,G1,G2,G3...

Ссылка на сообщение
Поделиться на других сайтах

По первому вопросу - проще всего описать формат слова как trailing or decimal 3.3, тогда при отсутствующей точке перемещение будет в микронах.

Ссылка на сообщение
Поделиться на других сайтах

GARRY

Спасибо большое получилось :clap_1:

Varg

Если не трудно по подробнее, искал я такой макрос и не нашел :unsure:

Формат записи такой L9601R0+100.R1+1.R2+100.R3+100.

где соответственно R0-величина подачи

R1-Величина перекрытия(в данном случаи диаметр фрезы - 1)

R2-Величина кормана по X

R3 - по Y

Ссылка на сообщение
Поделиться на других сайтах

Если не трудно по подробнее, искал я такой макрос и не нашел

Вполне возможно, если у Вас не последняя версия VERICUT.

Тогда используйте второй способ - через вызов подпрограммы:

1) L- определяете на вызов макроса CallSubName

2) O - вызов макроса SubroutineSequence

3) R - тип слова Special / VariableTag

4) Создаем текстовый файл с любым именем, н-р Pocketmacro.sub

5) В созданном файле пишем

O9601

G91

G1 X=R2 F=R0

Y=R3

X=-R2

...

т.е. описываем перемещение фрезы с заданными параметрами (можно использовать операторы If, while ...)

....

M17 (выход из подпрограммы)

6)В меню Setup>G-code>Settings / Subroutines

указываем путь к созданному файлу (Pocketmacro.sub)

Теперь при встрече строки L9601R0+100.R1+1.R2+100.R3+100. управление будет передаваться к УП из файла Pocketmacro.sub

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

3) R - тип слова Special / VariableTag

Смысл понятен, только я не понял третий пункт.

И еще, когда я савлю trailing or decimal 3.3,запись в УП

#1=10.

G1X#1

воспринимается как переход в микронахю

Ссылка на сообщение
Поделиться на других сайтах

Смысл понятен, только я не понял третий пункт.

Регистр R определяете как знак переменной в меню Word Format.

Ссылка на сообщение
Поделиться на других сайтах

Спасибо Varg за ответы, они мне очень помогли.

Теперь мои вопросы к Varg.

1.При выводе со станка HERMLE(H&H 430i) УП содержит символ "*"

в конце каждого кадра. V_CUT глючит при этом.

2.Оператор условного перехода в этой же стойке не

соответствует настройкам в V_CUT:

есть IF Q1 EQ Q2 GO TO LQ3 вместо D09 P1 Q1 P2 Q2 P3 Q3

_________NE___________________D10

_________GT___________________D11

_________LT___________________D12

Спасибо.

Ссылка на сообщение
Поделиться на других сайтах

1.При выводе со станка HERMLE(H&H 430i) УП содержит символ "*"

в конце каждого кадра. V_CUT глючит при этом.

У меня эта проблема не проявилась (VERICUT 5.4).

post-28-1102508751_thumb.jpg

2.Оператор условного перехода в этой же стойке не

соответствует настройкам в V_CUT:

есть IF Q1 EQ Q2 GO TO LQ3 вместо D09 P1 Q1 P2 Q2 P3 Q3

К сожалению, с этим пока не сталкивался, но думаю что этот формат можно привести к формату стандартных макросов, используя подмены и подпрограммы.
Ссылка на сообщение
Поделиться на других сайтах

Уважаемые господа - знатоки вериката!

Как оказалось, я себя не могу оправданно причислить к знатокам сего программного продукта, так как столкнулся со следующей проблемой.

Подскажите, пожалуйста, как сделать в верикате, чтобы при подсчете машинного времени учитывалось время смены инструмента.

Буквально проблема в следующем. При обработке детали с 4 сторон необходимо определить, что быстрее:

- обработка с минимальным количеством индексирования по 4 оси, но с большим количеством смен инструмента

или

- обработка с минимальным количеством смен инструмента, но с большим числом поворотов.

Время смены инструмента известно, но куда его можно занести в верикате, чтой-то не нашел. Конечно можно и вручную время смены прикинуть, но хотелось бы разобраться в сути вопроса.

Ссылка на сообщение
Поделиться на других сайтах

Время смены инструмента известно, но куда его можно занести в верикате, чтой-то не нашел. Конечно можно и вручную время смены прикинуть, но хотелось бы разобраться в сути вопроса.

Самый простой способ :doh: - добавить макрос задержки DwellTime (с нужным значением в секундах) и DwellSeconds к описанию действий VERICUT при смене инструмента, например на команду M6.

Уверен, я для Вас, Константин, Америку не открыл. =)

Изменено пользователем Varg
Ссылка на сообщение
Поделиться на других сайтах

Спасибо, уважаемый Игорь!

Идея мне ясна, о чем-то подобном я думал(хотя в сердцах надеялся, что все гораздо проще), но поскольку я сам в макросах не очень силен, прошу, если таковое возможно, несколько подробнее, о том как макрос подвязать к команде смены инструмента.

Ссылка на сообщение
Поделиться на других сайтах

надеялся, что все гораздо проще

Всё достаточно просто:

1. Меню Setup>Control>Word/Address

2. В списке адресов ищем команду смены инструмента M6 и указываем в ней любой макрос (например ToolChange)

3. Меню Edit>Add/Modify

4. В поле MacroName пишем слово DwellTime, в поле Override Value - значение задержки при смене инструмента (например 30)

5. Кнопка Add

6. В поле MacroName пишем слово DwellSeconds

7. Кнопка Add

8. Кнопка Close

Ссылка на сообщение
Поделиться на других сайтах

Спасибо, уважемый Игорь!

Вчера сделал первые пять действий:

1. Меню Setup>Control>Word/Address

2. В списке адресов ищем команду смены инструмента M6 и указываем в ней любой макрос (например ToolChange)

3. Меню Edit>Add/Modify

4. В поле MacroName пишем слово DwellTime, в поле Override Value - значение задержки при смене инструмента (например 30)

5. Кнопка Add

, но не догадался сделать еще 3:

6. В поле MacroName пишем слово DwellSeconds

7. Кнопка Add

8. Кнопка Close

поэтому и не добился эффекта.

Сейчас доделал - все нормально, меняешь DwellTime - меняется время в протоколе.

Ссылка на сообщение
Поделиться на других сайтах

С уважением к Varg.

1. VERICUT 5.3 "глючит" следующим образом, например:

-в кадрах, где идет перемещение только по "Z", сбрасывается коррекция на высоту инструмента;

-если в конце кадра стоит М-функция, то она сбрасывается G90G00Z0M92* - G90G00Z0.

А, вообще, я имел ввиду, как сделать, чтобы символ "*" в конце кадров игнорировался.

2.Я не понял как.

3.Q108- системная переменная, равная корректору на радиус текущего инструмента. Я не смог.

4.В кадрах (FANUC-6MB)

M11G90G00B90.

M10G01Z0F100

М11 и М10- разжим и зажим поворотного стола с перемещением его по оси "Y" на ~3мм.

М10 и М11 я сделал как подпрограммы, но не смог сделать, чтобы сначала отрабатывались М11 и М10, а затем остальные функции кадра, как на станке.

Изменено пользователем DrAU
Ссылка на сообщение
Поделиться на других сайтах

чтобы символ "*" в конце кадров игнорировался.

Cotrol>Word Format> на регистр "*" определяем как Special / End Of Block

Q108- системная переменная, равная корректору на радиус текущего инструмента.

Макрос SetDynamicVars (Override Value: CurCDC 108) назначается в меню Control > Adv.Options > Events/ Start of processing

чтобы сначала отрабатывались М11 и М10, а затем остальные функции кадра, как на станке.

Для этого существует макрос ProcessMotion, который производит перемещения по заданной функции, не дожидаясь конца кадра, т.е. в командах M10, M11 после всех макросов надо поставить этот.
Ссылка на сообщение
Поделиться на других сайтах

1.Cotrol>Word Format> на регистр "*" определяем как Special / End Of Block

2.Макрос SetDynamicVars (Override Value: CurCDC 108) назначается в меню Control > Adv.Options > Events/ Start of processing

3.Для этого существует макрос ProcessMotion, который производит перемещения по заданной функции, не дожидаясь конца кадра, т.е. в командах M10, M11 после всех макросов надо поставить этот.

4.(  IF Q1 EQ Q2 GO TO LQ3 вместо D09 P1 Q1 P2 Q2 P3 Q3)

  К сожалению, с этим пока не сталкивался, но думаю что этот формат можно привести к формату стандартных макросов, используя подмены и подпрограммы.

<{POST_SNAPBACK}>

1.Дело в том, что регистр "*" определен уже как знак мат. умножения. :g:

2.Не получилось. :wallbash:

3.Не получилось. :wallbash:

4.Я не смог. :wallbash:

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Я особо не знаток - но помогу

1. В системах cnc-88 и fanic 6m обязательно в конце координат целого числа ставить точку, например X300. Y56. Как заставить систему, что б она за этим следила

можно написать

собственный макрос и добавить его соответственно при обработке движения осей X Y Z I J K F . Например ( у меня работает система так)

CGTech Macro Language Source

text sccs_id = " @(#)fanuc.cms 9.1 08/11/01";

#include <gendef.cmh>

#include <gentypes.cmh>

#include <cfunc.cmh>

#include <ctlvarc.cmh>

/* ******************************************************************

****************************************************************** */

macro cms_CheckPoint(word, textstr, value)

text word;

text textstr;

number value;

locals

text buffer;

number len1,len2;

text str1,str2 ;

number val1,val2;

{

buffer="";

/*для рассчитанного значения в Vericut*/

val1=floor(value); /*округляем до целого*/

str1=textof(value); /*преобразуем в строку*/

len1=length(str1); /*длина строки*/

/*для строки под словом*/

len2=length(textstr);

val2=valueof(textstr);

lookup(word)

{

"X":

{

/* то-есть значения есть целые что нас и интересует */

if (val1 eq val2)

{

/* если длина числа без точки = преобразованному Vericut */

if (len1 eq len2)

{

/* format(buffer, "word=%s|textstr=%s|val2=%n|len2=%n|==|val1=%n|len1=%n|str1=%s",

word, textstr,val2,len2,val1,len1,str1);*/

/* русские буквы система Vericut не понимает */

format(buffer, "Word %s=%s without decimal point ... must be %s%n.",

word, textstr, word, value);

cfunc_send(ERROR, buffer, 0);

}

}

}

"I":

{

/* то-есть значения есть целые что нас и интересует */

if (val1 eq val2)

{

/* если длина числа без точки = преобразованному Vericut */

if (len1 eq len2)

{

/* format(buffer, "word=%s|textstr=%s|val2=%n|len2=%n|==|val1=%n|len1=%n|str1=%s",

word, textstr,val2,len2,val1,len1,str1);*/

/* русские буквы система Vericut не понимает */

format(buffer, "Word %s=%s without decimal point ... must be %s%n.",

word, textstr, word, value);

cfunc_send(ERROR, buffer, 0);

}

}

}

/* ну и так далее

.................

*/

}

}

Адрес: evgeneche@yandex.ru

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...