| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Замена текстового стиля

LISP. Замена текстового стиля

Ответ
Поиск в этой теме
Непрочитано 18.09.2008, 17:53 15 | 1
LISP. Замена текстового стиля
VVA
 
Инженер LISP
 
Минск
Регистрация: 11.05.2005
Сообщений: 6,990

По мотивам Замена текстового стиля
Команды CTS и CTSU подверглись косметическим улучшением.
Добавлена команда TSUP - изменение начертания текстов, атрибутов на основе установок выбранного стиля (начертание, сжатие, угол наклона).
Использована функция ru-textstyle-update любезно предоставленная ShaggyDoc
Описание команд:
Как это работает - см пост #12
CTS - замена текстовых стилей у всех объектов на выбранный
CTSU - замена текстовых стилей у всех объектов на выбранный с очисткой форматирования многострочных текстов
TSUP - Для выбранного стиля изменяется начертания всех существующих ТЕКСТОВ, АТРИБУТОВ во ВСЕХ примитивах, включая блоки в соответствии с установками стиля (начертание, сжатие, угол наклона). Сначала с помощью команды _style задаем необходимые установки стиля (шрифт, наклон, сжатие/растяжение). Затем командой TSUP для всех текстов и атрибутов, вычерченных этим стилем, устанавливается наклон, сжатие/растяжение такой же как и в определении стиля.
UNF-MTEXT - Убрать форматирование мтекста
Допустим у Вас текст, вычерченный стилем Стиль1 с углом наклона 15 градусов. Вызываем команду _style и выставляем в стиле Стиль1 угол 0. В тексте угол остался прежним 15 градусов. Чтобы синхронизировать параметры текста с параметрами стиля (наклон, сжатие/растяжение) и вызываем команду TSUP.

Возможный вариант макроса для пунктов 3-5
Код:
[Выделить все]
(if (null C:CTS)(load "change text styles (cts)"));CTS;(cts:layer-status-save);(ru-textstyle-update "*");_.PURGE;
***Изменения
22.10.2008 Добавлена обработка форматирования МТЕКСТОВ для Автокада с 2008 версии (выравнивание влево, вправо, посередине, по ширине, распределенное)
02.12.2008 Изменена ф-ция cts:msg-yes в соответствии с постом #46 Диалог строится не VBA, а лиспом (dcl)
26.02.2009 Версия 1.3 Исключена обработка блоков внешних ссылок (Спасибо Sleekka). Добавлен выбор игнорируемых стилей
16.03.2009 В версии 1.3 CTSU исправлена ошибка с разным количеством аргументов
05.02.2010 Добавлена обработка дополнительного форматирования в ф-цию mip_MTEXT_Unformat (см. сообщение wetr)
09.03.2010 В версии 1.4 в TSUP исправлена ошибка обработки примитивов только на текущем листе
03.06.2010 Отдельная команда для удаления форматирования мтекста
23.12.2011 UNF-MTEXT (vla-SetCellState item row col acCellStateNone) Снятие блокировки ячейки
21.11.2013 Добавлена обработка MLEADER. Команда CTS
20.04.2016 Добавлена функция CTS:GET-TEXTSTRING (как замена vla-get-textstring. Т.к. неверно возвращает строку при наличии юникод символов)
http://forums.autodesk.com/t5/visual...s/td-p/4365165


Описание
Цитата:
DESCRIPTION

StripMtext v5.0b Copyright© Steve Doman and Joe Burke 2010

StripMtext is an AutoLISP program that runs inside AutoCAD 2000 or above and enables the AutoCAD user to quickly remove unwanted Mtext formatting embedded in Mtext, Mleaders, Dimensions, Tables, and Multiline Attributes objects.
Оригинальный пост (требуется регистрация)





В версии 1.5 добавлена отдельная команда UNF-MTEXT для удаления форматирования MTEXTa
В версии 1.6 добавлено снятие блокировки ячейки таблицы при установке связи Datalink
Важно!!! Начиная с 2021 Автокада может не срабатывать команда stripmtext. Решение - установить системную переменную LISPSYS=0
См пост #281 и #282 или гугл

Вложения
Тип файла: lsp StripMtext v5-0c.lsp (60.1 Кб, 22809 просмотров)
Тип файла: lsp change text styles (cts) 2.0c.LSP (44.3 Кб, 7091 просмотров)

__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 03.11.2023 в 14:28. Причина: см пост #290
Просмотров: 583848
 
Непрочитано 14.02.2017, 09:31
#201
Genf

