Добрый день, коллеги!
T-FLEX CAD 12.
Задача: выполнить экспорт в формат step всех 3D-фрагментов входящих в изделие.
Стандартные изделия исключаем.
Экспорт выполняется следующим кодом:
При выполнении следующей строки
bool success = export.Export(fileNameExport);
появляется сообщение T-FLEX "Ошибка при экспорте документа", файл не создается,
при этом success = true. В справке написано, что это результат экспорта, т.е. при успешном экспорте success должен быть = true.
При экспорте в ".stl", ".x_b", ".x_t" ошибок нет, файлы создаются,
при этом success = false.
При экспорте в ".wrl" ошибок нет, но файл не создается,
при этом success = false.
Вопросы:
1. Почему ошибка при экспорте в ".stp"?
2. Почему если ошибка, то success = true,
и если нет ошибки, то success = false?
3. Почему не создается файл при экспорте в ".wrl"?
Если вместо строки
Document childDoc = item.GetFragmentDocument(true);
использовать
Document childDoc = TFlex.Application.OpenDocument(item.FileLink);
то ошибок нет, все файлы создаются,
но при экспорте в ".wrl" уже success = true. Не понятна логика.
4. При экспорте нужно обязательно использовать OpenDocument? (в справке нет информации)
5. Можно и правильно ли совместно использовать получение и открытие документа?
Document childDoc = item.GetFragmentDocument(true);
Document childDoc = TFlex.Application.OpenDocument(item.FileLink);
Код ниже:
T-FLEX CAD 12.
Задача: выполнить экспорт в формат step всех 3D-фрагментов входящих в изделие.
Стандартные изделия исключаем.
Экспорт выполняется следующим кодом:
Код |
---|
Document childDoc = item.GetFragmentDocument(true);//получить документ с подстановкой переменных ....... string fileNameExport = childDoc.FileName + ".stp"; TFlex.Model.ExportToSTEP export = new ExportToSTEP(childDoc); export.SimplifyModel = true; bool success = export.Export(fileNameExport); |
При выполнении следующей строки
bool success = export.Export(fileNameExport);
появляется сообщение T-FLEX "Ошибка при экспорте документа", файл не создается,
при этом success = true. В справке написано, что это результат экспорта, т.е. при успешном экспорте success должен быть = true.
При экспорте в ".stl", ".x_b", ".x_t" ошибок нет, файлы создаются,
при этом success = false.
При экспорте в ".wrl" ошибок нет, но файл не создается,
при этом success = false.
Вопросы:
1. Почему ошибка при экспорте в ".stp"?
2. Почему если ошибка, то success = true,
и если нет ошибки, то success = false?
3. Почему не создается файл при экспорте в ".wrl"?
Если вместо строки
Document childDoc = item.GetFragmentDocument(true);
использовать
Document childDoc = TFlex.Application.OpenDocument(item.FileLink);
то ошибок нет, все файлы создаются,
но при экспорте в ".wrl" уже success = true. Не понятна логика.
4. При экспорте нужно обязательно использовать OpenDocument? (в справке нет информации)
5. Можно и правильно ли совместно использовать получение и открытие документа?
Document childDoc = item.GetFragmentDocument(true);
Document childDoc = TFlex.Application.OpenDocument(item.FileLink);
Код ниже:
Код |
---|
OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "GRB Files (*.grb)|*.grb"; if (dialog.ShowDialog() == DialogResult.OK) { Document childDoc = item.GetFragmentDocument(true);//получить документ с подстановкой переменных //Document childDoc = TFlex.Application.OpenDocument(dialog.FileName); if (docTF != null) { string fileNameExport = null; bool success; switch (Format) { case "stp": fileSecondary = childDoc.FileName + ".stp"; TFlex.Model.ExportToSTEP export = new ExportToSTEP(childDoc); export.SimplifyModel = true; success = export.Export(fileNameExport); break; case "stl": fileSecondary = childDoc.FileName + ".stl"; TFlex.Model.ExportToSTL stl = new ExportToSTL(childDoc); stl.LinearTolerance = 1; stl.MaxCellSize = 20; stl.NormalTolerance = 0; success = stl.Export(fileNameExport); break; case "x_b": fileSecondary = childDoc.FileName + ".x_b"; TFlex.Model.ExportToParasolid parasolidB = new ExportToParasolid(childDoc); parasolidB.FileFormat = ParasolidFileFormat.Binary; parasolidB.FileVersion = 24; parasolidB.DeleteRedundant = false; success = parasolidB.Export(fileNameExport); break; case "x_t": fileSecondary = childDoc.FileName + ".x_t"; TFlex.Model.ExportToParasolid parasolidT = new ExportToParasolid(childDoc); parasolidT.FileFormat = ParasolidFileFormat.Text; parasolidT.FileVersion = 24; parasolidT.DeleteRedundant = false; success = parasolidT.Export(fileNameExport); break; case "wrl": fileSecondary = childDoc.FileName + ".wrl"; TFlex.Model.ExportToVRML wrl = new ExportToVRML(childDoc); bool success = wrl.Export(fileNameExport); break; } } } |