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


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

Страницы: Пред. 1 ... 4 5 6 7 8 9 10 11 12 13 14 ... 17 След.
T-flex приемы работы, Вопросы начинающего пользователя
 
Цитата
Павел Перфильев пишет:

Я предпочитаю работать фрагментами. В них же можно и сразу вставлять группами.
Считаю такой подход очень правильным с точки зрения автоматизации проектных работ. Правда возникает промежуточный "мастер-фрагмент", который нетривиально отрабатывается PDM, но позволяет получить "умный" фрагмент, который может отрабатывать не только массивы, но и различные условия вставки (правила или условия), комплексную вставку (например при выборе болта может комплектовать гайкой и шайбой и т.п.)
Так что если будете создавать инструменты САПР чего-то, обратите пристальное внимание на такую возможность в TF.
Автоматическое получение конструкторской документации для 3D-сборки
 
PS
В 11 версии появились новые возможности макросов при деталировке.
Здесь я их не использовал. Это куски кода писанные под 9 версией.
Автоматическое получение конструкторской документации для 3D-сборки
 
Цитата
Алексей Шаганов пишет:

Не могли бы Вы привести функции и примерный алгоритм для выполнения данной задачи?

Выдернул часть касающуюся деталирования деталей. Не отлаживал. Прошу прощения если пойдет косо. Здесь остался не относящийся к самой деталировке код, но для надежности работы и в случае если после отладки у пользователя возникают ошибки этот код помогает ее локализовать.
Счетчик фрагментов хранится в аттрибутах файла сборки, чтобы не повторялись имена фрагментов. Имена фрагментов присваиваются по имени детали. К сожалению качество кода упирается во время, а его нет.
Еще раз извиняюсь.

using System;
using TFlex;
using TFlex.Model;
using TFlex.Model.Model2D;
using TFlex.Model.Model3D;
using System.IO;

