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


Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Замена компонента сборки
 
Добрый день. Как можно программно заменить один компонент сборки другим?. В идеале это должно происходить без загрузки модели в T-Flex. То есть, имеется сборка assembly1.grb, в нее входят детали model1.grb и model2.grb. Требуется: во-первых, получить список компонентов, во-вторых, заменить model1.grb на model3.grb.
 
А вопрос в чём? Подсказать куда смотреть? Или предоставить готовое решение?
Судя по описанию алгоритм работы ты уже выработал, осталось изучить программирование и T-FLEX CAD API.
 
Готовое решение было бы неплохо, но можно и просто функции.
 
Просто функции в справке по API, примеры можешь посмотреть тут http://www.tflex-nord.ru/html/api/api.htm
 
Цитата
Дмитрий пишет:
Просто функции в справке по API, примеры можешь посмотреть тут http://www.tflex-nord.ru/html/api/api.htm
В том то и дело, что в справке функции замены компонента я не нашел (может плохо искал), в примерах такого тоже нет
 
public FileLink FileLink { get; set; } как вариант. Сам не проверял :)
 
Вам по справке надо смотреть Fragment и Fragment3D, в зависимости от того какие фрагменты хотите заменить в документе. Заменять достаточно переписав FileLink или FilePath.
 
Спасибо, все получилось
Код
Document cur_doc = TFlex.Application.OpenDocument("d:\\3\\assembly1.grb", false);

cur_doc.BeginChanges("Замена путей");
string sLinkPath;
bool bIsLinkChanged = false;

foreach (Fragment3D cur_fragment in cur_doc.Fragments3D)
{
   sLinkPath = cur_fragment.FileLink.FullFilePath;
   if (sLinkPath.IndexOf("\\model1.grb") != -1)
   {
      sLinkPath = sLinkPath.Replace("model1.grb", "model11.grb");
      cur_fragment.FileLink = new TFlex.Model.FileLink(cur_fragment.Document, sLinkPath);
      bIsLinkChanged = true;
   }
}

if (!bIsLinkChanged)
{
   cur_doc.CancelChanges();
}
cur_doc.EndChanges();
cur_doc.Save(); 
 
Видимо про изучить программирование был не прав. Тебе спасибо за пример.
Страницы: 1