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

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


CNC_SKILL

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

25.12.2021 в 18:28, StimUL88 сказал:

установить полученный список инструмента с минимальным Z и временем обработки в шапку программы и как сделать чтоб не было повторений инструмента

Для этого надо записать всю УП через open file и вставить после формирования списка с помощью функции copy file . А чтоб не было повторения инструментов нужно прописать логику чтоб список формировался не по каждому переходу в в дереве программы а периодически обновлял и объединял информацию по одинаковым инструментам.

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


  • 4 недели спустя...
10.03.2017 в 23:29, sudomex2016 сказал:

Ну чтож. К сожалению на этом форуме развернутые ответы дают единицы, я постараюсь дать развернутый ответ чтобы всем было понятно потому что понимаю как это сложно, когда не шариш нихрена, а хочется. Эту всю затею я посвящаю пользователю данного форума Игорю Макаренко, который послал меня править пост ручками мол это было на форуме иди учи и тд. и т.п., когда я у Израильского коллеги попросил постпроцессор в котором была реализована эта функция G05.1 , может не так конечно, но все же.

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

 Для начала создаем доп. параметр в файле станка( показано на картинке)

1. GUI имя - любое

2. Имя GPP (b)любое название, пример bName

3. Тип - LOGICAL

Вот тут остановлюсь поподробнее, почему я выбрал LOGICAL. Так как нужная функция у меня не меняется, ее нужно только включить или выключить поэтому я подумал, что подойдет тип LOGICAL - Истина или лож. Истина - вкл. Лож- выкл. Позже когда я разбирался методом научного тыка я понял что если выбрал тип LOGICAL то имя GPP должно начинаться с буквы b иначе пост не видит эту переменную. В постпроцессоре, в процедуре @init_post можно заметить, что все переменные начинаются с определенной буквы logical - b, string - s, integer - i, numeric - n.

Далее нужно редактировать постпроцессор.

 Находим процедуру @init_post и в любой строчке global logical добавляем переменную в таком виде bName_gpp

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

@init_post

    global string sUS_date sUS_time sUsrmsg sHomestr sHomestrbegin sHomestrtc sHomestrend sHomestrstpdiff sHomestrstpsame sHomeline
    global string sCamfilepath sSubspath cWo cPb cPe cG84 cG84p cCycs cHomep cTCcodep cTCcodes fG84spin cDr cCb cCe cDrZp cDrZs
    global string cDrCys cDrPts cG84endl cPn cHoffset
    global logical bStartFile bTlchg bSkipxyrapid bWorkoffsettc
    global logical bSubs bTlseperation bTcseperation bDateTimeOutput bStopM00difftool bToolPreselect bToolChangeAtEnd
    global logical bFromendprogram bFrombeginchangetool bFromendchangetool bFromendoffile bMultiplefixtures
    global logical bSafetyprep bSyncdrapid bFeedoutput bNnumtc 
    global logical bOptstpbegin bOptstptc bOptstpend bUseprognum bUseprogname bCoolspinaftertc bCoolAfterHeightComp bVSOFanuc_gpp
    global logical bCoolExist bCoolofftc bSpinofftc bCooloffend bSpinoffend bG84spin bTest bHeightComp bHeightCompOffset
    global logical bHeightCompZsameLine bTCSplit bSpinOnlyUseS bDiameterCompOutputD bCompTypeOutput bPostRevOutput bUseFileName
    global logical bOutputToolList bOutputToolMessage bOutputUserMessages bSimpleformat
    global integer iMplane iAbsincmode iWorkoffset iHeightcomp iStopmode iMotionmode
    global integer iDiametercomp iDrillmode iTcnumber iNumpecks iPworkoffset iSpindleDir
    global integer iSlength_g_file_name iSlength_full_g_file_name iSlengthcampartpath iDiameteroffset iArcmode iG84feed
    global integer iHomingmode iWorkOffsetmode iProgendmode iG187_P_gpp iSplit_ProgName_Num iNumSeparationLines iOperationMessage
    global integer iCoolantM1 iCoolantM2 iCoolantM3 iCoolantM4 iCoolantM5 iCoolantM6 iCoolantM7 iCoolantM8
    global integer iCoolantM1ON iCoolantM2ON iCoolantM3ON iCoolantM4ON iCoolantM5ON iCoolantM6ON iCoolantM7ON iCoolantM8ON
    global integer iCoolantM1OFF iCoolantM2OFF iCoolantM3OFF iCoolantM4OFF iCoolantM5OFF iCoolantM6OFF iCoolantM7OFF iCoolantM8OFF
    global numeric nTcXnext nTcYnext nTcZnext nTcCnext nCorrectedpeck nRapidfeed nG187_E_gpp nHeightCompcode nG84feed
 

 

 Далее нужно создать процедуру, но я взял процедуру @usr_HSM_mode удалил из нее все, так как она мне на Фануке не нужна и привел ее к такому виду:

