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

UnigraphicsNX help


Alexandr

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

Протянуть образующую по двум направляющим.

Можно с заметаниями поиграться:

https://docs.plm.automation.siemens.com/tdoc/nx/10/nx_help/#uid:index_modeling:xid868388:create_freeform_fff_string

https://docs.plm.automation.siemens.com/tdoc/nx/10/nx_help/#uid:index_modeling:xid868388:id651751:create_freeform_swept_ov:create_freeform_swept_how_to_1_2_guide

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

https://docs.plm.automation.siemens.com/tdoc/nx/10/nx_help/#uid:index_modeling:xid868388:id651691:create_freeform_fff_curve:create_freeform_alignment_option_rt

https://docs.plm.automation.siemens.com/tdoc/nx/10/nx_help/#uid:index_modeling:xid868388:id651691:create_freeform_fff_ruled_over:fff_ruled_options


Только "нижнюю направляющую окружность" разбейте заранее на такое же кол-во сегментов, как у "верхнего напрвляющего прямоугольника" - т.е. если сверху 4 прямых + 4 дуги, то в нижнем сечении тоже должно быть 4+4=8 дуг.

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


Протянуть образующую по двум направляющим.

Можно с заметаниями поиграться:

https://docs.plm.automation.siemens.com/tdoc/nx/10/nx_help/#uid:index_modeling:xid868388:create_freeform_fff_string

https://docs.plm.automation.siemens.com/tdoc/nx/10/nx_help/#uid:index_modeling:xid868388:id651751:create_freeform_swept_ov:create_freeform_swept_how_to_1_2_guide

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

https://docs.plm.automation.siemens.com/tdoc/nx/10/nx_help/#uid:index_modeling:xid868388:id651691:create_freeform_fff_curve:create_freeform_alignment_option_rt

https://docs.plm.automation.siemens.com/tdoc/nx/10/nx_help/#uid:index_modeling:xid868388:id651691:create_freeform_fff_ruled_over:fff_ruled_options

Только "нижнюю направляющую окружность" разбейте заранее на такое же кол-во сегментов, как у "верхнего напрвляющего прямоугольника" - т.е. если сверху 4 прямых + 4 дуги, то в нижнем сечении тоже должно быть 4+4=8 дуг.

Спасибо огромное, буду изучать)

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

Ёперный театр! Опять @Инкогнитo ранили  :gun_guns:

А я все жду видоса, так как свой станок на машинкодсимулейшн уже в хламину поломал. :sad:

На счёт видоса - есть что показать, но всему своё время...
Изменено пользователем Blurp
Ссылка на сообщение
Поделиться на других сайтах
Ёперный театр! Опять Инкогнитo ранили :gun_guns: А я все жду видоса, так как свой станок на машинкодсимулейшн уже в хламину поломал. :sad:

Сдулся крендель. И мне модель станка не прислал, хотя неделя с лишним прошла уже. Видно, зажал он 50000, которые за рабочий пример обещал. Надо у своего юриста спросить, можно ли товарища за упущенную выгоду привлечь. :bash: Хоть какую неустойку срубить, а то я уже планов на этот полтинник настроил громадьё. :biggrin::drinks_drunk::cool:

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

@vicebear, Эх, мне бы ваш задор. Пока, как новичок, мало смешного нахожу в затронутой теме.

Не сказать, чтобы прям покой и сон потерял в желании разобраться, но кое-что попробовал.

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

Начал с того, что в папке с примерами нашел этот станок. И стандартные посты при нём.

возьми и ПП из стандартной базы

Вывод: ось стола не подворачивается. :no: 

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

Результат хоть и отрицательный, но, хорошо уже то, что @Инкогнитo заставил почесать репу.

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

Помогите. Станок DF3  У станка 2 револьверные головки. 1 3 5 7 9 11 позиции. 2 4 6 8 10 позиции.
Если после точения (1 револьверная головка) надо что то рассверлить или протачить (2 револьверная головка) то надо что бы 1 револьвераня головка заняла позицию 11( там нет инструмента) иначе возможно столкновение инструментов. 

Как в постпроцессоре это описать? может кто помочь? 

Что то типа: if tool number = 1 3 5 7 9 {какая нибудь переменная = true } else {какая нибудь переменная = false}
if tool number = 2 4 6 8 10 and значение переменной true, when. mom_do_template povorot golovi

