Официальный форум российского программного комплекса T-FLEX PLM


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Определить тип документа
 
Доброго дня!

Можно ли каким-нибудь образом получить тип используемого документа?
Под типом понимается - чертеж, деталь, сборка.
Судя по API, объектной модели документа и однотипному расширению файлов документов (.grb) создаётся ощущение, что это совсем не просто сделать...
Или, возможно, это закрытое свойство/метод документа (может его реально через рефлекшн получить?)

Заметил вот такое:
  • когда создаёшь новую деталь, открывается вкладка "3D модель",
  • когда создаешь чертеж/спецификацию/2D деталь/3D деталь. открывается вкладка "Чертеж",
  • когда создаешь сборку, открывается вкладка "Сборка".
Вероятно, "под капотом" всё же TFlex знает, что за тип документа выбран?
Или по нажатию определенной команды (например "Создать->Деталь") активируется определенная вкладка ленты?

Заранее, спасибо!
Изменено: SwnSerg - 10.02.2017 18:39:50
 
Цитата
tucha.te написал:
Можно ли каким-нибудь образом получить тип используемого документа?
возможно вы имели ввиду определить прототип документа (шаблон), из которого создается новый документ. Нужно смотреть различие в прототипах.
T-FLEX CAD 17.1.6.0
 
Цитата
Vite написал:
Цитата
tucha.te написал:
Можно ли каким-нибудь образом получить тип используемого документа?
возможно вы имели ввиду определить прототип документа (шаблон), из которого создается новый документ. Нужно смотреть различие в прототипах.
Думаю, что это то, что мне и нужно! Не могли бы Вы, пожалуйста, подсказать, какими образом у документа узнать шаблон/прототип, по которому он был создан?

Может ли пользователь создавать свои шаблоны? Путь к этим шаблонам всегда схож?

Что-то в API не удалось найти...
Изменено: SwnSerg - 11.02.2017 02:02:35
 
Цитата
SwnSerg написал:
какими образом у документа узнать шаблон/прототип, по которому он был создан?
я думаю все имеющиеся прототипы были созданы в рамках единой объектной модели документа. отличие возможно в конфигурации прототипа, да и сам прототип это тот же документ. фактически, система создает копию из прототипа как новый документ.
Цитата
SwnSerg написал:
Может ли пользователь создавать свои шаблоны?
может
Цитата
SwnSerg написал:
Путь к этим шаблонам всегда схож?
по-умолчанию корневая директория прототипов:
Код
C:\Program Files\T-FLEX CAD 15 x64\Program\Прототипы

пути для команд создания документа из прототипа определены в настройках приложения (см. вложение)
T-FLEX CAD 17.1.6.0
 
Цитата
Vite написал:
Цитата
SwnSerg написал:
какими образом у документа узнать шаблон/прототип, по которому он был создан?
я думаю все имеющиеся прототипы были созданы в рамках единой объектной модели документа. отличие возможно в конфигурации прототипа, да и сам прототип это тот же документ. фактически, система создает копию из прототипа как новый документ.
Цитата
SwnSerg написал:
Может ли пользователь создавать свои шаблоны?
может
Цитата
SwnSerg написал:
Путь к этим шаблонам всегда схож?
по-умолчанию корневая директория прототипов:
Код
 C:\Program Files\T-FLEX CAD 15 x64\Program\Прототипы 

пути для команд создания документа из прототипа определены в настройках приложения (см. вложение)
Ага, спасибо!
А можно ли у класса Document каким-либо образом узнать по какому прототипу он был создан?
 
Не поможет, прототип - это готовый шаблон.
Не до конца сформулирована задача. Если чертеж на деталь оформлен в одном файле с многотельной 3D моделью это что? Чертеж? Деталь? Или Сборка?
Лучше опиши какую задачу решаешь.
 
Цитата
SwnSerg написал:
А можно ли у класса Document каким-либо образом узнать по какому прототипу он был создан?
по-умолчанию, метод "TFlex.Application.NewDocument()" создает "2D Деталь". если я не ошибаюсь, это базовый документ, из которого создается прототип. то есть, вы можете добавить стандартные рабочие плоскости и сохранить "2D Деталь" как, "3D Деталь" или "3D Сборка". различие между документами в конфигурации: параметры документа, настройка служебных переменных, основной вид по-умолчанию, и т.д. какой-то специальный тип данных в API, связанный с определением прототипа документа, я не обноружил.
T-FLEX CAD 17.1.6.0
 
Цитата
zobza написал:
Не поможет, прототип - это готовый шаблон.
Не до конца сформулирована задача. Если чертеж на деталь оформлен в одном файле с многотельной 3D моделью это что? Чертеж? Деталь? Или Сборка?
Лучше опиши какую задачу решаешь.
Можно ли по созданному документу определить 3D модель это или чертеж?
В зависимости от этого признака меняется набор команд плагина
Изменено: SwnSerg - 12.02.2017 13:24:52
 
Цитата
SwnSerg написал:
Можно ли по созданному документу определить 3D модель это или чертеж?
3D модель можно определить по контейнеру рабочих плоскостей, например:
Код
Document document = TFlex.Application.OpenDocument(path);

if (document.GetWorkplanes().Count > 0)
{
    // .. 3D Модель
}
else
{
    // .. 2D Модель
}

