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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Получить все сборки, детали, стандартные изделия входящие в 3D модель
 
Здравствуйте! Подскажите пожалуйста, как макросом пробежаться по дереву построения 3D модели сборки и получить имена, пути входящих деталей, сборок и т.д.? T-flex 15.1.70.0
Написала в техподдержку, но они молчат :(
 
Анна, пример рекурсивной обработки документа и всех вложенных фрагментов, с последовательным выводом метаданных в файл "asm_info.log".

Код
using System.IO;
using TFlex.Model;
using TFlex.Model.Model3D;
using System.Diagnostics;

namespace Test
{
    public class AsmInfo
    {
        private static readonly Document document = TFlex.Application.ActiveDocument;
        private static string path;


        public static void Run()
        {
            if (document == null)
                return;

            path = document.FilePath + @"asm_info.log";

            if (File.Exists(path))
                File.Delete(path);

            MetadataOutput(document);

            if (File.Exists(path))
                Process.Start("notepad.exe", path);
        }

        private static void MetadataOutput(Document document)
        {
            int index = 0;

            foreach (var i in document.GetFragments3D())
            {
                string[] contents = {
                    "Документ:\t\t"         + document.FileName,
                    "Кол-во фрагментов:\t"  + document.GetFragments3D().Count,
                    "  Индекс фрагмента:\t" + index,
                    "  Имя файла:\t\t"      + i.FilePath,
                    "  Имя объкта:\t\t"     + i.Name,
                    "  Идентификатор:\t"    + i.ObjectId,
                    "  Полный путь:\t\t"    + i.FullFilePath,
                    "========================================================"
                };

                File.AppendAllLines(path, contents);
                index++;

                if (TFlex.Application.OpenFragmentDocument(i.FullFilePath) is Document fragment)
                    MetadataOutput(fragment);
            }
        }
    }
}
T-FLEX CAD 17.1.21.0
 
vite, Благодарю, все работает!
Страницы: 1