Доброго времени суток. Пытаюсь рекурсивно вытащить все спецификации из сборки. Получился следующий код.
Скрытый текст
Код
using System.IO;
using TFlex.Model;
using TFlex.Model.Model3D;
using TFlex.Model.Data.ProductStructure;
namespace Test
{
public class AsmInfo
{
private static readonly Document document = TFlex.Application.OpenDocument(@"C:\абв.0.0\абв.0.0 Сборка 0.grb", false, true);
private static string path;
public static void Run()
{
if (document == null)
return;
ExportProductStructureToExcel(document);
}
private static void ExportProductStructureToExcel(Document document)
{
ProductStructureExcelExportOptions options = new ProductStructureExcelExportOptions();
//options.Silent = true;
options.FilePath = document.FileName + @".xlsx";
foreach(Variable v in document.GetVariables())
{
if(v.Name == "$Раздел_СП")
{
if (v.TextValue == "Спецификации\\Сборочные единицы")
{
foreach (var ps in document.GetProductStructures())
{
var scheme = ps.GetScheme();
if (scheme.Name == "Спецификация")
{
options.FilePath = document.FilePath;
ps.ExportToExcel(options);
}
}
}
}
}
foreach (var i in document.GetFragments3D())
{
Document fragment = TFlex.Application.OpenFragmentDocument(i.FullFilePath);
if (true)
ExportProductStructureToExcel(fragment);
}
}
}
}
Сохранение работает, .xlsx (или .xml, если везде в коде заменить "Excel" на "Xml") файлы создаются, но с подтверждением и заданием имени файла. Хотелось бы это все сделать без вывода окна подтверждения.
Разкоментировав строку
Код
//options.Silent = true;
выходит ошибка (1 картинка ошибка экспорта в Xml, 2 картинка - Excel)
Как можно исправить мой код, или как сделать по другому? Так же не нашел как экспортировать в файл с расширением .csv, при экспорте через интерфейс программы такое есть. На всякий случай прикрепляю сборку на которой тестирую.
Александр, а зачем выгружать все спецификации рекурсивно? Если в "Состав изделия" включены детали или сборочные единицы, то вся информация уже находится в "СИ" головной сборки...
vite, спасибо. С параметром "Включение в состав изделие с вложенными элементами" для всех сборочных единиц изделия в одном файле получаем всю структуру изделия без макросов. Осталось только установить этот параметр для 120+ уникальных сборочных единиц в проекте и сделать этот параметр по умолчанию