Перейти к содержимому


Фотография

Как считать в переменные текущие координаты инструмента


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 29

#1 OFFLINE   FreeSky

FreeSky

    Студент

  • Пользователи+
  • PipPip
  • 41 сообщений
  • Из:Боровуха

Отправлено 07 Август 2014 - 00:31

Здравствуйте Уважаемые форумчане.
Прошу отозваться на мою просьбу и подсказать, какая функция в g-коде позволяет занести в переменную текущие координаты инструмента?

Станок управляется NC-Studio. В целом разобрался с её g-кодом, постпроцессоры (специфические для меня) написал. Теперь вот появились мысли модернизировать их, но не знаю как получить текующие координаты инструмента.
Чтобы было понятно для чего это нужно приведу небольшое описание:
На заготовке на печатаны три точки. Точка "0" - сюда позиционируется вручную инструмент по х и у перед запуском уп. Эта же точка является центром вращения для последующего выравнивая заготовки. Точка х - с координатами у=0 и х=определенное значение (напечатано рядом с самой точкой и предварительно внесено в УП), например 500. Точка у - с координатами х=0 и у=например 700 (аналогично предыдущей точке)

Перед запуском программы инструмент находится над точкой "0". После запуска программы уходит на точку "х" и останавливается на тех. останов. Оператор совмещает точку "х" с кончиком фрезы, проворачивая заготовку относительно цетра вращения (точка "0"), происходит выравнивание по осям. Но поскольку, сама заготовка представляет из себя пластик с пачатанной и наклееной на нее пленкой. реальное положение точки "х" может быть отличным от того значения что на ней указано, в нашем примере это 500 - учитывая растяжения при печати и поклейке, может сыграть и в + и в -. Размеры так таковые не критичны. Критично попадание контура УП в отпечатанный рисунок. Именно для этого и служит вся эта система привязки по точкам. Так вот совместив (относительно) кончик фрезы с отпечатанной точкой, оператор вручную подгоняет фрезу точно на точку. Реальное положение инструмента на данный момент пусть будет 501. Продолжает выполнение программы. Станок уходит на координату х=0 у=700. Оператор подгоняет опять фрезу под реальное физическое положение контрольной точки. Пусть например это будет 699. И продолжает выполнение программы.

Так вот если после каждого останова и ручной подгонки считать соответсвующие значения х и у, то поделив их на оригинал. можно получить коэффициент линейного искажения по осям. Кх и Ку. Постпроцессор можно настроить таким образом, чтобы для каждой координаты он выдавал не значение, например Х345 У647. а функцию Х345*Кх У647*Ку. Тогда вся уп порежется в мастабе с учетом реальных искажений возникших при производстве и печати заготовки. Конечно можно, предварительно руками промерить реальные координаты напечатанных точек и внести их в УП, но во первых это нетехнологично и долго, а во вторых эту операцию придется делать каждый раз для каждой заготовки - это очень муторно.
Перечиьтал мануал по g-коду на NC-Studio - не нашел там никаких функций для получения положения инструмпента. Да, кстати переменные там имею вид #1, #2, #3 и т.п. Кх и Ку - это я так для наглядности написал.


  • 0

#2 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 07 Август 2014 - 00:44

Слазейте на сайт LinuxCNC.org и посмотрите в документации в разделе G-code owerviev.
там приведен список определенных в стандарте переменных.
Линк давать лень,так как надо вставать сдивана.
но если понадобиться то дам.

http://linuxcnc.org/...e/overview.html

http://linuxcnc.org/...ed_parameters_a

Сообщение отредактировал torvn77: 07 Август 2014 - 00:54

  • 1
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

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

#3 OFFLINE   FreeSky

FreeSky

    Студент

  • Пользователи+
  • PipPip
  • 41 сообщений
  • Из:Боровуха

Отправлено 07 Август 2014 - 00:54

Слазейте на сайт LinuxCNC.org и посмотрите в документации в разделе G-code owerviev.
там приведен список определенных в стандарте переменных.
Линк давать лень,так как надо вставать сдивана.
но если понадобиться то дам.

http://linuxcnc.org/...e/overview.html

http://linuxcnc.org/...ed_parameters_a

Спасибо за ответ!

Я так понял есть предопледеленные переменные. которые отвечают за определенные значения?

Ткните пальцем пожалуйста. сам найти там не могу так сходу...
ткните пальцем


  • 0

#4 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 07 Август 2014 - 00:56

