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

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

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

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

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

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

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

Как определить режим нахождения в редактировании эскиза

Автор KrissKross, 27.11.17, 21:19:22

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

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

KrissKross

Если при запуске автономного приложения
Компас-3Д находимся в режиме редактирования эскиза,
то при исполнении кода
C#

            doc3D = kompas.ActiveDocument as IKompasDocument3D;
            IKompasDocument activeDoc = kompas.ActiveDocument;
            dynamic CheckParent = activeDoc.Parent;
            string ert2 = CheckParent.Type.ToString();


Получаем следующие значения
doc3D  = null
activeDoc = ksDocumentFragment - текущий документ - Фрагмент
CheckParent = 10002- Коллекция документов, откры­тых в приложении

Как определить режим нахождения в редактировании эскиза?

С уважением!


KrissKross

To Sabahs
Благодарю за ответ

так мы узнаем что находимся в режиме редактирования эскиза

а как добраться до исходного документа (модель, сборка)
не выходя из эскиза

С уважением!

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

KrissKross

Задача простая!,
казалось на первый взгляд

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

думаю может поможет итератор
D3_DOCUMENT_OBJ дальше DocumentParam затем fileName
и полученное имя файла в IDocuments[имя_файла]

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

KrissKross

Что-то с эскизом Асконовцы намудрили
ладно тип - Фрагмент -
но почему нельзя из эскиза получить текущий документ

А какой командой выйти из эскиза?
не могу найти.

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

ТрындецЪ

Свойство IsSketch интерфейса  IFragmentDocument - является ли документ эскизом.
+ Благодарностей: 1