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


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

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 22 След.
Замечания по T-FLEX CAD 17, Ваши замечания касающиеся работы T-FLEX CAD 17
 
Ошибка преобразования симметрии с использованием переменной.

Изменено: vite - 23.09.2020 18:37:07
T-FLEX CAD 17.0.21.0
Замечания по T-FLEX CAD 17, Ваши замечания касающиеся работы T-FLEX CAD 17
 
Метод TFlex.Application.GetDocumentExternalFileLinks всегда обрабатывает внешние ссылки рекурсивно, даже если параметр recursive установлен в false.
T-FLEX CAD 17.0.21.0
T-FLEX Package Manager, Модуль расширения пакетной обработки документов
 
Обновление пакетного менеджера (15.07.2020)

Основные изменения текущего выпуска связаны с реорганизацией конфигурации приложения. Назначение реорганизации -- это упрощение архитектуры приложения. Чтобы предоставить более гибкий подход к настройке интерфейса на основе модулей расширения, было необходимо избавиться от избыточной сложности мультипликации трансляторов на уровне одного файла конфигурации. Вместо этого, предлагается использовать файл конфигурации в качестве универсального контейнера для хранения только одного транслятора.

Изменения
1. Реорганизация конфигурации приложения.
1.1. Файл конфигурации может хранить только один транслятор.
1.2. По умолчанию, в новый файл конфигурации добавляется транслятор "Document".
1.3. Селектор "Транслятор" перемещен из панели инструментов в диалог "Свойства конфигурации" для переопределения типа транслятора на уровне файла конфигурации.
1.4. В заголовок главного окна приложения добавлен маркер текущего транслятора.
1.5. Корневой каталог вывода является основным каталогом транслятора.
1.6. Введен новый уровень абстракции "модули расширения" для обеспечения более гибкой настройки процесса обработки за счет включения/выключения модулей расширения в пул обработки (см. Схема подключения модулей расширения).
1.7. Добавлена опция "Переименовать подкаталог" в категорию "Файлы" для предоставления возможности использовать функцию переименования подкаталога только при необходимости.
2. Обновлена справочная информация.

Примечание
Текущая реализация приложения еще не достигла релиза (0.1). По этой причине, обновления помечены текущей датой выпуска. Чтобы приложение работало корректно, необходимо удалить все ранее созданные файлы конфигураций.
T-FLEX CAD 17.0.21.0
Раскрытие фрагмента в макросе, Не получается в макросе раскрыть фрагмент
 
Сергей, можно сделать проще, без вызова команды Undo, например:
Код
using System.Collections.Generic;
using TFlex.Model;
using TFlex.Model.Model2D;

namespace Test
{
    public class DimensionsCounter
    {
        static int counter;
        static readonly Document document = TFlex.Application.ActiveDocument;

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

            ProcData data = new ProcData();
            ProcessingDimensions(document, data);

            document.Diagnostics.RemoveAll();
            document.Diagnostics.Add(new DiagnosticsMessage(
                DiagnosticsMessageType.Information,
                string.Format("Количество размеров в сборке: {0}", 
                counter)));

            PrintAllDimensions(data);
        }

        private static void ProcessingDimensions(Document document, ProcData data)
        {
            foreach (var dim in document.GetDimensions())
            {
                if (dim.Page.Name == "Эскиз")
                    continue;

                if (RectanglesValidate(dim.Page.Rectangle, dim.BoundRect))
                    continue;

                data.Dimensions.Add(dim);
                counter++;
            }

            foreach (var fr in document.GetFragments())
            {
                if (fr.Page.Name == "Эскиз")
                    continue;

                if (RectanglesValidate(fr.Page.Rectangle, fr.BoundRect))
                    continue;

                var child = fr.GetFragmentDocument();
                if (child == null)
                    continue;

                data.Items.Add(fr, new ProcData());
                ProcessingDimensions(child, data.Items[fr]);
            }
        }

        private static bool RectanglesValidate(
            TFlex.Drawing.Rectangle rc1, 
            TFlex.Drawing.Rectangle rc2)
        {
            return rc1.Left   > rc2.Left || 
                   rc1.Right  < rc2.Right || 
                   rc1.Top    < rc2.Right || 
                   rc1.Bottom > rc2.Bottom;
        }