Второй линк ведет прямо к списку.

5420 и далее

Сообщение отредактировал torvn77: 07 Август 2014 - 00:58

  • 1
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

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

#5 OFFLINE   FreeSky

FreeSky

    Студент

  • Пользователи+
  • PipPip
  • 41 сообщений
  • Из:Боровуха

Отправлено 07 Август 2014 - 01:01

Второй линк ведет прямо к списку.

5420 и далее

Спасибо! Пока я ЛинуксСиЭнСи штудировал, вы успели с дивана слезь и сообщение отредактировать :)
Спасибо большое еще раз - буду разбираться. Дай Бог, чтобы в NC-Studio эти предопределенные переменные были реализованы!!!


  • 0

#6 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 07 Август 2014 - 01:04

Ну ничего,если что,то аппаратные контролеры и для LinuxCNC есть.
  • 0
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

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

#7 OFFLINE   FreeSky

FreeSky

    Студент

  • Пользователи+
  • PipPip
  • 41 сообщений
  • Из:Боровуха

Отправлено 07 Август 2014 - 01:17

Дело в том что NC-Studio, как таковая нравится мне очень. Вот и пульт к ней сейчас прикупил. http://см.п.1.2.Правил/Ne...-chpu_1856.html Для удобства ручного позиционирования станка. В связи с чем и встала вышеозвученная задача, по масштабированию УП на лету. Кнопками с клавиатуры не шибко удобно гонять станок туда-сюда.


  • 0

#8 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 07 Август 2014 - 01:27

Ну про беспроводность скорее нет,но валкодер к LinuxCNC должен прикручиватся.
Не пробовал,но средства для подключения энкодера есть.

Сообщение отредактировал torvn77: 07 Август 2014 - 01:28

  • 0
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

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

#9 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 530 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 07 Август 2014 - 01:54

какая функция в g-коде позволяет занести в переменную текущие координаты инструмента?

 
 
пример синтакиса NcStudio
 
' коэффициент масштабирования пишем в начале файла, корректируем вручную
#1=(700/699)
#2=(500/501)
 

G00 Z100

G01 X=(10.000*#1)  Y=(20.000*#2)  Z100 

G01 X=(50.000*#1)  Y=(70.000*#2)  Z100

 
 
постпроцессор поправить думаю не проблема
Также в качестве примеров найдите в папке с NcStudio файл public.dat, там подпрограммы прописаны.
Если же используете NcStudio 8 или 10, то и корни, и синусы, и косинусы есть.

Сообщение отредактировал lkbyysq: 07 Август 2014 - 02:05

  • 0

Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).


#10 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 530 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 07 Август 2014 - 02:38

найдите в папке с NcStudio файл public.dat

Там найдете примеры использования глобальных переменные типа

#SSCURWORKCOOR1 - текущая координата X

#SSCURWORKCOOR2 - текущая координата Y

#SSCURWORKCOOR3 - текущая координата Z

 
В этот файл можно дописать пользовательские подпрограммы и обращаться к ним через MDI и из УП.
Значения пользовательских переменных NcStudio вроде помнит в течении сеанса, это следует проверить.

Сообщение отредактировал lkbyysq: 07 Август 2014 - 02:44

  • 1

Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).


#11 OFFLINE   FreeSky

FreeSky

    Студент

  • Пользователи+
  • PipPip
  • 41 сообщений
  • Из:Боровуха

Отправлено 08 Август 2014 - 06:31

Всем огромное спасибо за подсказки и наводки!!!
Разобрался. У меня есть инструкция по g-коду на NC-Studio 5.4 на русском языке, только перевод выполнен с !!! китайского. Поэтому чтобы в ней что-то понять, то приходится постоянно лазить в английскую к NC-Studio 8 - она намного богаче на синтаксис и не все в 5-ке работает. Но если уж нашел в русско-китайской команду, то описание лучше в английской версии изучить.

В общем предопределенные переменные такие:

# SSCURPOS0, #SSCURPOS1 , #SSCURPOS2 – текущие координаты станка;

# SSCURWORKCOOR0, #SSCURWORKCOOR1, #SSCURWORKCOOR2 - текущие координаты детали;

Соответсвенно по осям X,Y,Z

 

