Возникла проблема при попытке программно получить документ 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 (оказалось, что они уже установлены).
Настройки для 32 разрядных системы, на 64 другие. Я всё же рекомендую немного переделать проект TFlexControlSample под себя или смотри файл APILoader в этом проекте.
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 или нет.
Я пробовал использовать процедуру OpenDocument (чисто для проверки работает ли она), вроде как удалось получить ссылку на открытый документ (к сожалению, я уже удалил тот вариант кода). Но мне нужно получить именно активный документ, который УЖЕ открыт в T-Flex'е.
Надо получить информацию (всякие там обозначения, массы и проч.) об изделии (изделиях) из активного чертежа, детали, сборки или спецификации. Причем именно из открытого документа.
Так может тебе лучше не отдельное приложение а макрос в T-FLEX CAD'е который будет вызываться по "твоей" кнопке в T-FLEX CAD'е и получать информацию из активного документа в T-FLEX CAD'е? Не подойдет?