а в шаблоне "povorot golovi" будет содержаться следующее. 
T1111 - поворот в 11 позицию 
G04I6 - задержка по времени.

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

У меня есть немного допиленный стандартный 5-ти осевой В-голова С-стол. Ось В у меня поворачивается на +-100 градусов, а ось С сдвинута на столе станка до упора к левому краю, поэтому реально обработать деталь стоящую на поворотном столе со значениями В от +5 до -100 градусов. Я все эти данные забил в пост и он мне совершенно корректно пересчитывает углы с учётом моих ограничений без кинематической модели станка. Чтобы сделать доворот по осям при превышении XY уже нужна модель станка, нужно несколько MCS уже раскидывать, нужна будет процедура, которая лимиты проанализирует и поворотные оси довернёт. Если бы я эту процедуру писал, то вставил бы её, например, в MOM_before_motion. Кстати, вряд ли эта процедура в постах "из коробки" есть.

P.S. Я раньше писал, что NX имеет возможность учитывать кинематику станка, так же как и Спрут. Тут, насколько я понял, разница в принципе работы такая: в Спруте сначала определяется станок и потом вокруг него создаётся всё остальное; в NX вы можете для подавляющего большинства изделий писать обработку детали без привязки к кинематике станка, а для сложных случаев вы можете подгрузить станок и сделать обработку уже с учётом его разрешённых перемещений. Меня больше другой вопрос интересует, я этот вопрос уже здесь поднимал: какой алгоритм обработки перемещений по осям при превышении лимитов используется в Спруте? Составить алгоритм для доворота поворотных осей при превышении лимитов XY не очень сложно, а вот по какому принципу производить отходы-подходы при непрерывной 5-ти осевой обработке при достижении максимального угла поворота осей? В NX я такие перемещения могу в том же PB_CMD_init_rotary прописать, а в Спруте мне что, придётся кинематическую модель станка потрошить?

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

Уже 3 день ломаю голову(сижу с книжкой в обнимку :no: ), как описать что бы при повороте 2ой револьверной головки у токарного станка, 1 головка занимала 11 позицию.(иначе инструменты могут столкнуться )Неужели тут нет программистов? (Хотя бы идеюподскажите, если лень написать программку)

 

global mom_tool_number
global mom_next_tool_number

if {$mom_tool_number==1 || $mom_tool_number==3 || $mom_tool_number==5 || $mom_tool_number==7 || $mom_tool_number==9} 
set mom_tool_number 1
if {$mom_next_tool_number==2 || $mom_next_tool_number==4 || $mom_next_tool_number==6 || $mom_next_tool_number==8 || $mom_next_tool_number==10 }
set mom_next_tool_number 1 else set mom_next_tool_number 0
If {mom_tool_number == mom_next_tool_number}
MOM_do_template smena_11
else
MOM_do_template smena_bez_11

Изменено пользователем Artas28
Ссылка на сообщение
Поделиться на других сайтах
Неужели тут нет программистов? (Хотя бы идеюподскажите, если лень написать программку)

Какой код вам надо в итоге получить на стойке ЧПУ?

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

Какой код вам надо в итоге получить на стойке ЧПУ?

Постпроцессор я уже сделал. мне только это осталось настроить поворот головы в 11 позицию.

Инструмент  там поворачивается командой T0101 где сначал номер инструмента а потом корректор.

Если я работаю только первой револьверной головой. то у меня там всё сделано T0101 T0303 итд.

А если сначала работала 1 голова, а потом мне надо просверлить или расточить отв. нужно что бы было так 

N20T1111-  1 голова поворачивается в 11 позицию где нет инструмента

N25G04I6 - задержка по времени 6 секунд.

N30T0202 - 2 голова поворачивается в нужную позицию.

