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


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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 ... 21 След.
Замечания по T-FLEX CAD 15, Ваши замечания касающиеся работы T-FLEX CAD 15
 
Цитата
Андрей Мальчук написал:
не имея аргумента - функция сигналит, что допущена ошибка синтаксиса.. С аргументов - функция без вопросов возвращает результат, и он корректный.
по-видимому на момент выполнения команды "Обновить состояние", функция "N" не может быть обработана анализатором. а зачем создавать функцию "N", если не используется?
T-FLEX CAD 16.0.61.0
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Sila Musli написал:
Так разговор о линиях построения идёт. Человек скрывает профиль, потом открывает плоскость, а там все построения и ему не нравится.
ну если речь именно об этом, тогда лучше создать новую рабочую плоскость.
T-FLEX CAD 16.0.61.0
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Sila Musli, я имел ввиду скрытие только профиля (без линий построения).
Изменено: Vite - 22.07.2017 23:22:41
T-FLEX CAD 16.0.61.0
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Sila Musli написал:
Нет, иначе потом не найдёте чего от чего завязано. Мешают? Делайте на новой плоскости, а если уж завязывать построения, то частичное скрытие принесёт суммятицу.
вы всега можете выделить профиль в дереве модели. в чем может возникнуть путаница?
T-FLEX CAD 16.0.61.0
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
dixiony, с фильтром отображения профилей в режиме редактирования явная недоработка. в NX CAD независимо от режима, эскиз (профиль в TF) можно скрыть. почему в TF нужно для этого создавать отдельный слой? может быть потому, что несколько профилей на одной рабочей плоскости находятся в режиме редактирования? по-видимому в TF это связано с использованием общих линий построения для нескольких профилей. тем не менее, если в дереве модели определена новая сущность, типа "Профиль_n", то должен быть мезанизм его скрытия в режиме редактирования (без учета линий построения).
Изменено: Vite - 22.07.2017 23:04:05
T-FLEX CAD 16.0.61.0
Доработки функционала, необходимые пользователям, Внедрение нового функционала, доработка существующего.
 
ВладиславКМВ, ну и в чем проблема? делаете копии фрагментов в других каталогах. переопределяете ссылки в сборке, и удаляете ненужное.
Доработки функционала, необходимые пользователям, Внедрение нового функционала, доработка существующего.
 
[QUOTE]ВладиславКМВ написал:
Но если уж залез в параметры фрагмента, то можно заодно сразу и папку назначить.[/QUOTE]
что вы подразумеваете под определением "назначить папку"? чем вас не устраивает переопределение ссылки в параметрах фрагмента?
Замечания по T-FLEX CAD 15, Ваши замечания касающиеся работы T-FLEX CAD 15
 
Цитата
Андрей Мальчук написал:
Только удаление фрагмента из сборки и его повторная вставка заставляет изменить кеш сборки.
нужно изменить так же "Имя операции" в парамертах фрагмента. это просто наименование фрагмента, которое заменяет имя по-умолчанию (3D Фрагмент) при вставке в сборку.
T-FLEX CAD 16.0.61.0
Макрос для создания узлов
 
[QUOTE]DenStudy написал:
В значения коннектора загружает имена, но без выражений.[/QUOTE]
ну в этом плане API ограничен. все что я могу получить: имя параметра и его значение. по аналогии с переменными, должен быть тип данных "Expression", но я не вижу ничего подобного для коннекторов.
[QUOTE]DenStudy написал:
после того как нажимаешь ок на свойствах коннекотра всё значения пропадают.[/QUOTE]
не повторяется.
Изменено: Vite - 12.07.2017 16:58:20
Макрос для создания узлов
 
[QUOTE]DenStudy написал:
При выборе метода "Test.ConnectorTask.Run" выдаётся ошибка.[/QUOTE]
последовательность действий:
- поместите документ (Test Macro.grb) в директорию:
[CODE]
"C:\Program Files\T-FLEX CAD 15 x64\Program\Macros"
[/CODE]
- создайте новый документ;
- создайте пустой коннектор и выделите его;
- выполните макрос;
Макрос для создания узлов
 
DenStudy, проверьте ссылки (см. вложение). отлаживаемый метод должен быть: "Test.ConnectorTask.Run"
Изменено: Vite - 11.07.2017 19:06:43
Панель инструментов
 
Паша Маргинал, по-умолчанию параметр "Visible" установлено в "true". попробуйте сбросить настройки приложения, и повторно зарегистрировать плагин.
Макрос для создания узлов
 
DenStudy,

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

