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


Поиск  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Запуск 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 (ошибка в описании)
 
Цитата
Ирина написал:
Код
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);

для T-FLEX CAD 12 по-видимому должно быть так:
Код
Process.Start("tflex", path);

Если документ уже открыт для записи в одном экземпляре приложения, то для других экземпляров он будет доступен только для чтения.

TFlex.CAD.Server API позволяет подключиться к приложению T-FLEX CAD и обрабатывать данные документа в асинхронном режиме. По крайней мере это работало в старой версии.
https://www.youtube.com/watch?v=eBTNCAoDzrQ

Вот ссылка на тестовый проект ServerTest, который демонстрирует подключение к T-FLEX CAD и использование основных функций TFlex.CAD.Server API. Попробуйте собрать его для T-FLEX CAD 12. На моей стороне данное приложение некорректно работает (версия T-FLEX CAD 16.0.56.0).
Изменено: vite - 06.11.2019 23:51:44
T-FLEX CAD 17.1.6.0
 
Спасибо!
Получилось так:
ProcessStartInfo procInfo = new ProcessStartInfo();
procInfo.FileName = pathToTflexEXE;
procInfo.ErrorDialog = true;
procInfo.Arguments = "\"" + dialog.FileName + "\"";
Process process = Process.Start(procInfo);
Страницы: 1