Jump to content

Оптимизация работы.


vasilevmoment

Recommended Posts

vasilevmoment

Здравствуйте коллеги, предлагаю в данную тему выкладывать способы оптимизации работы solidcam и не только.

  

1) Параметрическая шапка программа с указанием номеров инструмента.

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

         

            Функция  @def_tool  (отвечает за вывод в начале программы списка инструментов и их описание) картинка 1:   

@def_tool ;шапка программы с указанием номеров инструмента

global integer sequence<<40>> ; массив из которого выбираем номер инструмента 
global integer CYCtool  ;порядковая переменная  #101, #102, #103 ,#104 #105, #106 и т.д.

CYCtool=CYCtool+1  ;прибавление +1 к #101 для вывода в следующей строке.
sequence<<CYCtool>> = tool_number ;подхват номера из solidcam.

if CYCtool ge 10 ; условие если число инструментов больше 10
   {nb, '#1'CYCtool'=', tool_number} ;#101, #102, #103 ,#104 #105, #106 и т.д.
   {' ('tool_message')'} ; вывод комментария к инструменту.
else            
   {nb, '#10'CYCtool'=', tool_number}   
   {' ('tool_message')'} ; вывод комментария к инструменту. 
endif


endp

 

 

           Функция @change_tool  (отвечает за вывод g-кода во время смены инструмента) картинка 2:

@change_tool  ;функция смены инструмента.
    
    {nb, 'M09'}
	{nb, 'M05'}
	{nb,'G49'}
    {nb,'G69'}
	{nl}
	{nl}
	{nb,'G0 G53 Z0.'}
    
	
CYCtool=1     
	 while tool_number ne sequence<<CYCtool>> ;цикл вывода #101 и т.д....
CYCtool=CYCtool+1
     endw
	     
         if CYCtool ge 10	; условие если число инструментов больше 10
		    {nb, 'T#1'CYCtool} 
		 else
		    {nb, 'T#10'CYCtool} 
		 endif
	 
	 
	
	if tool_number ne next_tool_number
    endif	
	
	{' M06'}
	
	first_touch = true
	prev_spin_rate = false
	vvod=true
	
endp

 

 

            Функция @height_comp (отвечает за вывод коррекции на длину и диаметр инструмента)  картинка 3

 

Итог: Получаем УП как на картинке 4: Следующего вида. 

#101 #102 #103 .....общие переменные станка в которые можно записывать числа а также производить с ними расчеты. Т.е.  в строке #101=34 мы записываем в переменную число 34( ячейка в которой находится нужный инструмент.) и так далее, коррекции и компенсации также подхватываются и работают.

 

 

(;DATE:28-APR-2021 TIME:18:58:54)

#101=34 (Фреза торцевая ф50)
#102=13 (фреза 20 203520 гидрозажим)
#103=10 (Фреза ф10 202760)
#104=6 (Фреза ф3 202760)
#105=35 (Сверло ф3.8)
#106=7 (Зенкер ф6)
#107=11 (раскатник м4)
#108=26 (Сверло 122380 16 в гидрозажим)
#109=16 (Сверло 16 HSS)
#110=24 (Сверло ф10 122404 короткое направляющие)
#111=12 (Сверло 10 HSS)
#112=33 (Сверло 5 в удлинитель 16)
#113=15 (Фреза 6 202760 в удлинитель 16)
#114=1 (зенкер 6 в удлинитель 16)
#115=2 (развертка 8)
#116=5 (Сверло 3 вылет 45 мм)

G00 G17 G40 G80 G49 G90 

 

            

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

 

Следующие оптимизации будут позже вот список чем дальше хотелось бы поделится.

 

1) Удобная разработка и корректировка постпроцессоров, с помощью введения отображения,  списка функций как на картинке 1,2,3  

2) Программа для расчета трехмерного поворота точки в пространстве (это когда например есть четвертая ось но нет функции динамической трансформации координат)

3) Орбитальное точение на фрезерном станке (станок должен иметь функцию позиционирование оси шпинделя) 

 

1.JPG

2.JPG

3.JPG

333.JPG

  • Нравится 2
Link to post
Share on other sites


UnPinned posts
mr_Voden

@vasilevmoment Хоть и не пользуюсь SolidCam (по крайней мере, пока), но очень жду продолжения. Могу предложить только картинки под спойлер прятать - имхо, так будет легче читаться пост.

