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


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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 21 След.
Модель расширения библиотек T-FLEX CAD, Обсуждение специфики расширения библиотек и предложения пользователей.
 
Данная тема создана для обсуждения специфики расширения библиотек T-FLEX CAD. Потенциально возможной реализации, способствующей упростить процедуру развертывания рабочего пространства пользователя. Ниже дается краткое описание проблемной области и предложение.

[SIZE=15pt][B]Проблемная область[/B][/SIZE]
В текущей реализации T-FLEX CAD (16.0.60.0) для подключения пользовательских библиотек используется механизм, посредством добавления ссылки на файл конфигурации. Библиотеки трехмерных моделей содержат зависимости от библиотеки материалов и текстур.

[B]Конфигурация стандартных библиотек T-FLEX CAD[/B]
1. Библиотеки моделей (C:\Program Files\T-FLEX CAD 16\Библиотеки)
2. Библиотека материалов (C:\Program Files\T-FLEX CAD 16\Program\MaterialLibrary)
3. Текстуры (C:\Program Files\T-FLEX CAD 16\Program\Textures)

В большинстве случаев, пользовательские библиотеки могут быть созданы с использованием стандартной базы материалов. Когда этого недостаточно, то можно создать библиотеку материалов в качестве расширения. Кроме того, так же можно добавить в настройках приложения пользовательский каталог текстур. Таким образом, T-FLEX CAD предоставляет возможность создавать библиотеки моделей, независимо от стандартной базы материалов и текстур. Но насколько жизнеспособна данная схема? Чтобы провести тест, я создал рабочий каталог (WorkflowDirectory) на другом диске, в котором поместил библиотеки и текстуры.

[B]Конфигурация пользовательских библиотек[/B]
1. Библиотеки моделей (E:\T-FLEX CAD\WorkflowDirectory\CustomLibraries)
2. Библиотека материалов (E:\T-FLEX CAD\WorkflowDirectory\MaterialLibrary)
3. Текстуры (E:\T-FLEX CAD\WorkflowDirectory\Textures)

На первый взгляд может показаться вполне рабочая схема, пока не возникнет необходимость в перемещении рабочего каталога. Основная проблема заключается в отсутствии возможности использовать относительные пути для определения ссылки на текстуры материалов. Процедура обработки относительных путей, в свойствах материала, работает только для каталога (Textures), расположенного в корне приложения T-FLEX CAD. Даже несмотря на то, что в пользовательской конфигурации был добавлен путь на каталог текстур.

Еще одна проблема, с которой приходится сталкиваться, это восстановление рабочего окружения T-FLEX CAD при выполнении сброса настроек по умолчанию. Вместо того, чтобы включить один файл конфигурации, приходится выполнять множество действий, повторно добавляя ссылки на пользовательские библиотеки.

[SIZE=15pt][B]Предложение[/B][/SIZE]
1. Добавить возможность настройки рабочего окружения пользователя T-FLEX CAD, посредством добавления ссылки на файл конфигурации.
Файл конфигурации должен включать следующие настройки:
- Настройки интерфейса T-FLEX CAD;
- Настройки пользовательских библиотек;
- Настройки путей на виртуальные каталоги (MaterialLibrary, Textures).

[B]Структура рабочего каталога[/B]
[code]
WorkflowDirectory (рабочий каталог пространства пользователя)
- CustomLibraries (1)
-- CustomLibrary
--- Parts
---- Part_1.grb
---- Part_2.grb
---- Part_n.grb
--- CustomLibrary.tws (файл конфигурации библиотеки моделей)
- MaterialLibrary (2)
-- CustomMaterialLibraries.ini (манифест пользовательских библиотек материалов)
-- CustomMaterialLibrary.mtr (библиотека материалов пользователя)
- Textures (3)
-- Subdirectory
--- Texture_1.jpg
--- Texture_2.jpg
--- Texture_n.jpg
- WorkflowDirectory.config (файл конфигурации рабочего окружения пользователя)
[/code]

2. Добавить возможность использования относительных путей для определения ссылок на текстуры в свойствах материалов.
3. Добавить возможность переопределения стандартных текстур, если в пользовательском окружении будет создан одноименный каталог и файл текстуры.

[B]Описание[/B]
Представленная модель расширения библиотек T-FLEX CAD предполагает возможность подключения рабочего каталога, посредством добавления ссылки на файл конфигурации (WorkflowDirectory.config). Данный файл содержит определения для всех библиотек пользовательского окружения. При такой схеме, восстановление рабочего окружения пользователя должно сводится к одной операции. Кроме того, данная модель может быть использована для переопределения текстур или прототипов, установленных по умолчанию. Иначе говоря, если пользователю понадобится изменить текстуру в системном каталоге (Textures), то достаточно создать копию в пользовательском окружении для ее переопределения. Таким образом, последующее обновление T-FLEX CAD не повлияет на пользовательскую конфигурацию и избавит от необходимости повторно изменять файлы текстур в системном каталоге.
Изменено: vite - 22.01.2020 17:55:18
Доработки функционала, необходимые пользователям, Внедрение нового функционала, доработка существующего.
 
