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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Ошибка при экспорте
 
Добрый день, коллеги!

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;
                    }
                }
            }
Ошибка.jpg (17.81 КБ)
 
Цитата
Ирина написал:
4. При экспорте нужно обязательно использовать OpenDocument?
необязательно...

Цитата
Ирина написал:
5. Можно и правильно ли совместно использовать получение и открытие документа?
судя по коду, в этом нет необходимости.
T-FLEX CAD 16.0.61.0
Страницы: 1