ADN Club > VBA

Угол между системами координат

(1/1)

Zailar:
Добрый день, есть ли способ через VBA получить угол между МСК и системой координат дисплея?

Александр Ривилис:

--- Цитата: Zailar от 28-05-2021, 18:20:33 ---Добрый день, есть ли способ через VBA получить угол между МСК и системой координат дисплея?

--- Конец цитаты ---
Что такое угол между системами координат?

Zailar:


В обоих видовых экранах оси  ХУ ориентированы одинаково, но при этом в одном видовом экране ось У ориентирована с востока на запад, а в другом с юга на север. В одном случае система координат дисплея не повернута относительно МСК, а во втором повернута, вот этот угол (поворота системы координат дисплея относительно МСК) можно определить через VBA?

Александр Ривилис:
Понятнее мне не стало, но на всякий случай вот тебе код, с которым можно поиграться и который возвращает единичный вектор по оси X в МСК преобразованный в систему координат дисплея:


--- Код - Visual Basic [Выбрать] ---Sub Angle()    Dim vX(0 To 2) As Double  vX(0) = 1: vX(1) = 0: vX(2) = 0  Dim v1 As Variant  v1 = ThisDrawing.Utility.TranslateCoordinates(vX, acWorld, acDisplayDCS, True)  MsgBox ("vX(X) :" & v1(0) & vbCrLf & "vX(Y) :" & v1(1) & vbCrLf & "vX(Z) :" & v1(2) & vbCrLf) End SubНадеюсь это тебе поможет разобраться с тем, что тебя интересует.

Александр Ривилис:
Пожалуй это то, что ты ищешь:


--- Код - Visual Basic [Выбрать] ---Sub Angle()    Dim vX(0 To 2) As Double  vX(0) = 1#: vX(1) = 0#: vX(2) = 0#  Dim v1 As Variant  v1 = ThisDrawing.Utility.TranslateCoordinates(vX, acWorld, acDisplayDCS, True)  ' MsgBox ("vX(0): " & v1(0) & vbCrLf & "vX(1): " & v1(1) & vbCrLf & "vX(2): " & v1(2) & vbCrLf)      Dim orig(0 To 2) As Double  orig(0) = 0#: orig(1) = 0#: orig(2) = 0#  Dim ang As Double  ang = ThisDrawing.Utility.AngleFromXAxis(orig, v1)  MsgBox ("Угол поворота оси X : " & ang / 3.14159265358979 * 180#)  End Sub

Навигация

[0] Главная страница сообщений

Перейти к полной версии