Перейти к содержимому

Как отзеркалить текст в автокаде

  • автор:

Команда AutoCAD «Зеркало»

Команда «Зеркало» в AutoCAD осуществляет зеркальное отображение объектов относительно оси симметрии. На практике это удобный и часто используемый инструмент.

Рис. 1 – Как отзеркалить чертеж в Автокаде

Полное обучение: «AutoCAD на 100%»

Рассмотрим принцип работы команды и узнаем, как отзеркалить в Автокаде элементы чертежа:

1. Во вкладке «Редактирование» выберите инструмент «Зеркальное отображение» или в командной строке пропишите «ЗЕРКАЛО».

2. Выберите объекты, которые нужно отзеркалить. Нажмите Enter для завершения выбора объектов.

3. Укажите ось симметрии. Для этого графически выберите две точки в пространстве чертежа.

Рис. 2 – Команда «Зеркало» в AutoCAD

4. Определитесь, нужны ли вам исходные объекты или их можно удалить. [Да/Нет] (Да): – удалить / (Нет) оставить исходные объекты.

Рис. 3 – Зеркальное отображение в Автокад можно выполнить с удалением исходных объектов

Зеркальное отображение в Автокаде выполнить достаточно просто. Но несколько иначе обстоят дела, если нужно отзеркалить объекты, объединенные в блок. Тут могут возникнуть проблемы, решение которых подробно рассмотрено в видеоуроке «Работа с блоками в AutoCAD. Параметры: Отражение, Выравнивание».

Зеркально отражается текст при команде «зеркальное отражение», как исправить, autocad2008?

__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:

Регистрация: 24.08.2009
Сообщений: 9
Спасибо, всеравно не понятно.Куда вводить «1» или «0».
Регистрация: 29.05.2004
Сообщений: 1,185

вначале пишешь mirrtext в коммандной строчке
внизу автокада .(Если не видишь ее- нажми F2),
затем enter
затем 1 или 0
затем enter

Offtop: P/S/ Офигеть вопрос №3 конечно впечатляет

__________________
Kiev, Ukraine
Регистрация: 24.08.2009
Сообщений: 9
sasha_lif , спасибо!

Форум DWG.RU > Программное обеспечение > AutoCAD > Зеркально отражается текст при команде «зеркальное отражение», как исправить, autocad2008?
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сейсмозащита и сейсмоизоляция существующих, построенных зд. IANationalInformAgentstvo Прочее. Архитектура и строительство 216 20.01.2015 16:51
Мониторы LCD CRT Разное 94 17.06.2008 10:51
БРЕД СИВОЙ КОБЫЛЫ Kryaker Разное 1876 29.12.2006 23:41
Проблема. При печати печатается не всё! Как исправить? любитель ПЫВА AutoCAD 9 27.04.2006 16:12
Как сделать, чтоб при команде HIDE не отображалась wireframe Brewster AutoCAD 14 18.06.2004 09:35

Зеркальное отражение объектов

Зеркальное отображение позволяет создавать зеркальные копии объектов относительно заданной оси.

Зеркальное отображение объектов производится относительно оси отражения. Ось отражения задается двумя точками. Можно выбрать удаление или сохранение исходных объектов.

Согласно используемым по умолчанию настройкам, при зеркальном отражении тексты, штриховки, атрибуты и определения атрибутов не обращаются справа налево и не переворачиваются. Выравнивание и отступ текста остаются такими же, как до операции зеркального отражения. Если обращение текста справа налево все-таки необходимо, задайте значение 1 для системной переменной MIRRTEXT.

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

Системная переменная MIRRHATCH влияет на объекты-штриховки, созданные командами ГРАДИЕНТ или ШТРИХ. Для управления зеркальным отражением или сохранением направления в образце штриховки служит системная переменная MIRRHATCH.

Зеркальное отражение в трехмерном пространстве (недоступно в AutoCAD LT)

С помощью команды 3DЗЕРКАЛО можно зеркально отразить объекты относительно указанной плоскости отражения. Плоскость отражения может представлять собой:

  • Плоскость построения 2D объекта
  • Плоскость, параллельная одной из плоскостей координат (XY, YZ или XZ) текущей ПСК и проходящая через заданную точку
  • Плоскость определяется тремя указанными точками (2, 3 и 4)

Задачи, связанные с данной
  • Зеркальное отражение 2D-объектов
  • Зеркальное отражение 3D-объектов
  • Зеркальное отображение объектов с помощью ручек

Проект СПДС

Во-первых, мы не будем создавать вид сзади. Мы заставим объект отзеркалиться обратно!

Что нам для этого надо:

  1. Заставить объект понимать, что он отзеркален.
  2. Заставить объект, если он отзеркален, зеркалить себя обратно.
  3. Заставить объект переместить себя на нужное место.
Решаем первую задачу

Вводим две переменные в объект:

rAngleX (назовём её «Угол X») и rAngleY (назовём её «Угол Y»)

