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


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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 30 След.
Макрос для заполнения таблиц(ы), Есть надобность автоматизировать процесс заполнения таблиц выходными данными
 
Впечатляет Андрей! Область конечно узкая. Делал нечто подобное, но проще в разы для элементов вентиляции проектируемого судна: стаканы переборочные, подвески для горячих трубопроводов. Эксель не использовал, все делал на внутренней БД. Коллега пользуется, вроде как доволен. До этого групповые чертежи он делал в голом автокаде :). Напрашивается, конечно плагин - не хватает графического интерфейса. Но пока круг пользователей ограничен, может и не стоит заморачиваться. Хороший плагин писать несколько месяцев.
Ненужное выталкивание.
 
Если для создания обоих профилей использовались линии изображения, то для второго профиля измените цвет линий изображения.
Изменено: Сергей Максимов - 09.07.2017 13:53:37
Макрос для создания узлов
 
Почитав тему, пришла следующая мысль.
Большинство используют свои прототипы довольно активно. Но при переходе на новую версию прототипы лучше бы сделать заново на основе прототипов, поставляемых с новой версией, т.к. простое пересохранение файла под новой версией не учитывает все новые изменения, в т.ч. и дополнительных переменных. Возможно, часть ошибок при работе с системой происходит в т.ч. и по этой причине. Создание прототипа заново - вещь довольно утомительная и затратная по времени. В этом случае, представленный Vite макрос частично решает проблему. Но его стоит доработать, чтобы помимо переменных макрос считывал бы со старого прототипа и различные настройки слоев, размеров, текстов, параметров статуса документа.
Макрос для создания узлов - как раз первая попытка решить проблему, которую прототипы решают ограниченно - в пределах трех рабочих плоскостей.
Макрос для создания узлов
 
Наверное все таки так:[CODE]using System;
using TFlex.Model;
using TFlex.Model.Model2D;
using TFlex.Model.Model3D;
using System.Windows.Forms;

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
                   {
                       document.BeginChanges("Update Variable");
                       Variable var = document.FindVariable(i.Name);
                       UpdateVariableOfPrototype(document, var, i);
                       document.EndChanges();
                   }
               }
           }
           else
           {
               MessageBox.Show("Прототип не определен...");
           }
       }

       public static void 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; // Возврат не нужен
       }

public static void UpdateVariableOfPrototype(Document document, Variable var, Variable v)
{
if (v.IsReal)
           {
               var.RealValue = v.RealValue;
           }
           else if (v.IsText)
           {
               var.TextValue = v.TextValue;
           }

var.External = v.External;
var.GroupName = v.GroupName;
           var.Hidden = v.Hidden;
           var.Comment = v.Comment;
           var.Expression = v.Expression;

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

}
   }
}
[/CODE]
Макрос для заполнения таблиц(ы), Есть надобность автоматизировать процесс заполнения таблиц выходными данными
 
Ну почему же только трем? Просто не все вступают в переписку. Тема интересная и нужная. Сам подобные макросы пишу время от времени. По поводу плагина по исполнениям с использованием внутренней БД и автоматическим формированием конфигураций, думаю совместными усилиями он появится в недалеком будущем :), о чем дам знать.
Изменено: Сергей Максимов - 07.07.2017 16:01:57
Макрос для создания узлов
 
Для решения подобной задачи лучше подходит Control, а не Plugin.

