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


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

Страницы: 1
grb to step(stp)
 
[QUOTE]SaprOnOff86 написал:
суппорт@топсистемы.ру[/QUOTE]
Смысл тогда форума, если все вопросы можно решить с саппортом?  :)
Да и вряд ли в СП сидят разработчики, чтобы разбираться с чужим кодом.
grb to step(stp)
 
vite, решил вернуться обратно к T-flex CAD Open API. Починил проблемы с библиотеками.

Прикладываю свой код, но не работает ни импорт, ни экспорт.

Мучаюсь уже долго, никак не получается ~~:-
[CODE]using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TFlex.Model;
using System.IO;

namespace tflex_converter_chsarp
{
   class Program
   {
       static void Main(string[] args)
       {
           Console.WriteLine(DateTime.Now + " Starting...");

           TFlex.Application.InitSession(GetSetup());

           stp2grb(@"C:\sss.stp", @"C:\sss.grb");
           grb2stp(@"C:\asd.grb", @"C:\asd.stp");

           Console.WriteLine(DateTime.Now + " Finish");
       }

       static TFlex.ApplicationSessionSetup GetSetup()
       {
           TFlex.ApplicationSessionSetup setup = new TFlex.ApplicationSessionSetup();
           setup.ReadOnly = false;
           setup.EnableMacros = true;
           setup.PromptToSaveModifiedDocuments = false;
           setup.Enable3D = true;
           //TFlex.Application.Options.Precise3DObjectSelector = false;

           return setup;
       }

       static void stp2grb(string src, string dst)
       {
           if (!File.Exists(src))
           {
               Console.WriteLine("File {0} does not exist", src);
               return;
           }

           Document document = TFlex.Application.NewDocument();

           ImportFromSTEP import = new ImportFromSTEP(document);
           import.ImportFormat = ImportSTEPFormat.Assembly;
           bool isImported = import.Import(src);
           Console.WriteLine("IsImported: " + isImported.ToString());

           bool isSaved = document.SaveAs(dst);
           Console.WriteLine("isSaved: " + isSaved.ToString());
       }

       static void grb2stp(string src, string dst)
       {
           if (!File.Exists(src))
           {
               Console.WriteLine("File {0} does not exist", src);
               return;
           }

           Document document = TFlex.Application.OpenAsDocument(src);
           ExportToStep toStep = new ExportToStep(document); // = new ExportToStep();
           bool IsExported = toStep.Export(dst);
           Console.WriteLine("IsExported: " + IsExported.ToString());
       }

   }
}


[/CODE]
grb to step(stp)
 
[QUOTE]vite написал:
Текущая версия T-FLEX CAD вроде как регистрирует в системе COM-сервер (см. вложение) при инсталляции. Но, официально этот API не поддерживается. Если интересно, можете ознакомиться с документацией  ActiveX T-FLEX CAD  (устаревшая версия).[/QUOTE]
Спасибо, выглядит рабочим вариантом. Буду пробовать.
grb to step(stp)
 
[QUOTE]SaprOnOff86 написал:
Опция там включена?[/QUOTE]
Включил. Не помогла, проблемы те же.


Еще обнаружил данное окно. (см. во вложении). Можно ли сделать как-нибудь через него, используя макросы. (например, как в Компасе можно написать макросы на питоне)
grb to step(stp)
 
добрый день.
Пытаюсь с помощью T-flex DOCs Open API сделать конвертер из grb в stp. Но не получается.
В документации есть пример, но он не работает (см. скриншот).
Выскакивает исключение на строке [CODE]CadDocumentProvider provider = CadDocumentProvider.Connect(Context.Connection, ".grb");
[/CODE][QUOTE]System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
[/QUOTE]
Боролся-боролся. Никак не получилось справится с этим.
Connection не null судя по дебаггеру.



Так же были попытки использовать T-flex CAD Open API с помощью класса ExportToSTEP. Но не получается никак загрузить TflexAPI.dll  [QUOTE]System.IO.FileNotFoundException: "Не удалось загрузить файл или сборку "TFlexAPI.dll" либо одну из их зависимостей. Не найден указанный модуль."[/QUOTE]
При анализе с помощью Dependency Walker оказалось, что не хватает много дополнительных dll (не тфлексовых), поэтому затею бросил.

Занимался ли кто данным вопросом? Может я что-то упустил. Или есть другой программный способ перевода grb2stp?
Страницы: 1