• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

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

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Правильное применение SetLink в чертеже

Автор Lito 2, 02.04.15, 11:36:00

« назад - далее »

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

Lito 2

Есть чертеж у которого в размере присутствует ссылка на переменную L.
Сама переменная L, также связана ссылкой с 3D-моделью.
При изменении пути на другую модель и применении

Variable7.SetLink(NewPatchPerem, p1);

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



Алхимик

Ошибка в том что компас не переваривает ручное редактирование в строке ссылки :`(, почему АСКОН не закрыл доступ к редактированию при таком косяке я не знаю, но ссылка работает только через меню "Ссылка".

Lito 2

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

Но при таком алгоритме, дополнительно нужно писать итератор по объектам с нахождением потерянных ссылок и последующей их замене или редактированию, что приведёт к утяжелению и прочим прелестям.
Хотелось бы как-то по изящней.

Аналогичный механизм при использовании Variable7.SetLink(NewPatchPerem, p1)  в 3D-модели проблем не вызывает.

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

Lito 2

Кому интересно, нашел следующее решение:
После замены всех ссылок переменных у документов

var
ksDocs: IDocuments;

ksDocs.RecoverMode:= True; //установить свойство
ksDocs.Item[0].Close(kdSaveChanges);//закрыть с сохранением


А потом открыть, потеря связи с переменной исчезает.