Для переменной «Угол X» вычисляем угол между глобальной осью oY и вектором нашего объекта vecDirection

rAngleX = angleTwoPi(oY,vecDirection);

Для «Угол Y» вычисляем угол между осью oY и вектором нашего объекта vecPlane

rAngleY = angleTwoPi(oY,vecPlane);

Создаём функцию MirrorObject вначале нашего кода и прописываем там наши формулы

function MirrorObject

Прописываем нашу функцию в функциях OnInitialization , чтобы инициализировать при вставке объекта наши переменные, и в OnMakeParameters , что при обновление объекта с помощью команды SPREGENSTD наши параметры обновились (на видео я запускаю эту команду через кнопку)

Видео определения угла

Из видео видно, что если мы зеркалим объект по оси Y то

С первой задачей мы справились, наш объект понимает, что он отзеркален. Переходим ко второму пункту.
Тут всё просто, на самом деле =)

Прописываем iff’ы, которые при определённых значения rAngleX и rAngleY будут разворачивать наш объект.

И загоняем их в нашу функцию MirrorObject .

Рассмотрим момент, когда мы зеркалим по оси Y.

Что происходит в этот момент с объектом?

У него меняется направления вектора vecDirection . Значит, чтобы отзеркалить объект обратно, нам надо для начала поменять направления вектора vecDirection !

if(rAngleX==90 && rAngleY==0)

А при зеркале по оси X меняется направление vecPlane , как следствие:

if(rAngleX==270 && rAngleY==180)

Загоняем это в нашу функцию

function MirrorObject < rAngleX = angleTwoPi(oY,vecDirection); rAngleY = angleTwoPi(oY,vecPlane); if(rAngleX==90 && rAngleY==0) < vecDirection = -vecDirection; >if(rAngleX==270 && rAngleY==180) < vecPlane= -vecPlane; >>

Сохраняем объект и обновляем его на чертеже

О чудо, всё заработало!)

Но ещё рано радоваться, проверяем разные случаи и получаем:

Видео с проверкой

Логика та же, что и раньше, дописываем iff’ы исходя из угла)

function MirrorObject < rAngleY = angleTwoPi(oY,vecPlane); rAngleX = angleTwoPi(oY,vecDirection); if(rAngleX==90 && rAngleY==0) < vecDirection=-vecDirection; >if(rAngleX==270 && rAngleY==180) < vecPlane=-vecPlane; >if(rAngleX==0 && rAngleY==270) < vecDirection=-vecDirection; >if(rAngleX==180 && rAngleY==90) < vecPlane=-vecPlane; >>

Запись специально не упрощал, но вы можете, если хотите, объединить через «или» (||) часть кода)

Текст не зеркалится, но крутится.

Чтобы решить эту проблему, надо ввести переменную, отвечающую за поворот текста.

В ActHeader в Public дописываем переменную

sTextAngle, "hidden"

Я её скрыл, потому что вручную менять не планирую, если хотите, можете оставить открытой.

А коде исполнения UText дополняем переменной нашего угла (и не забывем перевести градусы в радианы):

UText(mp, DegToRad(sTextAngle), 2.5*rSymScl/rScl, 0, 0.0000, T, 1,1);

Далее мы определяем в каких значения Угла X и Угла Y у нас текст повёрнут и выставляем для этого случая нужное нам значение sTextAngle , тем самым формирую итоговый вид нашей функции:

function MirrorObject < rAngleY = angleTwoPi(oY,vecPlane); rAngleX = angleTwoPi(oY,vecDirection); if(rAngleX==90 && rAngleY==0) < vecDirection=-vecDirection; >if(rAngleX==270 && rAngleY==180) < vecPlane=-vecPlane; >if(rAngleX==0 && rAngleY==270) < vecDirection=-vecDirection; >if(rAngleX==180 && rAngleY==90) < vecPlane=-vecPlane; >if(rAngleY==180 || rAngleY==270) < sTextAngle=180; >else < sTextAngle=0; >>

Сохраняем и обновляем наши объекты:

Сохраняем и обновляем объекты

Собственно на этом и всё)

Третий пункт нашей задачи нам не понадобился, так как точка вставки объекта находится по его центру.

Если же точка вставки объекта находилась у края объекта, то нам пришлось бы кроме отзеркаливания объекта обратно в коде, прописывать дополнительно смещения объекта.

Проведу часть такого кода из своего другого объекта, чтобы было понятна логика действия:

anY = angleTwoPi(oY,vecPlane); anX = angleTwoPi(oY,vecDirection); pnt1x = pntOrigin:x; pnt1y = pntOrigin:y; if (anX==180 && anY==90) < pntOrigin:x = pnt1x - L; vecPlane=-vecPlane; >if (anX==90 && anY==0)

Примеры моих объектов, с применение данной логики для отзеркаливания:

Плита перекрытия (ПБ)

Монолитный участок (8 точек)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *