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

Автоматический пересчет размеров корпуса.


Alexey8107

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

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

Создаю в сборочном чертеже глобальную переменную в которую кидаю значение setg("Var1",5), при этом в глобальных переменных я вижу что создается переменная Var1 со значением 5. Открываю файл фрагмента корпуса. Здесь для проверки создаю обычную локальную переменную, к примеру h, и кидаю в нее getg("Var1",1) значение глобальной переменной. Вижу что присваивается значение h=5, вроде все норм пока. Но стоит в сборке сменить значение setg("Var1",10), вижу что глобальной переменной присвоилось новое значение 10, но в файле фрагмента значение h остается равным 5, хотя открыв здесь же глобальные переменные я вижу значение 10. Тоже самое происходит если присваивать значение из /параметры/глобальные переменные ручками. Т.е. не происходит обновления значения переменной по getg("Var1",1). Никакие действия в виде пересчетов, полных пересчетов, перезапуска тфлекс не помогают получить правильное значение по getg("Var1",1), даже в файле сборки я получаю старое значение. К с ними правильно работать? Делал все по справке.

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

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


Попробуйте использовать другой подход вместо глобальных переменных. Удобнее будет воспользоваться "Автосохранением". Во фрагментах - просто нужные переменные делаете внешними, а в сборке у таких фрагментов включаете автосохранение. И после сохранения сборки, все фрагменты получат значения переменных и тоже перестроятся.

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

Т.е. для примера мне нужно изменять три переменные, предположим A,B,C. Во всех фрагментах корпуса (допустим их пока 6, будет больше когда все доделаю) я назначаю эти переменные внешними и присваиваю временные значения. Далее вставляю их в сборку, для каждого элемента корпуса в сборке ПКМ/параметры операции/Операция ставлю галку Автосохранение. Я правильно понимаю?

Но не понимаю как их редактировать прямо в сборке?

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

Т.е. грубо говоря, от переменной А будет зависеть толщина материала. Соответственно в зависимости от этой переменной в первую очередь должны изменяться линейные размеры панели, эти зависимости заданы во фрагментах. В зависимости от значений А и В будут изменяться крепежные паз/гребни. Эти зависимости также заданы в фрагментах. От значения С будет зависеть припуск, который и будет изменяться прямо перед резкой, чтобы подобрать оптимальное значение. 

В идеале как я представляю должно выглядеть так. Я задаю три необходимых параметра А,В и С. Полагаю как глобальные, но это не принципиально. Из заранее созданных фрагментов собираю корпус из материала, толщиной к примеру 5 мм. После того как все готово, оказывается что по факту толщина материала 5,1 мм. Соответственно мне придется оперативно пересчитать все размеры корпуса, причем таким образом, чтобы внутренние размеры также были строго выдержаны. (Все это понятно делается при помощи переменных А,В,С и привязок в сборочном чертеже.) Само собой в фрагментах мне необходимо использовать эти самые переменные А,В,С, которые должны передаваться в фрагменты, фрагменты в идеале пересчитываться, и изменяться сборка в соответствии с пересчитанными размерами. Хотя в принципе достаточно чтобы изменились переменные А,В,С и их "увидели" все фрагменты, дальше можно и вручную пересохранить.

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

Но не понимаю как их редактировать прямо в сборке?

Создайте одноимённые переменные в сборке. Во фрагментах в этих переменных продублируйте имена в связи при вставке в сборку, чтобы автоматом при вставке они подхватывались. А в тех которые уже вставлены: ПКМ - Переменные и свяжите с переменными в сборке.

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

Вот, все получилось. Спасибо. Оказалось все проще чем я думал. Попробовал оба варианта, оба работают.

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

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

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

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