Возник теперь вопрос по работе команды G92. Вернее ее непосредственной реализации в NC-Studio. Я этой командой всегда пользовался просто чтобы указать, что текущее положение инструмента является нулем заготовки. Вернее не совсем нулем, а нулем со смещением. К шпинделю приколхозена лазерная указка со смещением по оси Y -77.6мм. Поэтому, чтобы не дописывать к каждой строчке кода приращение, просто в начале каждой УП даю команду G92 X0 Y77.6 (по правде говоря у меня еще везде и Z15 дописано)

Чтобы было понятно, вот пример моей УП по резке прямоугольника. Он короткий поэтому приведу его в пример:
 

%
'-------------------    И  Н  С  Т  Р  У  К  Ц  И  Я    ---------------
' 1. ЗАКРЕПИТЬ ЗАГОТОВКУ --- ПОПУТНОЕ ---
' 2. Установить ЛАЗЕР в ЛЕВЫЙ НИЖНИЙ угол
' 3. ВВЕСТИ значения:
#1=300 ' ДЛИНА (миллиметры)
#2=100' ВЫСОТА (миллиметры)
#3=3.7 ' ТОЛЩИНА МАТЕРИАЛА
#4=2.5 ' ДИАМЕТР ФРЕЗЫ
' 4. ФАЙЛ => СОХРАНИТЬ И ЗАГРУЗИТЬ
' 5. НАЖАТЬ =СТАРТ= (F9)
'----------------------------------------------
'------- ЭТО ПРОГРАММА - ЕЁ НЕ МЕНЯТЬ ---------
'----------------------------------------------
T1 M6
G00 Z15 S24000 M03 'включение шпинделя
G92 X0 Y=77.6 Z15 'устанавливаем =0= с учетом смещения лазера
#4=#4/2
G00 X=0-#4 Y=0-#4  'отходим в начало
G04 P20000 'задержка 15 секунд
G01 Z=0-#3 'опускаем фрезу в заготовку
G01 X=0-#4 Y=#2+#4 'первый пропил
X=#1+#4 Y=#2+#4 'второй пропил
X=#1+#4 Y=0-#4 'третий пропил
X=0-#4 Y=0-#4 'последний пропил
G00 Z15 'поднимаем фрезу
M05 'выключаем шпиндель
G00 X0 Y=77.6
M30
 

Так вот с применением этой инструкции G92 в NC-Studio (конкретно версия 5.5.60 русифицированная) вылазит косяк при остановке программы кнопкой стоп во время работы. Станок поднимает ось Z вверх на 10мм., а потом при продолжении работы программы кнопкой резюме - не опускает вниз. Причем если убрать эту команду - глюка нет.
А остановка выполнения программы мне по моему плану нужна обязательно для ручной подгонки станка с "уползшим" контрольным точкам, чтобы получить коэффициенты искажения.

 

Расскажите пожалуйста на пальцах для чего непосредственно служит инструкция G92. Правильно ли я ее применяю? и чем можно по-другому указать текущее положение инструмента, как ноль заготовки.

Да и еще вопросик небольшой как вывести на экран значение переменной? - что-то типа M801, только для чисел. А то M801 "Привет всем!" - пишет, а M801 #1 - выдает ошибку.

Кстати по М801 - подсмотрел тут в public.dat и решил еще поэкспериментировать - вот выловил управляющие символы для нее:
если в начале текста стоит:
|D| - то после текста бежит строка – типа ожидание
|
E| - желтый на красном фоне – как при ошибке станка
|
F| - в диалоговом окне и кнопка ОК внизу
может есть и другие команды еще. Пример:
M801 "|E|Привет всем!!!"

 

В общем вопрос мой был по G92 и правильному заданию нуля детали на основании текущего положения инструмента. (Может напрямую в предопределенные переменные записывать, минуя команды - только что мысль такая пришла).
Буду очень рад советам и поддержке.


  • 0

#12 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 530 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 08 Август 2014 - 09:07

... с применением инструкции G92 в NC-Studio ... вылазит косяк при остановке программы кнопкой стоп во время работы.


Стоит добавить G906 после G92.
Команда G906 делает что-то очень нужное, типа синхронизации всех ячеек памяти или ссылок.
Пример использования G92 из public.dat.

Скрытый текст

 

как вывести на экран значение переменной?

 
У меня не получилось.


Сообщение отредактировал lkbyysq: 08 Август 2014 - 09:28

  • 1

Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).


#13 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 08 Август 2014 - 12:40

