Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Runtime
Imports System.Drawing
Imports System.Drawing.Text
Imports System.IO
Imports System.Reflection
Public Class Initialization
Implements IExtensionApplication
Friend Shared kdLoad As Boolean = False
Friend Shared reLoad As Boolean = False
Friend Shared cuixLoad As Boolean = False
Friend Shared bExist As Boolean = False
Friend Shared fExist As Boolean = False
Friend Shared rsLoad As Boolean = False
Private cVersion As String
Public Sub Initialize() Implements IExtensionApplication.Initialize
cVersion = Core.Application.Version.Major & "." & Core.Application.Version.Minor
Dim ed As Editor = Core.Application.DocumentManager.MdiActiveDocument.Editor
ed.WriteMessage(vbCrLf)
ed.WriteMessage(vbCrLf & "SomeSmallTools {0}.", My.Application.Info.Version)
ed.WriteMessage(vbCrLf & "Версия среды: {0}.", cVersion)
'Проверяем наличие файлов расширений
Try
Assembly.LoadFrom(My.Application.Info.DirectoryPath & "\Extensions\KDTree.dll")
kdLoad = True
ed.WriteMessage(vbCrLf & "Модуль KDSharp: Загружен. ")
Catch ex As Exception
kdLoad = False
ed.WriteMessage(vbCrLf & "Модуль KDSharp: Не удалось загрузить. " & vbCrLf & ex.ToString)
End Try
Try
Assembly.LoadFrom(My.Application.Info.DirectoryPath & "\Extensions\RandomExtension.dll")
reLoad = True
ed.WriteMessage(vbCrLf & "Модуль RandomExtension: Загружен. ")
Catch ex As Exception
reLoad = False
ed.WriteMessage(vbCrLf & "Модуль RandomExtension: Не удалось загрузить. " & vbCrLf & ex.ToString)
End Try
'Проверяем наличие файлов шаблонов
If File.
Exists(My.
Application.
Info.
DirectoryPath & "\Templates\Blocks.dwg") Then bExist = True
ed.WriteMessage(vbCrLf & "Файл шаблонов Blocks.dwg: Найден. ")
Else
ed.WriteMessage(vbCrLf & "Файл шаблонов Blocks.dwg: Не найден. ")
End If
'Проверяем наличие библиотек ресурсов
Select Case cVersion
Case "19.0", "19.1" 'Shared 2013+
If File.
Exists(My.
Application.
Info.
DirectoryPath & "\Interface\Shared 2013+\SSToolsUI.dll") Then rsLoad = True
ed.WriteMessage(vbCrLf & "Компоненты интерфейса: Найдены. ")
Else
ed.WriteMessage(vbCrLf & "Компоненты интерфейса: Не найдены. ")
End If
Case "20.0", "20.1" 'Shared 2015+
If File.
Exists(My.
Application.
Info.
DirectoryPath & "\Interface\Shared 2015+\SSToolsUI.dll") And File.
Exists(My.
Application.
Info.
DirectoryPath & "\Interface\Shared 2015+\SSToolsUI_light.dll") Then rsLoad = True
ed.WriteMessage(vbCrLf & "Компоненты интерфейса: Найдены. ")
Else
ed.WriteMessage(vbCrLf & "Компоненты интерфейса: Не найдены. ")
End If
Case "21.0", "22.0", "23.0", "23.1" 'Shared 2017+
If File.
Exists(My.
Application.
Info.
DirectoryPath & "\Interface\Shared 2017+\SSToolsUI.dll") And File.
Exists(My.
Application.
Info.
DirectoryPath & "\Interface\Shared 2017+\SSToolsUI_light.dll") Then rsLoad = True
ed.WriteMessage(vbCrLf & "Компоненты интерфейса: Найдены. ")
Else
ed.WriteMessage(vbCrLf & "Компоненты интерфейса: Не найдены. ")
End If
End Select
'Проверяем наличие шрифтов в системе
Dim fs As New InstalledFontCollection
Dim fCount As Integer = 0
For Each ff As FontFamily In fs.Families
If ff.Name = My.Settings.SSToolsNormalFont Or ff.Name = My.Settings.SSToolsFramedFont Then
fCount += 1
End If
Next
If fCount = 2 Then
fExist = True
ed.WriteMessage(vbCrLf & "Шрифты: Установлены.")
Else
ed.WriteMessage(vbCrLf & "Шрифты: Не установлены.")
With My.Settings
.XYZDUsePluginFont = False
.XYZDVertDiffsFrameOn = False
.Save()
End With
End If
ed.WriteMessage(vbCrLf)
End Sub
Public Sub Terminate() Implements IExtensionApplication.Terminate
Console.WriteLine("Работа SomeSmallTools завершена. ")
End Sub
End Class