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


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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 ... 19 След.
Как посчитать количество вхождений 3D фрагмента в сборке
 
[QUOTE]woofer написал:
IsKindOf не дает совершенно ничего.[/QUOTE]
Данная функция необходима для определения типа объекта. Для перечисления открытых документов, используется свойство Documents. Например:

[CODE]
using TFlex.Model;
using TFlex.Model.Model3D;

namespace Test
{
   public class Class8
   {
       public static void Run()
       {
           foreach (Document document in TFlex.Application.Documents)
           {
               if (document.ActiveView != null)
               {
                   Foo(document); // данные активного документа
               }
               else
               {
                   Foo(document); // данные фрагмента
               }
           }
       }

       public static void Foo(Document document)
       {
           foreach (Operation operation in document.GetOperations())
           {
               if (operation.IsKindOf(ObjectType.Fragment3D))
               {
                   // ...
               }

               if (operation.IsKindOf(ObjectType.Extrusion))
               {
                   var body = operation.Body;
                   var baseOperation = body.BaseOperation;

                   // ...

                   foreach (ModelObject obj in document.GetObjects())
                   {
                       if (operation.DependsOn(obj))
                       {
                           // определение зависимостей ...
                       }
                   }
               }
           }
       }
   }
}
[/CODE]
Как посчитать количество вхождений 3D фрагмента в сборке
 
[QUOTE]woofer написал:
Не это не то. Сколько всего фрагментов мне не нужно. Нужно количество вхождений определенных сборок.[/QUOTE]

[CODE]
using TFlex.Model;
using TFlex.Model.Model3D;

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

           if (document != null)
           {
               foreach (Operation operation in document.GetOperations())
               {
                   if (operation.IsKindOf(ObjectType.Fragment3D))
                   {
                       // 3D Фрагмент
                   }

                   if (operation.IsKindOf(ObjectType.Area))
                   {
                       // Штриховка или заливка
                   }

                   if (operation.IsKindOf(ObjectType.Bend))
                   {
                       // Операция гибки
                   }

                   // и т.д., полный список см. (TFlex.Model.ObjectType)
               }
           }
       }
   }
}
[/CODE]
Как посчитать количество вхождений 3D фрагмента в сборке
 
