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

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


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 пользователей

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




  • Сообщения

    • maxx2000
      Подушную малость. Чё там. Уже в упор научились резьбу резать без выходной канавки?
    • ispite
      Здравствуйте, не могу построить стандартную сетку, что не позволяет дальше провести расчёт. Получается сделать сетку "на основе кривизны", но солид отказывается считать, после нажатия кнопки "запустить исследование" происходит сбой. https://disk.yandex.ru/d/D8wvRbYMW1lWjQ
    • ddm
      изготовить по чертежу с последующим покрытием,цинкование ,по 1000 шт каждой позиции ,предложение отправить на почту qwer463@yandex.ru
    • sklide008
      И еще можно ли задать горчие клавиши на кнопки открыть, скрыть и тд?
    • sklide008
      Подскажите, пожалуйста, в инвенторе есть такой пункт упорядочи по алфавиту дерево. Здесь найти такого не могу, пытался treesorter ставить но он добавляет просто в папку а не сортирует в дереве. Есть ли такой макрос чтобы все детали в дереве по порядку и алфавиту шли?
    • stanislavz
      Есть станок с данным контроллером. Все работает. Недавно была проблема с передачей данных - установил запасной контроллер. А запасной контроллер сказал нет работе. Проблема была в программе компьютера для передачи данных. Грустно, досадно, контроллер был куплен как рабочий. Как бы и не горит, но необходимо поправить. Плата управления с процессором mc68020, память hm628128-10. Память буферным питанием от 3 батареек + 0,5 Фарада на плате как буфер для замены батареек на 1 сутки. Лежало долго, без батареек. Симптомы: После первого включения, в памяти были и программы и параметры (0 странность). Честно, удивило. Но - система жутко тормозит, отклик на нажатие кнопки 3-5 секунд. В таком режиме сумел закачать машинные параметры под свой станок. Но это заняло час.. 4 строки и ждет секунд 10 итд. Есть видео. Перекинул с рабочего контроллера, БП, плату плц, ээпром плц - все то же. Проверил осциллографом кварцы живые , частота есть, амплитуда хорошая. 1 странность - после манипуляций по замене батарейки, старые записи из памяти исчезли. Ничего не коротнул. Возможно 0,5 Ф был не заряжен. Там тоже необходимы сутки для зарядки. Но как оно было запечатоно до этого - мистика. 2 странность. Если плата лежит ночь без питания, только с буфером - потом 2-3 минуты работает хорошо. 3 аналогично работает 2-3 минуты если питание отключить и очистить питание памяти (выпаял 0,5 Ф буфер с платы) Проверка памяти на старте есть. Проходит хорошо. На зависает, на холодную пайку не похоже. Шевелил / двигал все. Да и не виснет, именно тормозит. При том если оставить на час - тоже все стабильно плохо. Если набрать быстро 5 символей- экран сразу пуст, но после задержки символы будут на экране. Заказал второй процессор и память. 10 штук. Подавал прямо 5 вольт на память - все так же. Токи потребления между плохой и хорошей платой смогу проверит.    
    • brigval
    • Ветерок
      "увеличение оптимизации". Оптимизацию невозможно ни увеличить, ни уменьшить.
    • gudstartup
      @boomeeeer может от страны зависит
    • david1920
      нет время нет заниматься да и информации новой нет Это я на других станках делал
×
×
  • Создать...