Jump to content

Vericut


Alexandr

Recommended Posts

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

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

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

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

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

Link to post
Share on other sites


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

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

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

GARRY

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

Varg

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

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

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

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

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

R3 - по Y

Link to post
Share on other sites

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

Вполне возможно, если у Вас не последняя версия 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

Link to post
Share on other sites
  • 2 weeks later...

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

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

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

#1=10.

G1X#1

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

Link to post
Share on other sites

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

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

Link to post
Share on other sites

Спасибо 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

Спасибо.

Link to post
Share on other sites

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

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

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

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

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

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

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

или

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

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

Link to post
Share on other sites

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

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

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

Edited by Varg
Link to post
Share on other sites

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

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

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 - меняется время в протоколе.

Link to post
Share on other sites

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

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

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

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

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

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

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

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

M11G90G00B90.

M10G01Z0F100

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

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

Edited by DrAU
Link to post
Share on other sites

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

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 после всех макросов надо поставить этот.
Link to post
Share on other sites

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:

Link to post
Share on other sites
  • 1 month later...

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

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • Кварк
      Странно. Меняю шероховатость, но расход через щель не меняется. Зачем тогда она нужна, если ее значение не влияет на расход (видимо, и на другое тоже не влияет.)? Шероховатость ставил от 0,16 до 200 Ra при ширине щели 0,05мм. Т.е. самая большая шероховатость больше щели, а влияния на расход - ноль. Ставил и промежуточные значения. 
    • Ветерок
      Какой смысл в этих файлах без дерева построения? Ему же именно это не понятно, а не форма баллона.   Так и надо - обычный вырез вращением. Только контур надо правильно нарисовать. И никаких пяти градусов не нужно.
    • vl_cnc
      На видео представлена процедура создания бэкапа. Позволяет сохранить все необходимые параметры, программы, ладдер и SRAM.  
    • Rokined
      Доброго времени суток, возник вопрос с темой вырезов.  Задача следующая, имеется лист 19 мм МДФ, в нем нужно сделать посадочное место под камеру и возможностью ее регулировкой наклона в 5°. Вначале возникла мысль, можно ли выполнить вырез твердым телом по оси, условно чтоб тело провернулось на 5°и своей формой удалило материал, но такой функции я не нашел (только вырез твердым телом по траектории(цилиндрическое или тело имеющее аналитические поверхности вращения)). Решил задачу тем что просто выполнил повернутый вырез на 5° и от получившейся поверхности, по ее контуру, вырез насквозь. Собстна вопрос, возможно ли в SW2019 сделать вырез телом по траектории или оси другим телом?    Скрины примеров и файл самого экрана прилагаю в архивом. Телевизор 561х338х57.rar
    • Snake 60
      @installl Держите модельку (чисто габаритка, без прорисовки по ГОСТу) Баллон газовый на 50л.STEP  Баллон газовый на 50л.x_t
    • Vengeance
    • ac100500
      а какую чистоту получаете на вашем оборудовании???
    • denkuv
    • Ветерок
      Не надо пытаться всё сделать одной командой. Построй сначала красное. И тоже не одной командой.
    • A_1
      Попробуйте кадр G80 поставить сразу после кадра G81
×
×
  • Create New...