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


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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 20 След.
Разбиение 2D-страниц на документы определенного типа
 
[QUOTE]Ирина написал:
В последней версии тоже нет?[/QUOTE]
в текущей версии для определения связей, поддерживается специальный метод [b]Tflex.Application.GetDocumentExternalFileLinks[/b], который извлекает ссылки на все вложенные фрагменты. Если фрагмент также содержит ссылки на другие фрагменты, то это подсборка. Таким образом вы можете точно определить, где сборочная единица а где детали.
Разбиение 2D-страниц на документы определенного типа
 
Ирина, специальных средств для определения связей страниц по форматкам нет в API.
T-FLEX Package Manager, Модуль расширения пакетной обработки документов
 
[B]Обновление приложения [28.09.2019][/B]
1. Реализована функция обработки переменных.
1.1. Добавлена категория [Переменные] (доступно только для транслятора Document).
T-FLEX Package Manager, Модуль расширения пакетной обработки документов
 
[B]Обновление T-FLEX Package Manager (10.09.2019)[/B]
1. Реализованы функции [Отменить/Повторить].
2. Улучшена производительность функций создания, изменения и сохранения файла конфигурации.
3. Оптимизация режима обработки [SaveAs].
3.1. Добавлена возможность повторной обработки файлов сборочной единицы в любой последовательности.
3.2. Реализованы функции переопределения ссылок в сборке при добавлении фрагмента в пул обработки.
4. Изменение алгоритма обработки проекции.
4.1. Свойство [Включить обработку проекции] было удалено.
4.2. Обработка проекции выполняется если значение масштаба страницы не равно [Из документа].

[B]Примечание[/B]
Все ранее созданные файлы конфигураций необходимо повторно пересоздать в обновленной версии приложения.
T-FLEX Package Manager, Модуль расширения пакетной обработки документов
 
[B]Обновление T-FLEX Package Manager (30.08.2019)[/B]
1. Реализована функциональность резервного копирования документов для транслятора "Document".
2. Добавлена поддержка пакетного экспорта для трансляторов [Acis, Iges, Jt].
3. Добавлена поддержка пакетного импорта для трансляторов [Acis, Iges, Jt, Step].
4. Свойства "Исключить страницу из поиска" и "Исключить проекцию из поиска" были перенесены в диалог "Список значений" в качестве дополнительной опции "Исключить из поиска".
5. Свойства "Сохранить масштаб страницы" и "Сохранить масштаб проекции" были удалены из конфигурации.

[B]Примечание[/B]
Все ранее созданные файлы конфигураций необходимо повторно пересоздать в обновленной версии приложения.
Плагин к Total commander, Total commander WLX / WDX
 
Mixa, насколько я понимаю, для корректной работы плагина (WDX) должны быть предустановленны компоненты (SW/Компас). 3D-модели деталей импортируются в сборку как набор тел в формате STL. То есть, то что вы называете миграцией данных - это фактически перенос метаданных файла (SW) в файл (Компас) с привязкой модели STL. В данном случае роль плагина (WDX) заключается в том, чтобы отобразить метаданные в буфер обмена Total Commander, а затем сохранить в файл (Компас) созданный из прототипа.

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

Если рассматривать чисто пакетный импорт, без интеграции с DOCs, именно с миграцией метаданных и возникают пробелы. Для переноса метаданных из T-FLEX CAD 16, можно выгрузить структуру изделия в формат данных XML. Если в (SW/Компас) поддерживается возможность выгрузки метаданных структуры изделия в формате XML, то можно закрыть этот вопрос путем пакетного импорта, используя только компоненты T-FLEX CAD API.
Плагин к Total commander, Total commander WLX / WDX
 
[QUOTE]Mixa написал:
Банально, данные спецификации.[/QUOTE]
если не сложно, опишите процедуру "переброски данных модели" из (SW) в (Компас), используя существующий механизм (WDX). предполагается наличие установленного ПО (SW/Компас), в качестве дополнительного API, или только T-FLEX CAD API?
Плагин к Total commander, Total commander WLX / WDX
 
[QUOTE]Mixa написал:
Есть программеры чтоб WDX плагин написать для переброски данных из моделей и сборок SolidWorks и Компас очень нужен.[/QUOTE]
Что вы имеете ввиду под определением "переброски данных из моделей и сборок SolidWorks и Компас"?

Если имеется ввиду автоматическая регенерация модели (SW) в файл GRB, с учетом истории построений, то это задача далеко нетривиальная. Учитывая некоторые различия в инструментах моделирования и большое многообразие методов построения. Одно дело импортировать тела сборки, другое - по операционная ретрансляция модели.
Макрос ZoomAll (), Помогите с макросом. Как с помощью кода показать всё изображение?
 
Александр Крупенников, как вариант можно перерисовать прямоугольник изображения, используя свойство [I]WCSRectangle[/I], например:
[CODE]
using TFlex.Model;

