Alexey8107

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

Pinned posts

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

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

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

Поделиться сообщением


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


UnPinned posts

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

Поделиться сообщением


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

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

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

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

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

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

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

Изменено пользователем Claus

Поделиться сообщением


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

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

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

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

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

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

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

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

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

 

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

Поделиться сообщением


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

ID: 8   Опубликовано: (изменено)

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

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

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

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

 

 

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

 

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

 

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

Изменено пользователем SAPRonOff

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 28.12.2018 в 12:45, Alexey8107 сказал:

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

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

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

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

Поделиться сообщением


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

ID: 10   Опубликовано: (изменено)

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

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

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

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

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

Изменено пользователем Alexey8107

Поделиться сообщением


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

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

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

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

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

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

Поделиться сообщением


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

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

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

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