namespace Test
{
   public class ConnectorTask
   {
       public static void Run()
       {
           Document document = TFlex.Application.ActiveDocument;
           if (document != null)
           {
               OpenFileDialog ofd = new OpenFileDialog();
               ofd.Filter = "T-FLEX CAD Document | *.grb";
               ofd.ShowDialog();

               bool IsChanges = false;
               foreach (var i in document.Selection.GetAllObjects())
               {
                   switch (i.GroupType)
                   {
                       case ObjectType.FixingVector:
                           Connector connector = (Connector)i;
                           document.BeginChanges("Create connector values");

                           if (connector.Parameters.Count == 0)
                               IsChanges = CreateConnectorValuesOfPrototype(connector, ofd.FileName);

                           if (IsChanges)
                               document.EndChanges();
                           else
                               document.CancelChanges();
                           break;
                       case ObjectType.LCS:
                           LCS lcs = (LCS)i;
                           document.BeginChanges("Create connector values");

                           if (lcs.ConnectorParameters.Count == 0)
                               IsChanges = CreateConnectorLCSValuesOfPrototype(lcs, ofd.FileName);

                           if (IsChanges)
                               document.EndChanges();
                           else
                               document.CancelChanges();
                           break;
                   }
               }
           }
       }

       static bool CreateConnectorValuesOfPrototype(Connector connector, string prototypePath)
       {
           Document prototype = TFlex.Application.OpenDocument(prototypePath, false);
           if (prototype != null)
           {
               foreach (Object2D i in prototype.Get2DObjects())
               {
                   if (i.GroupType == ObjectType.FixingVector)
                   {
                       Connector c = (Connector)i;
                       for (int j = 0; j < c.Parameters.Count; j++)
                       {
                           if (c.Parameters.IsReal(j))
                           {
                               connector.ChangeParameters().SetRealValue(
                                   c.Parameters.GetParameter(j),
                                   c.Parameters.GetRealValue(j));
                           }
                           else
                           {
                               connector.ChangeParameters().SetTextValue(
                                   c.Parameters.GetParameter(j),
                                   c.Parameters.GetTextValue(j));
                           }
                       }
                   }
               }
           }
           else
               MessageBox.Show("Прототип не определен...");

           if (connector.Parameters.Count > 0)
               return true;

           return false;
       }

       static bool CreateConnectorLCSValuesOfPrototype(LCS lcs, string prototypePath)
       {
           Document prototype = TFlex.Application.OpenDocument(prototypePath, false);
           if (prototype != null)
           {
               foreach (LCS i in prototype.GetLCSs())
               {
                   if (i.IsConnector())
                   {
                       for (int j = 0; j < i.ConnectorParameters.Count; j++)
                       {
                           if (i.ConnectorParameters.IsReal(j))
                           {
                               lcs.ChangeConnectorParameters().SetRealValue(
                                   i.ConnectorParameters.GetParameter(j),
                                   i.ConnectorParameters.GetRealValue(j));
                           }
                           else
                           {
                               lcs.ChangeConnectorParameters().SetTextValue(
                                   i.ConnectorParameters.GetParameter(j),
                                   i.ConnectorParameters.GetTextValue(j));
                           }
                       }
                   }
               }

               if (lcs.ConnectorParameters.Count > 0)
                   return true;
           }
           else
               MessageBox.Show("Прототип не определен...");

           return false;
       }
   }
}
[/CODE]
Макрос для создания узлов
 
[QUOTE]DenStudy написал:
Попробовал скомпилировать ваш макрос - не получилось.[/QUOTE]
исправьте ошибку в первой строке. что такое 2D коннектор?
Макрос для создания узлов
 
[QUOTE]DenStudy написал:
Необходимо загружать в выбранный коннектор список значений коннектора, значения с выражениями из шаблона (прототипа) коннектора.[/QUOTE]
если я правильно понял вопрос, вам нужно заполнить "Значения коннектора" для выделенного ЛСК активного документа, из прототипа. так?

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

namespace Test
{
   public class ConnectorTask
   {
       public static void Run()
       {
           Document document = TFlex.Application.ActiveDocument;
           if (document != null)
           {
               OpenFileDialog ofd = new OpenFileDialog();
               ofd.Filter = "T-FLEX CAD Document | *.grb";
               ofd.ShowDialog();

               bool IsChanges = false;
               foreach (var i in document.Selection.GetAllObjects())
               {
                   if (i.GroupType == ObjectType.LCS)
                   {
                       LCS docLCS = (LCS)i;
                       document.BeginChanges("Create connector values");

                       if (docLCS.ConnectorParameters == null)
                           IsChanges = CreateConnectorValuesOfPrototype(docLCS, ofd.FileName);

                       if (IsChanges)
                           document.EndChanges();
                       else
                           document.CancelChanges();
                       break;
                   }
               }
           }
       }