;--------------------

@usr_HSM_mode
    ; Handle output of HSM code
    if bVSOFanuc eq true then
    {nb, 'G49'}
    {nb, 'G05.1Q1'}
    endif
endp

;--------------------

 

Далее нужно создать процедуру, тут я уже создал новую, назвал ее так, чтоб не запутаться: @usr_hsm_mode_off. 

И привел ее к такому виду:

@usr_hsm_mode_off
    if bVSOFanuc eq true then
    {nb, 'G05.1Q0'}
    endif
endp

 

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

Так как нам нужно вставить G49 и G05.1Q1 не вначале программы, а в начале перехода то логично, что нам нужно вызвать процедуру в процедуре @start_of_job, но нет, если вставим там, то нужные коды появятся до вызова инструмента, а нам нужно после. В процедуре @start_of_job есть вызов процедуры @usr_ct_toolchange она и отвечает за вызов инструмента там и вставляем нашу первую процедуру @usr_HSM_mode, я сделал вот так:

@usr_ct_toolchange
    ; Handle G/M code output to make tool change
    if bTCSplit
        {nb,cTCcodep'T'tool_number}
        if bOutputToolMessage
            {' 'cCb,tool_message,cCe}
        endif
        {nb,cTCcodes}
    else
        {nb,cTCcodep'T'tool_number' 'cTCcodes}
        if bOutputToolMessage
            {cCb,tool_message,cCe}
        endif   
    endif
    if bToolPreselect
        if !last_tool
            {nb,'T'next_tool_number}
        else
            if !bToolChangeAtEnd
                {nb,'T'next_tool_number}
            endif
        endif
    endif
    call @usr_HSM_mode
endp

 

Далее нужно добавить нашу созданную процедуру, которая отвечает за G05.1Q0 в процедуру @end_of_job но не все оказалось так просто, если вставить ее просто так, то при обработке двух переходов без смены инструмента между переходами в УП появится G05.1Q0, что нам не нужно. Нужно добавить зависимость, что мол если номер инструмента не такой как в следующем переходе вот тогда и вызываем нашу процедуру. Вот так:

@end_of_job
    ; Handle what happens at end of operation(job)
    ; If using Subs we do not make tool change in @start_of_job
    if bStopM00
        if tool_number eq next_job_tool_number
            call @usr_StopM00_sametool
        else
            call @usr_StopM00_difftool      
        endif
    endif
    if tool_number ne next_job_tool_number
    call @usr_hsm_mode_off
    endif

    bSkipxyrapid = false
    bStopM00difftool = false
    iPworkoffset = iWorkoffset
endp

 

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

5da0fe1671028cdc7197007265eb4fd3.png

 

 

Не могу не восхитится обьемом выполенной вами работы! Применил ваш способ на своем посте и все работает, за исключением одного момента - если одним инструментом сделать переход без включенного G5.1Q1, а после создать второй переход с уже включенным G5.1Q1, то программно этот код не выводится перед вторым переходом, но G5.1Q0 В конце есть. Поэтому я переставил "call @usr_HSM_mode" в другое место в посте, и все работает на ура!

