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

Про цилиндрическую интерполяцию, и не только...


Ug_user

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

Позвольте еще раз коснуться этой темы, думаю, что есть что рассказать. 

Здесь, на форуме, уже и не вспомню в какой ветке, пользователь с ником glog72 долго и не сильно успешно пытался решить задачу наворачивания плоского контура на цилиндрическую заготовку. Приведу пример его заготовки, и задача ставилась - "помогите правильно навернуть мой контур на изделие".

Выяснилось, что DXF нужно правильно из CorelDRAW экспортировать, разбивая его на линии и дуги, а не выбрасывать как единый сплайн, кто-то еще каких-то хороших идей подбросил, одним словом - стало у него все получаться с "наворачиванием". Надо сказать, что в этой операции ничего хитрого и нет. Итак - есть контур на поверхности цилиндра:

 

Далее выясняется первое "отягощение" - изделие имеет цилиндрическую часть и прямолинейные участки, на которые уже Wrap-Unwrap не навернуть. Слово за слово (типа - а зачем все это нужно?), выясняется, что все потуги "навернуть" связаны с тем, что нужно отфрезеровать на цилиндрической части с примыкающими прямолинейными участками некий узор-рисунок, на определенную глубину, и этот узор представлен контурами, импортированными из CorelDraw. 

Вот как все выглядит на плоском изделии (в IE картинка "оживает" сразу, в Opera нужно на нее щелкнуть.. ): 

На самом деле, даже на плоской обработке автору той темы хотелось получить "подрезку" углов при обработке конусной фрезой:

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

то с вопросом а как это отфрезеровать на "безмозглом" китайском станке - решили поэкпериментировать. 

Я уже писал на этом форуме о подобном решении, года три назад сделал UGOPEN DLL, которая "наворачивала" собственно плоскую траекторию обработки на цилиндр указанного радиуса, вот один из примеров:

Один из примеров

Но этот подход мне не очень нравится, нужно сначала отпроцессировать траекторию одним специальным постом, потом создать новую операцию, которая на основе плоской траектории навернет эту же операцию на цилиндр. Не комильфо. 

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

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

Для отработки идеи сделал простейшую CSE-модель "безмозглого" 4-осевого станка, безмозглый - у него нет ничего а-ля TRAORI G43.4 и т.п., тупо G1 X Y Z B в кадре, и все.

И - вот пример симуляции после постпроцессирования (щелкайте по картинке):

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

и точно также "навернули" эту обработку. Тут батарейки поменял!

Ссылочка на видео

Вот что получилось в результате:

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


Спасибо на добром слове! Не буду скрывать, приятно такое слышать от коллег по цеху.

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

Да, всегда импонировал ваш основательный подход к вопросу.

Могу подсказать следующий шаг - наворачивание на произвольную поверхность. Даже лучше сделать в виде отдельной утилиты, "пережевывающей" плоский G-code и выдающей код, наоженный на произвольную поверхность. Не знаю, озолотитесь ли, но спрос должен быть бешеный. 

Ссылка на сообщение
Поделиться на других сайтах
плоский G-code и выдающей код, наложенный на произвольную поверхность

О-да-а-а :clap_1: Ждём ! 

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

Хм... А пуркуа бы и не па?

На самом деле - уже делал нечто подобное. Нет ровно ни одной проблемы заменить XY на UV по поверхности, а Z откладывать по нормали к поверхности в этой точке. Здесь вот какие засады-проблемки есть:

  • Искажения от наворачивания плоского на неразворачиваемую поверхность. С этим можно мириться, тем более что однозначное соответствие XY -> UV дает единственное решение.
  • Плоский квадрат 100х100 будет навернут в непонятную фигуру с непонятными размерами. Не для всех поверхностей параметризация совпадает с длиной дуги. 
  • Как позиционировать? Хотя - можно указывать точку на поверхности и направления UV .

О! Это я уже на "background-e" обдумываю пути реализации! 

Сделаю, пожалуй... 

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

@@Ug_user, а эту верёвку тоже фрезеровали, или это отдельный декор ?

post-29365-0-61528900-1411397872.png

P.S. Конечно здорово получилось ! И орёл - супер, просто мебель , достойная президента.

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

Это подстава. Если ВНИМАТЕЛЬНО посмотреть на фото готовой отфрезерованной детали, рядом, в МДФ пыли валяется кусочек наклейки, под 45 обрезанный. Это та самая косичка...

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

просто мебель , достойная президента.

Осталось только достойного президента найти.

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

Что тут сказать... шикарно, просто шикарно! :worthy:

 

ps еееххх... мне еще расти и расти :smile: 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • gudstartup
      нет это уж вы замените то же ваща цитата... я писал это чтобы вы осознали скорость процессов и во сколько раз примерно надо их замедлять длядиагностики вприглядку. или может вы предложите отдельный диагностический режим в ладдере прописать. для вас это ерунда так себе задачка на день и таймеры туда свои секундные вставите а лучше минутные да что вы говорите английский выучили аргументом является ладдер а вы его не видели вот когда увидите тогда и выдвигайте свои выводы вам ладдер скинуть от станка где цикл смены длиться 1 сек? вы таких тоже  не видели?  
    • Guhl
      Короче, аргументов у вас нет. Только порядок размерности вас смущает. Специально для вас: "Х сек" в предыдущем сообщении замените на "Х мсек". Надеюсь так вам понятнее. Видите ли, у инженеров не принято делать безосновательных заявлений, поэтому я вас спросил про аргументацию. Но вместо аргументов только "нет", "нет и еще раз нет", ну и шутка юмора в конце концов из-за буквы Х. Кстати, "Х" - это не ХА, а ИКС
    • gudstartup
      с х сек вы х получите цикл смены а вот мсек другое дело  
    • Guhl
      Вы очень любите делать выводы, но не всегда верные.   Для чего по вашему нужны таймеры в цикле смены, если не для контроля механизма и датчиков? Про 1 сек это был пример. Пусть будет "Х сек".
    • gudstartup
      вы опять упорствуете может вам ладдер поможет понять с какой скоростью меняется gray code на входах плк. у на смена происходит за 1 сек весь цикл это вы проконтролируете time over atc  а никак не датчики положения руки ваш аргумент опять не из той оперы это вы тоже случайно описались?
    • Guhl
      Обоснуйте Мой аргумент такой: таймеры нужны для контроля датчиков и механизма, то есть, если, например, рука совершает поворот за 1сек, то таймер логично настроить на 2сек На 1,02 сек его настраивать будет неверно, и даже на 1,2 сек настраивать нелогично, из-за механики и даже может быть допуска частоты сети Пароль могут ставить не для защиты интеллектуальной собственности, а от "шаловливых рук". И я не утверждал, что там именно такой пароль, а лишь упомянул, что такие пароли встречаются 
    • gudstartup
      нет и еще раз нет ну конечно дму везде одинаковые пароли ставит не смешите  да еще и из одной буквы.... это гениально @Guhl вы в курсе сколько длится цикл смены и насколько надо уменьшить скорость для того чтобы вы что то смогли увидеть вашим небыстрым глазом к тому же есть режим трассировки сигналов а автор еще не нашел сигнала разжима цанги
    • Guhl
      Да Нет Тип чпу не влияет на содержание пароля
    • gudstartup
      нет зачем автору пароли у него ладдер открывается и так и не путайте mitsubishi и фанук вот для этого и настроены таймеры и очень жестко настроены милисекунды
    • Pervux
×
×
  • Создать...