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

Редактирование постов SolidCAM


CNC_SKILL

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

Только что, Artas28 сказал:

Спасибо, с первым инструментом помогло.:clap_1:

А на втором что выводится?

Вот УП с вашего поста:

%
O1 (ÈÐÑ.041.300.005_ÏÅÐÅÕÎÄÍÈÊ)
(AUG-01-2017-2:25:10PM)


(TOOL 14 - DIA 63.)
(TOOL 15 - DIA 24.)

G54 
G90 G17 G40 G80 G00 
G00 G28 G91 Z0 
G90 
M06 T14 ()
G00 G90 X-91.3 Y28.333 S6000 M03 
G43 H14 Z100. 
(---------------------------)
(FM-FACEMILL2 - FACE-MILLING)
(---------------------------)
Z25. 
Z1. 
G01 Z-0.3 F300. 
X91.3 F1000. 
G00 Z25. 
X-91.3 Y-28.333 
Z1. 
G01 Z-0.3 F300. 
X91.3 F1000. 
G00 Z25. 
M05 
M01 


G90 G17 G40 G80 G00 
M06 T15 ()
G00 G90 X0. Y0. S3500 M03 
G43 H15 Z100. 
(----------------)
(D-DRILL1 - DRILL)
(----------------)
Z25. 
G98 G81 X0. Y0. Z-37. R0.7 F300. 
G80 
M05 
G00 G28 G91 Z0 
G00 G28 G91 Y0. 
G90 
M30 
%

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


Только что, Artas28 сказал:

Если в программе несколько нулей, что у вас будет нарисовано?

Деталь делается с периустановом или просто несколько деталей делаются одновременно завязанные на разные дома?

Вы тестили тот пост что я выложил?

И покажите тагда пример программы со сменной и нулями кот у вас выводится и с которыми вы работаете! 

Я к примеру если делаю деталь с периустановом то при определении создаю один МАС и потом под него позиции которые так же будут Ж54 или 55 в зависимости от того как назовешь или определишь! 

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

МАС и потом под него позиции которые так же будут Ж54 или 55 в зависимости от того как назовешь или определишь! 

G54 G55 это не MAC 1 MAC 2 ? это позиция 1 позиция 2?

Ссылка на сообщение
Поделиться на других сайтах
Только что, Artas28 сказал:

G54 G55 это не MAC 1 MAC 2 ? это позиция 1 позиция 2?

G54 G55 это как раз и есть MAC 1 MAC 2 а вот в них уже включаются позиции которые будут выводится с названием МАС к которому относятся! 

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

Вопрос:
Строка в постпроцессоре

{nb,['G'iMotionmode:mcode_f ' '],['G'iMplane' '],['G'iDiametercomp' '],[cWo,iWorkoffset' '],['G'iAbsincmode ' ']}

может выводить определение плоскости обработки (G17 и т.д.), а может не выводить если плоскость уже определена ранее. Видимо, опционал вывода / не вывода как-то связан с квадратными скобками [ ]. Как работает этот механизм?

Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, asteroid сказал:

Вопрос:
Строка в постпроцессоре


{nb,['G'iMotionmode:mcode_f ' '],['G'iMplane' '],['G'iDiametercomp' '],[cWo,iWorkoffset' '],['G'iAbsincmode ' ']}

может выводить определение плоскости обработки (G17 и т.д.), а может не выводить если плоскость уже определена ранее. Видимо, опционал вывода / не вывода как-то связан с квадратными скобками [ ]. Как работает этот механизм?

так и работает, может выводить, а может не выводить,

по сути необходима для задания модальных функций, т.е.

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

 

пример,

