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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Не удалось открыть файл
 
[QUOTE]vite написал:
[URL=/forum/index.php?PAGE_NAME=profile_view&UID=81201&sphrase_id=243317]Ирина[/URL], как вариант, создать новый документ, сохранить на диске, закрыть и повторно открыть средствами API...[/QUOTE]
Добрый день!
Да, такое тоже проверялось, но также ошибка.
Не удалось открыть файл
 
Добрый день!
[QUOTE]vite написал:
[URL=/forum/index.php?PAGE_NAME=profile_view&UID=81201&sphrase_id=243317]Ирина[/URL], это очень странное поведение программы.

1. Если у вас установлены две версии T-FLEX CAD, нужно убедиться в том, что  ApiLoader  загружает домен приложения именно 12-й версии. Используйте утилиту  [URL=https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer]Process Explorer[/URL] , чтобы уточнить этот момент.
2. Установите свойство  ProtectionLicense  как  Auto , и посмотрите в отладочном режиме, какое значение определено после вызова  InitSession .
3. Попробуйте открыть документ с параметром  visible , установленном в  false .[/QUOTE]
1. Да, 12
2. После  InitSessio, ProtectionLicense  =  Auto
3. Документ открывается с visible =  false.

Ошибка повторяется, открывается только с 3 раза.

Пока готовится вопрос в техподдержку. Может есть еще идеи?
При открытии файла, в момент ошибки у процесса T-FLEX CAD API состояние с зеленым листочком - "этот процесс uwp приостановлен для повышения производительности системы". Может это как-то влияет, или настройки ОС?
Не удалось открыть файл
 
Спасибо! Проверю.
Не удалось открыть файл
 
Добрый день!
Выяснилась такая последовательность:
1. При открытии открытии файла, в дочернем процессе запускается T-FLEX CAD API, возникает ошибка открытия файла.
2. При повторном открытии файла предлагается обновление ссылок, в дочернем процессе запускается T-FLEX CAD API, возникает ошибка открытия файла.
3. Повторное открытие файла. Предлагается обновление ссылок. И только после этого запускается T-FLEX CAD Database Layer, файл открывается.
4. Все последующие открытия происходят без ошибок.
Не удалось открыть файл
 
Добрый вечер, коллеги!

T-FLEX CAD 12.0.65.0

При открытии файла возникает ошибка "Не удалось открыть файл".
При этом, если запустить T-FLEX и открыть файл в диалоге, то ошибки нет.
Можно где-то посмотреть подробности по ошибке, через API или логи самого T-FLEX?

Версия, в которой сохранен сам открываемый файл - 12.0.64.0.
Этот же код, 16 версия, ошибки нет.
[CODE]ApplicationSessionSetup setup = new ApplicationSessionSetup();
setup.ReadOnly = false;
TFlex.Application.InitSession(setup);
Document document = TFlex.Application.OpenDocument(fileName);
[/CODE]
Ошибка при экспорте
 
Добрый день, коллеги!

T-FLEX CAD 12.
Задача: выполнить экспорт в формат step всех 3D-фрагментов входящих в изделие.
Стандартные изделия исключаем.

Экспорт выполняется следующим кодом:
[CODE]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);
[/CODE]
При выполнении следующей строки
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);

Код ниже:
[CODE] 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;
                   }
               }
           }
[/CODE]
Как открыть файл в запущенном T-FLEX CAD?, Из внешнего приложения открыть файл в запущенном T-FLEX CAD
 
vite, Спасибо за помощь!

Со строкой Server=1 следующий код работает.

Connection connection = new Connection();
connection.Open();
if(connection.IsOpen)
{
connection.OpenDocument(fileName, true);
connection.Close();
}
Как открыть файл в запущенном T-FLEX CAD?, Из внешнего приложения открыть файл в запущенном T-FLEX CAD
 
vite, Спасибо! Нужно будет попробовать. Этот параметр может повлиять на что-то (лицензия, производительность, ограничения)? В справке нет описания.
Как открыть файл в запущенном T-FLEX CAD?, Из внешнего приложения открыть файл в запущенном T-FLEX CAD
 
Добрый вечер, коллеги!