Вот я хочу сделать 2 шаблона. в одном будет [ T1111 G04I6   T($tool_number) а  второй обычный T($tool_number) 

И написать условия, если  работа идет только с 1 головой ( резцы) то использовать обычный шаблон  T($tool_number) а если   был (1 3 5 7 9- т.е. нечетный инструмент) а потом вызывается инструмент из 2ой головки( сверла и расточка) (2 4 6 8 10) то использовался второй шаблон (T1111 G04i6 T($tool_numbber) 

Надеюсь понятно обьяснил :D

Ссылка на сообщение
Поделиться на других сайтах
Вот я хочу сделать 2 шаблона. в одном будет [ T1111 G04I6 T($tool_number) а второй обычный T($tool_number)

Т.е. каждый раз когда вы берёте чётный инструмент вам нужно повернуть первую голову в 11-ую позицию? Тогда можно номер инструмента на чётность проверить и в случае, если инструмент чётный вывести нужный вам код в виде текста, а не шаблона:

MOM_output_literal "T1111"
MOM_output_literal "G04I6"

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

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

а как проверить инструмент на четность?

if( $var & 1) {}  нашел в интернете, работать  будет?

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

а как проверить инструмент на четность?

if( $var & 1) {}  нашел в интернете, работать  будет?

Не знаю, если честно, как эта конструкция работать будет. Можно как-то так: if { int ([expr $var/2]) == [expr $var/2] }.

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

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

global mom_tool_number mom_next_tool_number
 
if {$mom_tool_number %2==0}{
set t1 0}
else
{set t1 1}{
if {$mom_next_tool_number %2==0}{
set t2 1}
else {
set t2 0}
}
 
if {t1==t2}
MOM_output_literal "T1111"
MOM_output_literal "G04I6"
MOM_do_template snena_t
else
MOM_do_template snena_t
 
 

post-54063-0-76786100-1479915233.png

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

Количество открытых скобок должно быть равно количеству закрытых.

P.S. По скобкам и правильной записи очень длинных выражений - это был мой первый зачёт 27 лет назад в школе на УПК по очень крутой в те времена специальности "оператор ЭВМ". У нас были ПЭВМ "Агат".

Ссылка на сообщение
Поделиться на других сайтах
global mom_tool_number mom_next_tool_number
 
if {$mom_tool_number %2==0} {
    set t1 0
} else {
    set t1 1
}
if {$mom_next_tool_number %2==0} {
    set t2 1
} else {
    set t2 0
}
 
if {"t1"=="t2"} {
    MOM_output_literal "poverni_mne_golovy"
 
} else {
    MOM_output_literal "Ne povorachivai"
}

поправил и упростил. При смене инструмента, при использовании шаблона выдаёт ошибку MOM_first_tool и что то там. 
А так при смене 1 инструмента на 2  выводит 2 строчку, хотя должен выводить 1 =((
Я плакать Т_Т
 
Он что не может понять где текущий tool_number а где next_tool_number?
Изменено пользователем Artas28
Ссылка на сообщение
Поделиться на других сайтах

Может быть вы хотели сравнить $t1==$t2?

Отлично! Теперь заработало! Совместными силами справились)) осталось разобраться с шаблоном. 

Спасибо:) с меня шоколадка )))

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

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

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • ДОБРЯК
      Хорошо. Можно тоже самое написать еще раз. Вы ищите решение СЛАУ. И чтобы найти это решение вы задаете уравнение, что  перемещение какой-то степени свободы равна какому-то числу. Но в данном примере всего два уравнения, всего две степени свободы.  И сказав, что перемещение первой степени свободы равно 1, например, у вас остается одно уравнение с одним неизвестным.  А если у вас СЛАУ из 100 уравнений, вы скажите, что перемещение первой степени свободы равно 1, например. Но как найти остальные 99 неизвестных не решая СЛАУ? Нужно решать в общем случае?   Решайте любым методом. Вы скажите нужно СЛАУ решать для нахождения собственных векторов.  Предлагаю двигаться маленькими шажками. Если нужно решать СЛАУ, то это один путь развития диалога, если не нужно, другой.
    • bubl leg
      Кстати, может кто знает - возможно ли в Солиде, наложить на плоскую/круглую/произвольной формы деталь - картинку чёрно-белую (карта высот) и выдавить её в виде объёмной рельефной поверхности? Понимаю, что солид не совсем для этого -но чем чёрт не шутит...:-) Такой инструмент есть в 3D Studio Max - модификатор displace. "Знал, умел, практиковал". :-) Итак?
    • Nikomas
      Господа, ищу того, кто сможет внести изменения в программу ПЛК станка. В частности необходимо убрать инициализацию цепи безопасности (проверку замков дверей) при загрузке Sinumerik. Образ скачан и заархивирован в Step7.
    • Anat2015
      Какой станок, какое ЧПУ, какой магазин, и т.д. и т.п.? Задаете вопросы, как будто здесь все экстрасенсы.
    • Fedor
      верхняя линия это если не учитываем давления воздуха, а нижняя если учитываем.  То есть если не учитываем то считаем грунт более прочным чем на самом деле ...  
    • maxx2000
      @asd выводит нормально, с постпроцессором что-то  
    • Orchestra2603
      Это уже больше похоже на конструктивный разговор.   Я это понимаю. Мой тезис заключается в том, что когда мы ищем собственные вектора, мы вообще не решение ищем. Ну, не совсем решение, если хотите. В терминах СЛАУ можно сказать, что мы ищем базисные вектора фундаментальной системы решений. Нам не нужно что-то фиксировать и вводить какие-то точки отсчета. Нам нужно установить все пространство возможных решений однородной системы целиком, и потом из него просто выделить некоторый базис. Это не то же самое, что найти решение СЛАУ.   Про факторизацию... В моем понимании факторизация (в частоности, матрицы) - это разложение на множители (здесь на матричные множители), так чтобы получились какие-то другие матрицы, которые обладают какими-то выгодными свойствами (разложение Холецкого для положительно определенных матриц, LU, QR, QZ, сингулярное разложение и т.д.) В моем понимании это обычно нужно для повышении эффективности последующих операций, ускорения работы алгоритмов, для лучшей сходимости итерационных методов, где-то для эффективной параллелизации и т.д. Ничего не слышал раньше о ситуациях, когда факторизация жизненно необходима, и без нее задача не решается. Как я это вижу, существует много различных способов факторизации матрицы. Я просто не могу понять про какую конкретно факторизацию вы говорите и не могу понять, как она должна помочь, и почему ее невозможно сделать для вырожденной матрицы? Я бы, честно говорю, хотел разобраться в этом. Возможно, я что-то вообще неправильно понимаю.
    • asd
      Надеюсь, это то, что вы имели в виду.   TOOL PATH/THREAD_MILLING_1_COPY,TOOL,STD_DRILL TLDATA/TCUTTER,10.0000,0.0000,0.0000,80.0000,10.0000,8.0000 MSYS/0.0000,0.0000,0.0000,1.0000000,0.0000000,0.0000000,0.0000000,1.0000000,0.0000000 $$ centerline data PAINT/PATH PAINT/FEED PAINT/SPEED,10 PAINT/COLOR,186 FROM/0.0000,0.0000,50.0000,0.0000000,0.0000000,1.0000000 LOAD/TOOL,1 RAPID GOTO/0.0000,0.0000,3.0000 PAINT/COLOR,181 FEDRAT/MMPM,500.0000 GOTO/0.0000,0.0000,-33.0211 PAINT/COLOR,6 FEDRAT/250.0000 GOTO/21.6792,-1.2470,-33.0211 CIRCLE/21.7509,0.0000,-33.0000,0.0000000,0.0000000,-1.0000000,1.2491,0.0100,0.5000,10.0000,0.0000 GOTO/23.0000,0.0000,-33.0000 PAINT/COLOR,31 CIRCLE/0.0000,0.0000,-4.5000,0.0000000,0.0000000,-1.0000000,23.0000,0.0100,0.5000,10.0000,0.0000,TIMES,19 GOTO/23.0000,0.0000,-4.5000 PAINT/COLOR,1 CIRCLE/21.7509,0.0000,-4.4789,0.0000000,0.0000000,-1.0000000,1.2491,0.0100,0.5000,10.0000,0.0000 GOTO/21.6792,1.2470,-4.4789 GOTO/0.0000,0.0000,-4.4789 PAINT/COLOR,103 RAPID GOTO/0.0000,0.0000,50.0000 PAINT/FEED,NOMORE PAINT/SPEED,10 PAINT/TOOL,NOMORE END-OF-PATH  
    • gudstartup
      @Aiche если у вас осталасть на столе привязанная деталь  то можете выставить нули так чтобы значения совпали и ничего снимать не придется к тому же от того что вы снимите ничего не поменяется ведь под кожухами у вас нет никаких 0 меток ни направляющих ни на станине очень неприятные. надо было оставить режим принудительного обнуления @Aiche и срочно сделайте нормальный бэкап в вашем кроме программ ничего нет. хотябы копию памяти надо иметь а то может и в чпу батарейка сесть и тогда будет очень плохо
    • Fedor
      То есть грунт физически находится в сжатом состоянии на поверхности земли. И при вычислении связности грунта логично бы учесть это при построении предельного графика сигма - тау... 
×
×
  • Создать...