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
Сайт управляется системой uCoz