Другие берега
 
Регистрация: 12.09.2009
г. Краснодар
Сообщений: 314


Есть ли решение по замене одного шрифта на другой не открывая файлы (пакетная замена)?

Все файлы созданы на основе единого шаблона с одним текстовым стилем, в котором прописан конкретный шрифт - вот его то и нужно заменить на другой.

Задача в замене шрифта в не одной сотне чертежей. Открывать каждый файл и менять ручками долго будет.
__________________
День прожит зря, если за день ты не узнал ничего нового!

Последний раз редактировалось Genf, 14.02.2017 в 09:48. Причина: Подробности
Genf вне форума  
 
Непрочитано 15.02.2017, 11:55
1 | #202
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Два варианта. Подключить файл стандартов dws или использовать механизм ObjectDBX (http://autolisp.ru/2010/04/08/procee...tive-document/ + http://autolisp.ru/2015/10/20/objectdbx-limits/ )
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.04.2017, 14:46
#203
b00


 
Регистрация: 21.10.2008
Петербург
Сообщений: 19
<phrase 1=


Можно как-то дополнить функционал CTS/CTSU/TSUP, добавив возможность назначить не только стиль, но и цвет всем текстовым объектам?
b00 вне форума  
 
Непрочитано 22.11.2017, 13:37
#204
divanci


 
Регистрация: 08.10.2017
Сообщений: 123


с какими текстовыми объектами работает cts. Атрибуты блоков поддерживаются?
divanci вне форума  
 
Автор темы   Непрочитано 23.11.2017, 12:43
#205
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


divanci, Нажми на + в 1-м посте. Под словосочетание "у всех объектов" попадают и атрибуты блоков
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.12.2017, 23:47
#206
Netlog


 
Регистрация: 05.09.2005
Ростов на Дону
Сообщений: 71
<phrase 1=


Акад2007
В ячейках таблицы, в каждой, применено принудительное форматирование текста.
Команда CTSU визуально приводит таблицы в норму, но в ячейках остаются команды форматирования, и, стоит хоть что=то изменить в таблице, как вся таблица опять возвращается в исходному виду.
Если взорвать (_explode) таблицу - то получившиеся MTEXTы с очищенными атрибутами.
Netlog вне форума  
 
Автор темы   Непрочитано 25.12.2017, 14:17
#207
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Netlog, выложи файл с примером таблицы
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 25.12.2017, 18:59
#208
Netlog


 
Регистрация: 05.09.2005
Ростов на Дону
Сообщений: 71
<phrase 1=


01, png и dwg - что было до команды CTSU
02, png и dwg - что стало после команды CTSU
Миниатюры
Нажмите на изображение для увеличения
Название: 01_cr.png
Просмотров: 203
Размер:	21.2 Кб
ID:	197170  Нажмите на изображение для увеличения
Название: 02_cr.png
Просмотров: 184
Размер:	21.8 Кб
ID:	197171  
Вложения
Тип файла: dwg
DWG 2007
01.dwg (118.6 Кб, 34 просмотров)
Тип файла: dwg
DWG 2007
02.dwg (120.4 Кб, 32 просмотров)
Netlog вне форума  
 
Автор темы   Непрочитано 26.12.2017, 19:54
#209
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Обновил до версии 1.9
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.01.2018, 20:29
#210
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


странно, у меня акад 2018 полная версия лицензия. подгрузил оба лиспа, но ни одна команда не работает((( кад ее просто не видит(
d.mOnII вне форума  
 
Непрочитано 19.02.2018, 14:51
#211
Frigate

КИП, АСУ ТП, слаботочка
 
Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422


VVA,

огромное спасибо за Unf-MTEXT

ни одна другая программа ЛИСП для деформатирования не работала с высотой.
Frigate вне форума  
 
Непрочитано 17.05.2018, 19:09 цвет в мультивыноске
| 1 #212
MFor

Инженер-проектировщик
 
Регистрация: 08.02.2007
С-Петербург
Сообщений: 127
<phrase 1=


Коллеги, прошу помочь.
SMT не хочет менять цвет текста в мультивыносках
Что не так и как победить?

Почему, даже если поменять в этой выноске цвет текста вручную, то smt возвращает обратно красный?
Почему можно скопировать свойства этой выноски на вновь созданную, но не наоборот?
Вложения
Тип файла: dwg
DWG 2013
выноска.dwg (99.6 Кб, 43 просмотров)

Последний раз редактировалось MFor, 18.05.2018 в 11:38.
MFor вне форума  
 
Автор темы   Непрочитано 19.05.2018, 08:00
#213
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Цитата:
Сообщение от MFor Посмотреть сообщение
Почему, даже если поменять в этой выноске цвет текста вручную, то smt возвращает обратно красный?
потому что smt убирает форматирование. В этой выноске изначально без всякого форматирования цвет у мтекста красный. Скорее всего она была создана программно. Добраться до мтекста мультивыноски лиспом пока не смог
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.05.2018, 21:00
#214
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,665


Цитата:
Сообщение от VVA Посмотреть сообщение
Добраться до мтекста мультивыноски лиспом пока не смог
Красный цвет - индекс 1 - никак в тексте не помечается, остальные да:
TextString = "\\pxsm1;{\\C160;5785/35 - 12м 5784/13 - 12м } "
что-то некорректное сделано со стилем мвыноски

Последний раз редактировалось koMon, 19.05.2018 в 21:24.
koMon вне форума  
 
Непрочитано 27.07.2018, 00:20
#215
818937


 
Регистрация: 26.07.2018
Сообщений: 1


Цитата:
Сообщение от MFor Посмотреть сообщение
SMT не хочет менять цвет текста в мультивыносках
Почему, даже если поменять в этой выноске цвет текста вручную, то smt возвращает обратно красный?
Цитата:
Сообщение от VVA Посмотреть сообщение
потому что smt убирает форматирование. В этой выноске изначально без всякого форматирования цвет у мтекста красный. Скорее всего она была создана программно. Добраться до мтекста мультивыноски лиспом пока не смог
У нас на работе ребята форматируют не стили текста/выносок, а вручную каждый элемент в редакторе. Выделают фразу - делают сжатие, меняют цвет.
У меня есть кривые выноски - текст например желтый, а полка и направляющая послою.
Я как только с бубном не прыгал, сейчас уже не помню точно, я смог редактировать текст, но с выносками не получилось - так и сделал себе новые.
В последний раз решил проблему: выноски скопировал по точке, удалил, вставил по точке блоком, в блоке взорвал, изменил цвет текста (изменял цвет в диспетчере свойств, т.е. smt жать не нужно было).
Как я понимаю - цвет текста задан либо в диспетчере свойств либо в редакторе, и соответсвенно smt не умеет скидывать одно из двух. Только что пробывал скидывать smt растяжение текста заданного в ленте - не работает.
Танцы с бубном, метод научного тыка. От некоторых команд бывает еще остаются "останки редактирования", несколько символов форматиирования. Было например "123" красным, очистил формат стало ",;.123"
PS большое спасибо, лиспы иногда очень помогают править разную рукожопость)
818937 вне форума  
 
Непрочитано 31.07.2018, 10:16
#216
guerre1403


 
Регистрация: 31.07.2018
Сообщений: 25


VVA, Помогите, пожалуйста, макрос не работает, появляется все равно диалоговое окно. (if (null C:CTS)(load "change text styles (cts)"));CTS;(cts:layer-status-save);(ru-textstyle-update "ххх");_.PURGE;
Как изменить код, чтобы можно было запускать с командной строки, указав имя стиля.
Пробовал (ru-textstyle-update "ххх"),
пишет "Ждите, привожу стиль
'ххх' к определению...
nil"
при этом ничего стили не меняются.
С диалоговым окном проблем нет-все работает отменно!
guerre1403 вне форума  
 
Автор темы   Непрочитано 02.08.2018, 08:19
#217
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


guerre1403, Добавь свою функция в lsp файл
Код:
[Выделить все]
(defun cmdCTS (style unformat / *error*)
  ;;;Переменные
  ;;; style - имя текстового стиля, текст
  ;;; unformat - принимает 2 значения
  ;;;    t - убрать форматирование текста
  ;;;   nil - не изменять форматирования
  ;;;Использование (cmdCTS "МИП_ГОСТ" nil)
  ;;;Использование (cmdCTS "МИП_ГОСТ" t) ;_очищать дополнительное форматирование текста
   (defun *error* (msg)(princ msg)(cts:layer-status-restore)(princ))
 (cts:layer-status-save)
 (ChangeAllTextObjectsStyle (vla-get-activedocument (vlax-get-acad-object)) style nil unformat)
 (ru-textstyle-update style) 
 (cts:layer-status-restore)
 (princ)
  )
и макрос
Код:
[Выделить все]
(if (null C:CTS)(load "change text styles (cts)"));(cmdCTS "XXXXX" nil);_.PURGE;
Вроде должно работать
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.08.2018, 09:41
#218
guerre1403


 
Регистрация: 31.07.2018
Сообщений: 25


Цитата:
Сообщение от VVA Посмотреть сообщение
guerre1403, Добавь свою функция в lsp файл
Код:
[Выделить все]

(defun cmdCTS (style unformat / *error*)
;;;Переменные
;;; style - имя текстового стиля, текст
;;; unformat - принимает 2 значения
;;; t - убрать форматирование текста
;;; nil - не изменять форматирования
;;;Использование (cmdCTS "МИП_ГОСТ" nil)
;;;Использование (cmdCTS "МИП_ГОСТ" t) ;_очищать дополнительное форматирование текста
(defun *error* (msg)(princ msg)(cts:layer-status-restore)(princ))
(cts:layer-status-save)
(ChangeAllTextObjectsStyle (vla-get-activedocument (vlax-get-acad-object)) style nil unformat)
(ru-textstyle-update style)
(cts:layer-status-restore)
(princ)
)

и макрос
Код:
[Выделить все]

(if (null C:CTS)(load "change text styles (cts)"));(cmdCTS "XXXXX" nil);_.PURGE;

Вроде должно работать
Спасибо большое!Работает! Только возникла одна проблема:он убивает все поля. Эта проблема сидит в лиспе change text styles (cts) 1.9.LSP. С этим можно что-нибудь сделать?
guerre1403 вне форума  
 
Непрочитано 08.10.2018, 15:31
#219
LcH


 
Регистрация: 24.03.2014
Сообщений: 15


Добрый день, VVA. И все, кто отслеживает и вносит изменения и поправки в программы Замена текстовых стилей.
Эти программы давно подключены у меня в мой файл адаптации, наверное с версии 1.7, но редко использовались.
Теперь возникла необходимость частого использования и не только мной, т.е. нам необходимо перейти не только на другой текстовый стиль, а использовать другой тип шрифта, эти программы очень нужны.
Но при массовом тестировании обнаружились некоторые недочеты, некоторые действительно объяснимы, а есть моменты, которые хотелось бы избежать.
Очень хочется, чтобы вы нашли время и посмотрели файлы, которые я сейчас попытаюсь прикрепить.
На словах хочу пояснить, AutoCAD 2015, сейчас работаю с программой версии 1.9, выполняю команды CTSU, затем TSUP.
Главная неприятность - в МТекстах остаются некоторые управляющие символы, которые не сразу увидишь, особенно если работа массовая.
Надеюсь, мне ответят, можно это исправить или нет, заранее спасибо.
Вложения
Тип файла: dwg
DWG 2013
CTSU+TSUP_КР.АР_ANarrow.dwg (352.5 Кб, 35 просмотров)
Тип файла: dwg
DWG 2013
Исходный-КР.АР(01-05)_Simplex.dwg (355.9 Кб, 35 просмотров)
Тип файла: dwg
DWG 2013
CTSU+TSUP_КЖ_ANarrow.dwg (952.4 Кб, 35 просмотров)
Тип файла: dwg
DWG 2013
Исходный-КЖ(09-13)_Simplex.dwg (955.5 Кб, 33 просмотров)
Тип файла: xls Экспорт-КР.АР.xls (31.5 Кб, 32 просмотров)
LcH вне форума  
 
Непрочитано 09.10.2018, 08:45
#220
Рyslan


 
Регистрация: 25.07.2007
Сообщений: 2,508


чот эти програмки вообще не работают. ничего не меняют
нужно поменять текст стиль 25х22 на 25х22R. если через таблицу свойств менять, вылезают вопросики абракадабра какая то, а эта программа вообще ничего не меняет
Вложения
Тип файла: dwg
DWG 2010
1.dwg (60.8 Кб, 36 просмотров)

Последний раз редактировалось Рyslan, 09.10.2018 в 08:56.
Рyslan вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Замена текстового стиля

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена текстого стиля Shoorup Программирование 43 19.05.2015 09:22
Есть ли замена текстового редактора MtmdEdit 2.4.0 beta for AutoCAD 2007 dextron3 Программирование 16 23.06.2008 20:54
Библиотека доступа к содержимому растров из LISP - существуе kp+ LISP 6 16.10.2007 21:45
загрузка DOS прог через LISP Gaa LISP 15 12.08.2005 19:19
Настройка "Стандартного" текстового стиля. Кулик Алексей aka kpblc AutoCAD 6 23.10.2003 22:49