|
ActiveUCS Пример |
Sub Example_ActiveUCS()
' Этот пример возвращает текущие настройки UCS и затем устанавливает новий UCS.
' Наконец, он возвращает UCS к предыдущей установке.
Dim newUCS As AcadUCS
Dim currUCS As AcadUCS
Dim origin(0 To 2) As Double
Dim xAxis(0 To 2) As Double
Dim yAxis(0 To 2) As Double
' Получите текущий сохранённый UCS активного документа. Если текущий UCS не сохранен,
' то добавляется новый UCS к коллекции UserCoordinateSystems
If ThisDrawing.GetVariable("UCSNAME") = "" Then
' Так как текущий UCS не сохранен, получаем данные и сохраняем их
With ThisDrawing
Set currUCS = .UserCoordinateSystems.Add( _
.GetVariable("UCSORG"), _
.Utility.TranslateCoordinates(.GetVariable("UCSXDIR"), acUCS, acWorld, 0), _
.Utility.TranslateCoordinates(.GetVariable("UCSYDIR"), acUCS, acWorld, 0), _
"OriginalUCS")
End With
Else
Set currUCS = ThisDrawing.ActiveUCS 'текущий UCS сохранен
End If
MsgBox "Текущий UCS " & currUCS.name, vbInformation, "ActiveUCS Пример"
' Создайте UCS и сделайте его текущим
origin(0) = 0: origin(1) = 0: origin(2) = 0
xAxis(0) = 1: xAxis(1) = 1: xAxis(2) = 0
yAxis(0) = -1: yAxis(1) = 1: yAxis(2) = 0
Set newUCS = ThisDrawing.UserCoordinateSystems.Add(origin, xAxis, yAxis, "TestUCS")
ThisDrawing.ActiveUCS = newUCS
MsgBox "Текущий UCS " & newUCS.name, vbInformation, "ActiveUCS Пример"
' Сбросьте UCS к его предыдущей установке
ThisDrawing.ActiveUCS = currUCS
MsgBox "UCS сброшен к " & currUCS.name, vbInformation, "ActiveUCS Пример"
End Sub