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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Задача: упорядочить переменные по возрастанию
 
Всем привет!
Дано: переменные A, B, C, D - любые числа
Нужно расположить числа в порядке возрастания
Пусть будут переменные V1, V2, V3, V4, где
V1 - наименьшее из A, B, C, D,
V2 - следующее по возрастанию
итд
Есть идеи как найти V2? :)
 
mipho, я сделал два варианта на всякий случай. Отличие в третей строке для группы "result". Вроде как, результат вычислений получается одинаковый, но нужно хорошо протестировать разные варианты...
Изменено: vite - 25.04.2022 17:23:08
T-FLEX CAD 17.1.6.0
 
vite, спасибо! третья строчка косячит
vite.png (20.64 КБ)
 
В итоге вот так вывернул, вроде, нравится...
 
mipho, можно сделать еще проще. Просто, вычесть сумму элементов (a,b,d) из общей суммы...
T-FLEX CAD 17.1.6.0
 
:oops:
Код
using System;
using System.Collections.Generic;
using System.Linq;
using TFlex.Model;
using TFlex.Model.Model2D;
using TFlex.Model.Model3D;

namespace NewMacroNamespace
{
   public class NewMacroClass
   {
      public static void NewMacro()
      {
      Document doc =TFlex.Application.ActiveDocument;
        doc.BeginChanges("");
        List<string> names = new List<string> {"A","B","C","D"};
      List<string> vars = new List<string> {"V1", "V2", "V3", "V4"};
      List<double> vals = new List<double>();
         foreach (var v in doc.GetVariables())
         {
          if (names.Contains(v.Name)&& v.IsReal) //проверяем что переменная имеет имя одно из names
               {
                vals.Add(v.RealValue);
               }
          
         }
          vals.Sort();
            int i = 0;
            foreach (double v in vals)
            {
                
                Variable w = doc.GetVariables().FirstOrDefault(x => x.Name == vars[i]);
                if (w == null) { Variable vvv = new Variable(doc, vars[i], v); }
                else { w.RealValue = v; }
                i++;
            }
      doc.EndChanges();
      }

   }
}
 
Engineer, такое я не понимат, но спасибо :oops:

Цитата
vite написал:
mipho, можно сделать еще проще. Просто, вычесть сумму элементов (a,b,d) из общей суммы...
Тогда уже можно и 5 чисел брать))
 
Цитата
mipho написал:
Тогда уже можно и 5 чисел брать))
Только зачем это нужно? Хотелось бы взглянуть на пример, где это может использоваться...
Изменено: vite - 27.04.2022 14:40:14
T-FLEX CAD 17.1.6.0
 
vite параметрическое оформление
парам.png (16.66 КБ)
 
mipho, задача неочевидна. По снимку сложно понять в чем именно заключается проблема. Если возможно, опишите каким образом формируются данные ввода/вывода. Это связано только с оформлением чертежей без 3D модели?
T-FLEX CAD 17.1.6.0
 
Цитата
vite написал:
mipho, задача неочевидна. По снимку сложно понять в чем именно заключается проблема. Если возможно, опишите каким образом формируются данные ввода/вывода. Это связано только с оформлением чертежей без 3D модели?
Сформировать "лесенку" размеров....картинка из двух частей - было/стало.
Для этого можно было бы не переменные подтасовывать, а сами размеры упорядочивать. Неужели Т-Флекс не умеет?.
Цитата
mipho написал:
не понимат
Это не страшно.
 
Цитата
Engineer написал:
Для этого можно было бы не переменные подтасовывать, а сами размеры упорядочивать. Неужели Т-Флекс не умеет?.
А если документ изначально представлен только для чтения (например, открыт в T-FLEX Viewer)?
T-FLEX CAD 17.1.6.0
 
Цитата
vite написал:
Цитата
Engineer написал:
Для этого можно было бы не переменные подтасовывать, а сами размеры упорядочивать. Неужели Т-Флекс не умеет?.
А если документ изначально представлен только для чтения (например, открыт в T-FLEX Viewer)?
Что умеет/не умеет тф-вьювер я не знаю.
Если уж гадать, то думаю дело в оформлении чертежа на однотипные детали, а конкретно - получение вида развёртки этой детали, и имеются случаи перекрещивания размерных линий. Распутывание этого клубка рутинный процесс-его и хотят автоматизировать.
Изменено: Engineer - 27.04.2022 16:13:06
 
Цитата
mipho написал:
параметрическое оформление
А оно надо?

 
Engineer, vite, всё правильно, задача в лесенке размеров.
B_S_V, надо)
Страницы: 1