Возник теперь вопрос по работе команды G92. Вернее ее непосредственной реализации в NC-Studio. Я этой командой всегда пользовался просто чтобы указать, что текущее положение инструмента является нулем заготовки. Вернее не совсем нулем, а нулем со смещением. К шпинделю приколхозена лазерная указка со смещением по оси Y -77.6мм. Поэтому, чтобы не дописывать к каждой строчке кода приращение, просто в начале каждой УП даю команду G92 X0 Y77.6 (по правде говоря у меня еще везде и Z15 дописано)
Чтобы было понятно, вот пример моей УП по резке прямоугольника. Он короткий поэтому приведу его в пример:
 
Так вот с применением этой инструкции G92 в NC-Studio (конкретно версия 5.5.60 русифицированная) вылазит косяк при остановке программы кнопкой стоп во время работы. Станок поднимает ось Z вверх на 10мм., а потом при продолжении работы программы кнопкой резюме - не опускает вниз. Причем если убрать эту команду - глюка нет.
А остановка выполнения программы мне по моему плану нужна обязательно для ручной подгонки станка с "уползшим" контрольным точкам, чтобы получить коэффициенты искажения.
 
Расскажите пожалуйста на пальцах для чего непосредственно служит инструкция G92. Правильно ли я ее применяю? и чем можно по-другому указать текущее положение инструмента, как ноль заготовки.
Да и еще вопросик небольшой как вывести на экран значение переменной? - что-то типа M801, только для чисел. А то M801 "Привет всем!" - пишет, а M801 #1 - выдает ошибку.

Вообще для установки нуля используются команды "G10 L2 P[1~9]" "G0 L20 P[1~9]"
которые определяют основные системы координат.
Переключаются эти системы координат командами G54~G59.3 от 1 до 9 соответственно.
А G92 это оперативный офсет служащий для временного смещения нуля с не знаю какими целями.
При этом в LinuxCNC по крайней мере все системы координат,кроме G54 (1),
и офсеты при отдаче команды M02 должны бы сбрасываться.(Не переводил пока эту часть инструкции)
Тоесть G54 это та ниточка,которая позволяет объеденить разные УП одним общим нулём.

Сообщение отредактировал torvn77: 08 Август 2014 - 12:42

  • 0
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

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

#14 OFFLINE   FreeSky

FreeSky

    Студент

  • Пользователи+
  • PipPip
  • 41 сообщений
  • Из:Боровуха

Отправлено 08 Август 2014 - 13:16

"G10 L2 P[1~9]" "G0 L20 P[1~9]"

 

Не совсем понимаю смысл конструкции "G10 L2 P[1~9]" "G0 L20 P[1~9]"

В NCStudio команда G10 походу не реализована, по крайней мере даже в описании 8-й версии упоминание о ней нигде не встречается. Литера L задает количество повторов при вызове подпрограммы, а P - аргумент временной задержки для G04, либо номер подпрограммы, поэтому мне вобще не понятно, что делает приведенная Вами команда G0 L20 P[1~9]

по поводу G54 - пробовал эту команду. Только вот станок начинает ехать к указанным координатам, а не обнуляет их согласно указанным значениям для текущего положения инструмента.


Стоит добавить G906 после G92.

Спасибо!!! - попробую - отпишусь!


Сообщение отредактировал FreeSky: 08 Август 2014 - 13:22

  • 0

#15 OFFLINE   torvn77

torvn77

    Пользователь LinuxCNC

  • Заблокированные
  • PipPipPipPipPipPipPipPipPipPip
  • 2 151 сообщений
  • Пол:Мужчина
  • Из:Санкт-Петербурга

Отправлено 08 Август 2014 - 13:26

В древние времена,когда G-code создавался должного опыта написания языков программирования не было или он мало у кого имелся.

В общем конструкция "G10 L2" это единый символ вызова команды.

В NC студии должен быть их аналог,может учитывая не соблюдение стандарта,используются другие g-code,в общем ищите.

И конструкцию G0 L20 P[1~9] надо понимать как список команд от G0 L20 P1 X? Y? Z? до G0 L20 P9 X? Y? Z?

 

(lkbyysq что ответсвенные проприентарные хозяева сделали со стандартом RS274 ?!

Я понимаю что в LinuxCNC тоже придумывают,но придумывают то,чего в стандарте нету но желательно иметь для работы.

Здесь же просто надо реализовать стандарт так,как он написан.

Да и в МАЧ тоже,вместо прописанного в стандарте создания и вызова подпрограммы зачемто используется M код.

вообще я стандарт не читал,но более чем уверен что реализован он в LinuxCNC именно так,как там написано

ну плюс расширения линукснцизмов)