        private static void PrintAllDimensions(ProcData data)
        {
            foreach (var dim in data.Dimensions)
            {
                document.Diagnostics.Add(new DiagnosticsMessage(
                    DiagnosticsMessageType.Information,
                    string.Format("Dimension [id: {0}, page: {1}]",
                    dim.ObjectId,
                    dim.Page.Name)));
            }

            foreach (var item in data.Items)
            {
                PrintAllDimensions(item.Value);
            }
        }
    }

    public class ProcData
    {
        public ProcData()
        {
            Dimensions = new List<Dimension>();
            Items = new Dictionary<Fragment, ProcData>();
        }

        public List<Dimension> Dimensions { get; private set; }
        public Dictionary<Fragment, ProcData> Items { get; private set; }
    }
}
T-FLEX CAD 17.0.21.0
Раскрытие фрагмента в макросе, Не получается в макросе раскрыть фрагмент
 
Цитата
Сергей написал:
компилятор теперь ругается на TFlex.Application.ActiveMainWindow
по видимому, в T-FLEX CAD 15 нужно использовать свойство TFlex.Application.Window (в T-FLEX CAD 16 оно помечено как устаревшее).
T-FLEX CAD 17.0.21.0
Классификатор прототипов, Предложение пользователей по улучшению конфигурации прототипов
 
FRei, если рассматривать в упрощенной форме, то классификатор прототипов представляет собой механизм переключения с одного класса прототипа на другой. Как если бы вы создали сначала деталь, а затем изменили класс прототипа на сборку. Принципиальное отличие в том, что служебные переменные в файле модели представлены в виде базовой схемы, которая хранится во внешнем файле. Технически это можно представить как если бы файл модели изначально не имел схемы и был пустым контейнером. При создании нового файла, схема добавляется в качестве экземпляра по умолчанию. Далее, значения служебных переменных могут изменяться и при необходимости, сохранены. Если изменить класс прототипа на сборку, то большая часть служебных параметров останется без изменений, но при этом, будут добавлены необходимые привязки для структуры изделия. То есть, прототипы детали и сборки могут быть обратно совместимы, если их схема имеет незначительные различия. Но если рассматривать этот вопрос в более широком аспекте, когда прототипы имеют геометрические построения, то совместимости может и не быть.
T-FLEX CAD 17.0.21.0
Классификатор прототипов, Предложение пользователей по улучшению конфигурации прототипов
 
Тема создана для обсуждения предложений пользователей по улучшению конфигурации прототипов для создания деталей, сборки и т.д.

Введение
В рамках существующей конфигурации (16.0.68.0), прототип представляет собой шаблон из которого создается новый файл модели. Когда файл создан, изменить схему прототипа простым способом нельзя. Каждый прототип имеет некоторые различия, обусловленные спецификой внутренней схемы исходных параметров. Например, прототип "2D Деталь" отличается от прототипа "3D Деталь", но при этом, имеет некоторые общие параметры. С точки зрения T-FLEX CAD API нет четкого определения, из какого прототипа был создан файл модели. Разумеется, по косвенным признакам это можно определить, но речь не об этом.

Основная проблема, на мой взгляд, -- это отсутствие, на уровне ядра системы, классификатора прототипов; возможность переопределения прототипа по классификатору на уровне интерфейса приложения. Когда пользователю не нужно задумываться о различиях в служебных параметрах для переопределения схемы прототипа. Иначе говоря, при переключении прототипа по классификатору, предполагается изменение схемы служебных параметров без изменения исходных значений там, где используются общие параметры. Если рассматривать файл модели с точки зрения классификатора, то это универсальный контейнер в котором может храниться несколько схем, в зависимости от определенного класса текущего прототипа.

