Страница 1 из 1

new from и потеря exterenal references

СообщениеДобавлено: 19 окт 2011 14:02
Artem
При создании новой сборки на основе старой (в "ручном" режиме без макроса) выдается окно предлагающее выбрать для пересоздания подсборки и детали из состава данной сборки. Если этого не сделать,и пересоздать только главную сборку, то геометрия в exterenal references этих деталей потеряет ссылки (что интересно - если включить запись макроса данное окно не возникает). У CATIA.Documents.NewFrom параметр только один и управлять пересозданием состава основной сборки мы не можем, но меня больше интересует не данная возможность, а следствие ее отсутствия(как я думаю) - потеря внешних ссылок. От этого можно как-нибудь исбавиться?

Re: new from и потеря exterenal references

СообщениеДобавлено: 19 окт 2011 15:36
Wireless_Fidelity
Добрый день.

В сборке AsmOrig две детали: PartA и PartB.
В PartA построен кубик, в PartB построена точка на грани кубика из PartA. В External References у PartB содержится поверхность Surface.1, привязанная к грани кубика из PartA.

При использовании команды NewFrom (для основной сборки, без указания деталей) в новой сборке AsmNew связь между деталями сохраняется, при изменении грани кубика в PartA точка в PartB меняется корректно (V5 R19 SP9)
Однако, если смотреть ссылки PartB через меню Edit-Links, оказывается, что эта деталь имеет ссылку не только на PartA (от Surface.1 в External References к грани кубика), но и к оригинальной сборке AsmOrig. Хотя, по-моему, правильно было бы ссылаться на новую сборку AsmNew.

Результат работы метода NewFrom класса Documents аналогичен описанному выше.

Re: new from и потеря exterenal references

СообщениеДобавлено: 19 окт 2011 16:09
Artem
Спасибо за внимание и потраченное время (и за предыдущий топик тоже)
К сожалению описанные вами модельки у МЕНЯ ведут себя по другому сценарию (как в первом посте)
Sp8 r19......
Может где волшебная галочка в настройках?
qqqq.7z
(43.81 КБ) Скачиваний: 491

Re: new from и потеря exterenal references

СообщениеДобавлено: 20 окт 2011 11:25
Wireless_Fidelity
Воспроизвел у себя. Оказалось, что у меня ссылки тоже ломаются, достаточно было просто побольше подвигать кубик.
Источник проблемы в контекстных ссылках. PartB ссылается на PartA в контексте оригинальной сборки. И эта информация об этом сохранена в документе PartB.CATPart. Поэтому когда для сборки выполняется New from без включения в него деталей, ссылки в документах деталей не обновляются.
Чтобы это дело победить нужно либо включать в New from детали, либо создавать новую сборку, включать в неё две получившиеся и применять команду Edit-Components-Define Contextual
Links к проблемной детали. При этом, аправда, нарушится связь в оригинальной сборке. Но это и понятно, в одном документе детали одна и та же ссылка не может существовать в двух контекстах.
К сожалению, оба предложенных способа не могут быть реализованы в Automation без использования WinAPI. Поэтому предлагаю воспользоваться классом SendToService, позволяющем в полной мере программно сделать то же, что и команда SendTo.

Re: new from и потеря exterenal references

СообщениеДобавлено: 20 окт 2011 13:06
Artem
Да спасибо - это лучше чем обычное копирование содержимого папки.....

Re: new from и потеря exterenal references

СообщениеДобавлено: 11 апр 2012 12:30
likemilk
Описанный способ построения ни что иное как создание "контекстных связей". При таком способе построения связей, геометрия ссылается не только на Part, но также завязана на Product (в котором шло создание связей с исходной деталью) и положение Part-ов в Product-те.
Думаю что корректного пересохранения через VBA недобится.
Как вариант можно создавать связи через публикации, их после пересохранения можно подменить, в противном случае ссылка просто умирает ((
Я стараюсь не строить контекстных связей дабы избегать таких неприятностей