i have set to all cpu.
here are the code that is accessing all the autocad and civil3d com objects.
Imports System
Imports AutoCAD = Autodesk.AutoCAD.Interop
Imports AeccLandLib = Autodesk.AECC.Interop.Land
Imports Autodesk.AECC.Interop.Roadway
Imports AecUIBase = Autodesk.AEC.Interop.UIBase
Imports Autodesk.AECC.Interop.UiRoadway
Imports Autodesk.AutoCAD.Interop
Imports Autodesk.AutoCAD
Imports Autodesk.AutoCAD.Interop.Common
Imports System.Runtime.InteropServices
Imports System.Runtime.InteropServices.Marshal
Imports Autodesk.AECC.Interop.Land
Imports System.Math
Imports Autodesk.AECC.Interop.UiLand
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AECC.Interop.Pipe
Imports Autodesk.AECC.Interop.UiPipe
Module ApplicationC3D
Public oAcadApp As AutoCAD.AcadApplication
Public WithEvents oAcadDoc As AutoCAD.AcadDocument+
Public oAeccApp As AeccApplication
Public oAeccDb As AeccLandLib.AeccDatabase
Public oAeccDoc As AeccDocument
Public oAeccRoadwayApp As AeccRoadwayApplication
Public oAeccRoadwayDb As AeccRoadwayDatabase
Public oAeccRoadwayDoc As AeccRoadwayDocument
Public oAeccPipeApp As AeccPipeApplication
Public oAeccPipeDb As AeccPipeDatabase
Public oAeccPipeDoc As AeccPipeDocument
Public sAcadProdID As String = "AutoCAD.Application"
Public sAeccAppProdID As String = "AeccXUiLand.AeccApplication.9.0"
Public sAeccRoadwayAppProdID As String = "AeccXUiRoadway.AeccRoadwayApplication.9.0"
Public sAeccPipeAppProdID As String = "AeccXUiPipe.AeccPipeApplication.9.0"
'version 2009
Public Function GetCivilObjects() As Boolean
'Try
' 'get acad Objects
' oAcadApp = GetObject(, sAcadProdID)
' oAcadApp.Visible = True
' oAcadDoc = oAcadApp.ActiveDocument
' 'get land objects
' oAeccApp = CType(oAcadApp.GetInterfaceObject(sAeccAppProdID), AeccApplication)
' oAeccDb = CType(oAeccApp.ActiveDocument.Database, AeccDatabase)
' oAeccDoc = CType(oAeccApp.ActiveDocument, AeccDocument)
' 'get roadway objects
' oAeccRoadwayApp = CType(oAcadApp.GetInterfaceObject(sAeccRoadwayAppProdID), AeccRoadwayApplication)
' oAeccRoadwayDb = CType(oAeccRoadwayApp.ActiveDocument.Database, AeccRoadwayDatabase)
' oAeccRoadwayDoc = CType(oAeccRoadwayApp.ActiveDocument, AeccRoadwayDocument)
' 'get pipe objects
' oAeccPipeApp = CType(oAcadApp.GetInterfaceObject(sAeccPipeAppProdID), AeccPipeApplication)
' oAeccPipeDb = CType(oAeccPipeApp.ActiveDocument.Database, AeccPipeDatabase)
' oAeccPipeDoc = CType(oAeccPipeApp.ActiveDocument, AeccPipeDocument)
' GetCivilObjects = True
'Catch ex As Exception
' GetCivilObjects = False
' 'MsgBox("Error: Civil 3D is Not open.", MsgBoxStyle.Critical)
'End Try
Try
RunCvl()
GetCivilObjects = True
Catch ex As Exception
GetCivilObjects = False
End Try
End Function
Public Function RunCvl() As Boolean
Try
Try
oAcadApp = Application.AcadApplication
oAcadDoc = oAcadApp.ActiveDocument
Catch ex As Exception
Dim AcadProg As System.Type = System.Type.GetTypeFromProgID("AutoCAD.Application")
oAcadApp = System.Activator.CreateInstance(AcadProg, True)
End Try
'If oAcadApp IsNot Nothing Then
' oAcadApp.Visible = True
' oAeccApp = New AeccApplicationClass
' oAeccApp.Init(oAcadApp)
'End If
Catch ex As Exception
MsgBox(ex.ToString)
Return False
End Try
'================
Try
oAeccApp = CType(oAcadApp.GetInterfaceObject(sAeccAppProdID), AeccApplication)
oAeccDoc = oAeccApp.ActiveDocument
oAeccDb = oAeccApp.ActiveDocument.Database
'get roadway objects
oAeccRoadwayApp = CType(oAcadApp.GetInterfaceObject(sAeccRoadwayAppProdID), AeccRoadwayApplication)
oAeccRoadwayDoc = CType(oAeccRoadwayApp.ActiveDocument, AeccRoadwayDocument)
oAeccRoadwayDb = CType(oAeccRoadwayApp.ActiveDocument.Database, AeccRoadwayDatabase)
'get pipe objects
oAeccPipeApp = CType(oAcadApp.GetInterfaceObject(sAeccPipeAppProdID), AeccPipeApplication)
oAeccPipeDb = CType(oAeccPipeApp.ActiveDocument.Database, AeccPipeDatabase)
oAeccPipeDoc = CType(oAeccPipeApp.ActiveDocument, AeccPipeDocument)
Catch
MsgBox("Civil 3D No doc!")
Return False
End Try
Return True
End Function
Public Function ReleaseCivilObjects() As Boolean
Try
''release roadway objects
'FinalReleaseComObject(oAeccRoadwayDoc)
'FinalReleaseComObject(oAeccRoadwayDb)
'FinalReleaseComObject(oAeccRoadwayApp)
''release Aecc objects
'FinalReleaseComObject(oAeccDoc)
'FinalReleaseComObject(oAeccDb)
'FinalReleaseComObject(oAeccApp)
''release Autocad objects
'FinalReleaseComObject(oAcadDoc)
'FinalReleaseComObject(oAcadApp)
'ReleaseCivilObjects = True
oAeccRoadwayDoc = Nothing
oAeccRoadwayDb = Nothing
oAeccRoadwayApp = Nothing
oAeccDoc = Nothing
oAeccDb = Nothing
oAeccApp = Nothing
oAcadDoc = Nothing
oAcadApp = Nothing
Catch ex As Exception
Exit Function
End Try
End Function
Public Sub LoadToolbars()
Dim cuiname As String = "C3D_TOOLS"
Dim cuifile As String = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles) & "\H5M\Civil 3D Tools\C3D Tools.cui"
Dim mg As AcadMenuGroup
Try
'Attempt to access our menugroup
mg = Application.MenuGroups.Item(cuiname)
Catch ex As System.Exception
'Failure simply means we need to load the CUI first
Application.MenuGroups.Load(cuifile)
mg = Application.MenuGroups.Item(cuiname)
End Try
'Cycle through the toobars, setting them to visible
Dim i As Integer
For i = 0 To mg.Toolbars.Count - 1
mg.Toolbars.Item(i).Visible = True
Next
End Sub
End Module
Stantec
Dell Precision 5530, Prism M320PU, C3D 14/17/19