ТЕКСТВЫРОВНЯТЬ (команда)
Выравнивание нескольких текстовых объектов по горизонтали, по вертикали или под углом.

найти
Выравнивание нескольких текстовых объектов относительно базового объекта с предварительным просмотром результатов.
Отображаются следующие запросы.
Выберите текстовые объекты для выравнивания [вЫравнивание/Параметры]
Выберите несколько объектов, которые требуется выровнять, и нажмите клавишу ENTER.
Выравнивание Задание ориентации выравнивания. Это значение хранится в системной переменной TEXTALIGNMODE.
Слева (параметр по умолчанию)
ВЛ (Сверху слева)
ВЦ (Сверху по центру)
ВП (Сверху справа)
ПС (посередине слева)
СЦ (Посередине по центру)
СП (Посередине справа)
НЦ (Снизу по центру)
НП (Снизу справа)
Выберите текстовый объект, относительного которого осуществляется выравнивание
Выберите текстовый объект, относительно которого следует выровнять остальные.
Выберите вторую точку или [Параметры]
После выбора базового объекта для выравнивания укажите вторую точку для задания положения целевых объектов.
Параметры
Распределить Объекты располагаются между двумя выбранными точками с одинаковыми интервалами. Задать интервал Задание интервала между границами текстовых объектов. Текущая вертикаль Сохранение текущего позиционирования текстового объекта по вертикали для выравнивания. Текущая горизонталь Сохранение текущего позиционирования текстового объекта по горизонтали для выравнивания.
Понятия, связанные с данным
Ссылки, связанные с данной
выравнивание текста по линии (прилепить к линии)
поиск пользовал, конкретно не нашел
есть ли возможность выровнять автоматически текст по линии, как показано на рисунке?
Просмотров: 22344
Регистрация: 02.10.2008
Сообщений: 3,677
VBA макрос, предлагает выбрать набор текстовых объектов, затем Line. Текст выравнивается по координате X начальной точки отрезка
Option Explicit Sub main() On Error Resume Next Dim acSelSet As AcadSelectionSet Dim obj_line As AcadEntity, varPoint, obj_txt Dim minExt, maxExt, Lpnt Set acSelSet = SelectOnlyOnScreen ThisDrawing.Utility.GetEntity obj_line, varPoint, "Выберите линию. " If TypeName(obj_line) <> "IAcadLine" Then End Lpnt = obj_line.StartPoint For Each obj_txt In acSelSet obj_txt.GetBoundingBox minExt, maxExt Lpnt(1) = minExt(1) Lpnt(2) = minExt(2) obj_txt.Move minExt, Lpnt Next End Sub Private Function SelectOnlyOnScreen() As AcadSelectionSet Dim objSelSet As AcadSelectionSet Dim objSelCol As AcadSelectionSets Dim intType(0) As Integer Dim varData(0) As Variant Set objSelCol = ThisDrawing.SelectionSets For Each objSelSet In objSelCol If objSelSet.Name = "Txt_Tmp" Then objSelSet.Delete Exit For End If Next Set objSelSet = ThisDrawing.SelectionSets.Add("Txt_Tmp") intType(0) = 0 varData(0) = "TEXT" objSelSet.SelectOnScreen intType, varData Set SelectOnlyOnScreen = objSelSet End Function
__________________
. Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка — ложка понарошку,
А по правде, — это лом!
Последний раз редактировалось AlexV, 05.02.2009 в 14:42 .
Регистрация: 25.01.2007
Сообщений: 740
есть ли лисп для выполнения данной команды?
__________________
Time and time again
I witness a birth of a new-born star.
I climb the highest mountain
To find the essence of a new era.
Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,969
Abzorbo, используй текстовый редактор из VetCAD.
http://vetcad.ru/tv.rar
Регистрация: 11.05.2005
Сообщений: 6,981
может это подойдет Align Text
__________________
Как использовать код на Лиспе читаем здесь
Регистрация: 25.12.2005
Сообщений: 13,627
;****************** alv_text .lsp ********************************************* ; align_ver_text Выравнивание однострочного текста по вертикали. ; Шаблоном для выравнивания служит точка вставки ; указанной строки, но можно указать и любой ; другой объект, например, вертикальный отрезок. ; Автор Владимир Громов (defun C:ALV_TEXT ( / echo osm tn tk ss1 ss ssn1 pp pp1 n e txtt txt twa two twm) (setq echo (getvar "cmdecho")) (setvar "cmdecho" 0) (setq osm (getvar "osmode")) (setvar "osmode" 0) (command "_.undo" "_be") (princ "\n Выберите текстовые строки: ") (setq ss1 (ssget)) (if ss1 (progn (setq ss (ssadd)) (setq ssn1 (sslength ss1) n 0) (repeat ssn1 (setq pp (ssname ss1 n)) (setq pp1 (entget pp)) (cond ((and(= (cdr (assoc '0 pp1)) "TEXT") (= (cdr (assoc '50 pp1)) 0)) (ssadd pp ss) ;Набор ТЕКСТОВ )); cond (setq n (+ n 1)) ); repeat (setq ssn (sslength ss) n 0) (setq txtt (entsel "\n Выберите строку-шаблон или объект для выравнивания: ")) (if txtt (progn (setq txt (car txtt)) (setq twa (cdr (assoc 10 (entget txt)))) (setq n 0) (repeat ssn (setq e (ssname ss n)) (setq two (cdr (assoc 10 (entget e)))) (setq twm (list (car twa) (cadr two))) (command "_MOVE" e "" "_none" two "_none" twm) (setq n (+ n 1)) ); repeat ) ; progn (princ "\n Нет шаблона для выравнивания.") ) ; if ); progn (princ "\n Нет выбранных объектов. ") ); if (command "_.undo" "_e") (setvar "cmdecho" echo) (setvar "osmode" osm) (princ) )
Регистрация: 25.01.2007
Сообщений: 740
Nike, что-то не грузится в мой акад твоя софтина. У меня Acad 2013 x64.
Версия от VVA прикольная, но текст по вертикали слетает, удобно, но не во всех случаях.
Версия от Profan не сбивает текст по вертикали!
Спасибо, товарищи!
__________________
Time and time again
I witness a birth of a new-born star.
I climb the highest mountain
To find the essence of a new era.
Регистрация: 13.02.2014
Сообщений: 22
А Мtext не сдигает.
Регистрация: 03.11.2008
Сообщений: 5,708
Выбрать тексты (text, mtext) и задать им единую координату по x.
Регистрация: 16.07.2012
Сообщений: 318
Сообщение от engngr
Выбрать тексты (text, mtext) и задать им единую координату по x.
А если линия будет наклонной?
__________________
Автоматизация должна быть автоматической.
Регистрация: 03.11.2008
Сообщений: 5,708
Сообщение от ProPeller
А если линия будет наклонной?
Установить пск.
upd: с наклонной будет, конечно, не айс, но, имхо, задать координату — самый простой стандартный способ для задачи из #1.
Регистрация: 27.04.2015
Сообщений: 7
Не возражаете, если вклинюсь в вашу тему?
Кажется о этом идет разговор.
Давненько приятель написал мне (еще под AutoCAD 14) лиспик для выравнивания текста по заданной линии. Этот лисп работает и на более современных версиях.
Здесь две команды:
1. Выровнять текст по линии;
2. Повернуть текст на 180 градусов.
(defun c:У (/) (setq lin (entget (car (entsel "Укажите линию:")))) (setq a1 (angle (cdr (assoc 10 lin)) (cdr (assoc 11 lin)))) (setq tex (entget (car (entsel "Укажите текст:")))) (setq tex (subst (cons 50 a1) (assoc 50 tex) tex)) (entmod tex) ) (defun c:П (/) (setq tex (entget (car (entsel "Укажите текст:")))) (setq a1 (+ (cdr (assoc 50 tex)) PI)) (setq tex (subst (cons 50 a1) (assoc 50 tex) tex)) (entmod tex) )В строке "Макросы" для первой команды вставить : ^C^C_У
Для второй команды: ^C^C_П
Регистрация: 16.01.2018
Сообщений: 17
ребят а как этот макрос установить, и как пользоватся я во всяких дополнения ваще не шарю
| Alternativa2212 |
| Посмотреть профиль |
| Найти ещё сообщения от Alternativa2212 |
Регистрация: 03.08.2007
Сообщений: 1,316
Alternativa2212,
FAQ: Часто задаваемые вопросы > 1. AutoCAD
| AlexCondor |
| Посмотреть профиль |
| Найти ещё сообщения от AlexCondor |
Регистрация: 12.03.2013
Сообщений: 650
Сообщение от Profan
;****************** alv_text .lsp *********************************************
; align_ver_text Выравнивание однострочного текста по вертикали.
; Шаблоном для выравнивания служит точка вставки
; указанной строки, но можно указать и любой
; другой объект, например, вертикальный отрезок.
; Автор Владимир Громов
(defun C:ALV_TEXT ( / echo osm tn tk ss1 ss ssn1 pp pp1 n e txtt txt twa two twm)
(setq echo (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setq osm (getvar "osmode"))
(setvar "osmode" 0)
(command "_.undo" "_be")
(princ "\n Выберите текстовые строки: ")
(setq ss1 (ssget))
(if ss1
(progn
(setq ss (ssadd))
(setq ssn1 (sslength ss1) n 0)
(repeat ssn1
(setq pp (ssname ss1 n))
(setq pp1 (entget pp))
(cond
((and(= (cdr (assoc '0 pp1)) "TEXT") (= (cdr (assoc '50 pp1)) 0))
(ssadd pp ss) ;Набор ТЕКСТОВ
)); cond
(setq n (+ n 1))
); repeat
(setq ssn (sslength ss) n 0)
(setq txtt (entsel "\n Выберите строку-шаблон или объект для выравнивания: "))
(if txtt
(progn
(setq txt (car txtt))
(setq twa (cdr (assoc 10 (entget txt))))
(setq n 0)
(repeat ssn
(setq e (ssname ss n))
(setq two (cdr (assoc 10 (entget e))))
(setq twm (list (car twa) (cadr two)))
(command "_MOVE" e "" "_none" two "_none" twm)
(setq n (+ n 1))
); repeat
) ; progn
(princ "\n Нет шаблона для выравнивания.")
) ; if
); progn
(princ "\n Нет выбранных объектов. ")
); if
(command "_.undo" "_e")
(setvar "cmdecho" echo)
(setvar "osmode" osm)
(princ)
)
Мне понравилась. Я так понял тексты только по левому краю выравнивает. Если б еще и по точке вставке текста можно было выравнивать - ваще бы зачетно было (наподобии макрос-командl на базе стандартной команды в акад 2015 и выше ^C^C_textalign Ы СЦ " - в данном случае по центру), но и так не плохо. А может просто в ней не до конца разобрался. Понравилась тем что в отличии ^C^C_textalign Ы СЦ меньше манипуляций надо сделать. Для Акад ниже 2015 Dаш лисп есно не заменим. Спасибо!
Для акад 2015 и выше вот комманды для кнопок:
^C^C_textalign Ы СЦ - выравнивание посередине поцентру;
^C^C_textalign Ы СЛ - выравнивание посередине слева;
^C^C_textalign Ы СП - выравнивание посередине справа;
и т.п.
Но чет работают с глюками - хочешь по центру например сделать выравнивание, а выравнивается по правому или левому краю.
Поэтому лучше использовать след команды:
ТВСЦ ^C^C_justifytext СЦ ^C^C_textalign Ы СЦ
ТВСЛ ^C^C_justifytext СЛ ^C^C_textalign Ы СЛ
ТВСП ^C^C_justifytext СП ^C^C_textalign Ы СП
и т.п.
Но есть недостаток - больше манипуляций - перед использованием команды нужно выбрать выравниваемые объекты
а потом еще раз выбрать после запроса в командной строке все выбранные объекты еще раз
а потом указать объект относительно которого выравниваем.
Но главный плюс всегда выравнивает так как надо
И еще иконки к ним если кому понадобится вдруг (см. вложение)
Вложения
| Icons.rar (10.00 Мб, 23 просмотров) |
Последний раз редактировалось allar8, 10.01.2022 в 14:43 .
САПР для инженера
Часто спрашивают: "Возможно ли в AutoCAD изменить выравнивание многострочного текста, которое стоит по умолчанию (Top Left) на другое?" За последнюю неделю такой вопрос задали 6 разных людей.
Предлагаю решить вопрос просто - на ленте Главная есть кнопка Многострочный текст. Изменим ее так, чтобы при запуске Мтекста этой кнопкой выравнивание было отличное от стандартного. При этом запуск команды любым другим способом будет с оригинальными настройками.
Идем на ленту Управление - Пользовательский интерфейс. В левой части окна ищем Лента - Главная 2D-Аннотации. В правой части щелкаем на кнопке многострочного текста.
В левой части окна выбираем Многострочный текст - теперь в области Свойства доступно поле для определения макроса этой кнопки.
Вместо существующей строки записываем ^C^C_mtext;\_j;_mc; (без пробелов, как есть), где _mc - выравнивание Середина по центру (Middle Center).
Если нужен другой тип выравнивания, то заменяем mc на нужное.
Дружно говорим спасибо Алексею Кулику aka kpblc за помощь и поддержку.
Видео с демонстрацией процесса
С другими приемами работы в AutoCAD можно ознакомиться на странице блога.
Выравнивание однострочного текста по направлению полилинии
Подскажите, можно ли как-то быстро выровнять однострочный текст по направлению полинии. В 2002 есть команда aas. Есть ли подобная в 2006 версии?
#2 Ответ от Vova 20 марта 2008г. 15:59:15
Re: Выравнивание однострочного текста по направлению полилинии
Что такое AAS? нет такой команды в автокаде. Есть Torient из Express
#3 Ответ от Alisa 20 марта 2008г. 17:54:05
Re: Выравнивание однострочного текста по направлению полилинии
> Vova
Есть попробуйте! Я сама не знаю откуда она. Но работает!
#4 Ответ от Vova 20 марта 2008г. 19:30:01
Re: Выравнивание однострочного текста по направлению полилинии
Предположим, что в автокаде была такая команда, ее полное имя вы не знаете, а AAS это алиас. Тогда при вводе AAS. Тогда при вводе в ком строке AAS мы бы получили ответ, похожий на этот:
Command: MM
MATCHPROP
Select source object: Nothing selected.
Select source object
На верхней строке появилось бы полное имя команды. Попробуйте
#5 Ответ от Alisa 21 марта 2008г. 11:20:19
Re: Выравнивание однострочного текста по направлению полилинии
В 2006 она работает в 2007 не работает
Command: AAS
Select objects: 1 found
Select objects: Specify opposite corner: 1 found, 1 total
Select objects: 1 found, 2 total
Select objects: 1 found, 3 total
Select objects:
DS> Select Alignment Segment:
DS> Processing Object 3 of 3, Done.
#6 Ответ от Yuriy 21 марта 2008г. 13:14:30
Re: Выравнивание однострочного текста по направлению полилинии
> Alisa
один из способов выравнивания -
при помощи ниже размещенного макроса.
предварительно
- установить угол поворота перекрестия по команде snapang паралельно требуемому объекту
- включить ortho
- вытолнить команду TA (text angle)
;
(defun c:ta () (princ "\nВыберите однострочный тест ") (setq _tmp (car (entsel))) (command "._change" _tmp "" "" "" "" "" pause "") ) ;
Если высота текста фиксированная макрос придется подкорректировать.
наверное можно ничего предварительно не делать а использовать опции объектной привязки.
В общем экспериментируйте.