Доброго времени суток!
Редактирую базу данных dwg в проекте на основе .NET Framework 3.5.
И все хорошо работает с библиотеками AutoCAD 2012 64bit
Делаю так:
1) Описываю класс DwgHost
2) Редактирую базу нужного мне DWG-файла в подпрограмме EDIT_DWG и сохраняю результат в файле
Вот в чем вопрос
Пробую это сделать с библиотеками acad 2014 подключаю соотв. Net FrameWork 4.5. соотв. сборочки (3 шт.) AutoCAD 2014
И не получается. Отладчик Visual Studio сообщает следующее:
Не удалось загрузить файл или сборку "Acdbmgd, Version=19.1.0.0,
Culture=neutral, PublicKeyToken=null" либо одну из их зависимостей.
Была сделана попытка загрузить программу, имеющую неверный формат.
Единственное на что я обратил внимание - это то, что в AutoCAD 2014
нет теперь аналогичного как в AutoCAD 2012 файла acdb18enures.dll
Куда он пропал и какой файл его теперь заменяет не знаю?
Вроде как должен быть что-то типа acdb19enures.dll но его нету.
Ну то что его нет меня не удивляет. Ведь Autodesk может из состава исключить его.
Пример кода
Imports CAD_DBS = Autodesk.AutoCAD.DatabaseServices
Imports CAD_RTM = Autodesk.AutoCAD.Runtime
Imports CAD_GEO = Autodesk.AutoCAD.Geometry
Imports CAD_PLT = Autodesk.AutoCAD.PlottingServices
Imports CAD_APS = Autodesk.AutoCAD.ApplicationServices
Public Class DwgHost
Inherits CAD_DBS.HostApplicationServices
Public Sub New()
CAD_RTM.RuntimeSystem.Initialize(Me, 1033)
End Sub
Protected Overrides Sub Finalize()
CAD_RTM.RuntimeSystem.Terminate()
MyBase.Finalize()
End Sub
Public Overrides Function FindFile(fileName As String, _
database As CAD_DBS.Database, _
hint As CAD_DBS.FindFileHint) As String
Return ""
End Function
End Class
Public Sub EDIT_DWG(ByVal dwgFileName As String)
Dim acadHost As New DwgHost
Dim db As CAD_DBS.Database = Nothing
db = New CAD_DBS.Database
CAD_DBS.HostApplicationServices.WorkingDatabase = db
' читаю базу чертежа
db.ReadDwgFile(dwgFileName, IO.FileShare.ReadWrite, False, Nothing)
' ...
' редактирую базу как мне хочется
'...
' закрываю базу
db.CloseInput(True)
' ну и сохраняю результат в файле
db.SaveAs("C:\result.dwg", CAD_DBS.DwgVersion.Current)
End Sub