Что такое классификатор прототипов?
Предполагается, что для каждой схемы служебных параметров будет определен уникальный класс прототипа. Центральная роль схемы, обусловлена сохранением целостности модели прототипа с учетом привязки служебных параметров к структуре изделия. По своей сути, схема служебных параметров -- это открытая спецификация для обеспечения базовой конфигурации прототипа модели на уровне интерфейса. Для пользователя, схема прототипа доступна только для чтения. То есть, пользователь не может удалять служебные параметры но может изменять их значения, путем переопределения в редакторе переменных, либо изменять значения по умолчанию на уровне базовой схемы классификатора прототипов. Гипотетически, на уровне API, базовая схема прототипа модели документа может быть представлена в виде специального класса для обеспечения прямого доступа к служебным параметрам. Фактически, классификатор прототипов -- это универсальный интерфейс той части документа, которая не может изменяться в редакторе переменных напрямую. Классификатор прототипов должен быть представлен в отдельном окне, для предоставления возможности изменять значения базовой схемы, заданных по умолчанию, либо иметь возможность добавить пользовательские классы прототипов с привязкой собственной схемы служебных параметров. То есть, если пользователю понадобится прототип без использования базовой схемы, в качестве альтернативы, то такая возможность может быть реализована на уровне классификатора прототипов, путем добавления пользовательского класса.

Если привести аналогию классификатора прототипов, то это очень напоминает классификатор семейств, реализованный в Autodesk Revit.

Резюме
Описанная конфигурация классификатора прототипов является лишь попыткой осмыслить совершенно новый подход к реализации потенциальных возможностей, относительно системы T-FLEX CAD. В данном описании не рассматривается наиболее важная часть -- это геометрические построения модели, которые также могут быть составной частью прототипа. По этой причине, этот вопрос необходимо рассматривать целостно, учитывая различный опыт пользователей из разных областей.
T-FLEX CAD 17.0.21.0
Раскрытие фрагмента в макросе, Не получается в макросе раскрыть фрагмент
 
Сергей, см. исправление выше ( #9 )
чтобы макрос работал в T-FLEX 15 версии, закомментируйте первую строку
Код
//#define TF16
T-FLEX CAD 17.0.21.0
Раскрытие фрагмента в макросе, Не получается в макросе раскрыть фрагмент
 
Сергей, для отмены или повтора операции, можно применить системную команду, например:
Код
#define TF16

using System;
using System.Runtime.InteropServices;
using TFlex.Model;
using TFlex.Model.Model2D;

namespace Test
{
    public class ExplodeFragment
    {
        [DllImport("user32.dll")]
        public static extern IntPtr SendMessage(
            IntPtr hWnd,
            int msg,
            IntPtr wParam,
            IntPtr lParam);

        static readonly Document document = TFlex.Application.ActiveDocument;

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

            bool hasSelected = false;
            
            foreach (var obj in document.Selection.GetAllObjects())
            {
                if (!obj.IsKindOf(ObjectType.Fragment))
                    continue;

                var fragment = obj as Fragment;
                if (!Explode(fragment))
                    continue;

                hasSelected = true;
            }

            if (!hasSelected)
            {
                document.Diagnostics.Add(new DiagnosticsMessage
                    (DiagnosticsMessageType.Information, 
                    "Необходимо выбрать фрагмент!"));
            }
        }

        private static bool Explode(Fragment fragment)
        {
            var opt = new FragmentExplodeOptions
            {
                CreateConstructions = true,
                Silent = true,
                UniteInGroup = true
            };

            var path = fragment.FullFilePath;

            if (fragment.Explode(opt))
            {
                document.Diagnostics.Add(new DiagnosticsMessage
                    (DiagnosticsMessageType.Information, string.Format
                    ("Раскрытие фрагмента: {0}", path)));
                return true;
            }

            return false;
        }

        public static void Undo()
        {
            if (document == null)
                return;
#if TF16
            TFlex.Application.RunSystemCommand("Undo", null, null);
#else
            SendMessage(TFlex.Application.ActiveMainWindow.Handle, 0x0111, 
                (IntPtr)0x0000045B, IntPtr.Zero);
#endif
            document.Diagnostics.Add(new DiagnosticsMessage
                (DiagnosticsMessageType.Information, "Отмена последней операции"));
        }

        public static void Redo()
        {
            if (document == null)
                return;
#if TF16
            TFlex.Application.RunSystemCommand("Redo", null, null);
#else
            SendMessage(TFlex.Application.ActiveMainWindow.Handle, 0x0111,
                (IntPtr)0x0000045D, IntPtr.Zero);
#endif
            document.Diagnostics.Add(new DiagnosticsMessage
                (DiagnosticsMessageType.Information, "Повтор последней операции"));
        }
    }
}
Изменено: vite - 18.06.2020 06:21:17
T-FLEX CAD 17.0.21.0
База данных T-FLEX CAD Next, Предложение пользователей по улучшению интерфейса базы данных
 
