Переменные

Автор Dirt, 10.08.06, 10:55:52

« предыдущая - следующая »

0 Пользователей и 1 гость просматривают эту тему.

Dirt

Использую Kompas v8+ SP1.
Проблема следующая:
Есть сборка, в ней 2 детали - основание и полка.
В одном из эскизов детали-основание есть спроецированная окружность, проставлен её диаметр и ему присвоена переменная (d). Эта переменная сделана внешней.
Далее в окне переменных детали, этой переменной присвоен псевдоним (тоже d) и эта переменная опять же сделана внешней.
Далее в окне переменных сборки этой переменной присвоен псевдоним (тоже d).

В одном из эскизов детали-полка есть окружность с проставленным размером диаметра (переменная d2).
Далее аналогично детали-основание.

В итоге имеем в окне переменных сборки 2 переменные - d и d2. Причем переменная d фиксированная, т.к. проекция (см. выше).
Переменная d2 связана с d следующим выражением d=d2-0.1.
А вот теперь суть проблемы:
Когда я ввожу в поле "выражение" переменной d2 следующее - d+0.1, то значение d2 не меняется, а значение переменной d (хоть оно и фиксировано) меняется исходя и выражения.
В итоге после перестроения рядом с деталью-основание и эскизом из этой детали появляется красная галочка, означающая, что изменения не приняты.

Вот собственно. Я уже и дополнительные переменные вводил ничего не получается.
Помогите пожалуйста.
Могу выслать файлы сборки, если нужно.

Panko

10.08.06, 16:42:19 #1 Последнее редактирование: 14.08.06, 14:53:08 от Panko
Dirtl, вышли все файлы сборки одним архивом на konst@vsmpo.ru - попытаюсь решить твою проблему...

Chertenok

Пересчет значений переменных зависит от порядка их расположения в списке на "Панели переменных". Возможно, дело именно в этом.  Переместите "d2" в списке ниже переменной "d" и все должно заработать нормально.

Dirt

Замена порядка переменных не помогла. Эту проблему решил вроде.
Всвязи с этим возникла другая просблема:
При смене управляющего размера меняется проекция и диаметр окружности, но при этом этот размер диаметра не присваивается переменной d. И в панели переменных остается старый размер.

Я уже начал сомневаться, реализуемо ли это вообще.

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

Panko

Ну и где? Мне ничего не пришло. Проверь адрес konst@vsmpo.ru

Dirt

Извини.
Как выяснилось это не имеет смысла, т.к. изменения не передаются в деталь. Т.е. в сборке ты видишь, что деталь изменилась, а если отдельно открыть деталь, то там этих параметрических связей нет, и деталь остается в своем первоначальном исполнении.
http://forum.ascon.ru/index.php/topic,2964.msg15673.html#msg15673
Цитата оттуда: Да, можно пользоваться переменными и создать полностью параметрическую сборку, но детали, которые изменились в сборке, в файле-исходнике не изменятся. Т.е. Вы увидите только в сборке внешний вид детали. Вобщем не используйте параметризацию в сборке, т.к. это только для "игры", пользы от неё 0!
Тоже оттуда: После того, как вал перестроится по заданой зависимости, нужно посмотреть значение конечной переменной, зайти в файл модели вала и ручками установить нужный диаметр. Автоматом перестраивается моделька только в сборке. Исходная модель *.м3д останется неизменной. В этом ОГРОМНЫЙ недостаток параметризации в сборке. Максимум куда можно передавать переменные, так это в верхушку дерева детали.

Проверял на простых примерах. Действительно так. Жаль.
Может ASCON исправят этот недостаток?

POMAH

ЦитироватьЦитата оттуда: Да, можно пользоваться переменными и создать полностью параметрическую сборку, но детали, которые изменились в сборке, в файле-исходнике не изменятся. Т.е. Вы увидите только в сборке внешний вид детали. Вобщем не используйте параметризацию в сборке, т.к. это только для "игры", пользы от неё 0!

Как это только для игры, я думал КОМПАС - серьёзная графическая прога, а оказывается нам предлагают в салочки порезаться. :?: :!:
У меня в голове не укладывается лишь то, что эскиз с внешней переменной меняется из детали, а деталь - из сборки нет. КАК ТАК!!!! :o:
И в итоге получился каламбур: сборка с деталью с новыми размерами, а деталь со старыми.

Прошу разработчиков серьёзно задуматься об этом или объяснить пользователям зачем имеются внешние переменные в деталях (m3d) для сборочных файлов (a3d) :um:

Ser_G

Ребята, спокойно!
Сначала разберитесь, для чего нужны переменные ;)
Смысл менять деталь из сборки?! В самой детали не интересно?
Я использовал переменные, когда было несколько однотипных деталей, которые отличаются незначительно. Например наличием/отсутствием одного-двух отверстий. Чертеж на такую деталь будет один, с переменными данными. Плодить десяток моделей - накладно. Выход? - переменные.
Также детали без чертежа или модели стандартных изделий, которых нет в библиотеках (например запресовываемых шпилек). Если 10 разных шпилек отличаются только длинной, что ж, 10 моделей делать?! Выход - переменные.
Это при том, что в переменных я далеко не эксперт и для меня там еще много неизвестного.

