Schöck
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

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

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 18.09.2008, 17:53 9 |
LISP. Замена текстового стиля
VVA
 
Инженер LISP
 
Минск
Регистрация: 11.05.2005
Сообщений: 6,701
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для VVA с помощью Skype™

VVA вне форума Вставить имя

По мотивам Замена текстого стиля
Команды CTS и CTSU подверглисть косметическим улучшением.
Добавлена команда TSUP - изменение начертания текстов, атрибутов на основе установок выбранного стиля (начертание, сжатие, угол наклона).
Использована функция ru-textstyle-update любезно предоставленная ShaggyDoc
Описание команд:
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

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

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

Последний раз редактировалось VVA, 26.12.2017 в 19:53. Причина: орфография
Просмотров: 170327
 
Непрочитано 14.02.2017, 09:31
#201
Genf

Начальник конструкторского отдела
 
Регистрация: 12.09.2009
г. Краснодар
Сообщений: 249


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

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

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

Последний раз редактировалось 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
С.-Петербург
Сообщений: 35,808


Два варианта. Подключить файл стандартов dws или использовать механизм ObjectDBX (http://autolisp.ru/2010/04/08/procee...tive-document/ + http://autolisp.ru/2015/10/20/objectdbx-limits/ )
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 12.04.2017, 14:46
#203
b00


 
Регистрация: 21.10.2008
Петербург
Сообщений: 19
Отправить сообщение для b00 с помощью ICQ


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


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


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

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


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


 
Регистрация: 05.09.2005
Ростов на Дону
Сообщений: 67
Отправить сообщение для Netlog с помощью ICQ


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

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


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


 
Регистрация: 05.09.2005
Ростов на Дону
Сообщений: 67
Отправить сообщение для Netlog с помощью ICQ


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

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


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

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


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

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


VVA,

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

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

Инженер-проектировщик
 
Регистрация: 08.02.2007
С-Петербург
Сообщений: 96
Отправить сообщение для MFor с помощью ICQ


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

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

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

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


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


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


Цитата:
Сообщение от 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
Сообщений: 6


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,701
Отправить сообщение для VVA с помощью ICQ Отправить сообщение для 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
Сообщений: 6


Цитата:
Сообщение от 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
Сообщений: 12


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


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


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

Последний раз редактировалось Р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

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||