Есть запущенный экземпляр T-FLEX CAD 12.

Задача: из внешнего приложения открыть файл в запущенном T-FLEX CAD.

Следующий код не подходит, т.к. открывает новый экземпляр T-FLEX CAD без окна Windows:
ApplicationSessionSetup setup = new ApplicationSessionSetup();
setup.ProtectionLicense = ApplicationSessionSetup.License.TFlex3D;
setup.ReadOnly = false;
TFlex.Application.InitSession(setup);
Document rootDoc = TFlex.Application.OpenDocument(fileName, true);

Следующий код не подходит, т.к. открывает новый экземпляр T-FLEX CAD:
string path = @"D:\Documents\T-FLEX\asm_1.grb";
Process.Start("tflexcad", path);

Есть пример работы с TFlex.CAD.Server по ссылке ниже, но он не работает.
[URL=http://www.tflex.ru/forum/index.php?PAGE_NAME=read&FID=14&TID=2240&TITLE_SEO=2240-podklyuchenie-k-tekushchemu-seansu-tflex-iz-vneshnego-exe-prilozheniya]http://www.tflex.ru/forum/index.php?PAGE_NAME=read&FID=14&TID=2240&TITLE_SEO...[/URL]
Следующий код с TFlex.CAD.Server запускает T-FLEX CAD, но до строки "if(connection.IsOpen)" не доходит,
после некоторого времени ожидания (2-3 мин) валится ошибка, что не удалось запустить T-FLEX CAD.
Connection connection = new Connection();
connection.Open();
if(connection.IsOpen)
{
connection.OpenDocument(fileName, true);
connection.Close();
}

Может кто-нибудь подсказать как решить задачу?
Запуск T-FLEX CAD из внешнего приложения, Как запустить T-FLEX CAD из внешнего приложения?
 
Спасибо!
Получилось так:
ProcessStartInfo procInfo = new ProcessStartInfo();
procInfo.FileName = pathToTflexEXE;
procInfo.ErrorDialog = true;
procInfo.Arguments = "\"" + dialog.FileName + "\"";
Process process = Process.Start(procInfo);
Запуск T-FLEX CAD из внешнего приложения, Как запустить T-FLEX CAD из внешнего приложения?
 
Добрый день, коллеги!

T-FLEX CAD 12.
Есть путь к файлу.

Задача: из внешнего приложения открыть файл в T-FLEX CAD для редактирования, предварительно открыть T-FLEX CAD.
TFlexControlSample с собственной формой не подходит. Нужен именно сам T-FLEX CAD.

Следующий код не открывает T-FLEX CAD:
ApplicationSessionSetup setup = new ApplicationSessionSetup();
setup.ProtectionLicense = ApplicationSessionSetup.License.TFlex3D;
setup.ReadOnly = false;
TFlex.Application.InitSession(setup);
Document rootDoc = TFlex.Application.OpenDocument(fileName, true);

Следующий код с TFlex.CAD.Server запускает T-FLEX CAD, но до строки "if(connection.IsOpen)" не доходит,
после некоторого времени ожидания (2-3 мин) валится ошибка, что не удалось запустить T-FLEX CAD.
Connection connection = new Connection();
connection.Open();
if(connection.IsOpen)
{
  connection.OpenDocument(fileName, true);
  connection.Close();
}

Как его все-таки запустить?
Изменено: Ирина - 06.11.2019 17:56:10 (ошибка в описании)
Разбиение 2D-страниц на документы определенного типа
 
[QUOTE]Анатолий Ледяев написал:
[URL=/forum/index.php?PAGE_NAME=profile_view&UID=81201&sphrase_id=65514]Ирина[/URL],
using TFlex;
using TFlex.Model;
using TFlex.Model.Model2D;
using System.Collections.Generic;
}[/QUOTE]
Спасибо! Как один из вариантов.
Разбиение 2D-страниц на документы определенного типа
 
[QUOTE]Sila Musli написал:
[QUOTE][URL=/forum/index.php?PAGE_NAME=profile_view&UID=81201&sphrase_id=314745]Ирина[/URL] написал:
Боюсь, что пользователя не заставить давать осмысленные имена, для него это лишняя работа.[/QUOTE]
Это должно решаться на уровне предприятия.