namespace MacroNameSpace
{
public class NewMacroClass
{
//-------------------------------------------------------------------------------------
//Составим функцию FindVar поиска переменной по имени
private static Variable FindVar(Document doc,string name)
{
foreach(Variable var in doc.Variables)
if (var.Name == name) return var;
return null;
}
//------------------------------------------------------------------------------------
public static void Деталировка()
{
Document doc = TFlex.Application.ActiveDocument;
if (doc.FilePath=="")
{
doc.Diagnostics.Add(new DiagnosticsMessage(DiagnosticsMessageType.Information,"Необходимо сохранить проект!"));
return;
}
doc.BeginChanges("Аттрибуты");

if(!doc.Attributes.HaveAttribute("CounterFrag"))
doc.Attributes.SetIntAttribute("CounterFrag",0);
int counter = doc.Attributes.GetIntAttribute("CounterFrag");
doc.EndChanges();

// ---------Подготовим место хранения протокола работы макроса - LogFurn в случае нештатного поведения у пользователя можно отслеживать на чем споткнулись

string str = TFlex.Application.SystemPath;
str += "\\Macros\\Log";
if (!Directory.Exists(str))
Directory.CreateDirectory(str);
FileStream furn = File.Create(str+"\\LogFurn.txt");
StreamWriter furnTxt = new StreamWriter (furn); // создание протокола
furnTxt.WriteLine("Протокол "+ doc.FileName.ToString()+" создан");
furnTxt.Flush();
//--------------
string NameFrag = ""; // Имя сдеталированного фрагмента

double FlagDet=1; // Флаг обновления/установки детали. (0 - деталь деталировать)
bool flag = false;
string Name = "";
string Identif = "";

doc.BeginChanges("Деталировка");


int i=0;
foreach (Fragment Frag in doc.Fragments)
{
flag = false;

foreach(TFlex.Model.FragmentVariableValue FV in Frag.VariableValues)
if (FV.Name=="FlagDet")
if (FV.RealValue != 0) continue; // Если указано - деталь не вставлять не обновлять, то перейти к следующему


Document Adp = Frag.OpenPart();
furnTxt.WriteLine("Открыт в режиме деталировки = " + NameFrag); furnTxt.Flush();
Adp.BeginChanges("Считываем переменные");


foreach(TFlex.Model.FragmentVariableValue FV in Adp.VariableValues)
{
if (FV.Name=="$Наименование") Name = FV.TextValue;
if (FV.Name=="$Обозначение") Identif = FV.TextValue;
}

Adp.EndChanges();

// ----файл с новыми параметрами, запишем в директорию изделия.
string newName = string.Concat(Path.GetDirectoryName(doc.FileName),
"\\", Name," ",Identif.Replace("/", "_"), ".grb");
// ----обозначение детали с замененной дробью на подчеркивание. Если в обозначении встречаются дроби.

Adp.SaveAs(newName);
furnTxt.WriteLine("Деталь сохранена здесь: " + newName);
furnTxt.Flush();

Adp.Close();

NameFrag = Name + "~"+ counter.ToString(); // Имя сдеталированного фрагмента; Разделение тильдой для исключения совпадений.

foreach(TFlex.Model.FragmentVariableValue FV in Frag.VariableValues)
{
if (FV.Name=="FlagDet") FV.RealValue = 1; // Взвести флаг не вставлять / не обновлять деталь
if (FV.Name=="$NameFrag")
FV.TextValue = NameFrag; // Имя фрагмента потомка.

}

// Изменим ссылку и имя фрагмента на новые.


foreach (Fragment3D Frag in doc.Fragments3D)
{
foreach(TFlex.Model.FragmentVariableValue FV in Frag.VariableValues)
{
if (FV.Name=="$NameFrag")
if (FV.TextValue != NameFrag) continue;
Frag.Name = NameFrag;
Frag.FileName = string.Concat(Name," ",Identif.Replace("/", "_"), ".grb");
}
}


doc.EndChanges();
doc.Save();
++counter; // для вставленной новой детали изменить счетчик
}

doc.BeginChanges("Аттрибуты2");
doc.Attributes.SetIntAttribute("CounterFrag",counter);
furnTxt.WriteLine("В сборке счетчик изменен на " + counter); furnTxt.Close();

doc.EndChanges();
doc.Save();
}
//------------------------------------------------
}
}
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Саша Штахетник пишет:

тяжеловато после Компаса
Ну это пока Вы профессионально не играете. Пройдет.
T-flex приемы работы, Вопросы начинающего пользователя
 
Цитата
Brom25 пишет:

Маленький нюанс - для того чтобы проекции полностью совпали так как это нужно
Можно проецировать по проекции (есть такая опция в автоменю). А если поместите одну проекцию на иной слой, то все линии этой проекции можно быстро сделать штрихпунктирными.
Изменено: Diso - 11.12.2008 22:09:25
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Цитата
Саша Штахетник пишет:

как спроецировать развертку листовой детали на одном чертеже с проекциями самой детали
Разогните листовую деталь, а затем снова согните ее с опцией согнуть всё. В дереве модели появится операция разгибания и сгибания.
Когда создаете проекции, то принудительно выбирайте элементы для проецирования из дерева модели. Т.е. операцию разгибания. В этом случае можете обновлять автоматически. Будет проецироваться операция на стадии расчета по дереву модели.
Задача по динамическому анализу, методика решения
 
[quote]Konstantin пишет:

Кто может помочь разобраться как полностью описать/смоделировать систему, которая бы отображала процесс?[/quote]
Просто из страны Советов - Прочитайте руководство по Динамике.
Задача по динамическому анализу, методика решения
 
[quote]Konstantin пишет:

Материал нужен, хотя даже не материал,а масса для правильного расчета динамики. От туда берутся массы деталей?[/quote]

