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


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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 21 След.
Ошибка при экспорте
 
[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.56.0
Как открыть файл в запущенном T-FLEX CAD?, Из внешнего приложения открыть файл в запущенном T-FLEX CAD
 
[QUOTE]Ирина написал:
Этот параметр может повлиять на что-то (лицензия, производительность, ограничения)?[/QUOTE]
по-видимому сервер приложения отключен, чтобы оптимизировать использование ресурсов ПК.
Как открыть файл в запущенном T-FLEX CAD?, Из внешнего приложения открыть файл в запущенном T-FLEX CAD
 
Ирина, я совсем забыл о том, что нужно добавить параметр в файл конфигурации приложения T-FLEX CAD. чтобы активировать сервер приложения, добавьте строку [B]Server=1[/B] в файл конфигурации, например:
[code]
[SETTINGS]
Config=3D
Language=Rus
RegistryName=T-FLEX CAD 3D 16\Rus
Metric=1
Examples=Примеры 16.tws
TutorHTM=index.htm
VideoPlayer=CamPlay\CamPlay.exe
DOCsLanguage=Rus
TutorDownloadUri=http://www.tflexcad.ru/download/tutorial/

Server=1
[/code]

https://youtu.be/aBtY_A4dbD8
Как открыть файл в запущенном T-FLEX CAD?, Из внешнего приложения открыть файл в запущенном T-FLEX CAD
 
Ирина, приложение [B]ServerTest[/B] было предоставлено мне в качестве примера работы с [B]TFlex.CAD.Server API[/B]. На тот период тестирование выполнялось в T-FLEX CAD 14. В 16-й версии приложение [B]ServerTest[/B] не работает корректно, я получаю аналогичную ошибку.

Думаю вам стоит обратиться в техподдержку.
Запуск T-FLEX CAD из внешнего приложения, Как запустить T-FLEX CAD из внешнего приложения?
 
[QUOTE]Ирина написал:
[code]
ApplicationSessionSetup setup = new ApplicationSessionSetup();
setup.ProtectionLicense = ApplicationSessionSetup.License.TFlex3D;
setup.ReadOnly = false;
TFlex.Application.InitSession(setup);
Document rootDoc = TFlex.Application.OpenDocument(fileName, true);
[/code]
[/QUOTE]
так работать не будет. Но можно запустить процесс T-FLEX CAD, и передать путь на документ в качестве аргумента, например:
[code]
string path = @"D:\Documents\T-FLEX\asm_1.grb";
Process.Start("tflexcad", path);
[/code]
для T-FLEX CAD 12 по-видимому должно быть так:
[code]
Process.Start("tflex", path);
[/code]
Если документ уже открыт для записи в одном экземпляре приложения, то для других экземпляров он будет доступен только для чтения.

[B]TFlex.CAD.Server API[/B] позволяет подключиться к приложению T-FLEX CAD и обрабатывать данные документа в асинхронном режиме. По крайней мере это работало в старой версии.
https://www.youtube.com/watch?v=eBTNCAoDzrQ

Вот [URL=https://yadi.sk/d/CaHbwMNq9qKVAA]ссылка[/URL] на тестовый проект [B]ServerTest[/B], который демонстрирует подключение к T-FLEX CAD и использование основных функций [B]TFlex.CAD.Server API[/B]. Попробуйте собрать его для T-FLEX CAD 12. На моей стороне данное приложение некорректно работает (версия T-FLEX CAD 16.0.56.0).
Изменено: vite - 06.11.2019 23:51:44
Разбиение 2D-страниц на документы определенного типа
 
[QUOTE]Ирина написал:
В последней версии тоже нет?[/QUOTE]
в текущей версии для определения связей, поддерживается специальный метод [b]Tflex.Application.GetDocumentExternalFileLinks[/b], который извлекает ссылки на все вложенные фрагменты. Если фрагмент также содержит ссылки на другие фрагменты, то это подсборка. Таким образом вы можете точно определить, где сборочная единица а где детали.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 21 След.