определить чертеж или сборка, можно по параметрам служебной переменной
Код
switch (document.FindVariable("$Vid_Chert").TextValue)
{
case "Чертеж":
  // .. Чертеж
  break;
case "Сборочный чертеж":
  // .. Сборка
  break;
case "Чертеж общего вида":
  break;
case "Монтажный чертеж":
  break;
case "Теоретический чертеж":
  break;
case "Габаритный чертеж":
  break;
case "Электромонтажный чертеж":
  break;
case "Упаковочный чертеж":
  break;
}
Изменено: Vite - 12.02.2017 15:09:45
T-FLEX CAD 17.1.6.0
 
Цитата
SwnSerg написал:
Цитата
zobza написал:
Не поможет, прототип - это готовый шаблон.
Не до конца сформулирована задача. Если чертеж на деталь оформлен в одном файле с многотельной 3D моделью это что? Чертеж? Деталь? Или Сборка?
Лучше опиши какую задачу решаешь.
Можно ли по созданному документу определить 3D модель это или чертеж?
В зависимости от этого признака меняется набор команд плагина
Это не или, это 2 разные задачи.
И пример Vite это наглядно показывает.
Может тебе нужно в зависимости от контекста работы кнопки менять? Что хоть плагин делает? Для чего он?
Изменено: zobza - 12.02.2017 22:49:49
 
Цитата
zobza написал:
Цитата
SwnSerg написал:
Цитата
zobza написал:
Не поможет, прототип - это готовый шаблон.
Не до конца сформулирована задача. Если чертеж на деталь оформлен в одном файле с многотельной 3D моделью это что? Чертеж? Деталь? Или Сборка?
Лучше опиши какую задачу решаешь.
Можно ли по созданному документу определить 3D модель это или чертеж?
В зависимости от этого признака меняется набор команд плагина
Это не или, это 2 разные задачи.
И пример Vite это наглядно показывает.
Может тебе нужно в зависимости от контекста работы кнопки менять? Что хоть плагин делает? Для чего он?
Немного не понял про то, что это две разные задачи...
Приведу пример - в API Solidworks есть такое свойство у документа - DocumentType, по которому я могу чётко определить с чем я работаю - деталью, сборкой или чертежом.
Судя по всему, в TFlex так просто тип документа не получить, потому что сама объектная модель сильно отличается.
 
Цитата
SwnSerg написал:
Судя по всему, в TFlex так просто тип документа не получить, потому что сама объектная модель сильно отличается.
согласен, свойство "тип документа" должно быть определено в парметрах документа.
T-FLEX CAD 17.1.6.0
 
Хз как там в АПИ, но сам тип документа у Флекса один и тот же. Если есть 3Д, и нет форматок, то это просто Деталь, если есть форматки, то это чертёж и деталь, если есть фрагменты в 3Д, то это сборка, прототипы тут не при чём. Самый прикол, что и это не факт! Я иногда делаю деталь, а потом решаю, что будет сборка. Бывает в сборке все чертежи всех деталей. Бывает 3Д отдельно от 2Д, но правда редко. Бывает деталь, но с фрагментами. Нужно ввести переменную, которая будет чётко давать понять, что именно перед нами. Но задача не ясна, решения не будет, по началу мне показалось, что нужно просто чтоб плагин различал 3Д и 2Д, а тут ещё и сборки...сборки кстати бывают и 2Д....
 
Цитата
Sila Musli написал:
Хз как там в АПИ, но сам тип документа у Флекса один и тот же. Если есть 3Д, и нет форматок, то это просто Деталь, если есть форматки, то это чертёж и деталь, если есть фрагменты в 3Д, то это сборка, прототипы тут не при чём. Самый прикол, что и это не факт! Я иногда делаю деталь, а потом решаю, что будет сборка. Бывает в сборке все чертежи всех деталей. Бывает 3Д отдельно от 2Д, но правда редко. Бывает деталь, но с фрагментами. Нужно ввести переменную, которая будет чётко давать понять, что именно перед нами. Но задача не ясна, решения не будет, по началу мне показалось, что нужно просто чтоб плагин различал 3Д и 2Д, а тут ещё и сборки...сборки кстати бывают и 2Д....
если у вас получится мне написать, каким образом со 100% вероятностью определить - 3D модель представляет документ или чертеж - я буду очень благодарен! :)
 
Цитата
SwnSerg написал:
Цитата
Sila Musli написал:
Хз как там в АПИ, но сам тип документа у Флекса один и тот же. Если есть 3Д, и нет форматок, то это просто Деталь, если есть форматки, то это чертёж и деталь, если есть фрагменты в 3Д, то это сборка, прототипы тут не при чём. Самый прикол, что и это не факт! Я иногда делаю деталь, а потом решаю, что будет сборка. Бывает в сборке все чертежи всех деталей. Бывает 3Д отдельно от 2Д, но правда редко. Бывает деталь, но с фрагментами. Нужно ввести переменную, которая будет чётко давать понять, что именно перед нами. Но задача не ясна, решения не будет, по началу мне показалось, что нужно просто чтоб плагин различал 3Д и 2Д, а тут ещё и сборки...сборки кстати бывают и 2Д....
если у вас получится мне написать, каким образом со 100% вероятностью определить - 3D модель представляет документ или чертеж - я буду очень благодарен! :)
Опиши, хотя бы примерно, что делает твой плагин, писать плагины ради плагинов немного неправильно. Я имею ввиду не просто кнопки появляются и меняются, а что за кнопки и зачем они.
Страницы: 1