Цитата
FRei написал:
ODBC вы, конечно, уже попробовали и через него не работает?
не вижу в этом необходимости.
T-FLEX CAD 17.0.21.0
База данных T-FLEX CAD Next, Предложение пользователей по улучшению интерфейса базы данных
 
Цитата
Sila Musli написал:
Какие данные нужно передавать, которые сейчас не передаются?
технически, формат данных CSV может полностью заменить MDB. С ним проще работать, чем с XML, на уровне редактора. Но меня интересует строго определенная спецификация внешних данных в формате XML, как альтернатива MDB. Один файл XML с несколькими таблицами и строго определенными полями. Это вовсе не означает, что CSV нельзя использовать в качестве открытого источника для обмена данными. Аргумент в пользу формата XML нельзя рассматривать с точки зрения замены CSV.
T-FLEX CAD 17.0.21.0
База данных T-FLEX CAD Next, Предложение пользователей по улучшению интерфейса базы данных
 
Цитата
Sila Musli написал:
А что есть случаи когда система приводит типы полей не корректно?
во-первых текстовый формат, текущей реализации T-FLEX CAD (16.0.65.0), не поддерживает кодировку UTF-8. Во-вторых, формат CSV крайне ограничен в плане обмена данными. Формат XML является универсальным в данном смысле.
Изменено: vite - 19.05.2020 23:25:13
T-FLEX CAD 17.0.21.0
База данных T-FLEX CAD Next, Предложение пользователей по улучшению интерфейса базы данных
 
Цитата
FRei написал:
на JSON не хотите? Как-то проще имхо в случае чего редактировать
без разницы, главное чтобы была такая возможность. Мне приходится использовать в качестве внешней базы данных MS Access. Но это, в свою очередь, накладывает ограничение на редактирование базы данных для клиентов, которые не используют пакет MS Office. А для LibreOffice поддержка также не реализована. Альтернатива должна быть, хотя может быть XML или JSON не самый лучший вариант для большинства пользователей. Я рассматриваю XML формат в качестве метаданных библиотечных элементов.
T-FLEX CAD 17.0.21.0
База данных T-FLEX CAD Next, Предложение пользователей по улучшению интерфейса базы данных
 
Тема создана для рассмотрения/обсуждения предложений пользователей по улучшению или добавлению новых функций базы данных T-FLEX CAD Next.

1. Поддержка открытой спецификации базы данных T-FLEX CAD в формате XML
Предложение, добавить поддержку использования в качестве внешней базы данных XML-файл с определением строгой типизации полей, например:
Код
<?xml version="1.0" encoding="UTF-8"?>
<data>
  <table name="T1">
    <tr>
      <td name="ID" type="Int">1</td>
      <td name="P1" type="Real">0.0001</td>
      <td name="PH" type="Text">Text data...</td>
    </tr>
  </table>
</data>


Назначение
Формат данных XML рассматривается в качестве альтернативы MDB.

Преимущества
В отличие от формата данных CSV, формат данных XML позволяет строго определить тип полей. Кроме того, формат файла XML является открытым, в отношении формата MDB, что позволяет вносить изменения в обычном текстовом редакторе.

2. Поддержка функции экспорта внутренней базы данных в XML
Предложение, добавить функцию экспорта внутренней базы данных T-FLEX CAD в XML-файл.

Назначение
Главное назначение функции -- это генерация данных в XML-файл из прототипа рабочей базы данных. Предполагается выгрузка всех имеющихся таблиц в один XML-файл.

Преимущества
Поддержка функции экспорта внутренней базы данных в XML позволит значительно оптимизировать процесс разработки библиотечных элементов.

3. Интегрированный интерфейс редактора внешней базы данных в T-FLEX CAD
Предложение, добавить интегрированный интерфейс для редактирования таблиц внешней базы данных в T-FLEX CAD.

Специфика
Если рассматривать внешнюю базу данных как некий каркас библиотеки, то ее элементы могут быть связаны на уровне централизованного хранилища. Относительно пользовательского окружения, централизованное хранилище -- это подключение манифеста библиотеки. В данном контексте, подключение базы данных следует рассматривать как интегрированный компонент на уровне библиотеки. По аналогии с отображением виртуальных каталогов в окне документов, база данных может быть представлена в виде древовидной структуры с таблицами. Предполагается, что интерфейс подключения базы данных будет расположен в отдельном, от документов библиотеки, окне и поддерживать функции редактирования таблиц. Относительно файла модели (*.GRB), таблица из внешней базы данных доступна только для чтения.