Link to post
Share on other sites
  • 4 weeks later...
Sword
01.05.2021 в 16:47, vasilevmoment сказал:

Удобная разработка и корректировка постпроцессоров, с помощью введения отображения,  списка функций как на картинке 1,2,3  

С удовольствием почитал бы, как это сделать. 

Я сам программирую в основном токарно-фрезерную группу, посты тоже сам редактирую. Вот, например, моя шапка УП.
https://yadi.sk/i/kLXQU092ATwYPA
Хотел бы добавить еще вывод вылета инструмента и конечной точки инструмента по оси Z (для того, чтобы оператору не приходилось искать ее в УП). Но пока не представляю, как это сделать.

  • Нравится 1
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.



  • Сообщения

    • karachun
    • karachun
      Наверное уже поздно, но... Mesh->Mesh Control->Approach On Surface Выбрать вариант Matched - Linked to Surface (я знаю что на картинке выбран не тот вариант)   И так и эдак. Если можно объединить детали и построить единую сетку или сшить узлы то это лучше всего. Если нельзя задаем склейку (Glued) и решатель сам позаботится о соединении узлов - добавит жесткости между узлами. Если детали должны контактировать то можно вместо склейки задать контакт.   Я заметил что в среде пользователей Фемап есть постоянное непонимание отличий Contact от Glued. Вот в этой части дерева модели можно создать свойства двух типов. Первое это Contact, это контактное взаимодействие, как это описано в википедии - https://ru.wikipedia.org/wiki/Механика_контактного_взаимодействия Контакт может быть с трением или без. А есть вторая опция - это Glued. Вот это по принципу работы похоже на суперклей - соединенные участки сетки работают как единое целое. Иногда пользователи пытаются бездумно менять тип контакта, но очевидно что это абсолютно разные типы взаимодействия и каждый из них имеет свою область применения. Картинку бы еще. А то прутки могут быть сварены по разному.
    • gudstartup
      При нормальном ладдере  в ней нет необходимости!
    • fakemade
      Имеется ввиду, если между деталями контакт, трение может быть, то есть это две разных детали в принципе. Простейший пример - задача Герца, там реализуется контакт. А по вашей части почти не смогу подсказать, со сваркой не работал, слабо представляю пока, как это реализовать. Но то, что сетка будет общая - это точно.   Ну, я работаю в Femap, там есть в инструментах Coincidents Nodes, задается расстояние, на котором сливать узлы и сливаются.
    • Кит
    • gruzevsky
      нет, не разобрался как их восстановить. есть где почитать про процедуру? инициализация осей - это выход в референт? после запуска гидравлики кнопка старт. 
    • Nikk24
      @fakemade "если в реальности две детали каким-то образом между собой взаимодействуют" - вот тут непонятно. Что имеется в виду под "взаимодействуют"? Если деталь сварная, - она состоит из двух обечаек и двух прутков круглого сечения, сваренных между собой, - нужно сливать узлы сетки? Прутки придется моделировать объемными элементами, обечайку - Plate. Строю сетки на на них и потом Merge Coincidents Nodes?  
    • doob
      Ug_user прав. X,Y,Z - это точка центра фрезы. Но от этого не стало понятнее, что же получилось неправильно. Потому решил пояснить. В 3Д-коррекции как и в контурной есть два популярных способа задания коррекции. 1. В программе задается контур детали (это для контурной, а для 3Д точка поверхности инструмента). Стойка сама вычисляет точку центра инструмента исходя из установленных величин размеров инструмента (корректор). 2. В программе задается сразу центр инструмента для конкретного размера фрезы. В этом случае, если поставить корректоры равными нулю, а физическую фрезу установить с размерами, равными расчетным, то получится чистая расчетная обработка. А коррекция достигается отклонением от этих расчетных размеров инструмента.   Подавляющее большинство систем выдает программы с вектором нормали, обеспечивающие 3Д-коррекцию, именно по варианту 2. Или по умолчанию по варианту 2. В вашем случае, Павел1, работает вариант 2. То есть, в корректоре следует указывать не размеры устанавливаемого инструмента, а отклонение от расчетного инструмента. И получите полноценный желаемый результат.   Конечно, можно настроить и вариант 1. Но придется прилично поработать. :-)
    • Bimka
    • vad0000
      Машинные параметры Вы восстановили? И как Вы делаете инициализацию осей?
×
×
  • Create New...