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


Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
Не удалось загрузить файл или сборку TFlexAPI, Не удается получить документ T-Flex
 
Приветствую уважаемых участников форума.

Возникла проблема при попытке программно получить документ T-Flex CAD 12 (учебная версия).
Создаю проект (в среде MS Visual Studio Express 2013, язык Visual Basic NET), создаю ссылку на библиотеку TFlexAPI.dll, опцию "Копировать локально" устанавливаю в False (впрочем, установка в True ничего не меняет).
При попытке получить документ выводится сообщение об ошибке: "Дополнительные сведения: Не удалось загрузить файл или сборку "TFlexAPI, Version=12.0.64.0, Culture=neutral, PublicKeyToken=eab6a180a6be0d77" либо одну из их зависимостей. Не удается найти указанный файл."
Такая проблема возникает на ноуте (Windows 7 x64 Домашняя расширенная, установлен 64-х-разрядный T-Flex) и десктопе (Windows XP SP3 x86, установлен 32-х-разрядный T-Flex) (только здесь сообщение немного другое: "Не удалось загрузить файл или сборку "TFlexAPI, Version=12.0.65.0, Culture=neutral, PublicKeyToken=eab6a180a6be0d77" либо одну из их зависимостей. Не удается найти указанный файл.") .
Пробовал менять платформы, целевой процессор, среду NET Framework в проекте - ничего не помогает.
На ноуте установлены NET Framework'и версии 4.5 и 4.5.1, на настольном компе - версии 2 SP2, 3 SP2, 3.5 SP1, 4.
Перед установкой T-Flex устанавливал компоненты поддержки T-FLEX 12 (оказалось, что они уже установлены).

Надеюсь на вашу помощь, заранее спасибо.
Изменено: ainis - 20.04.2014 09:42:43
 
http://www.tflexcad.ru/download/t-flex-cad-free/limitations.php
Цитата
Отсутствует возможность подключения дополнительных модулей T-FLEX CAD, а также приложений, использующих API T-FLEX CAD.
Это как предположение.
 
Спасибо за ответ.

Проверил на профессиональном T-Flex - та же проблема.
Изменено: ainis - 21.04.2014 12:30:30
 
Можешь выложить проект?
 
Вот отсюда его можно скачать: http://yadi.sk/d/hFlsbxXuMt5Ce

Запускаете и нажимаете кнопку "Получить данные".
Изменено: ainis - 21.04.2014 13:39:16
 
Может эта проблема быть связана с тем, что T-Flex установлен по нестандартному пути?
 
Во вложении и в папке с КАДом есть пример на API (C#) TFlexControlSample
 
Та же самая ошибка.
При этом макросы и библиотеки в папке "Program" нормально работают.
Пробовал устанавливать по стандартному пути - не помогло.
Изменено: ainis - 21.04.2014 16:30:37
 
Настройки для 32 разрядных системы, на 64 другие. Я всё же рекомендую немного переделать проект TFlexControlSample под себя или смотри файл APILoader в этом проекте.
 
Благодарю. Настроил выходной нуть построения и ошибка исчезла.
 
Возникла другая проблема: не получается получить активный документ, возвращается все время пустая ссылка.
Инициализацию API провел - не помогает.
 
Пример кода думаю не помешает.
 
Код в модуле.
Код
[/CODE][CODE]Imports TFlex 
Код
Sub Main()
    Dim TFSetup As New TFlex.ApplicationSessionSetup()
    TFSetup.ReadOnly = False
    TFSetup.Enable3D = True
    TFSetup.EnableMacros = True
    Dim Res As Boolean = TFlex.Application.InitSession(TFSetup)
    MainWindow.ShowDialog()
  End Sub
Процедура Main является автоматически запускаемым объектом.

Нажатие кнопки в окне "MainWindow" дает команду на получение активного документа:
Код
Dim Doc As TFlex.Model.Document = TFlex.Application.ActiveDocument
Doc всегда Nothing - независимо от того, открыт ли документ в T-Flex или нет.
Изменено: ainis - 23.04.2014 19:02:39
 
Возможно нужен OpenDocument перед ActiveDocument?
 
Я пробовал использовать процедуру OpenDocument (чисто для проверки работает ли она), вроде как удалось получить ссылку на открытый документ (к сожалению, я уже удалил тот вариант кода). Но мне нужно получить именно активный документ, который УЖЕ открыт в T-Flex'е.
 
А ты можешь описать что тебе нать? Зачем из доп приложения получать активный документ в T-FLEX CAD?
 
Надо получить информацию (всякие там обозначения, массы и проч.) об изделии (изделиях) из активного чертежа, детали, сборки или спецификации. Причем именно из открытого документа.
 
Так может тебе лучше не отдельное приложение а макрос в T-FLEX CAD'е который будет вызываться по "твоей" кнопке в T-FLEX CAD'е и получать информацию из активного документа в T-FLEX CAD'е? :) Не подойдет?
 
Ты оказался прав, Дмитрий: надо использовать OpenDocument, только не вместе с ActiveDocument, а вместо ActiveDocument. Спасибо за подсказку.
Страницы: 1