Предложение, добавить поддержку использования в качестве внешней базы данных XML-файл с атрибутами для строго определения типов данных.
Пересчет ссылок, Упущена возможность пересчета ссылок
 
[QUOTE]Alex Ko написал:
Должно быть так, чтобы имена объектов имели контроль со стороны программы[/QUOTE]
Имена фрагментов уже под контролем программы, только аргументы функции [B]get[/B] не являются объектами. Когда добавляется фрагмент, то для него создается [U]имя[/U] по умолчанию и [U]идентификатор[/U]. Для удобства имя фрагмента можно изменять, но идентификатор остается неизменным до тех пор, пока ссылка на фрагмент не будет удалена.
Пересчет ссылок, Упущена возможность пересчета ссылок
 
[QUOTE]Alex Ko написал:
При использовании ссылок таких как например get("Доска 1","p1") и последующего изменения имени Доска 1 на Брус 1 ссылки  в объектах - НЕ обновляются, а приходится все ссылки переписывать вручную[/QUOTE]
С чего вы решили, что первый аргумент функции [B]get[/B] является ссылкой?
Ошибка при экспорте
 
[QUOTE]Ирина написал:
4. При экспорте нужно обязательно использовать OpenDocument?[/QUOTE]
необязательно...

[QUOTE]Ирина написал:
5. Можно и правильно ли совместно использовать получение и открытие документа?[/QUOTE]
судя по коду, в этом нет необходимости.
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
[QUOTE]avrd написал:
макрос заблокирован, а плагин?[/QUOTE]
дело не в различии макроса и плагина, а в режиме доступа. кнопка "Добавить" находится в документе фрагмента, который загружен в сборку по ссылке с доступом только для чтения. Любая попытка открыть блок изменения приведет к ошибке. но если макрос будет встроен в сборку, то ему доступ на запись открыт, поскольку документ сборки находится в режиме записи.
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
[QUOTE]avrd написал:
Ведь Кнопка "Добавить" ( к которой и цепляем макрос) в "Диалоге" на закладке "Отверстие".[/QUOTE]
по-видимому вы забыли о том, что макрос на уровне фрагмента заблокирован на запись. В данном случае, эта кнопка бесполезна.

Может я чего не понимаю, но в чем практическая польза вставки фрагмента ( Присадка_PLUS ) с использованием [B]Insert Fragment[/B]? Не проще мышкой перетащить отверстие в сборку?
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
[QUOTE]avrd написал:
Макрос должен вставить фрагмент Присадка_PLUS в Деталь (Панель_PLUS) диалог "Переменные", которой открыт.[/QUOTE]
причем здесь диалог переменные? Макрос выполняется на уровне модуля расширения. Мы уже определились с порядком действий. Теперь необходимо понять, что должно произойти при нажатии кнопки [B]Insert Fragment[/B]. Вставить фрагмент ( Присадка_PLUS ) в ( Панель_PLUS ), так?
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
[QUOTE]avrd написал:
Фрагмент будет вставлен в ЛКС с координатами 0,0,0. "прицепиться " к нужной грани через "Переменные"  и  "отняться" через настройку "Фрагмент 3D" - "Тип операции" - "Вычитание" в Присадка_PLUS.[/QUOTE]
так, и что должен сделать макрос в данном случае?
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
avrd, я не вижу информации по отверстиям в файле ( Panel_PLUS ). Вы полагаете, что мне нужно доработать модель, и самостоятельно определить контекст данных?
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
avrd, как вам угодно, я просто дал пример. Контейнер может быть скрыт в структуре изделия, это делается для удобства. Отверстия могут храниться в сборке, так даже проще.
Мне нужна информация, относительно контекста данных.
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
avrd, давайте проясним некоторые вопросы.

1. Где расположен источник контекста данных (сборка, деталь или … )?
2. Какое содержание контекста данных (координаты и т. п.)?

[B]Предполагаемая организация структуры файлов[/B]
Сборка 1
- Деталь 1 (библиотечный фрагмент - контейнер)
-- Базовая панель (библиотечный фрагмент)
-- Отверстие 1 (библиотечный фрагмент)
-- Отверстие 2 (библиотечный фрагмент)
-- Отверстие N (библиотечный фрагмент)
- Деталь 2 (библиотечный фрагмент - контейнер)
-- Базовая панель (библиотечный фрагмент)
-- Отверстие 1 (библиотечный фрагмент)
-- Отверстие 2 (библиотечный фрагмент)
-- Отверстие N (библиотечный фрагмент)
- Деталь N

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