строка в посте { nb,'G'iMotionmode:mcode_f ', 'X'xpos}

УП:

G0X1

G1X2

G1X10

G1X20

G0X1

строка в посте { nb,['G'iMotionmode:mcode_f '], 'X'xpos}

УП:

G0X1

G1X2

X10

X20

G0X1

 

Вот дословно из хелпа

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

Conditional Generation (modality)


GPPL supports conditional generation of items. A "modal group" is a group of items surrounded by square brackets ( [...] ). For example:

{ ['G', gcode, 'X', xpos, ' (FIRST POINT)' ] }

 

GPPL uses a simple rule to decide if the modal group should be generated: if at least ONE item of the modal group is required to be generated - all the group will be generated. An item is required to be generated if both its active and change attributes are TRUE.

The conditional generation is especially designed for modal GCode generation. For example, if a previously generated block was a 'G1' block (in procedure '@line' for example), and the current block is going to be also a 'G1' block, the 'G1' does not have to be generated. The way GPPL handles this is simply be defining the appropriate group as a modal group, as in the following example:

{ ['G', gcode] }

If the system variable 'gcode' has changed from the previous time it was used, the string 'G1' will be generated; if it has not changed then the string 'GI' will not be generated.

 

gcode = 1

-

If previous value was 1, set change flag to FALSE.

{nb, ['G'gcode], ' X'xpos, ' Y'ypos}

-

N125 X123.45 Y-12.3 note that 'G1' was not generated.

{nb, [' X'xpos], [' Y'ypos]}

-

Assume change(xpos) = FALSE change(ypos) = TRUE. The generated block will be: N125 Y-12.3 .

{nb, [' X'xpos, ' Y'ypos]}

-

Assume change(xpos) = TRUE change(ypos) = TRUE. The generated block will be: N125 X123.45 Y-12.3 .

 

 

G-field modality is an important, heavily used feature of the GCode languages. GPPL gives special care for that facility. Consider the following examples:

(1) N10 G1 X12.3 Y-5.

N15 X35. Y7.14 ; G-field omitted.

N20 G0 X0. Y0.

(2) N10 G1 X12.3 Y-5

N15 X35. Y7.14 ; Blanks reserve space of G-field for

N20 G0 X0. Y0. ; readability

The GPPL code used for block N15 in the first example is the following:

gcode = 1

{nb, ['G' gcode], ' X' xpos, 'Y' ypos}

The GPPL code used for block N15 in the second example is a little bit more complicated:

gcode = 1

if change(gcode) then

{nb, 'G' gcode, ' X' xpos, ' Y' ypos}

else

{nb, ' ', ' X' xpos, ' Y' ypos} ; reserve space

endif

It would be better to write the second example in more condensed code (as in the first example). GPPL enables you to do so. If the system variable 'gcode_space' equals TRUE, GPPL will produce the second example's GCode, even if the GPPL generation statement is:

{nb, ['G' gcode], ' X' xpos, ' Y' ypos}

 

Изменено пользователем NickEL1000
Ссылка на сообщение
Поделиться на других сайтах
16 часов назад, asteroid сказал:

может выводить определение плоскости обработки (G17 и т.д.), а может не выводить если плоскость уже определена ранее. Видимо, опционал вывода / не вывода как-то связан с квадратными скобками [ ]. Как работает этот механизм?

https://cloud.mail.ru/public/FDrC/Vt9axMRaf

Вот здесь кое-что по этому вопросу отражено.

Как будет перевод по 2016 или 2017 году (постпроцессры - составление) , то выложу . Но значительных отличий от базового модуля по созданию постпроцессоров нет. Можно для начала этим пользоваться.

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, sennik53 сказал:

Как будет перевод по 2016 или 2017 году (постпроцессры - составление) , то выложу . Но значительных отличий от базового модуля по созданию постпроцессоров нет. Можно для начала этим пользоваться.

Ждем с нетерпением!

Ссылка на сообщение
Поделиться на других сайтах
19 часов назад, NickEL1000 сказал:

Вот дословно из хелпа

  Показать содержимое

Conditional Generation (modality)


GPPL supports conditional generation of items. A "modal group" is a group of items surrounded by square brackets ( [...] ). For example:

{ ['G', gcode, 'X', xpos, ' (FIRST POINT)' ] }

 

GPPL uses a simple rule to decide if the modal group should be generated: if at least ONE item of the modal group is required to be generated - all the group will be generated. An item is required to be generated if both its active and change attributes are TRUE.

The conditional generation is especially designed for modal GCode generation. For example, if a previously generated block was a 'G1' block (in procedure '@line' for example), and the current block is going to be also a 'G1' block, the 'G1' does not have to be generated. The way GPPL handles this is simply be defining the appropriate group as a modal group, as in the following example:

{ ['G', gcode] }

If the system variable 'gcode' has changed from the previous time it was used, the string 'G1' will be generated; if it has not changed then the string 'GI' will not be generated.

 

gcode = 1

-

If previous value was 1, set change flag to FALSE.

{nb, ['G'gcode], ' X'xpos, ' Y'ypos}

-

N125 X123.45 Y-12.3 note that 'G1' was not generated.

{nb, [' X'xpos], [' Y'ypos]}

-

Assume change(xpos) = FALSE change(ypos) = TRUE. The generated block will be: N125 Y-12.3 .

{nb, [' X'xpos, ' Y'ypos]}

-

Assume change(xpos) = TRUE change(ypos) = TRUE. The generated block will be: N125 X123.45 Y-12.3 .

 

 

G-field modality is an important, heavily used feature of the GCode languages. GPPL gives special care for that facility. Consider the following examples:

(1) N10 G1 X12.3 Y-5.

N15 X35. Y7.14 ; G-field omitted.

N20 G0 X0. Y0.

(2) N10 G1 X12.3 Y-5

N15 X35. Y7.14 ; Blanks reserve space of G-field for

N20 G0 X0. Y0. ; readability

The GPPL code used for block N15 in the first example is the following:

gcode = 1

{nb, ['G' gcode], ' X' xpos, 'Y' ypos}

The GPPL code used for block N15 in the second example is a little bit more complicated:

gcode = 1

if change(gcode) then

{nb, 'G' gcode, ' X' xpos, ' Y' ypos}

else

{nb, ' ', ' X' xpos, ' Y' ypos} ; reserve space

endif

It would be better to write the second example in more condensed code (as in the first example). GPPL enables you to do so. If the system variable 'gcode_space' equals TRUE, GPPL will produce the second example's GCode, even if the GPPL generation statement is:

{nb, ['G' gcode], ' X' xpos, ' Y' ypos}

 

Благодарю.
А то беглое пролистывание хелпа ничего не дало, а поиск по слову "[" ожидаемо не дал результатов. 

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

Товарищи, всех категорически приветствую. Имеется в наличии станочек с 4ой осью. Стойка фанук-0 серии. Так вот 4ая ось имеет гидравлический тормоз и соответственно при повороте её необходимо разжимать.

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

Ссылка на сообщение
Поделиться на других сайтах
25 минут назад, Noff сказал:

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

По идеи когда в программе встречается координата А  то ось должна сама открываться и после поворота закрываться !  Вы уже пробовали отрабатывать УП с координатой А ?

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Noff сказал:

Товарищи, всех категорически приветствую. Имеется в наличии станочек с 4ой осью. Стойка фанук-0 серии. Так вот 4ая ось имеет гидравлический тормоз и соответственно при повороте её необходимо разжимать.

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

Реализовать можно, 

1) для непрерывной обработки -на разжим делаем запрос в начале перехода, является ли он многоосевым, если да то включается разжим:

@start_of_job

...

if (left(job_type,1) eq '5') or (left(job_type,1) eq '4') or (right(job_type,2) eq '5x') or (right(job_type,2) eq '4x')

{'M10'}            ; вместо М10 ваш код на разжим

endif 

...

endp

 

2) для непрерывной обработки -на зажим

@end_of_job

...

{'G0A0'}

{'M11'}  ; вместо М11 ваш код на разжим

endp

 

3) для индексной 3+1, тоже реализуемо, более трудоемко, надо смотреть где и как в посте прописана логика команд на разворот стола/головы и системы координат

 