Screenshot_1.png

Screenshot_2.png

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

Всем доброго дня! Во время редактирования поста под Fanuc 0i 4 оси столкнулся с 2 проблемами:

1-генерируя программы на 2 и более инструмента происходит следующее, в строке безопасности во всех инструментах, кроме первого исчезает привязка G54 и отключение коррекции G40. Я понимаю, что скорее всего где-то стоит условие на исключение повтора или на модальность, но не пойму где

2- команда цикл сверления выводится для каждого отверстия. Скрины программы прилагаются

Будьте добры помогите разобраться с этими проблемами.

Пост и vmid  во вложение. Работаю в SC2020SP5HF1

Безымянный.png

Безымянный1.png

_Fanuc 0imateMD_4x_eval.gpp _Fanuc 0imateMD_4x_eval.vmid

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

Здравствуйте. Необходима помощь нужно отредактировать пост. Использую стандартный пост gMilling_Haas_SS_3x отредактированный под себя необходимо немного доработать, т.е в сверильном цикле (G81) прописать подачу мм/об. где прописать G95 перед циклом знаю как поменять

мм/мин на мм/об

должно быть так

    N6G95

    N7G81Z-20I20U1F0.1(мм/об) 

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

должно быть так

    N6G95

    N7G81Z-20I20U1F0.1(мм/об) 

Скинте пост в личку исправлю.

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

Здравствуйте, подскажите пожалуйста как вот эту строку 
G00 G54 G90 X-296. Y-155. 

привести к таком виду
G00 G54 G90

G68 X0 Y0 R1.

G00 X-296. Y-155. 

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

дай мне свою электронную почту я скину тебе примеры программ

рекомендую приобрести русский симулятор фрезерного станка с чпу

значительно помогает в освоении фанука.

у меня есть несколько пособий по этой системе.

если интересует отпишись

alex0800@gmail.com

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

здравствуйте, товарищи. прошу помощи в консультации по редактированию постпроцессора на стойку heidenhain.

готов в онлайн режиме разобраться и оплатить потраченное время по вашему условию. 

имею стандартный постпроцессор Hermle-C30_iTNC530_5X_TZ.gpp, в котором реализована функция переменных для вывода подач в шапке программы для удобного редактирования.

 

выглядит вот так:

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

4 facemill.jpg

 

проблема возникла, когда начал работать в траекториях "Набор переходов типа паз" где мне переменные не выдавало

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

5 набор переходов.jpg

 

начал разбираться в посте и выявил, что если убрать выражение and left(job_type,8) ne 'tool_box'  со строки где задается условия переменных, то вывод в УП происходит, но переменные он берет с 2,5D траекторий и не хватает переменной Q1 которая отвечает за быстрые перемещения, которое я задаю в графе перемещений solidcam, а в УП в коде координат этот параметр присутствует, но так как в шапке он не задан, то станок читает его как 0 и останавливается. 

 

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

измен переменной паз.jpg

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

10 солидкам окно подач паза.jpg

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

9 паз с переменными но не полными.jpg

 

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

 

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

код задает переменные

2 параметры подачи.jpg

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

1 условия подачи .jpg

 

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

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

feed_rate 
ramp_down_feed
ramp_up_feed
feed_rapid 
z_feed  
z_feed_safety
feed_link
finish_feed

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

