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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 След.
Организация циклов в T-Flex, При построении развёртки, например отвода тройника, необходимо рассчитать длины образующих
 
Добрый день!
Столкнулся с такой задачей:
необходимо построить развёртку отвода тройника, например 45 градусов.
Аналитику я брал из книги " Головлев С.Г. - Развертки элементов аппаратуры и трубопроводов - 1961 г. издания"
Значение величины образующей рассчитывается аналитически, с накоплением. т.е. в цикле расчёта одна переменная (отвечающаяя за количество сегментов) умножается на номер сегмента по-порядку.
Как организовать цикл вида:
for(i=1;i<25;i++)
Практика - критерий истины (с)
 
А почему нельзя просто сделать развертку используя соответствующую команду T-FLEX CAD?
 
[QUOTE] Osiris2000 пишет:
А почему нельзя просто сделать развертку используя соответствующую команду T-FLEX CAD?[/QUOTE]

Потому, что так надо) У людей T-flex 2D. Да и сами развёртки намного проще и удобнее сделать в Plate'n'sheet )

Сама формула имеет вид: L1-(0.5/sin(b))*(sqrt((Din**2)-(Dout**2)*((sin(i*y))**2))+Dout*cos(i*y)*cos(b))
значение переменной i изменяется в диапазоне от 0 до n, где n- количество частей, на которые разбита окружность.
Можно, создать n/2 переменных задающих высоты образующих, вторая часть будет получена симметрией.
Изменено: awmalchuk - 21.03.2014 12:28:47
Практика - критерий истины (с)
 
А в каком ввиде предполагается получить значение? Нужно просто значение получить (вариант макроса не подходит?) или что то другое?
 
[QUOTE]Дмитрий пишет:
А в каком ввиде предполагается получить значение? Нужно просто значение получить (вариант макроса не подходит?) или что то другое?
[/QUOTE]Данные нужны для построения развёртки отвода тройника и получения размеров заготовок. т.е. по полученным размерам строится развёртка отвода.
Изменено: awmalchuk - 21.03.2014 15:29:13
Практика - критерий истины (с)
 
Просто вычисление 12 переменных, тем способом, как я сделал - немного по колхозному))
Я не могу себя назвать опытным пользователем T-Flex, но кое-что я умею и знаю. Где-то 3-5% от всех возможностей системы)
Практика - критерий истины (с)
 
Практика - критерий истины (с)
 
awmalchuk, я так понял:
1. формула есть.
2. есть переменная из формулы: i = 0 ... n, где n-это будет определенное число, каждый раз другое.

А команда "Оптимизация" совсем не подходит? там можно делать циклы расчетов. Посмотрите, должно помочь немного. Правда n надо наверно ручками вводить будет, если оно будет менятся.
 
Цитата
Денис Пользователь
Мне надо, чтобы система создала n/2 переменных со значениями.
h0..h(n/2), которые откладываются на расстоянии (pi*D)/n друг от друга.
Разумно, что чем больше число n (количество секций), тем точнее рассчитывается криволинейный профиль развёртки.
h0=L1-(0.5/sin(b))*(sqrt((Din**2)-(D_otv**2)*((sin(0*y))**2))+D_otv*cos(0*y)*cos(b)) - будет нулевая образующая, с минимальной длинной,
h1=L1-(0.5/sin(b))*(sqrt((Din**2)-(D_otv**2)*((sin(1*y))**2))+D_otv*cos(1*y)*cos(b)) - следующая образующая,

h(n/2)=L1-(0.5/sin(b))*(sqrt((Din**2)-(D_otv**2)*((sin(n/2*y))**2))+D_otv*cos(n/2*y)*cos(b)) - последняя образующая.

Уже сейчас, в очередной раз описывая задачу, понимаю, что то что хотел сделать , не сделаю. T-Flex всё же не Visual C++). Всем спасибо!
Практика - критерий истины (с)
 
Не за что :) А решение в ввиде макроса не подойдет?
 
awmalchuk, цикл средствами редактора переменных Вы реализовать не сможете. Нет там команды цикла. Если Ваш цикл имеет не очень большое конечное число итераций (и это число должно быть постоянным и известным заранее), то нужно создать столько переменных, сколько итераций в цикле. Как я понял, Вы примерно так и сделали. И это самое большое, что можно сделать именно в редакторе переменных.

