Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.DatabaseServices
Imports Autodesk.AutoCAD.PlottingServices ' Чтобы можно было определить PlotConfigManager и всю информацию о плоттерах
Public Class GALLURGY_ACCORECONSOLE_NETLOAD
<CommandMethod("GALGETCANONICALMEDIANAMESOFLAYOUTS")>
Public Sub GALGETCANONICALMEDIANAMESOFLAYOUTS()
Dim AcEditor As Autodesk.AutoCAD.EditorInput.Editor = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor
Dim AcDB As Database = AcEditor.Document.Database
Dim strPlotSetName As String = "DWG To PDF.pc3"
Dim PlotSettingExists As Boolean = False
Using tr As Transaction = AcDB.TransactionManager.StartTransaction()
Try
Dim psDicts As DBDictionary = CType(tr.GetObject(AcDB.PlotSettingsDictionaryId, OpenMode.ForRead), DBDictionary)
MsgBox(psDicts.Count) ' Здесь он и выдаёт 0
For Each psDict As System.Collections.DictionaryEntry In psDicts
Dim obj As Object = psDict.Value ' не понятно для чего эта штука нужна!!! Но оставил для чистоты эксперимента!!!
Dim key As String = CType(psDict.Key, String)
MsgBox(key)
If key = strPlotSetName Then
PlotSettingExists = True
End If
Next
If PlotSettingExists Then
Dim plotSettingDic As DBDictionary = CType(tr.GetObject(AcDB.PlotSettingsDictionaryId, OpenMode.ForRead), DBDictionary)
Dim setting As PlotSettings = CType(tr.GetObject(plotSettingDic.GetAt(strPlotSetName), OpenMode.ForRead), PlotSettings)
Dim psv As PlotSettingsValidator = Autodesk.AutoCAD.DatabaseServices.PlotSettingsValidator.Current
psv.RefreshLists(setting)
Dim strMediaNameList As Specialized.StringCollection = psv.GetCanonicalMediaNameList(setting)
For Each str As String In strMediaNameList
MsgBox(str)
Next
End If
tr.Commit()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Using
End Sub
End Class