Не срабатывает API-функция привязки чертежей к 3D-модели

Автор y0gurt, 28.10.24, 11:40:15

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

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

p3452

Цитата: UU от 30.10.24, 12:46:40По этому, когда пишу exe то получаю API5, а от него API7.
Аналогично!

UU

Цитата: Lemieux от 30.10.24, 13:04:07Автор в первом сообщении написал, что у него всё нормально работает, кроме менеджера документов.
Невнимательно прочитал.
Проверил на v23.0.3.2285 работает, но косяков столько, показывать и рассказывать о них не буду.

Lemieux

Цитата: p3452 от 30.10.24, 20:25:12Аналогично!
Я это стал делать так по другой причине. Так как в API7 не все вещи реализованы.

Vi2

GetActiveObject возвращает первый из зарегистрировавшихся объектов. При падении или неявном вызове может возвращаться не тот компас или вообще пустой/отсутствующий интерфейс.

KrissKross

Подниму тему

тоже столкнулся с данной проблемой
код работает на 21 версии Компаса, на 22 версии ПЕРЕСТАЛ работать
- Компас-редиска

код на C#
            string drawing = "C:\\Test\\Чертеж.cdw";

            IPropertyKeeper? propertyKeeper = kompasDocument3D as IPropertyKeeper;
            IProductDataManager? productDataManager = kompasDocument3D as IProductDataManager;
            productDataManager.ObjectAttachedDocuments[propertyKeeper] = drawing;

            dynamic arrAttachDoc = productDataManager.ObjectAttachedDocuments[propertyKeeper];
arrAttachDoc- возращает null - для 22 версии

Кто знает - что и как делать?

UU

Проверил на v23, работает.
Проверил на v22, не работает, массив не инициализируется.




+ Благодарностей: 1

KrissKross

UU
Благодарю за участие

Значит сделаем заключение - для потомков

Привязывание чертежа к 3Д модели через

productDataManager.ObjectAttachedDocuments[propertyKeeper] = "Чертеж.cdw"
В 22 версии Компаса - не работает

в 23 - работает

Lemieux

Цитата: KrissKross от 04.01.25, 10:58:27UU
Благодарю за участие

Значит сделаем заключение - для потомков

Привязывание чертежа к 3Д модели через

productDataManager.ObjectAttachedDocuments[propertyKeeper] = "Чертеж.cdw"
В 22 версии Компаса - не работает

в 23 - работает
Получайте PropertyKeeper от Part или от KompasDocument, будут разные привязанные документы.
АСКОН скорей всего поломали работу с xml файлом, а в ТП руководят идиоты, потому что туда нельзя писать об ошибках API, а если пишешь об ошибках КОМПАС и прикладываешь скрины из VS, то они тебя так же шлют лесом.

UU

В v22, если вручную добавить, то через API читает, и из IPart7 и IKompasDocument, но если пытаешься присвоить значение, то значения портятся.
IPropertyKeeper от IPart7 и IKompasDocument, получаются два разных хранилища свойств, в v23 работают но набор документов разный, после записи одного итого же массива документов через API, свойства становятся одинаковыми.

Lemieux

Цитата: UU от 04.01.25, 13:14:42В v22, если вручную добавить, то через API читает, и из IPart7 и IKompasDocument, но если пытаешься присвоить значение, то значения портятся.
IPropertyKeeper от IPart7 и IKompasDocument, получаются два разных хранилища свойств, в v23 работают но набор документов разный, после записи одного итого же массива документов через API, свойства становятся одинаковыми.
А я не говорил, что там всё работает норм, я лишь указал человеку куда копать, чтобы придумать костыль. КОМПАС и API КОМПАС это сказка про костыли.