namespace Test
{
   public class ZoomView
   {
       public static void Run()
       {
           Document document = TFlex.Application.ActiveDocument;

           if (document == null && document.ActiveView == null && document.ActivePage == null)
               return;

           TFlex.Drawing.Rectangle rect = new TFlex.Drawing.Rectangle
           {
               Left   = document.ActivePage.Left.Value,
               Bottom = document.ActivePage.Bottom.Value,
               Right  = document.ActivePage.Right.Value,
               Top    = document.ActivePage.Top.Value
           };

           document.ActiveView.Graphics.WCSRectangle = rect;
           document.Redraw();
       }
   }
}
[/CODE]
Изменено: vite - 10.06.2019 12:19:55
Макрос ZoomAll (), Помогите с макросом. Как с помощью кода показать всё изображение?
 
Александр Крупенников, в T-FLEX CAD API 16 был добавлен метод [I]RunSystemCommand[/I], который позволяет запускать стандартные команды по имени, например:
[CODE]
using TFlex.Model;

namespace Test
{
   public class ZoomView
   {
       public static void Run()
       {
           Document document = TFlex.Application.ActiveDocument;

           if (document == null && document.ActiveView == null)
               return;

           // Показать все изображение
           TFlex.Application.RunSystemCommand("ZoomMax");
       }
   }
}
[/CODE]
в отличии от команды [I]ZoomMax[/I], команда [I]ZoomAll[/I] показывает изображение в пределах границ страницы. если нужно приблизить или уменьшить изображение, используйте команды [I]ZoomIn/ZoomOut[/I]. чтобы отобразить только выбранные объекты, используйте [I]ZoomSelected[/I].
Доработки функционала, необходимые пользователям, Внедрение нового функционала, доработка существующего.
 
Необходимо добавить поддержку форматов LibreOffice (ods, odb) для подключения внешней базы данных.
Подключение к T-Flex из 1С, Подключение к T-Flex из 1С
 
Ксения Пальянова, COM-сервер не доступен для T-FLEX Viewer (15.1.76.0/16.0.40.0). он также не доступен для T-FLEX CAD 3D (15.1.76.0), но для T-FLEX CAD 3D (16.0.40.0) доступен, хотя и нет официальной документации для текущей версии.
T-FLEX Package Manager, Модуль расширения пакетной обработки документов
 
Уважаемые инженеры, рад представить вам обновленную версию модуля пакетной обработки документов, приложение «T-FLEX Package Manager». В отличии от предыдущей версии, данный модуль имеет ряд существенных улучшений. Главная цель новой разработки – это создание универсального интерфейса для поддержки всех имеющихся трансляторов (импорт/экспорт) в одном модуле.

[VIDEO TYPE=YOUTUBE WIDTH=640 HEIGHT=360]https://www.youtube.com/embed/nziaFR5hU1A?feature=oembed[/VIDEO]

Исходный код: https://github.com/intity/tfpacman
Документация: [URL=https://yadi.sk/i/DJrf9u1-AbaNig]tfpacman_help.pdf[/URL]
План развития приложения: [URL=https://yadi.sk/i/PthLPM4xvXJtqQ]tfpacman_roadmap.pdf[/URL]
Бинарные файлы приложения: [URL=https://yadi.sk/d/6R9FpL6xoYhjVQ]TFPackageManager.7z[/URL]
Получить путь связанного объекта(файла) из Структуры изделия
 
[QUOTE]Анна написал:
подскажите пожалуйста какую ссылку вы используете для определения "SchemeId"? [/QUOTE]
это свойство было добавлено в T-FLEX CAD API 16, но вы можете определить схему по наименованию, например:
[CODE]
ProductStructure ps = document.GetProductStructures().Where(p => p.Name == "Данные для спецификации").FirstOrDefault();
[/CODE]
Получить путь связанного объекта(файла) из Структуры изделия
 
Анна, пример выгрузки данных структуры изделия в XML:
[CODE]
using System;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using TFlex.Model;
using TFlex.Model.Data.ProductStructure;

namespace Test
{
   public class ProductStructureInfo
   {
       private static readonly Document document = TFlex.Application.ActiveDocument;

       public static void Run()
       {
           if (document == null)
               return;

           string path = Path.Combine(document.FilePath, "product_structure_data.xml");
           //
           // GUID схемы структуры изделия (см. C:\Program Files\T-FLEX CAD 16\Program\ProductStructs\Default product structure.xml)
           //
           Guid guid = new Guid("{0971322f-b6bb-46ae-891e-1abb26e0a252}");
           //
           // Получаем ссылку на объект структуры изделия из активного документа
           //
           ProductStructure ps = document.GetProductStructures().Where(p => p.SchemeId == guid).FirstOrDefault();
           if (ps != null)
           {
               XDocument xml = ProductStructureToXml(ps);
               xml.Save(path);
           }
       }

       private static XDocument ProductStructureToXml(ProductStructure ps)
       {
           //
           // Получаем ссылку на объект схемы
           //
           Scheme scheme = ps.GetScheme();
           //
           // Создаем объект XML документа
           //
           XDocument document = new XDocument(new XDeclaration("1.0", "utf-8", null));
           XElement psElement = new XElement("ProductStructure",
               new XAttribute("uid", scheme.UID),
               new XAttribute("name", scheme.Name),
               new XAttribute("path", scheme.OriginalPath));

           XElement groups = new XElement("Groups");

           SetGroup(groups, ps);

           psElement.Add(groups);
           document.Add(psElement);
           return document;
       }

       private static void SetGroup(XElement groups, ProductStructure psParent)
       {
           Document child;
           Scheme scheme = psParent.GetScheme();
           XElement fragment;

           foreach (var row in psParent.GetRowElementGroups())
           {
               XElement group = new XElement("Group", new XAttribute("name", row.Name));

               switch (row.Name)
               {
                   case "Детали":
                       foreach (var i in row.RowElements)
                       {
                           //
                           // Добавление фрагмента детали в XML-документ
                           //
                           fragment = new XElement("Fragment", new XAttribute("id", i.ObjectId));
                           SetElement(scheme, fragment, i);
                           group.Add(fragment);
                       }
                       break;
                   case "Сборочные единицы":
                       foreach (var j in row.RowElements)
                       {
                           //
                           // Добавление фрагмента подсборки в XML-документ
                           //
                           fragment = new XElement("Fragment", new XAttribute("id", j.ObjectId));
                           SetElement(scheme, fragment, j);
                           //
                           // Открываем документ, относительно пути элемента структуры изделия
                           //
                           if ((child = TFlex.Application.OpenDocument(j.SourceFragmentPath, false)) != null)
                           {
                               //
                               // Получаем ссылку на объект ProductStructure из дочернего документа
                               //
                               ProductStructure childPs = child.GetProductStructures().Where(p => p.SchemeId == scheme.UID).FirstOrDefault();

                               if (childPs != null)
                               {
                                   //
                                   // Добавляем элемент Groups к фрагменту подсборки
                                   //
                                   XElement childGroups = new XElement("Groups");
                                   //
                                   // Рекурсивный вызов метода SetGroup с параметрами подсборки
                                   //
                                   SetGroup(childGroups, childPs);
                                   fragment.Add(childGroups);
                               }

                               child.Close();
                           }

                           group.Add(fragment);
                       }
                       break;
               }

               groups.Add(group);
           }
       }

       private static void SetElement(Scheme scheme, XElement fragment, RowElement element)
       {
           foreach (var p in scheme.Parameters)
           {
               switch (p.Name)
               {
                   case "Наименование":
                       fragment.Add(new XElement("parameter",
                           new XAttribute("name", p.Name),
                           new XAttribute("value", element[p.UID].Text)));
                       break;
                   case "Обозначение":
                       fragment.Add(new XElement("parameter",
                           new XAttribute("name", p.Name),
                           new XAttribute("value", element[p.UID].Text)));
                       break;
                   case "Позиция из фрагмента":
                       fragment.Add(new XElement("parameter",
                           new XAttribute("name", p.Name),
                           new XAttribute("value", element[p.UID].Text)));
                       break;
               }
           }

           fragment.Add(new XElement("parameter",
               new XAttribute("name", "Путь к фрагменту"),
               new XAttribute("value", element.SourceFragmentPath)));
       }
   }
}
[/CODE]
Сайт и Форум, Замечания и предложения по сайту и форуму
 
Анна, попробуйте в google поиске ввести такой запрос:
[CODE]
site:tflex.ru/forum document
[/CODE]
Создание меню после открытия документа
 
[QUOTE]Анна написал:
Я правильно понимаю что после открытия документа не получится создать подменю?[/QUOTE]
ну мы можем только гадать что на самом деле происходит. мои тесты показывают, что меню создается только в обработчике [I]OnCreateTools[/I]. если это действительно так, то это явная недоработка API.

думаю вам лучше обратится с этим вопросом в техподдержку.
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
dixiony, когда создается эскиз на грани, программа автоматически создает рабочую плоскость, поскольку экизы создаются на рабочей плоскости. если вы заранее создали РП_1, затем сместили ее на расстоянии и далее создаете эскиз на той же грани, то эскиз будет размещен на РП_1. те есть, РП_1 уже определена для грани, поэтому не происходит повторного создания РП_2. если вы хотите черить на РП_2, привязанной к той же грани, нужно дополнительно создать ее.

https://youtu.be/WUlH6nQ9t7g
Изменено: vite - 25.03.2019 09:16:06
T-FLEX CAD 16.0.51.0
Создание меню после открытия документа
 
Анна, это ошибка регистрации команды. в вашем случае можно было бы использовать глобальный объект меню, но проблема в том, что вне контекста обработчика [I]OnCreateTools[/I] применить изменения нельзя.
Выяснить материал через API
 
[QUOTE]Andrey Mazurov написал:
Я спрашивал есть ли возможность вызвать инструмент измерения и взять результаты его работы, а не делать через переменные.[/QUOTE]
результат отладки показывает: что имена свойств (XSIZE, YSIZE, ZSIZE) операция содержит, но их значения [I]null[/I]. либо это ошибка API, либо значения извлекаются другим способом. ответ находится в техподдержке...

[QUOTE]Andrey Mazurov написал:
Материал равен null, если это не тот объект где его присвоили.[/QUOTE]
по поводу материалов: посмотрите всю структуру преобразований. сначала нужно получить документ фрагмента, потом материал.
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 20 След.