Сообщение отредактировал torvn77: 08 Август 2014 - 13:36

  • 0
Я по мнению сообщества безграмотен,могу дать вредные или ошибочные советы.
Используйте их после обдумывания и на свой страх и риск.

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

#16 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 530 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 08 Август 2014 - 13:32

lkbyysq что ваши проприентарные хозяева сделали со стандартом RS274


FreeSky - это второй человек на форуме после меня, который решил расширить функционал NcStudio.
Больше никому из пользователей это не надо. Все работает так, как хочет пользователь.
У Вас, Тимофей, лично есть жалобы на то, что NcStudio не работает? Нет? Я так и думал. Молчите в тряпочку и не лезьте.

Сообщение отредактировал lkbyysq: 08 Август 2014 - 13:38

  • 0

Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).


#17 OFFLINE   Roma

Roma

    Гуру CNC

  • Продвинутый
  • PipPipPipPipPipPipPipPipPipPip
  • 1 219 сообщений
  • Пол:Мужчина
  • Из:Воронеж

Отправлено 08 Август 2014 - 15:40

чем можно по-другому указать текущее положение инструмента, как ноль заготовки.

Может это оно.

А может и не оно, там речь об обнулении машинных, а не рабочих координат.

Хотя, если рабочие оффсеты обнулить (т.е машинный ноль = рабочему нулю), то может и сработает...


Сообщение отредактировал Roma: 08 Август 2014 - 15:48

  • 0

#18 OFFLINE   FreeSky

FreeSky

    Студент

  • Пользователи+
  • PipPip
  • 41 сообщений
  • Из:Боровуха

Отправлено 08 Август 2014 - 16:30

В древние времена,когда G-code создавался должного опыта написания языков программирования не было или он мало у кого имелся.

Ну то что G-code по синтаксису смесь Ассемблера, Бейсика и Форта - я это понял уже давно и то что он старше меня лет на 15 тоже :)

 

Команда G906 делает что-то очень нужное, типа синхронизации всех ячеек памяти или ссылок.

