Sign in to follow this  
Followers 0
Alexandr

Vericut

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

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

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

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

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

Share this post


Link to post
Share on other sites


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

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites

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

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

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

#1=10.

G1X#1

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

Share this post


Link to post
Share on other sites

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

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

Share this post


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

Спасибо.

Share this post


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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

или

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

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

Share this post


Link to post
Share on other sites

ID: 11   Posted (edited)

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

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

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

Edited by Varg

Share this post


Link to post
Share on other sites

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

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

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites

ID: 15   Posted (edited)

С уважением к 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

Share this post


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 после всех макросов надо поставить этот.

Share this post


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:

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • Ветерок
      Идея была несколько иной. Поставить их вдоль друг друга и давить одним концом навстречу, прилагая к обоим одинаковый момент. И смотреть в какую сторону от середины будет прогибаться.
    • pechkin624
      Вот про это даже не знал.Милл тогда помогите найти.
    • chatjokey
      Я не среднестатистический житель России. Могу ответить сразу. Не позволительная. Они работают по 12 часов. Впрочем как и я. Но если есть огромное желание, как у меня, то для них будет менее напряжно по бюджету сделать такой трип. Т. Е. У них среднестатистический житель может себе это позволить при желании. У нас нет. Япошек и китайцев туристов в Питере нынче полно. Туристический сезон открыт! 
    • Kelny
      Как вариант использовать штатный инструмент, некорректная работа которого в некоторых старых версиях и породила всякого рода макросы на тему:  
    • piden
      Ок, ок. Публика предупреждена на счет ну или вечер...
    • karachun
      Смотрим только на изгибные напряжения - они в настране выводятся сразу, касательные надо считать вручную( Но давайте перенесем поединок на вечер вторника, я уже хочу спать.
    • piden
      Да, это ужасный промах) А нет! Это специально задуманная оговорка спортивного комментатора!   Но теперь нужно согласовать правила поединка по WBA - World Bending Association... Почему ты напряжения выводишь?
    • karachun
      Let's Get Ready To Rumble!!! Показать содержимое   Hide   Ladies and Gentlemen! The Winner is...Kvadrat! P.S. Какой треугольник?) P.P.S. Надо их в явной динамике ударить друг об друга, с разрушением - этого как раз хватит для магистерской @dk105 и считать проще чем вкручивание самореза.
    • piden
      И так, рост Уголка один метр. Последнее взвешивание показало аж две целых шестьдесят почти девять сотых килограмма. Видно, что Уголок активно набирал массу перед этим поединком... Но мы-то знаем, что в этом спорте победа не всегда на стороне веса, не всегда, господа...   Рост Квадрата тоже один метр. Здесь соперники, прямо скажем, подобрались равными. Вес Квадрата .... что там у нас с весом? Сейчас, судьи ищут данные по плотности в гугле... И так, вес Квадрата ... а, короче... Гонг!  
    • vasillevich68
      чтоб не задавать столько много вопросов, можно им задать один, на сколько для них позволительная роскошь, поехать в Питер, пивка попить?