1 час назад, Frezer_PU сказал:

По идеи когда в программе встречается координата А  то ось должна сама открываться и после поворота закрываться !  Вы уже пробовали отрабатывать УП с координатой А ?

 

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, Frezer_PU сказал:

По идеи когда в программе встречается координата А  то ось должна сама открываться и после поворота закрываться !  Вы уже пробовали отрабатывать УП с координатой А ?

Возможно в Хаасе так и работает, на Фануке если не разжат тормоз, строки программы просто не будут отрабатываться. И у меня 4ая ось имеет координату "В", но думаю это не принципиально.

 

8 часов назад, NickEL1000 сказал:

1) для непрерывной обработки -на разжим делаем запрос в начале перехода, является ли он многоосевым, если да то включается разжим:

@start_of_job

...

if (left(job_type,1) eq '5') or (left(job_type,1) eq '4') or (right(job_type,2) eq '5x') or (right(job_type,2) eq '4x')

{'M10'}            ; вместо М10 ваш код на разжим

endif 

...

endp

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

А вот с зажимом не получилось, пришлось принудительно перед М5 вставить. Но в принципе меня это устраивает.

Теперь надо придумать как при трансформации показать посту что надо разжимать тормоз. 

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

 

 

Возможно как вариант через @usr_rapid можно что то придумать?

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

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