pocket
profile
chamfer_3d
thread_3d
drill
slot
trans_surf
3-dmodel
thread
3-ddrill
3-dengraving
5x_advanced
5x_face
5x_engraving
5x_port_mach
5x_swarf
5x_turbine
5x_2_5_axis
5x_3axis
5x_4axis
mw_mesh_3x_rough_parallel
mw_mesh_3x_rough_offset
mw_mesh_3x_rest_rough_offset
hsm_const_stephsm_waterline
hsm_area_clearancehsm_raster_clearance
“hsm_horiz_area
hsm_raster
hsm_boundary
hsm_pencil
hsm_par_pencil
hsm_rest_mach
hsm_rest_roughing
hsm_corner_offset
pocket_3D
profile_3D
tslot
hsm_combine_const_z_horizontal
hsm_combine_const_z_linear
hsm_combine_const_z_const_step
hsm_combine_const_z_corner_offset
tool_box
mw_swarf_4x
mw_converted_3x
mw_converted_4x
mw_impeler_rough_5x
mw_impeller_floor_tc_5x
mw_impeller_floor_no_tc_5x
mw_impeller_blade_5x
mw_drill_5x
mw_drill_4x
mw_cavity_with_gouge_5x
face_milling
hsm_helical
hsm_offset_cutting
hsm_mixed_cons
t_z_const_step
drill_hr
spiral_pocket
spiral_msc
hss_const_z
hss_linear
hss_perp_to_curve
hss_morph_between_curves
hss_parallel_to_curve
hss_morph_between_surf
hss_projection
hss_parallel_to_surf
4x_const_z4x_linear
4x_perp_to_curve
4x_morph_between_curves
4x_parallel_to_curve
4x_morph_between_surf
4x_projection
4x_parallel_to_surf
4x_hatch
5x_const_z
5x_linear
5x_perp_to_curve
5x_morph_between_curves
5x_parallel_to_curve
5x_morph_between_surf
5x_projection
5x_parallel_to_surf
5x_hatch
NaviRoboDeburring
4x_parallel_cuts
5x_parallel_cuts
4x_engraving
4x_cavity
4x_electrode
4x_turbine
machinecontroloperation
inter_oper_movement
probeoperation
3x_chamfer
4x_chamfer
5x_chamfer
3x_contour
4x_contour
5x_contour
3x_const_step
4x_const_step
5x_const_step
5x_swarfing
5x_multi_blade_rough
5x_multi_blade_blade_finish
5x_multi_blade_hub_finish
5x_multi_blade_fille
t_finish
5x_port_rough
5x_port_rest_rough
5x_port_finish_along
5x_port_finish_around
5x_roughhsm_hm_rib
hsm_hm_const_z
fixture_setup
hsm_hm_roughturn
t_imachining
drill
thread
groove
groovecut
turnface
sim_turn
turn_manual
4xsim.turning
balanced_rough
4_axis
constant_angle
macro
variable_angle}

 

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

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

7 добавлени е переменных.jpg

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

8 добовление условий.jpg

 

и это дало результат, который отобразился в УП, но с косяком в виде подтягивания переменных так же с 2,5D траектории

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

11 паз с двумя переменными.jpg

 

если опять ставлю строку and left(job_type,8) ne 'tool_box' на место, то у меня пропадают все переменные, даже те тестовые. 

 

 

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

спасибо.

1 условия подачи .jpg

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

Доброго времени суток, подскажите в чем причина в 4оси делаю обработку сверления и фрезеровки одного и того же отверстия. При выводе УП поворот оси "А" в цикле сверления имеет противоположный знак. https://ibb.co/S6GrMYH http:// https://ibb.co/4mkTKqB пост процессор использую стандартный gMill_Haas_4x_eval

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

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

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

Здравствуйте, как исправить пост стандартный (g_milling_3x) 3 осевой обработки чтобы при выводе УП при взятии корректора по высоте и на диаметр вместо привязанного H и D к номеру инструмента выводилось только мое значение какое укажу в посте. К примеру вместо G43H1 при T1, G41/42 D1 при T1 выводилось G43H#1.G41/42D#2.

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

вопрос на засыпку а зачем

 

Хочу использовать универсальный параметр для взятия коррекции #4120

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

Есть те кто может подсказать? Может помочь отредактировать за вознаграждение?

 

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

Есть те кто может подсказать

Реализовать не сложно но не логичней коррекции брать в цикле смены инструмента через параметр #4120 а из поста убрать вывод Н и D.

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

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