А вот вставленная форматка по сути сразу делает любой чертёж сборкой.[/QUOTE]
Пользователь может ошибиться в описании, на него нельзя полагаться.
А если в файле многолистовые сборочные чертежи + монтажный + другие.
Разбиение 2D-страниц на документы определенного типа
 
[QUOTE]vite написал:
[QUOTE][URL=/forum/index.php?PAGE_NAME=profile_view&UID=81201&sphrase_id=32845]Ирина[/URL] написал:
В последней версии тоже нет?[/QUOTE]
в текущей версии для определения связей, поддерживается специальный метод  Tflex.Application.GetDocumentExternalFileLinks , который извлекает ссылки на все вложенные фрагменты. Если фрагмент также содержит ссылки на другие фрагменты, то это подсборка. Таким образом вы можете точно определить, где сборочная единица а где детали.[/QUOTE]
В 12 версии также есть метод GetDocumentExternalFileLinks. Даже если точно узнаем, что это подсборка, программно не получается понять какие именно страницы относятся к одному типу документа.
Есть свойство Page.FragmentForNewPageFileLink, которое вроде логично, но оно может указывать на страницу не принадлежащую нужному типу документа. Например, последующая страница спецификации может указывать на первую перечня элементов.
Придется что-то придумывать...
Разбиение 2D-страниц на документы определенного типа
 
[QUOTE]Sila Musli написал:
[QUOTE][URL=/forum/index.php?PAGE_NAME=profile_view&UID=13350&sphrase_id=32845]vite[/URL] написал:
[URL=/forum/index.php?PAGE_NAME=profile_view&UID=81201]Ирина[/URL] , специальных средств для определения связей страниц по форматкам нет в API.[/QUOTE]
Но можно дать осмысленные имена, к примеру:
- Чертёж
- Спецификация
- Перечень

И по именам формировать пдф-ки, т.е. все страницы начинающиеся на "Чертёж*" в один файл и так далее.[/QUOTE]
Боюсь, что пользователя не заставить давать осмысленные имена, для него это лишняя работа.
Разбиение 2D-страниц на документы определенного типа
 
[QUOTE]Анатолий Ледяев написал:
[URL=/forum/index.php?PAGE_NAME=profile_view&UID=81201&sphrase_id=32845]Ирина[/URL], в коде макроса прописать соответствие имен фрагментов находящихся на странице. Вначале найти все фрагменты из указанного вами перечня. Затем определить на каких страницах они находятся, и уже поочередно экспортировать с указанием нужных страниц.[/QUOTE]
Анатолий, например, пользователь работает со спецификацией, добавил объекты, автоматически создалась еще одна страница.
Макрос сможет отследить, что создалась еще одна страница? Или каждый раз нужно будет запускать макрос?
Интересно, конечно, программно отслеживать, без дополнительных макросов и действий пользователя.
Разбиение 2D-страниц на документы определенного типа
 
vite, Спасибо!
В последней версии тоже нет?
Разбиение 2D-страниц на документы определенного типа
 
Добрый день!

T-FLEX 12
Есть файл в котором несколько 2D-страниц разных форматок, например:
Страница 1 - <Форматки>Конструкторский чертеж. Первый лист. ГОСТ 2.104-68.GRB
Страница 2 - <Форматки>Конструкторский чертеж. Последующие листы. ГОСТ 2.104-68.GRB
Страница 3 - <Форматки>Спецификация. Первый лист. ГОСТ 2.106-96 Ф1.grb
Страница 4 - <Форматки>Спецификация. Последующие листы. ГОСТ 2.106-96 Ф1a.grb
Страница 5 - <Форматки>Перечень элементов. ГОСТ 2.701-84.grb

Задача: сохранить документы определенного типа в pdf. Каждый тип документа в отдельный файл pdf.
Например,
Страницы 1, 2 - в 1.pdf
Страницы 3, 4 - в 2.pdf
Страница 5 - в 3.pdf
 
Как определить, что страница 1 связана со страницей 2, страница 3 связана со страницей 4?
Страницы: 1