@end_of_job

...

...

if (left(job_type,1) eq '5') or (left(job_type,1) eq '4') or (right(job_type,2) eq '5x') or (right(job_type,2) eq '4x')

{'M11'}            ; вместо М11 ваш код на разжим

endif               ;  в конце процедуры @end_of_job

endp

------------

 

на моем фануке  настроен зажим/разжим для 3+2

можете кинуть свой пост в ЛС посмотрю как можно реализовать,

--------------

@usr_rapid скорее всего холостые перебеги отличные от тех что задаются разработчиками

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

...

if (left(job_type,1) eq '5') or (left(job_type,1) eq '4') or (right(job_type,2) eq '5x') or (right(job_type,2) eq '4x')

{'M11'}            ; вместо М11 ваш код на разжим

endif               ;  в конце процедуры @end_of_job

endp

 

Да, спасибо для многоосевой получилось включать/выключать зажим.

А вот для 3+1 так реализовать не получилось. Воткнуть разжим в начале операции и зажим в конце в принципе не проблема. Но хочется чтобы именно после поворота оси зажим включался. Но никак не могу найти переменную которая отвечает именно за трансформацию в программе.

А постпроцессор взял стандартный Haas_4axis. Вот его и ковыряю. Наладил практически все, кроме зажима....

Изменено пользователем Noff
Ссылка на сообщение
Поделиться на других сайтах
В Saturday, August 05, 2017 в 20:51, asteroid сказал:

Видимо, опционал вывода / не вывода как-то связан с квадратными скобками [ ]

Это называется модальностью функции.

Смотрите инструкцию по постпроцессорам.

 

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...
В 01.08.2017 в 16:20, Frezer_PU сказал:

G54 G55 это как раз и есть MAC 1 MAC 2 а вот в них уже включаются позиции которые будут выводится с названием МАС к которому относятся!

А можно как-то сделать чтобы для любой MAC выводился только G54?

А то у меня при G55 и др. станок подставляет какие-то свои параметры (откуда берет пока не разобрался) и однажды на это очень неприятно напоролся.

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

А можно как-то сделать чтобы для любой MAC выводился только G54?

Можно! Переименовав MAC с помощью параметров станка ! 

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

 

Только что, Plumber сказал:

А то у меня при G55 и др. станок подставляет какие-то свои параметры (откуда берет пока не разобрался) и однажды на это очень неприятно напоролся.

Это в 3х осевом посте?

Ссылка на сообщение
Поделиться на других сайтах
13 минуты назад, Frezer_PU сказал:

Это в 3х осевом посте?

ДА, обрабатываю в основном с переустановкой

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

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

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

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

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

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

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

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

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

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

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




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