Судя по частоте ее применения в public.dat - вероятно она действительно делает что-то очень нужное, но поставив ее следуещей строкой после G92 видимых различий в поведении станка я не заметил :(

 

FreeSky - это второй человек на форуме после меня, который решил расширить функционал NcStudio.

Спасибо за комплимент!!! Но я не точто решил расширить функционал, я просто практически никогда не пользуюсь готовыми решениями. Тоесть покупая какое-то оборудование, я немного им попользовавшись, начинаю подгонять его под свои задачи. С механическими моментами - тут все намного проще, всегда можно что-то подпилить, подстругать (ну а уже как больше года, так и элекантную деталь на станке выточить) и прикрутить. С программными вопросами возникают сложности, наложенные ограничениями средой программирования. Приходится исхать ухищрения и выходы.

Чтобы было более понятно я поясню.

1. Печатаю фигурный отпечаток на пленке

2. Ламинирую его

3. Клею на пластик (иногда ламинатором иногда вручную, если маленький очень)

4. Вместе с картинкой в CorelDraw одновременно рисуется контур, слегка заступающий на изображение (0.5-1мм).

5. На контуре 2 точки - =0= (х0;у0) и вторая позиционирующая точка например (х350;у420).

6. Точки напечаты рядом с картинкой и подписаны их коордитаны.

7. В контуре на месте нулевой точки нарисован крестик.

8. Контур в DXF, DXF в ArtCam.

9. В Арткаме вручную указываю ноль заготовки на месте крестика. Крестик стираю. Делаю УП по контуру.

10. Сохраняю через свой постпроцессор. Он зеркалит ось Y, так как картинка будет пилиться лицом вниз - пленкой вниз.

11. Открываю в NCStudio сохраненный *.nc файл на редактирование, в шапке ввожу значения с отпечатка для второй позиционируещей точки х и у

12. Сохраняю и загружаю УП на выполнение.

12/5. Заготовку прокалываю кнопкой канцелярской в цетрах отмеченных точек.

14. Ложу на стол лицем вниз.

15. Подвожу либо заготовку под лазер, либо лазер на нулевую точку (прокол).

16. Креплю к столу через прокол кнопкой.

17. Запускаю УП.

18. Лазер уходит на указанные координаты второй точки и ждет 10 сек.

19. Поскольку заготовка закреплена только одной кнопкой через ноль - это центр ее вращения. Поворачивая заготовку совмещаю прокол с положением лазера и креплю в этом месте кнопкой.

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

21. Пилится контур пор УП.

22. Станок после окончания возвращается в ноль лазера (первая точка).

 

Дело в том, что созданная и сохраненная УП после этого будет использоваться очень много раз. Так название файла - это номер отпечатка (модели), а на самом отпечатке он тоже нанесен. Тоесть все телодвижения с Арткамом и пр. при последующих запусках не нужны.

 

Но пункты 1,2,3 иногда дают искажения размеров, я начал с описания этой проблемы тему. Поэтому хочу сделать позиционирование по трем точкам, с автоматическим вычислением коэффициентов по реальному положению прокола на месте точки. Мерять линейкой и вносить значения - не вариант. Плюс имея возможность получить от станка координаты инструмента (и самое главное если он корректно продолжит работу после останова!!!) можно легко резать прямоугольные детали, даже не зная их размеров, просто пробегая лазером по двум краям. - Это было бы очень удобно!

 

Проблема сейчас встала на том, что станок после принудительного останова кнопкой стоп и продолжения УП кнопкой резюме, напрочь путет все свои координаты и положения, если в УП была команда G92. Останавливаться по M02 - не вариант, так как во время останова по М2 невозможно подвигать осями - кнопки на закладке ручного управления неактивны :( Поэтому думаю делать небольшую паузу G04 P2000 и в момент этой паузы позиционировать прокол под лазер и если есть несовпадение - нажимать стоп и двигать станок под реальное положение прокола (точки). Потом нажимать резюме и анологично поступать со второй точкой.

 

Попробую сегодня вечером, если получится позагонять нули в предопределенные переменные и посмотреть,что из этого получиться.

 

Насколько я понял файлик public.dat - это основной кладезь информации по NC-Studio и больше ничего более толкового и подробного нету?


Сообщение отредактировал FreeSky: 08 Август 2014 - 16:35

  • 0

#19 OFFLINE   lkbyysq

lkbyysq

    Гуру CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 9 530 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург
  • Из:Санкт-Петербург

Отправлено 08 Август 2014 - 17:26

Насколько я понял файлик public.dat - это основной кладезь информации по NC-Studio и больше ничего более толкового и подробного нету?

Нету. Руководство по восьмерке Вы уже нашли.

Вот здесь без G906 никак. Не помню уже почему.

Скрытый текст

 

частенько в коде используется короткая пауза для синхронизации.

 

в файле public.dat есть две предопределенные подпрограммы, исполняемые при старте и при окончании задачи.

там можно попробовать установить флаги и пользоваться ими

Можно например загнать G92 в подпрограмму, где и будет подниматься флаг.

По окончании задачи сбрасываться

При запуске задачи проверка флага и опускание по Z, если флаг поднят

 

Но все это чревато, ибо злобное NcStudio не пробегает файл с начала при "продолжить". Я пробовал отключить автозапуск шпинделя и пользоваться только M03 в начале файла, но при "продолжить" шпиндель не запускается. Дальше исследовать не стал, вернул автозапуск. 


Есть еще пара взаимосвязанных команд, суть которых покрыта мраком 

 

M802 P196609
...
M802 P196608
 

понять бы...


Сообщение отредактировал lkbyysq: 08 Август 2014 - 17:22

  • 0

Станислав Ерофеев
Beaver 9A (2007), Beaver 9AT2 (2011), KingCut X6 (2005), WoodPecker 1224 (2006), Roland EGX-300 (2004), Roland EGX-20 (2003), ZeldeR 0613TP (2014).


#20 OFFLINE   FreeSky

FreeSky

    Студент

  • Пользователи+
  • PipPip
  • 41 сообщений
  • Из:Боровуха

Отправлено 08 Август 2014 - 17:37

 

Есть еще пара взаимосвязанных команд, суть которых покрыта мраком

 

Насколько я понял М802 выводит служебное сообщение по указанным номерам. Их всего-то 4 шт.

по крайнер мере описание команды иде сразу за М801 - вот:

Есть в настоящее время:

M802 P196609 "Закрыть буфер

M802 P196608 "Открыть буфер

M802 P131072 "Защитный предел

M802 P131073 "Восстановление предел

 

Да, ячт я тут... ловите описание на русском на 5 версию, переведенное с китайского. Мозг не сломайте только :) от перевода такого

Прикрепленные файлы


Сообщение отредактировал FreeSky: 08 Август 2014 - 17:40

  • 0




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных