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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Переменная длины
 
Доброго времени суток Уважаемые коллеги! Столкнулся с такой задачей: в файле у меня множество деталей с переменной L (Длина детали полученная через формулу). Возможно ли получить на сборке общую длину L всех деталей? Если можно, подскажите пожалуйста как? Заранее благодарю!
 
Цитата
Эрик Шакиров написал:
Доброго времени суток Уважаемые коллеги! Столкнулся с такой задачей: в файле у меня множество деталей с переменной L (Длина детали полученная через формулу). Возможно ли получить на сборке общую длину L всех деталей? Если можно, подскажите пожалуйста как? Заранее благодарю!
Можно сложить переменные.
Если это длины фрагментов, то можно либо переменными, либо через СИ.
 
Цитата
Эрик Шакиров написал:
получить на сборке общую длину L всех деталей
Мой любимый вариант - ручками:
1. выделяем фрагмент №1 -> Измерить -> выделить переменную L во фрагменте -> присвоить ей переменную L1 (в сборке будет)
2. выделяем фрагмент №2.....
N. выделяем фрагмент №N
N+1 суммируем переменные LL==L1+L2+...LN
Это для ТФ12 в 16 тоже самое, и если добавили-убавили, тоже ручками....
 
Эрик Шакиров, можно создать пустой фрагмент, в нём переменную $ТИП, в количество поставить переменную L вместо 1, вложить этот фрагмент в нужные детали. При вставке в сборку будут включаться две записи: деталь и данные. Данные суммируются в одну запись вида "общая длина деталей $ТИП = L", её можно засунуть в отдельный раздел в конец отчета и при необходимости удалять руками, либо в фильтрах отчета убрать этот раздел, а просматривать запись в структуре изделия.
Можно проще: добавить в структуре атрибут "длина", создать отчет "таблица длин", суммировать вручную или через экспорт в Excel.
Можно сложнее: сделать отдельное представление и отчет...
 
Цитата
Шурик написал:
выделяем фрагмент №1 -> Измерить -> выделить переменную L во фрагменте -> присвоить ей переменную L1 (в сборке будет)
А можно просто написать выражение типа L_sum=get("Имя детали_1","L")+get("Имя детали_2","L")+get("Имя детали_3","L")
 
Цитата
Эрик Шакиров написал:
Возможно ли получить на сборке общую длину L всех деталей?
 
SaprOnOff86, Я сделал в точности как Вы показали на видео, но у меня не вывелась общая сумма примечаний. :cry:
 
Цитата
Эрик Шакиров написал:
SaprOnOff86 , Я сделал в точности как Вы показали на видео, но у меня не вывелась общая сумма примечаний. :cry:
значит что-то просмотрели, надо в этом же диалоге СИ нажать "обновить" или ещё лучше - приложить файл пример.
+ я на видео вывел все в представление, плюс еще включил колонку с примечанием
Изменено: SaprOnOff86 - 18.05.2019 12:29:10
 
Цитата
Эрик Шакиров написал:
как?
написать макрос? :bal:
Код
using System;
using System.Linq; //ссылки на System.Core, 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("");
         double summa=0.0;
         foreach (var i in doc.GetFragments3D())
         {
            foreach(FragmentVariableValue v in i.GetVariables())
            {
            if(v.Name=="L" && v.IsReal)//находим переменную L
               {
               summa += v.RealValue.Value;
               }
            }
         }
         Variable w = doc.GetVariables().FirstOrDefault(v=> v.Name=="summa");
         if (w == null) {Variable vvv = new Variable(doc,"summa",summa);}
         else {w.RealValue=summa;}
      doc.EndChanges();
      }
   }
}
Изменено: FRei - 18.05.2019 10:31:28
 
SaprOnOff86, спасибо большое за наглядный пример! Все получилось, нужно было отключить в структуре отображение как в спецификации. :applanse:
Страницы: 1