Да нужна плотность материала. Объем и центр тяжести вычисляются по геометрии. Центральный момент инерции  и масса вычисляются по всем предыдущим параметрам. Задавая материал Вы указываете плотность материала.
Задача по динамическому анализу, методика решения
 
[quote]Konstantin пишет:

Фишка с вставкой деталей после К****са© кажется просто дикой. Хотя разумное с системами координат конечно есть [/quote]

Вставка по ЛСК дикая? А по моему ничего более очевидного нет.
Если учились в университете, то должны были изучать термех и ТММ.
[quote]Konstantin пишет:

зачем степени свободы оставлять для системы координат?). [/quote]
Любой механизм состоит из звеньев и кинематических пар соединяющих их.
Каждая пара обеспечивает подвижность одного звена относительно другого. Пары бывают одноподвижные, двухподвижные и т.д. Одноподвижная пара это одна степень свободы, далее соответственно. Когда Вы задаете вставку по ЛСК, можете сразу сказать что соединение подвижное и определить подвижность соединения и ограничения в подвижности. Это наиболее быстрый путь с минимумом расчетных условий задаваемых системе. Парится нужно в десять раз меньше чем с сопряжениями и пользователю и железяке.
Меняйте стереотипы мышления, на правильные....
T-flex приемы работы, Вопросы начинающего пользователя
 
Цитата
Verba пишет:

как лучше поступить предварительно спозиционировать деталь в отдельном файле так как она будет находится в сборке, или же непосредственно позиционировать в самой сборке
Самый простой и бронебойный способ постоить деталь не обращая внимание на сборку, задать ЛСК для вставки, а потом вставить в сборку позиционируясь по геометрии в сборке (по ребрам, поверхностям и т.п.) При вставке по круговому ребру есть правило. Ось Х по умолчанию позиционируется вдоль оси кругового ребра.
Иногда приходится вставлять детали от "двоечников" без заданной ЛСК (актуально для вставки детали находящейся на стадии хранения в DOCs). Тогда нужно либо задать исходную систему координат, либо как вариант можно использовать сопряжения, Которые утяжеляют модель, но имеют возможность базировать деталь в сборке по нескольким поверхностям (есть иногда трудности с позиционированием детали по ЛСК со сложной геометрией). В общем, для сложных случаев сопряжения трубуют меньшей квалификации. А для простых случаев, все с точностью до наоборот...
Нужны инструкции для технологов
 
Я думаю речь идет о конкретике.
Технолог по забиванию гвоздей не может парится по функционалу технолога по размешиванию краски. И вопрос даже не к разработчикам, а к тем кто имеет опыт в той или иной области технологий. Которые прошли некоторый путь внедрения и в своей области могут дать краткие и понятные инструкции.
Измерение объема тела
 
Цитата
Эрик Шакиров пишет:

2.79364e+008

Это 2,79 на 10 в 8 степени
е+008 это мантиса числа.
Системная размерность у Вас наверняка в мм, поэтому это площадь в мм квадратных или объем в кубических.
Изменено: Diso - 21.10.2008 18:09:02
Вопросы начинающего, вопросы от тех, кто только начинает своё знакомство с T-FLEX CAD
 
Прога существовала, используя Базы ТехноПро.
Фрагменты оборудования и условных знаков вероятно остались, но без связи с базой функциональность может нивелироваться. ТехноПро выдохлось, а связи с DOCs не появилось. В принципе должна родится новая программа. Надеемся родят когда-нибудь и кто-нибудь. А без этой проги и так фрагменты замечательно лепятся. В ней весь смысл - регистрация и управление оборудованием через Базу, остальное чистый 2D CAD.
Изменено: Diso - 21.10.2008 16:55:23
Помогите новичку разобраться в T-Flex
 
Цитата
Гриценко Юра пишет:

