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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Получение наименования фрагмента
 
Как средствами API получить наименование фрагмента сборки? В частности, для стандартных изделий наименованием является ГОСТовское обозначение (Болт М8х30 ГОСТ...)
 
Код
public static void FragmentVariables(string pathFragment)
{
    Document document = TFlex.Application.ActiveDocument;//Получение активного документа
    document.BeginChanges("2D фрагменты");//Открытие блока изменений документа

    Fragment fragment = new Fragment(document, pathFragment);
    foreach(FragmentVariableValue v in fragment.GetVariables())//цикл по переменным фрагмента
    {
        if(v.Name == "D" && v.IsReal)//находим переменную "D" 
        {
            v.RealValue = 100;//устанавливаем значение
        }
    }
    //вариант получения переменной без цикла
    FragmentVariableValue var = fragment.GetVariableValue("D", true);
    var.RealValue = 100;

    document.EndChanges();//Закрытие блока изменений документа
}
 
И как мне данный код поможет? Или Вы предлагаете вручную формировать наименование из диаметра, длины и т.д.? Но это очень долго и муторно. Неужели строка с наименованием нигде не хранится?
 
А в какую переменную собирается болт - ту переменную и считывать, только немного код скорректировать. Вы жеж наверняка прочитали документацию по API и с примерами ознакомились :)
 
В добавок, взято с http://www.tflex-nord.ru/
Код
//в скобках указаны переменные, передаваемые функции как входные данные
public static Variable GetVar(Document document, string var_name)
{//функция возвращает переменную с заданным именем
//Пример вызова функции:
//Variable = F.Var.GetVar(document, name);foreach (Variable var in document.Variables)
{if (var.Name == var_name)
{return var;}}//если переменная не была найдена, то в окне диагностики появится соответствующее сообщение
Diagnostics diagnos = document.Diagnostics;
diagnos.Add(new DiagnosticsMessage(DiagnosticsMessageType.Information, "Переменная " + var_name + " не была найдена."));
return null;}
Страницы: 1