Выходом из этой ситуации является использование макросов. Они пишутся на C#. В этом случае Вам требуется знать C# и T-Flex Open API.
Есть второй ход. Ищите математическую среду, которая умеет сохранять результат в виде текстового файла. Я использую sage (sagemath.org) - она такую задачку решать умеет.
Может, подойдёт Mathcad, не знаю. Если найдёте, флаг Вам в руки - сохраняйте результат расчёта в txt, csv или xls. T-Flex может считать данные из этих файлов через базу данных. Последний вариант - самое милое дело!

С уважением, Андрей.
 
awmalchuk, есть идея решения такой задачи в T-Flex с помощью графиков.Вот что у меня получилось (я пытался подставить все ваши данные. Но правда как Вы определяете координаты по Х=471 я не знаю, поэтому я взял для примера Х=i*10 ). Файл в 12,0,65 учебной.
Формула: L1-(0.5/sin(b))*(sqrt((Din**2)-(D_otv**2)*((sin(#1*y))**2))+D_otv*cos(#1*y)*cos(b)), где #1 - это ваше i которое подставляется в формулу от 0 до і_мах.
і_мах - определяется формуле.


При изменении чисел все должно манятся, если график не поменяется - то нажмите полный пересчет..
 
Цитата
Денис Пользователь пишет:
awmalchuk , есть идея решения такой задачи в T-Flex с помощью графиков.Вот что у меня получилось (я пытался подставить все ваши данные. Но правда как Вы определяете координаты по Х=471 я не знаю, поэтому я взял для примера Х=i*10 ). Файл в 12,0,65 учебной.
Формула: L1-(0.5/sin(b))*(sqrt((Din**2)-(D_otv**2)*((sin( #1 *y))**2))+D_otv*cos( #1 *y)*cos(b)), где #1 - это ваше i которое подставляется в формулу от 0 до і_мах.
і_мах - определяется формуле.


При изменении чисел все должно манятся, если график не поменяется - то нажмите полный пересчет..
Ну, вот опередил( Считаю, если есть формула, то это самое правильное решение.
 
Цитата
Денис Пользователь пишет:

есть идея решения такой задачи в T-Flex с помощью графиков.
Отличное решение.
Почему мне сразу такая идея в голову не пришла...? :idontnow:
 
[QUOTE]есть идея решения такой задачи в T-Flex с помощью графиков[/QUOTE] Отличная идея!
Но правда как Вы определяете координаты по Х=471 я не знаю
471мм - это развёртка диаметра 150 мм (pi*D)
Изменено: awmalchuk - 24.03.2014 09:00:48
Практика - критерий истины (с)
 
Если устраивает "ручной" перебор значений, то цикл можно организовать с помощью элемента управления "кнопка", повесив на нее формулу типа n=n+1. Единственное неудобство, придется кликать по кнопке нужное число раз. А вообще-то пора уже разработчикам подумать, как усоветшенствовать редактор переменных в этом направлении (т.е. ввести в него некоторые элементы программирования).
 
Вводить полноценные элементы программирования в состав средств параметризации - довольно опасное занятие.
Во-первых, можно получить непредсказуемость и неустойчивость результатов параметризации.
Во-вторых, можно замедлить работу системы. Так как далеко не всегда пользователь ограничится простыми вычислениями.
Для решения подобных задач имеются механизмы макросов и внешних приложений, которые в данном обсуждении уже упоминалось.
 
Вопрос к разработчикам:
а почему бы не создать параметрическую библиотеку элементов дымоходов и вентиляции с возможностью построения развёрток?
я думаю, что такая библиотека была актуальна. Да и у конкурентов нет ничего подобного.
Изменено: awmalchuk - 24.03.2014 10:26:33
Практика - критерий истины (с)
 
Цитата
awmalchuk пишет:
Да и у конкурентов нет ничего подобного.
Компас
 
Цитата
Sila Musli пишет:
Цитата
awmalchuk пишет:
Да и у конкурентов нет ничего подобного.
Компас
Пробовали в Компасе делать развёртки? В компасе есть библиотека элементов трубопроводов. Функционал, применительно к вентиляции и дымоудалению - так себе. Развёртки в Компасе- только через модуль работы с листовым металлом, как и в SolidWorks'е.
А я говорю о вентиляции и дымоудалении. В вентиляции часто используются прямоугольные элементы и переходы, в дымоудалении - цилиндрические и овальные элементы. Очень неплохо построение развёрток реализовано в Plate'n'Sheet v4 или Autodesk Fabrication CAMduct 2014. Зачем плодить парк программ, если в T-flex можно создать стандартную библиотеку элементов дымоходов и вентиляции. Я считаю, что такая библиотека была бы актуальна.
Практика - критерий истины (с)
Страницы: 1 2 След.