Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: Алексей (IdeaSoft) от 10-02-2017, 12:22:07

Название: Получить зеркало Entity
Отправлено: Алексей (IdeaSoft) от 10-02-2017, 12:22:07
Подскажите, как AutoCAd API получить зеркало примитива Entity
Я так понимаю, что нужно применить метод Entity.TransformBy(...)


 
Название: Re: Получить зеркало Entity
Отправлено: Дмитрий Загорулькин от 10-02-2017, 12:26:07
http://through-the-interface.typepad.com/through_the_interface/2008/10/mirroring-autoc.html
Название: Re: Получить зеркало Entity
Отправлено: Алексей (IdeaSoft) от 10-02-2017, 12:45:21
Дмитрий, спасибо за ссылку.
"Зеркалит", но только для "мультивыноски"
текст переворачивается справа налево
 
Вот так получается
А нужно чтобы текст слева начинался

(https://s28.postimg.org/v5kns6np5/Mirror_ML.png) (https://postimg.org/image/v5kns6np5/)
Название: Re: Получить зеркало Entity
Отправлено: Дмитрий Загорулькин от 10-02-2017, 12:47:25
А если командой "Mirror" зеркалить, текст как надо получается?
Название: Re: Получить зеркало Entity
Отправлено: Алексей (IdeaSoft) от 10-02-2017, 12:53:44
командой "Mirror"
Но командой не вариант, т.к. я генерирую набор
примитивов для дальнейшего импорта объекта DataBase в dwg-файл.

Название: Re: Получить зеркало Entity
Отправлено: Александр Пекшев aka Modis от 10-02-2017, 13:05:38
Но командой не вариант, т.к. я генерирую набор
Дмитрий это спросил т.к. в автокаде есть переменная MIRRTEXT (https://knowledge.autodesk.com/support/autocad/learn-explore/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-Core/files/GUID-D55D2D18-B26E-4525-B5E4-03A2A07FB5F6-htm.html), которая отвечает за "переворот" текста при отзеркаливании
Название: Re: Получить зеркало Entity
Отправлено: Дмитрий Загорулькин от 10-02-2017, 13:56:37
Проверил. MIRRTEXT не влияет на отзеркаливание через .NET API. Придется, наверное, все тексты после такого отзеркаливания дополнительно обрабатывать. Это касается не только мультивыносок, но и текста, мультитекста, атрибутов, размеров и т.п.
P.S. В статье по ссылке в комментариях есть обсуждение этого вопроса.
Название: Re: Получить зеркало Entity
Отправлено: Дмитрий Загорулькин от 10-02-2017, 14:25:17
А вот COM API учитывает MIRRTEXT. И работает аналогично команде:
Извините, вам запрещён просмотр содержимого спойлеров.
Название: Re: Получить зеркало Entity
Отправлено: Алексей (IdeaSoft) от 10-02-2017, 14:31:06
Придется, наверное, все тексты после такого отзеркаливания дополнительно обрабатыват
А какие методы применить к примеру к объекту класса Mtext для того чтобы он нормально "отзеркалился"?
На практике я с эти не сталкивался.

Название: Re: Получить зеркало Entity
Отправлено: Александр Ривилис от 10-02-2017, 14:41:23
А какие методы применить к примеру к объекту класса Mtext для того чтобы он нормально "отзеркалился"?
А его самого снова придётся зеркалить, только относительно его (вертикальной) оси.
Название: Re: Получить зеркало Entity
Отправлено: Алексей (IdeaSoft) от 10-02-2017, 14:42:54
А его самого снова придётся зеркалить
А точно буду пробовать "зеркалить" сам текст в "мультивыноске".
Название: Re: Получить зеркало Entity
Отправлено: Александр Ривилис от 10-02-2017, 14:43:21
Дмитрий Загорулькин
Отличный метод! Единственное ограничение - будет работать (как и все методы COM) только с объектам, которые уже внесены в базу.
Название: Re: Получить зеркало Entity
Отправлено: Алексей (IdeaSoft) от 10-02-2017, 14:45:57
Дима, скажи, а как тебя получилось 
код алгоритма в элемент спрятать
со знаком "+"?

Или это как-то автоматически
происходит если текст кода занимает много строк.
Название: Re: Получить зеркало Entity
Отправлено: Дмитрий Загорулькин от 10-02-2017, 14:55:39
Отличный метод!
Спасибо :)
Дима, скажи, а как тебя получилось 
код алгоритма в элемент спрятать
со знаком "+"?
Название: Re: Получить зеркало Entity
Отправлено: Александр Ривилис от 10-02-2017, 16:25:24
Алексей (IdeaSoft), Дмитрий Загорулькин
Но спойлерами не увлекайтесь - только для длинных кодов (> 200...300 строк). Тексты под спойлером невидны незарегистрированным пользователям форума (гостям).