Допустим хочу вычертить, например шкаф и автоматически отправить панели на раскрой из одного большого листа, автоматически расположив в оптимальном виде все нужные панели на одном большом листе листового материала заданных размеров. Если одного листа не хватает, добавлять второй, третий... Это в общих чертах. Как я это вижу (знаю есть t flex мебель, но этот модуль надо покупать, а поставив взломанный на лицензионный T flex я получу по шапке :) от админа). Можно делать так, Создать прямоугольную панель с внешними переменными по длине и ширине и вставлять их в сборку, задавая размеры. Этот путь в принципе мне подходит, т.к. нет задачи в серийном производстве, это единичные проекты чисто для собственных нужд. Но возникает вопрос, как быть с панелями отличающимися от прямоугольной формы и как выдать сборку на раскрой из большого листа листового материала автоматически? Если бы не такой мощный инструмент как t flex, можно было бы и пережить. Но хочется знать и изучить сам САПР.

Как хотелось бы это делать:

1. Как я понимаю в первую очередь необходимо задать габариты сборки.

2. По внешним габаритам создать внешний корпус, причем размеры панелей должны задаваться двумя способами. Это кликом мышки по трем точкам, это длина, высота и ширина в случае если панель прямоугольная. Толщина панелей должна быть стандартной, к примеру 6 мм. и в случае необходимости должна меняться вручную. И второй вариант, это с привязкой новой панели к уже созданной с возможностью вручную задать один или несколько размеров. Т.е. размеры новой панели будут задаваться в зависимости от того, куда я ее буду привязывать.

3. Как быть если панель не прямоугольная или с вырезами?

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

5. После того как сборка готова, ее надо вывести на раскрой с оптимизацией на лист заданных размеров(размеры могут быть самые разные), для минимизации обрезков, также при выводе необходимо учесть ширину реза. Если это не возможно сделать либо слишком сложно, то в принципе достаточно будет спецификации, с этим я уже разобрался довольно неплохо.

 

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

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

@Alexey8107  с наступившим :)

4 часа назад, Alexey8107 сказал:

знаю есть t flex мебель, но этот модуль надо покупать

а модуль оптимизации раскроя не хотите попробовать? но этот модуль коммерческий :(  См. вложение PDF. + есть 2D чпу под плазмо/лазо-резку.

 

 

Если нет возможности пользоваться модулем раскроя, то Ваш вариант - встроенный штатный модуль ТФ оптимизация, с итерационным решателем:

 

T-FLEX Раскрой. Пособие по работе с системой.pdf

 

Если хотите совсем штатными средствами обойтись: прикладывайте файлы что есть на входе.

Изменено пользователем SAPRonOff
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
Богоманшин Игорь
В 28.12.2018 в 12:45, Alexey8107 сказал:

Сейчас делаю так, каждую панель корпуса делаю в отдельном фрагменте, который вставляю в сборку на нужное место.

Мы обычно такую задачу решали "сверху вниз". То есть создавали сборку, в ней все панели корпуса. Переменные задавались в сборке. Детали "панели" сохраняли с сохранением ассоциативности. После всех подгонок/согласований, проверок по сборке восстанавливаешь ассоциативность - все файлы "панелей" получаются нужного размера с нужными допусками. Кстати, все 3Д профили для панелей старались сделать на одной рабочей плоскости.

Для проверки собираемости в сборку изделия вставлялся файл сборки "корпуса".

Но ваш путь тоже рабочий! Лучшая дорога (решение) - знакомая дорога (решение)!

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

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

В принципе это самый для меня удобный вариант. 

Только есть несколько вопросов.

1. Возможно ли сделать эти самые внешние переменный, либо этот единственный фрагмент, который буду перетаскивать в сборку таким образом, чтобы после привязки этого фрагмента в сборке, я мог бы указывать мышкой например на плоскость, ребро, вершину... а фрагмент автоматически просчитывает соответствующую переменную и подставляет ее. Т.е. по сути привязал фрагмент в сборке в нужном мне месте, указал до какой плоскости ее на вытянуть, затем до какой ширины тем же методом выбора 3D узла, плосткости, вершины, ребра...

2. Если я создам одну параметрическую модель плиты и буду ее же вставлять в сборку, не представляю как потом получить все панели по отдельности из сборки? Как вариант конечно можно каждую панель создавать сначала и вставлять в сборку. Либо как писал @Богоманшин Игорь делать сборку сверху вниз, но этот вариант для меня менее удобен.

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

. Возможно ли сделать эти самые внешние переменный, либо этот единственный фрагмент, который буду перетаскивать в сборку таким образом, чтобы после привязки этого фрагмента в сборке, я мог бы указывать мышкой например на плоскость, ребро, вершину... а фрагмент автоматически просчитывает соответствующую переменную и подставляет ее. Т.е. по сути привязал фрагмент в сборке в нужном мне месте, указал до какой плоскости ее на вытянуть, затем до какой ширины тем же методом выбора 3D узла, плосткости, вершины, ребра...

Адаптивный фрагмент и коннекторы. В адаптивном фрагменте информация берётся из геометрии. В коннекторах из внешних переменных. Давайте задачу, покажем реализацию.

3 часа назад, Alexey8107 сказал:

2. Если я создам одну параметрическую модель плиты и буду ее же вставлять в сборку, не представляю как потом получить все панели по отдельности из сборки? Как вариант конечно можно каждую панель создавать сначала и вставлять в сборку. Либо как писал @Богоманшин Игорь делать сборку сверху вниз, но этот вариант для меня менее удобен.

Вариантов много. Выгрузка, вставка фрагментов типа "матрёшка". Нужны задачи.

Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...
В 18.01.2019 в 18:01, SilaMusli сказал:

Давайте задачу, покажем реализацию.

Спасибо, пока не надо показывать, надо мне самому допетрить :) Если сам дойдешь, надолго запомнишь, а если покажут, то так и забудешь :) Но ссылки на ваши видео с адаптивными фрагментами и коннекторами приветствуются :smile:

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