Gpptool.zip

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

2023-03-26_09-59-24.png

Господа, подскажите.

Делаю пост на базе gMilling_3x.gpp.

1-как мне z перекинуть с 14 на 13? 

2-зачем-то скорость 2 раза указывается! на 15 хотел бы удалить.

3-G00 на 13 тоже не нужна.

пост.gpp

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • streamdown
      Коллеги приветствую! IPS 8. Подскажите пожалуйста, кто какое серверное железо использует? Интересуют параметры при одновременной работе, ну например, 400 пользователей онлайн
    • gudstartup
      так он так и позиционируется по m19 pmc выдает g70.6 а чпу отвечает f45.7 но ориентацию и смещение в 4077 он отрабатывает нормально шпиндель встает ровно и смена происходит хорошо. вопрос почему после ввода команды управления скоростью он все еще продолжает контролировать число импульсов между нуль метками хотя в принципе уже должен отменить позиционный контроль и просто считать обороты по 0 метке как он это делает без М19? это все понятно но почему оно продолжает проверять это после завершения ориентации мне непонятно
    • Александр1979
      SP9047 SSPA:47 ILLEGAL SIGNAL OF POSITION CODER "The relationship between the A/B phase and 1-rotation signal is incorrect (Pulse interval mismatch)." "Неправильное значение счетчика импульсов сигнала на энкодере ALPHAi. На фазах A и B энкодера за один оборот шпинделя насчитывается 4096 импульсов обратной связи. Программное обеспечение по управлению шпинделем проверяет количество импульсов на фазах A и B, соответствующее энкодеру, при каждой генерации сигнала одного оборота. Данный аварийный сигнал срабатывает, если регистрируется число импульсов, нарушающее заданный диапазон."
    • vs3dpro
      Добрый день! У нас на есть SLA принтер 600х600х400мм. Можно напечатать мастер- модели, и можно приехать посмотреть. mail@iges.space
    • gudstartup
      после ввода 789 в edit mod надо перейти в режим ручное упр. нажать mod а потом помощь и откроется wzw.hlp  с возможностью выполнения команд управления atc. если не появляется содержимое wzw.hlp то возможно что у вас другой код хотя 789 'это стандарт для dmg в этом случае надо смотреть ваш plc раздел у меня пароль прописан в файле wzw_rett.mod
    • Anat2015
      SERVO TURRET AMP ALARM - переводить не пробовали, учитывая, что AMP - это и есть сервопривод? Что тут не ясного, язык не знаком?
    • Viktor2004
      я бы попробовал позиционировать шпиндель сигналом G70.6 Ответный сигнал, шпиндель сориентирован F45.7
    • gudstartup
      Здравствуйте уважаемые участники форума попрошу вас поделится мнениями. Имеется фрезерный шпиндель с позиционным кодером (зубчатое колесо и считывающая головка). Ошибку 9047 выдает после того отрабатывает M19 c последующим включением оборотов Sxxx M3 причем обороты могут быть любыми от 100-макс. Если задавать обороты без предварительной ориентации то 9047 не возникает и шпиндель нормально вращается на любой скорости при этом обороты не гуляют точность поддержания +-1 об\мин. Кабель заменен заменить сам датчик нет возможности. Мой вопрос в следующем почему шпиндель после M19 и включении управления скоростью Sxxx M3 остается в режиме позиционирования а не сразу переходит врежим управления скоростью и даже явная отмена ориентации кодом M20 ничего не меняет ведь режим позиционного управления должен быть отменен или он остается и отменяется не сразу после подачи команды M3 и кода скорости? Станок достаточно старый 2009 года плату управления шпинделем меняли на соседний ничего не изменилось. Это может быть логика PMC или скорее всего это датчик?   PMC-SB.001
    • Killerchik
      А мы-то думали, что пропорциональный гидравлический.....
    • Grig75
×
×
  • Создать...