на разных листах показывать там электрику, водпровод и т.д. Но стены могут современем дополнятся или наоборот удалятся
Значит я правильно понял. Для параметризации такая задача впору. Думаю что на базе ассоциативных копий стен можно построить коммуникации. Затем при изменении стен коммуникации ассоциативно изменятся, подсчитается их длина и т.п. Впрочем в этом Вы разбираетесь лучше меня...
Помогите новичку разобраться в T-Flex
 
Цитата
Гриценко Юра пишет:

пробывал в ручную набрать формулу в таблицу, заключив в фигурные скобки. Но формула не заработала,
Попробуйте так. Встаньте курсором в ячейку (кликните мышкой)и нажмите F8. Появится диалог вставки переменной. В строке ввода наберите нужное выражение. ОК.
Если после этого не получилось, прочитайте Help о переменных еще раз.
Помогите новичку разобраться в T-Flex
 
Цитата
Гриценко Юра пишет:

я не нашол как стандартным копированием перенести на другой лист.
Выделяете то что нужно для копии. Из контектного меню Копировать/Перемещение. Выбираете режим ассоциативной копии (уже по умолчанию). Указываете базовую точку копирования на странице с выделенными элементами. Переходите на страницу где должна быть копия, например, кликнув по закладке страницы. Кликаете в место привязки копии.
Откройте второе окно. установите в окнах разные страницы и посмотрите как будет меняться копия при изменении исходных элементов. Если ассоциативно, то ОК.
Уравнение кривой
 
Вариант "тупого" решения.
Задаете функцию регрессии (т.е. через построить функцию).
На полученной кривой строите несколько точек (узлов). Измеряете расстояние от построенных узлов до вашего сплайна (задаете по ним переменные). Переменные будут показывать отклонения точек функции от линии сплайна. Далее используя модуль оптимизации минимизируете среднеквадратичное отклонение. Если результат не удовлетворяет, увеличиваете степень функции регрессии и количество точек-индикаторов отклонений.
Парится с написанием макроса конечно не придется, но попарится с построениями и "поправкой ручками".... Впрочем у любого решения "в лоб" должны быть минусы.
PS. впрочем уравнение регрессии это универсальный инструмент, если вы видите схожесть вашего сплайна с известными математическими функциями, то используйте именно их.
Изменено: Diso - 18.10.2008 12:46:03
Оформление чертежа на основе 3Dмодели
 
Цитата
Brom25 пишет:

Вобщем, никому не советую создавать профили без штриховок, даже если деталь простая... И рекомендую избегать "рисования" на гранях!!!
В принципе советы правильные. Поскольку разобраться с моделью в таком случае будет гораздо труднее, чем в случае "традиционных" построений. Я имею в виду линии построений, штриховки, явно заданные рабочие плоскости и т.п.
Точность поверхности
 
Цитата
Алексей Костерин пишет:

Точки желательно импортировать из Excel или txt. Как это сделать?
В примерах макросов есть макрос для импорта облака точек по текстовому файлу. Это то что нужно.
Затем точки нужно объединить в 3D-путь.
Построить 2 винтовые направляющие (пути). Используя их в качестве основы, можем построить поверхность.
А уже поверхность можете использовать в своих дальнейших задачах (для геометрического анализа, для прогнозирования пятна контакта, для отсечения от тела и т.д и т.п. Даже можете написать программу для ЧПУ и обработать обычной сферической фрезой. И такой опыт есть, по обработке эвольвентных поверхностей арочных колес).
Need help ...
 
Можно сделать только копией с масштабированием. Вначале построить массив узлов на горизонтальной прямой. Затем масштабирование первого отрезка. При масштабировании нужно выбрать центр масштабирования в точке пересечения прямых. Затем последовательно указывая точку отрезка и следующую точку массива узлов, построить массив отрезков. Только количество отрезков не будет ассоциативно количеству узлов массива. Зато шаг и длина отрезков ассоциативны (если включена опция).
Страницы: Пред. 1 ... 4 5 6 7 8 9 10 11 12 13 14 ... 17 След.