P.S. Как мне подсказали, Control - штука малоизвестная. Тем не менее использование Control для пакетных обработок, на мой взгляд, более удобный способ нежели написание макроса или плагина. Писал под Control, более 6 лет назад, но как раз для пакетной обработки файлов T-Flex Cad. Например, на Control написан T-Flex Viewer. Как создать свое приложение на Control можно посмотреть на нашем древнем сайте [URL=http://www.tflex-nord.ru]http://www.tflex-nord.ru[/URL] в разделе Главная / API / Примеры приложений на API
Изменено: Сергей Максимов - 07.07.2017 16:11:29
Библиотеки стандартных изделий T-FLEX CAD
 
А в 15 версии сделали таки передачу массы сборочной трехмерной модели в переменную форматки или все по старинке вручную либо сложением переменных массы с фрагментов?
Изменено: Сергей Максимов - 06.03.2017 19:26:57 (Еще при смене диаметра болта в 12 версии гайка не подхватывает шаг резьбы и выдается сообщение в окне диагностики.)
Авторский надзор
 
Если сделано с отступлением от документации, конструктора либо пригласят на производство, либо пришлют письмо с просьбой о соответствующей корректировки КД. Иначе ОТК не сдать. А так обычно ходили и смотрели за изготовлением. Бывало и ругались.
Мы разучильсь строить корабли?, Зачем надо покупать "Мистраль"?
 
Потихоньку начинаем учиться:
[URL=http://новости-россии.ru-an.info/новости/скандальная-история-с-мистралями-закончилась-грандиозным-триумфом-для-россии/]http://новости-россии.ru-an.info/новости/скандальная-история-с-мистралями-закончилась-грандиозным-тр...[/URL]
Базовый класс групп трансформаций, Трансформация 3D элементов
 
Нашел сам. Это делается так:

[CODE] // Повернуть рабочую плоскость по оси Z
           TransformationGroup transform = wp.Transformations.AddBaseTransfGroup();
           transform.AddRotateTransf(TransformationCoordinate.Z, 180);
[/CODE]
Базовый класс групп трансформаций, Трансформация 3D элементов
 
У кого нибудь есть опыт применения TransformationGroupBase?
Задача следующая. Написан макрос создания рабочей плоскости, построенной на странице.

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

namespace NewMacroNamespace
{
public class NewMacroClass
{
public static void NewMacro()
{
//Получение активного документа
Document document = TFlex.Application.ActiveDocument;

//Открытие блока изменений документа
document.BeginChanges("Создание рабочей плоскости");

//Создание объекта страницы
Page currentPage = new Page(document);

// Присвоение странице типа "Рабочая плоскость"
currentPage.PageType = PageType.Workplane;

// Создание объекта рабочей плоскости
WP wp = new WP(document, currentPage.Document.ActivePage);

// Показать рабочую плоскость на 3D
       wp.ShowOn3D = true;

//Закрытие блока изменений документа
document.EndChanges();
}
}

   public class WP : Workplane
   {
       // Сводка:
       //     Конструктор для создания новой рабочей плоскости
       //
       // Параметры:
       //   Doc:
       //     Документ, в котором создаётся новый объект
       //
       // Примечания:
       //     Рабочая плоскость создаётся на активной странице
       public WP(Document Doc)
           : base(Doc)
       {


       }
       //
       // Сводка:
       //     Конструктор для создания новой рабочей плоскости
       //
       // Параметры:
       //   Doc:
       //     Документ, в котором создаётся новый объект
       //
       //   page:
       //     Страница, на которой создаётся рабочая плоскость
       public WP(Document Doc, Page page)
           : base(Doc, page)
       {

       }
   }
}
[/CODE]Страница, как это и следовало ожидать, строится согласно своей системе координат, т.е. в плоскости XY глобальной системы координат.

Необходимо развернуть рабочую плоскость по оси Z на 180 градусов. Класс трансформаций в 14-й версии, если правильно понял - общий. Он абстрактный, конструктор не определен. У кого-нибудь есть пример выполнения трансформаций?
Заранее благодарен за ответ.
Изменено: Сергей Максимов - 17.09.2014 17:23:18
Металлоконструкции
 
[QUOTE]NiFlex пишет:
Ссылка от [url]http://tflex-nord.narod.ru[/url] к сожалению не работает. Помогите найти, пожалуйста.
[/QUOTE]
[QUOTE]Денис Пользователь пишет:
По поводу ссылки, возможно имелось ввиду [url]http://www.tflex-nord.ru/[/url] .
[/QUOTE]
[QUOTE]Павел Перфильев пишет:
Николай, что Вас конкретно интересует? Сайт Сергей давненько не обновлял. Если есть вопросы, пишите на мою почту
[/QUOTE]Да, каюсь, грешен. Времени сейчас катастрофически не хватает. По поводу адреса http://tflex-nord.narod.ru его больше не существует. После 7 лет работы на серверах Яндекса, последний передал все "народные" сайты ucos, который ввел свои правила и многие сайты просто закрылись. Спасибо компании Топ Системы за оказанную поддержку - помогли с перездом сайта на новый адрес [url]http://www.tflex-nord.ru/[/url]. Сайт полностью работоспособен.
Изменено: Сергей Максимов - 25.01.2014 18:37:24
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Sila Musli пишет:
Но скорость бы не упала, а может даже наоборот, если б применялись линки на экселевский файл и управление шло бы централизовано
Скорость пересчета переменных была всегда ничтожно мала. А вот скорость пересчета 3D и проекций в 7-й версии на тех слабых машинах была ощутимой.
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Sila Musli пишет:
Допустим как без этого рассчитывать актуальные цены, которые автоматически обновлялись по текущему курсу евро, который брался бы в интернете....
Ну, для решения такой задачи можно опять же прибегнуть к API и связать данные с данными из интернета
Цитата
Sila Musli пишет:
если б применялись линки на экселевский файл и управление шло бы централизовано, без дополнительных телодвижений
Так и так все делается через один файл - файл сборки и все в одной среде. Есть еще один механизм без применения программирования - импорт текстового файла параметров внешних переменных (в редакторе переменных) и в этот файл вы можете выгружать данные из любых источников в определенном формате.
Вот Вам еще один пример управления комплектом документации из одного файла www.tflex-nord.ru см. Главная / Галерея / Машиностроение и металлургия / Редуктор раздаточный
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Sila Musli пишет:
А внешние переменные по мне лучше использовать в библиотечных, стандартных элементах и в переменных положения, ну и ещё частные случаи.
Не согласен. Вот Вам пример (Проект 877-01 Энергоузел ООО "Завод ДВП", г. Емва, республика Коми), где проект зазоходов, воздуховодов и рам под них был выполнен с использованием внешних переменных. Всего 80 листов. Проект был завершен до окончания расчетов по сопротивлениям (расчетчик затянул). После получения окончательных результатов расчета, в течении 2 часов был пересчитан весь комплект документов. И благодаря параметризации задание было выполнено в срок. Надо учитывать, что это 2002 год, машины тогда были очень слабые. И здесь все, кроме дымососа и вентилятора - нестандартное оборудование. Второй проект (Леса для демонтажа фрагментов надстройки авианосца) тоже нельзя назвать типовым и тоже внешние переменные как основной инструмент. Также привожу статью "САПР и графика", где рассказано о применении внешних переменных для создания мини-сапр без применения программирования.
Изменено: Сергей Максимов - 22.01.2014 20:58:32
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Sila Musli пишет:
И расскажите как во флексе сделать общую управляющую форму на весть проект(сборки, подсборки, детали), чтобы изменил в одном месте переменную и везде поменялись 2д чертежи, 3д модели.
Есть глобальные переменные, есть внешние переменные, есть переменные сборки. Глобальные переменные видны фрагментам всех уровней вложенности, но необходимо держать открытым файл, в котором они назначены, т.к. они подгружаются в оперативную память. По этой причине их не использую, мне показалось это не совсем удобным, хотя допускаю, что другим наоборот глобальные переменные нравятся больше.
Внешние переменные требуют грамотного обновления файлов-фрагментов (файл-фрагмент перед обновлением должен быть закрыт, далее выполняется команда контекстного меню для фрагмента "Деталировка", в которой выбирается пункт "Сохранить новый документ как" и указывается путь к существующему файлу-фрагменту, который и заменняется при сохранении и устанавливается опция "Внешние переменные" в области "Подставить параметры". Как уже писал ранее, для этого способа можно написать небольшой макрос для обновления сразу набора отмеченных определенным образом фрагментов с подстановкой значений внешних переменных.
Третий способ мне нравится больше предыдущих. В сборке создается набор переменных, а в переменных фрагментов для соответствующих переменных указываются имена переменных в сборке. Обычно для удобства назначаю одинаковые имена переменных и в сборке, и во фрагментах. При вставке нового фрагмента значения переменных (в которых указано имя переменной сборки) подставляются автоматически. Но обновление файлов-фрагментов необходимо выполнять также как и в случае использования внешних переменных.
Изменено: Сергей Максимов - 22.01.2014 20:00:27
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
B_S_V пишет:
Цитата
Sila Musli пишет:
А в экселе можно удобно оформить форму и управлять всей сборкой и вложенными
элементами.
А что, средствами ТФ (без экселя) это делать нельзя?
Согласен. Сейчас расчет теплового баланса подогрева балластных цистерн судна начал делать в ТФ, т.к. это оказалось удобнее, чем в экселе и маткаде. И в плане оформления (фоматки на страницах, таблицы) и в плане управления общими данными. По удобству ведения расчета получается что-то среднее между экселем и маткадом. В экселе удобнее оформлять табличный расчет, но плохо котролировать формулы, в маткаде формулы удобочитаемы, но с оформлением, особенно в табличной форме проблема. А в ТФ весь расчет в редакторе переменных таблицы-фрагмента, который поднимает общие данные с переменных сборки основного файла.
Анализ
 
Цитата
ddviktor4 пишет:
У кого есть опыт конечно-элементного анализа? Насколько они точны (вернее приближённые к ручным расчётам)? Спасибо.
Пришлось как то несколько лет назад считать в Анализе поверочную линейку, длиной более двух метров для поверки плоскостности комингса на корабле. Сейчас уже не вспомню полученных в программе значений прогибов, скажу только одно: когда линейку изготовили и сделали ей лазерную поверку, положив линейку на две опоры при максимальном пролете, то прогиб линейки попал в середину допуска. Услышал это от инженеров лаборатории, выполнявших поверку, которые пришли узнать в какой программе так точно посчитали линейку. А по поводу сравнения с результатами ручных расчетов, все зависит от опыта расчетчика, как он может грамотно составить расчетную схему и интерпретировать результаты расчета.
Мы разучильсь строить корабли?, Зачем надо покупать "Мистраль"?
 
[QUOTE]B_S_V пишет:
"СМИ: Российские моряки с «Викрамадитьи» шокировали индийцев нудизмом и пьянством"
[/QUOTE]Мдя.. Возможно у них можно купаться только в одежде, а в плавках - это уже "голый". Потом 50 человек, тоже как то подозрительная цифра, почему не 60, не 40? Потом распитие алкогольных напитков, опять же каких? Пива из холодильника? Поспрашиваю при случае.
Мы разучильсь строить корабли?, Зачем надо покупать "Мистраль"?
 
Видимо Приштина не урок [url]http://vz.ru/news/2014/1/11/667460.html[/url]
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 30 След.