ADN Club > VBA

Перенос системы координат

(1/2) > >>

Marik:
        Подскажите, пожалуйста. Как перенести ПСК по X на заданное значение? Не понятно про векторы по примеру в manual. И почему отрезок в примере вычерчивается от старой (Мировой) системы координат?


--- Код - Visual Basic [Выбрать] ---Sub Example_UserCoordinateSystems()    ' Этот пример находит текущую коллекцию UserCoordinateSystems    ' и добавляет новый UCS к этой коллекции.        Dim UCSColl As AcadUCSs    Set UCSColl = ThisDrawing.UserCoordinateSystems        ' Создайте UCS по имени "TEST" в текущем рисунке    Dim NewUCS As AcadUCS    Dim origin(0 To 2) As Double    Dim xAxisPnt(0 To 2) As Double    Dim yAxisPnt(0 To 2) As Double        Dim startPoint(0 To 2) As Double    Dim endPoint(0 To 2) As Double        ' Определите UCS    origin(0) = 4#: origin(1) = 5#: origin(2) = 3#    xAxisPnt(0) = 5#: xAxisPnt(1) = 5#: xAxisPnt(2) = 3#    yAxisPnt(0) = 4#: yAxisPnt(1) = 6#: yAxisPnt(2) = 3#        ' Добавьте UCS к коллекции UserCoordinatesSystems    Set NewUCS = UCSColl.Add(origin, xAxisPnt, yAxisPnt, "TEST")        ThisDrawing.ActiveUCS = NewUCS        startPoint(0) = 0 ' Начальная точка X (относительно новой системы)    startPoint(1) = 0 ' Начальная точка Y (относительно новой системы)    startPoint(2) = 0 ' Начальная точка Z    endPoint(0) = 10 ' Конечная точка X (относительно новой системы)    endPoint(1) = 10 ' Конечная точка Y (относительно новой системы)    endPoint(2) = 0 ' Конечная точка Z        Set line = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)        End Sub

Алексей Кулик:
По-моему, именно отрезку глубоко параллельно (при программном создании) на системы координат.

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

--- Цитата: Marik от 03-12-2024, 03:39:36 ---. И почему отрезок в примере вычерчивается от старой (Мировой) системы координат?

--- Конец цитаты ---
Потому что этот метод (как написано в документации) работает именно в МСК. И ему глубоко наплевать на текущую систему координат.

Marik:
Ок, подскажите какие нужно использовать методы для вычерчивания отрезка и прочих примитивов в новой системе координат или нет такого функционала? Смысл такой. Есть код, который вычерчивает чертеж относительно 0,0,0 МСК. Чтобы вычертить его относительно какой-то другой точки не хочу изменять код, внося в код поправки на начальную координату, так как код сложный и долго отлаживать его придется. Есть мысль просто перенести СК в эту точку и запустить код. Или не в ту сторону думаю? Как вариант можно добавить в коллекцию все что начертит код и чехом перенести туда куда нужно, но боюсь, что не все так просто. Ну, или создать блок, добавить элементы коллекции в блок. Вставить блок в ту точку в которую нужно, взорвать блок, удалить блок. Все как-то сложно. Куда копать, подскажите, пожалуйста.

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

--- Цитата: Marik от 19-12-2024, 00:10:12 --- Или не в ту сторону думаю?
--- Конец цитаты ---
Не в ту. Если не менять весь код, то тогда следует использовать метод TransformBy для переноса:
https://help.autodesk.com/view/OARX/2025/ENU/?guid=GUID-2FAE4C13-06F2-47A2-B213-8A9A6958B799

Навигация

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

[#] Следующая страница

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