Пример пользовательского интерфейса: vs_data_connections_ui.png

Назначение
Предоставление пользовательского интерфейса T-FLEX CAD для редактирования таблиц из внешней базы данных.

Преимущества
Поддержка пользовательского интерфейса для подключения и редактирования базы данных непосредственно в T-FLEX CAD.
Изменено: vite - 28.05.2020 20:10:43
T-FLEX CAD 17.0.21.0
Редактор переменных T-FLEX CAD-Next, Предложение пользователей по улучшению функций редактора переменных следующего поколения
 
FRei, можно более конкретный пример, что вы имеете ввиду под определением “собрать строку”?
T-FLEX CAD 17.0.21.0
Редактор переменных T-FLEX CAD-Next, Предложение пользователей по улучшению функций редактора переменных следующего поколения
 
FRei, вы имеете в виду вывод отладочной информации?
T-FLEX CAD 17.0.21.0
Редактор переменных T-FLEX CAD-Next, Предложение пользователей по улучшению функций редактора переменных следующего поколения
 
Алексей, в предложении я затронул только значение вещественного типа, хотя переменная в T-FLEX CAD является объектом универсального типа. Понятно, что для обработки ввода текста параметры диапазона значений не потребуются. В этом случае, по видимому, лучшим решением может быть либо выражение с использованием символа # для обозначения себя, например:
Код
#<1 ? 1 : (#>5 ? 5 : #)

либо вписать имя пользовательской функции обработчика.
Изменено: vite - 11.05.2020 18:47:19
T-FLEX CAD 17.0.21.0
Редактор переменных T-FLEX CAD-Next, Предложение пользователей по улучшению функций редактора переменных следующего поколения
 
Тема создана для обсуждения потенциально возможных функций редактора переменных T-FLEX CAD-Next; рассмотрение предложений от пользователей по улучшению существующих или добавление новых возможностей редактора переменных.

1. Обработка ввода пользователя
Предложение добавить свойство в параметрах переменной для обработки ввода пользователя посредством возврата значения по умолчанию.

Описание процедуры
Допустим, переменная p1 содержит константное значение параметра модели, с условно определенным диапазоном значений 1...5. Если пользователь вводит значение, которое выходит за пределы диапазона, программа должна отреагировать возвратом значения, установленного по умолчанию.

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

Свойство возврата должно принимать либо константное значение, либо имя пользовательской функции обработчика.

Преимущества
Данная возможность позволит обрабатывать исключения, приводящие к вырождению геометрии модели.
Изменено: vite - 07.05.2020 20:28:29
T-FLEX CAD 17.0.21.0
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
FRei написал:
1. То что называется "База данных" таковой на самом деле не является.
то что называется базой данных в T-FLEX CAD -- это слой абстракции, или универсальный интерфейс, который предоставляет набор функций для манипулирования данными. База данных в T-FLEX CAD не является сервером приложения в классическом понимании и не является службой Windows. Относительно внешних подключений -- это клиент, а с точки зрения внутренних запросов -- выступает в роли сервера.
Цитата
FRei написал:
2. Нельзя написать полноценный sql запрос к внутренней таблице.
очень интересно, ну и каким образом вы видите применение полноценных запросов на практике?
Цитата
FRei написал:
3. Нельзя связать записи в таблицах между собой, осуществив связь многие ко многим.
какую задачу вы предполагаете решить, путем построения зависимостей таблиц многие ко многим?
T-FLEX CAD 17.0.21.0
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Rolles217 написал:
не совсем понял почему переменная должна иметь такой вид..
по большому счету не важно, скрыт индекс или нет. В любом случае определяющим фактором является архитектура приложения, которая публично недоступна. Мы можем только гадать что на самом деле происходит под капотом. То что представляется очевидным преимуществом, по факту, может оказаться не оптимальным решением. По этой причине, давать какие либо оценки, в отношении процедуры обработки выражений, не имеет смысла. Но это вовсе не означает, что пользователь лишается возможности получить обратную связь. Бывает, случается, некоторые предложения от пользователей реализуют.

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