[QUOTE]woofer написал:
Интересует алгоритм который используется для заполнения спецификации, чтобы учесть все операции(копирование, массивы, симметрии и т.д.)[/QUOTE]
Спецификация генерируется по шаблону (см. [URL=http://www.tflexcad.ru/help/cad/15/report_temp.htm]Создание шаблона отчета[/URL]).
Сайт и Форум, Замечания и предложения по сайту и форуму
 
[QUOTE]Osiris2000 написал:
Насколько это критично, как вы считаете?[/QUOTE]
Не думал, что перенос данных форума может быть проблемой для разработчиков САПР. Относительно новой CMS для форума, предлагаю к рассмотрению вариант: [URL=https://github.com/discourse/discourse]discourse[/URL]. Чтобы не быть голословным, можете ознакомиться с действующим форумом [URL=https://forums.sketchup.com/]SketchUp Community[/URL].

Форум из мобильного устройства iPhone6:
Изменено: Vite - 20.03.2017 06:30:04
Доработки функционала, необходимые пользователям, Внедрение нового функционала, доработка существующего.
 
Предложение, добавить возможность выполнения макроса на уровне фрагмента.
Конфигурации модели
 
[QUOTE]SwnSerg написал:
возможно такое делается как-то по другому?[/QUOTE]
на сколько я понял, конфигурация модели представляет набор фиксированных параметров, досупных в свойствах "Параметры 3D фрагмента" (см. tf_3d_fragment_prop.PNG). это может быть полезным, если фрагмент имеет определенный стандарт, и не нуждается в динамических отношениях со сборкой. в качестве альтернативы, предлагаю вам рассмотреть возможность построения модели по параметрам из БД:
- [URL=https://www.youtube.com/watch?v=ONkYJ6Q38Yo]создание связи БД с переменными[/URL]
- [URL=https://www.youtube.com/watch?v=iEoQgpR3iuM]создание диалога[/URL]
Изменено: Vite - 05.03.2017 17:50:50
Конфигурации модели
 
[QUOTE]SwnSerg написал:
нужно ли после  вызова данного метода вызывать document.Regenerate(options)? или LoadConfigurationVariables(confName) достаточно?[/QUOTE]

я пробовал применить метод LoadConfigurationSolids, но возникает исключение, типа:
[CODE]
An exception of type 'System.AccessViolationException' occurred in TFlexAPI.dll but was not handled in user code
Additional information: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
[/CODE]
если макрос запустить без отладчика, приложение T-FLEX CAD завершается с ошибкой. что именно вызывает ошибку, мне непонятно. незнаю зачем вам понадобилось использовать конфигурации модели. на мой взгляд, проще и эффективнее загрузить параметры из базы данных.
Изменено: Vite - 05.03.2017 15:10:12
Конфигурации модели
 
[QUOTE]SwnSerg написал:
такое возможно реализовать?[/QUOTE]

[CODE]
using System.Windows.Forms;
using TFlex.Model;

namespace Test
{
   public class Class6
   {
       public static void Run()
       {
           Document document = TFlex.Application.ActiveDocument;
           RegenerateOptions options = new RegenerateOptions();

           options.Full = true;

           string confName = "";
           string confCurrent = document.ModelConfigurations.GetConfigurationWithCurrentValues();

           MessageBox.Show("Текущая конфигурация: " + confCurrent);

           for (int i = 0; i < document.ModelConfigurations.ConfigurationCount; i++)
           {
               confName = document.ModelConfigurations.GetConfigurationName(i);

               if (confName != confCurrent)
               {
                   MessageBox.Show("Следующая конфигурация: " + confName);

                   document.ModelConfigurations.LoadConfigurationVariables(confName);
                   document.Regenerate(options);
               }

               if (i == document.ModelConfigurations.ConfigurationCount - 1)
               {
                   MessageBox.Show("Возврат к исходной конфигурации");
                   document.ModelConfigurations.LoadConfigurationVariables(confCurrent);
                   document.Regenerate(options);
               }
           }
       }
   }
}
[/CODE]
Изменено: Vite - 04.03.2017 14:55:06
[ Закрыто] Обновление всех открытых документов, Как сделать полный пересчёт всех открытых документов.
 
[QUOTE]SwnSerg написал:
Подскажите, пожалуйста, каким образом можно обновить все открытые документы в сессии T-Flex CAD?
[/QUOTE]

макрос регенерации открытых документов:
[CODE]
using System.Collections.Generic;
using System.Windows.Forms;
using TFlex.Model;

namespace Test
{
   public class Class5
   {
       static List<Document> documents = new List<Document>();

       public static void Run()
       {
           Document activedocument = TFlex.Application.ActiveDocument;

           if (activedocument != null)
           {
               RegenerateOptions options = new RegenerateOptions();

               options.Full = true;
               options.UpdateAllLinks = true;
               options.UpdateBillOfMaterials = true;

               foreach (var doc in GetDocuments())
               {
                   doc.BeginChanges("Регенерация документа " + doc.FileName);
                   doc.Regenerate(options);
                   doc.EndChanges();
               }

               activedocument.Activate();

               documents.Clear();
           }
           else
           {
               MessageBox.Show("Не обнаружен активный документ.",
                   "T-FLEX CAD", MessageBoxButtons.OK, MessageBoxIcon.Question);
           }
       }

       static List<Document> GetDocuments()
       {
           foreach (Document d in TFlex.Application.Documents)
           {
               if (d.ActiveView != null)
               {
                   documents.Add(d);
               }
           }

           return documents;
       }
   }
}
[/CODE]
Изменено: Vite - 03.03.2017 11:13:51
Доработки функционала, необходимые пользователям, Внедрение нового функционала, доработка существующего.
 
Предложение, дбавить в редактор переменных:
[B]Гиперболические функции[/B]
- гиперболический синус
- гиперболический косинус
- гиперболический тангенс
- гиперболический котангенс
- гиперболический секанс
- гиперболический косеканс
[B]Обратные гиперболические функции[/B]
- гиперболический арксинус
- гиперболический арккосинус
- гиперболический арктангенс
- гиперболический арккотангенс
- гиперболический арксеканс
- гиперболический арккосеканс
[B]Математические[/B]
- Корень в n-й степени
спецификация
 
Цитата
ВладиславКМВ написал:
Пока решил просто удалить переменную, задающую длину во фрагменте.
по-умолчанию подгруппа элементов формируется по условию совпадения строки для колонки "Наименование". я сомневаюсь что с уровня пользоватльского интерфейса возможно переопределить данное правило.
T-FLEX CAD 16.0.48.0
спецификация
 
Цитата
ВладиславКМВ написал:
Как свести все детали одного сортамента в одну группу?
по идее сортировка должна выполняться по условию, определенного по-умолчанию в свойствах структуры изделия (см. вложение: tf_struct_sort.PNG). Но по факту, сортировка работает не для всех стандартных изделий (см. вложение: tf_struct_group_to_definition.PNG). почему так, для меня загадка.
T-FLEX CAD 16.0.48.0
Замечания по T-FLEX CAD 15, Ваши замечания касающиеся работы T-FLEX CAD 15
 
Цитата
Андрей Мальчук написал:
это не правильно на 146%, и на мой взгляд - это ошибка, и довольно критичная.
я наблюдал похожую ситуацию, когда в структуру модели попадает элемент (например ссылка, которая не используется), при удалении возникали проблемы на уровне зависимостей. проблема решается, после повторного запуска TF.
T-FLEX CAD 16.0.48.0
Поле БД как переменная
 
Цитата
i.volk62 написал:
Хотя сделать как выше предложил Vite было бы проще наверно, но хоть у меня и 15-я версия - повторить не удалось.
использование переменного имени БД решает задачу зависимых списков. но к сожалению, данный метод, корректно работает только в табличном представлении (имеется ввиду обновление списка по умолчанию).
T-FLEX CAD 16.0.48.0
Поле БД как переменная
 
Цитата
i.volk62 написал:
Может я какие то правила синтаксиса не выполняю?
так работать не будет. в 15-й версии появилась возможность в поле "Имя базы данных" определить переменную (см. снимок)
T-FLEX CAD 16.0.48.0
Сохранение файлов T-FLEX CAD, Плагин для сохранения файлов по наименованиею и обозначениею
 
[QUOTE]Сергей Бакин написал:
Да и не делает так никто...покажите мне хоть один CAD продукт предлагающий разработку под API, такой чтобы надо было его скачать и установить чтобы "там уже было".[/QUOTE]
согласен, документация T-FLEX OpenAPI (CAD, DOCs) должна быть доступна.
[ Закрыто] Наименование и обозначение документа, Как получить значения наименования и обозначения документа через API?
 
[QUOTE]SwnSerg написал:
тут идет речь о пользовательских свойствах документа[/QUOTE]
можете привести пример?
[ Закрыто] Наименование и обозначение документа, Как получить значения наименования и обозначения документа через API?
 
[QUOTE]SwnSerg написал:
В самом приложении TFlex CAD я могу посмотреть эти же самые атрибуты?
[/QUOTE]
если я не ошибаюсь, контейнер атрибутов документа используется для хранения метаданных.
[QUOTE]SwnSerg написал:
и где лучше хранить вспомогательные данные для плагина - в атрибутах документа или в переменных?[/QUOTE]
что вы подразумеваете под определением "вспомогательные данные" для плагина?
[ Закрыто] Наименование и обозначение документа, Как получить значения наименования и обозначения документа через API?
 
[QUOTE]SwnSerg написал:
Подскажите, пожалуйста, каким образом можно получить значения наименования и обозначения документа?
[/QUOTE]
[CODE]Document document = TFlex.Application.ActiveDocument;

string Name = document.FindVariable("$Наименование").TextValue;
string Designation = document.FindVariable("$Обозначение").TextValue;
[/CODE]
Определить тип документа
 
[QUOTE]SwnSerg написал:
Судя по всему, в TFlex так просто тип документа не получить, потому что сама объектная модель сильно отличается.[/QUOTE]
согласен, свойство "тип документа" должно быть определено в парметрах документа.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 ... 19 След.