       static bool CreateConnectorValuesOfPrototype(LCS docLCS, string prototypePath)
       {
           Document prototype = TFlex.Application.OpenDocument(prototypePath, false);
           if (prototype != null)
           {
               foreach (LCS i in prototype.GetLCSs())
               {
                   if (i.IsConnector())
                   {
                       for (int j = 0; j < i.ConnectorParameters.Count; j++)
                       {
                           if (i.ConnectorParameters.IsReal(j))
                           {
                               docLCS.ChangeConnectorParameters().SetRealValue(
                                   i.ConnectorParameters.GetParameter(j),
                                   i.ConnectorParameters.GetRealValue(j));
                           }
                           else
                           {
                               docLCS.ChangeConnectorParameters().SetTextValue(
                                   i.ConnectorParameters.GetParameter(j),
                                   i.ConnectorParameters.GetTextValue(j));
                           }
                       }
                   }
               }

               if (docLCS.ConnectorParameters != null)
                   return true;
           }
           else
               MessageBox.Show("Прототип не определен...");

           return false;
       }
   }
}
[/CODE]
Макрос для создания узлов
 
DenStudy,

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

namespace Test
{
   public class DocumentTask
   {
       public static void Run()
       {
           Document document = TFlex.Application.ActiveDocument;
           if (document != null)
           {
               OpenFileDialog ofd = new OpenFileDialog();
               ofd.Filter = "T-FLEX CAD Document | *.grb";
               ofd.ShowDialog();
               InsertVariablesOfPrototype(document, ofd.FileName);
           }
       }

       public static void InsertVariablesOfPrototype(Document document, string prototypePath)
       {
           Document prototype = TFlex.Application.OpenDocument(prototypePath, false);

           if (prototype != null)
           {
               foreach (var i in prototype.GetVariables())
               {
                   if (document.FindVariable(i.Name) == null)
                   {
                       document.BeginChanges("Insert Variable");
                       CreateVariableOfPrototype(document, i);
                       document.EndChanges();
                   }
               }
           }
           else
           {
               MessageBox.Show("Прототип не определен...");
           }
       }

       public static Variable CreateVariableOfPrototype(Document document, Variable v)
       {
           Variable variable = null;

           if (v.IsReal)
           {
               variable = new Variable(document, v.Name, v.RealValue, v.External);
           }
           else if (v.IsText)
           {
               variable = new Variable(document, v.Name, v.TextValue, v.External);
           }

           if (variable != null)
           {
               variable.GroupName = v.GroupName;
               variable.Hidden = v.Hidden;
               variable.Comment = v.Comment;
               variable.Expression = v.Expression;

               for (int i = 0; i < v.ValueListCount; i++)
               {
                   variable.AddValueListString(v.GetValueListString(i));
               }
           }

           return variable;
       }
   }
}
[/CODE]
Изменено: Vite - 07.07.2017 19:00:31
Порядок размещения объектов
 
Паша Маргинал, такова специфика селектора. на самом деле, параграф наложен на таблицу. если, например, определить уровень таблицы (1), а параграф на уровне (0). затем, применить заливку таблицы, то параграф будет скрыт. при желании, можно выделить параграф через окно "Элементы модели". зачем вам такие сложности?
Порядок размещения объектов
 
Паша Маргинал, нужно смотреть документ, так сложно определить причину.
Порядок размещения объектов
 
[QUOTE]Паша Маргинал написал:
Подскажите как это можно сделать?[/QUOTE]
Возможно Вы имели ввиду случай, когда таблица наложена поверх параграфа? Если таблица создана независимо от параграфа, можно выделить в окне "Элементы модели" (для T-FLEX 15), или через слой (если элемент создан на отдельном слое). Далее, при помощи свойства "Уровень" или "Приоритет", устанавливаете порядковый номер от нуля.
На уровне API это общее свойство:
- Text.Level
- Text.Priority

для oпределения таблицы используется свойство "RichText.TableOnly", например:
[CODE]
foreach (RichText text in document.GetTexts())
{
   text.BeginEdit();

   if (text.TableOnly)
       text.Level = 1;

   text.EndEdit();
}
[/CODE]
Изменено: Vite - 27.06.2017 21:06:09
Удаление ссылки на файл
 
[QUOTE]Паша Маргинал написал:
Можно ли как то достать все ссылки из одного параграфа?[/QUOTE]

[CODE]
static bool RemoveFileLink(Document document, ParagraphText text, string filePath)
{
   foreach (FileLink link in document.FileLinks)
   {
       if (link.FilePath == filePath)
       {
           text.SetFileLinkReference(link.InternalID.ToInt32(), new FileLink(document));
           return true;
       }
   }
   return false;
}
[/CODE]
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 12 ... 21 След.