При такой скорости реакции,

Снимок 2020_06_16_15_15.png

даже не могу представить, как скоро получится допетрить

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

:biggrin: Я не занимаюсь этим постоянно, время от времени нужно.

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • lem_on
      ну с дуру известно что сломать можно.
    • Viktor2004
      руку привязки так сломать легко
    • lem_on
      По моему вполне логично если станок вывалится в ошибку если рука не доехала до места. У меня так же если кулачки или деталь на пути, просто пихаеш ее до места и станок опять активен. Но нынешние пановья даже не могут написать модель станка.
    • Viktor2004
      Я согласен что скорее всего проблема механическая Но если логика прописана криво и возможно не предусмотрела остановку в промежуточном состоянии, разве не логично будет попробовать принудительно подав напряжение дернуть эту руку вверх-вниз? Возможно то что туда попало выпадет  
    • Guhl
      Если оставить за скобками вопрото том, что до м19 работает нормально, а после нет, то вы не считали сколько у него реально импульсов на оборот? с помощью стороннего плк, например  А если ориентацию м5 снимать, а не м20?
    • lem_on
      Что это за станок такой в котором сразу ладер ковырять надо, даже не смотря на возможность механической проблемы? Или профдеформация?
    • Viktor2004
      не сразу я понял в чем вопрос. Долго соображал что такое режим управления скоростью. При завершении ориентации PMC снимает сигнал G70.6 ? И если он после снятия сигнала продолжает удерживать шпиндель, при каких условиях эта ориентация все же снимается? После нажатия аварийного грибка или еще как?
    • Viktor2004
      Ладдер пришлите. Будем принудительно пробовать поднимать и опускать
    • streamdown
      Коллеги приветствую! IPS 8. Подскажите пожалуйста, кто какое серверное железо использует? Интересуют параметры при одновременной работе, ну например, 400 пользователей онлайн
    • gudstartup
      так он так и позиционируется по m19 pmc выдает g70.6 а чпу отвечает f45.7 но ориентацию и смещение в 4077 он отрабатывает нормально шпиндель встает ровно и смена происходит хорошо. вопрос почему после ввода команды управления скоростью он все еще продолжает контролировать число импульсов между нуль метками хотя в принципе уже должен отменить позиционный контроль и просто считать обороты по 0 метке как он это делает без М19? это все понятно но почему оно продолжает проверять это после завершения ориентации мне непонятно
×
×
  • Создать...