kaktus

Пункт 105.3 Руководства пользователя
ЦитироватьПри изменении параметров компонентов сборки файл-источник компонента остается прежним. Изменение отражается только на внешнем виде
вставки. Поэтому в одну и ту же сборку можно вставить несколько одинаковых компонентов с нужными значениями параметров.

А хотите перестроения детали стройте её в контексте сборки.

POMAH

Да, пример про шпильки хороший - один файл детали, а в сборке она принимает разные размеры в зависимости от переменной.
Что-то пытался сотворить в контексте сборке. Пробую!
Т.е. примерно понятно примение внешней переменной в сборке :beer:

POMAH

Есть задача с переменными, я что-то голову зачесал, не знаю как их связать.

Эта лопасть построена в контексте сборки и получена листовым телом до 2-х граней за вычитом по 2 мм с каждой стороны , сама лопатка сопряжена относительно средней плоскости между этими 2-мя гранями. Вопрос такой: как теперь связать одним массивом отверстий, чтобы при изменении длины в красной обводке, менялся размер в зеленой обводке (размеры 15 и 35 постоянные). Двумя массивами легко, но тогда придётся в сборке лопатки делать два массива по образцу болтового соединения!!!

The Engineer

Если не сложно можно модельку? не хота заново строить.

POMAH

Цитата: The Engineer от 01.09.06, 15:02:21
Если не сложно можно модельку? не хота заново строить.

Долго думать не стал, сделал 2-мя массивами, а одним невозможно, ибо размер 576 - зависимый (относительно двух граней) и численно в дереве не представляется. Т.е. переменные не с чем связывать.
Вот только такое решение, а разработчикам - пища на размышление!

POMAH

Оказывается на самом деле есть решение. Нужно задать зависимость между выходными и входными переменными... :um:

Но в 8+ обнаружил ошибку на данном уровне. Вот попробывал рассмотреть этот пример на простой модели. Только упустим, что тело выдавливания получается определенным значением (в итоге надо до плоскости, что не отображается в панели переменных)... Задается переменная на это расстояние, ставим ее внешней, поле значений становится недоступной. Задаем уравнение на вкладке "Уравнения", допустим b=a/2, поле значений для "b" становится недоступным после установки галочки на "внешнюю". Закрываем эскиз - всё работает (b меняется в зависимости от уравнения). Далее закрываем документ, открываем - не работает (ставит на требование перестроить, но не перестраивает), открываем эскиз, заходим в панель переменных, видим, что поле значений для "b" уже доступное, переставляем галочку (выкл.-вкл.), работает.  :w:
Вот и думаю - или ошибка моя, или - КОМПАСа :o:

Sinus

Цитата: Ser_G от 30.08.06, 08:31:10
Ребята, спокойно!
Сначала разберитесь, для чего нужны переменные ;)
Смысл менять деталь из сборки?! В самой детали не интересно?
Я использовал переменные, когда было несколько однотипных деталей, которые отличаются незначительно. Например наличием/отсутствием одного-двух отверстий. Чертеж на такую деталь будет один, с переменными данными. Плодить десяток моделей - накладно. Выход? - переменные.
Также детали без чертежа или модели стандартных изделий, которых нет в библиотеках (например запресовываемых шпилек). Если 10 разных шпилек отличаются только длинной, что ж, 10 моделей делать?! Выход - переменные.
Это при том, что в переменных я далеко не эксперт и для меня там еще много неизвестного.

Действительно для чего нужны переменные? И для чего нужны переменные в компасе? Для чего нужны переменные в других 3D CAD программах?
А почему бы и не менять детали при помощи переменных из сборки по примеру других CAD систем среднего и верхнего уровня? Связать например в сборке переменные разных деталей уравнениями?

Georg

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

sever13

Мне ясно стало прочитав этоу тему о том зачем нужны переменные в сборке модели. Ну у меня вот такой вот вопрос: Можно ли сделать так чтоб размеры именно в 2d чертежах можно было изменять из файла excel, чтоб при этом сам чертеж не изменялся, а изменялись только цыфры размеров?
Так как я понял по справке Компаса, и все что у меня получилось, это изминение размера вместе с изминением размеров самого чертежа (или его отдельных линий к которым были привязаны зафиксированные размеры).

Олег Лысенко

Цитата: sever13 от 09.04.08, 14:02:21
Можно ли сделать так чтоб размеры именно в 2d чертежах можно было изменять из файла excel, чтоб при этом сам чертеж не изменялся, а изменялись только цыфры размеров?


Попробуйте http://kompas.ascon.ru/products/index.php?id=27&view=item Система ведения типовых проектов для КОМПАС-График  или Менеджер шаблонов http://kompas.ascon.ru/products/index.php?id=637&view=item