[B]Проблемная область[/B]
Если деталь (контейнер) создается из библиотечного прототипа, то любые изменения отразятся на всех экземплярах. Поэтому отверстия должны либо предварительно созданы в контейнере, либо каждая деталь должна быть копией.
Изменено: vite - 05.12.2019 09:23:42
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
avrd, я создал новый репозиторий ( [URL=https://github.com/intity/TFlexExtension]TFlexExtension[/URL] ), модуль расширения T-FLEX CAD Extension. Загрузить DLL можно по ссылке ( https://yadi.sk/d/XnCoCC8WG8dlHw ). На данный момент плагин просто выводит информацию о выделенном фрагменте в дереве модели. При подключении плагина, должна появиться панель инструментов с надписью [B]Insert Fragment[/B], без иконки.

[B]Порядок действий[/B]
1. Выделяется фрагмент/фрагменты в дереве модели;
2. Нажать кнопку [B]Insert Fragment[/B] на панели инструментов.

Чтобы корректно работал плагин, версия T-FLEX CAD должна быть ( 16.0.56.0 )

Теперь нужно определиться с контекстом данных для определения привязки отверстий к объекту. Поскольку T-FLEX CAD поддерживает различные объекты выделения, то это не обязательно должен быть объект фрагмента, можно также привязаться к грани.
Изменено: vite - 04.12.2019 20:04:42
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
avrd, если мои сообщения показались вам предвзятыми, прошу не сердитесь на меня. Как правило я стараюсь отвечать на вопросы в этом разделе, если человек имеет хотя бы базовые навыки программирования. Взгляните на ситуацию с другой стороны, стали бы вы писать макрос человеку, который даже не потрудился составить техническое задание?
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
[QUOTE]avrd написал:
И да, на всякий случай, я НЕ программист в том смысле, что сам написать код не смогу, я здесь пытаюсь корректно сделать постановку ... и может найти потенциального исполнителя.[/QUOTE]
за что можно отдать должное Алексею, так это умение четко сформулировать техническое задание. Возможно вам стоит к нему обратиться... и это не сарказм.

Чтобы получить ответ на свой вопрос, мне необходимо техническое задание с подробным описанием всей технологической цепочки. У меня просто нет времени разбираться в модели, которую вы прикрепили в качестве примера.
Изменено: vite - 04.12.2019 13:43:53
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
[QUOTE]avrd написал:
С возможностью применения и сценарием использования определились, что с макросом? Будут предложения?[/QUOTE]
я уже пердложил свой вариант, описанный выше...
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
[QUOTE]avrd написал:
Просто есть же режим - "Деталь в контексте сборки", может через него, правда, если пробовать "в ручном режиме" меняется Прототип (библиотечный файл).[/QUOTE]
Просматривая модель, навскидку могу предположить, что вы хотите сделать автоматическую расстановку фурнитуры. Причем фурнитура должна быть вложена на уровне детали. Если это так, то это и называется внести изменения в библиотечный элемент.

Если рассмотреть вариант добавления фурнитуры с уровня сборки, то можно поступить следующим образом. Параметры, которые вы хотели использовать на уровне детали, можно получить по селектору. То есть, сначала выделяется деталь в сборке, затем запустить макрос. Таким образом, программа может определить контекст фрагмента и добавить фурнитуру в сборку.
Вставить фрагмент при помощи "Элемента управления ", Макрос или плагин для элемента "Кнопка"
 
avrd, если я правильно понял вопрос, вы хотите вставить фрагмент с уровня сборки через его управляющий диалог. Какие варианты можно использовать?

T-FLEX CAD 16 поддерживает возможность запуска макроса фрагмента с уровня сборки, но в данном случае это работать не будет, поскольку для выполнения операции вставки фрагмента необходимо открыть блок изменения. Иначе говоря, макрос фрагмента не может внести изменения в структуру модели, поскольку он заблокирован для записи с уровня сборки.

По поводу запуска команды приложения, нужна дополнительная информация от техподдержки.

Как вариант, использовать средства подавления операции через переменные.
Элемент управления Кнопка, Запустить команду. Кто нибудь имеет опыт применения?
 
avrd, в T-FLEX CAD API поддерживается вызов команд панели инстументов, вот пример ( #2 ), только в документации ничего кроме определения метода.
T-FLEX CAD 16.0.60.0
Как открыть файл в запущенном T-FLEX CAD?, Из внешнего приложения открыть файл в запущенном T-FLEX CAD
 
[QUOTE]Ирина написал:
Этот параметр может повлиять на что-то (лицензия, производительность, ограничения)?[/QUOTE]
по-видимому сервер приложения отключен, чтобы оптимизировать использование ресурсов ПК.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 21 След.