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

Вернуться   Форум 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 Кб, 22808 просмотров)
Тип файла: lsp change text styles (cts) 2.0c.LSP (44.3 Кб, 7090 просмотров)

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

Последний раз редактировалось VVA, 03.11.2023 в 14:28. Причина: см пост #290
Просмотров: 583824
 
Непрочитано 01.02.2020, 01:59
#261
skkkk


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


Может, там вместо пробела что-то другое? Например, неразрывный пробел? Без файла будут долгие гадания.
skkkk вне форума  
 
Непрочитано 01.02.2020, 08:06
#262
Wince


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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Может, там вместо пробела что-то другое? Например, неразрывный пробел? Без файла будут долгие гадания.
Действительно, был неразрывный пробел. Даже не подумал о нем.
Спасибо за наводку!
Wince вне форума  
 
Непрочитано 31.03.2020, 11:52
#263
Кукурузо_Джон_Горыныч

инженер-конструктор
 
Регистрация: 26.12.2006
Moscow
Сообщений: 201
<phrase 1=


а умеет эта штука очищать/удалять форматирование текста у размеров с перебитыми значениями, оставляя при этом перебитые значения?
Кукурузо_Джон_Горыныч вне форума  
 
Непрочитано 31.03.2020, 12:50
1 | #264
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,326


Кукурузо_Джон_Горыныч, В принципе могли и сами попробовать. Да, форматирование она очищает, размер не трогает. Но как я понял вам надо сбросить и высоту. А вот высоту у меня, почему-то, сбросить не получилось...
AlexCondor вне форума  
 
Непрочитано 31.03.2020, 13:34
#265
Кукурузо_Джон_Горыныч

инженер-конструктор
 
Регистрация: 26.12.2006
Moscow
Сообщений: 201
<phrase 1=


Спасибо за ответ! Да, мог, но это не так просто, я давно лиспом не пользовался, надо восстановить знания) У меня там куча размеров и шрифт принудительно назначен, высота текста дополнительно не форматировалась, или какую высоту вы имели ввиду?
Кукурузо_Джон_Горыныч вне форума  
 
Непрочитано 31.03.2020, 14:20
1 | #266
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,326


Да, именно высоту текста. Взял для примера файл из той темы. И попробовал.
Например, был размерный текст "\H3.5;\W0.965;\Q15;\H3.5;\W0.965;\Q15;\Q15;1200", стал "\H3.5;\H3.5;1200". Галочка "Height" стоит.

----- добавлено через ~22 ч. -----
Кукурузо_Джон_Горыныч, Судя по всему проблема в этой строчке: (RE:Replace "" "\\\\H[0-9]*?[.]?[0-9]*?(x|X)+;" str).
Она корректно работает для мультитекста, но не работает для размера. Формат высоты разный, для текста "\H1.1x;",а для размера "\H1;"
Если убрать в этой строчке *?(x|X), то она отработает для размерного текста, и в принципе вашу задачу можно решить.
А сам LISP надо наверное доработать, чтобы он корректно работал и с текстом и с размерами. Но лучше за этим обратиться к автору.
AlexCondor вне форума  
 
Непрочитано 17.04.2020, 04:32 Ячейки таблиц
#267
modest-bp


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


Спасибо за очень полезные LISP!!!

Попробовал оба, но, несмотря на то, что в описании Strip MText написано, что убирает форматирование даже в ячейках таблиц - добиться этого не получилось.
Существуют ли какие-либо средства подчистить форматирование в таблицах? Интересно не только форматирование текста, но также форматирование самих ячеек...
Например, к ячейкам, или даже к строке/колонке таблицы применён определённый стиль ячеек, но через properties форматирование ячейки переназначено... скажем, в стиле прописано округление до десятых, а в свойствах ячейки руками выставлено до сотых долей (или в применённом к ячейке стиле формат данных - числа, а в свойствах ячейки записан "текст"). Существуют ли инструменты, которые бы позволяли вычистить это переформатирование как для отдельных ячеек, так и для отдельных колонок/строк, либо всей таблицы целиком? Было бы очень полезно...
modest-bp вне форума  
 
Непрочитано 22.04.2020, 12:53
#268
Dniper


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


Всем привет. Возможно кому то не будет трудно запилить видео как пользоваться данным лиспом ? Заранее спасибо.
Dniper вне форума  
 
Непрочитано 22.04.2020, 14:38
#269
Кулик Алексей aka kpblc
Moderator

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


https://dwg.ru/pub/9
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.04.2020, 14:46
#270
PsixVK


 
Регистрация: 19.10.2012
Киев
Сообщений: 749


Цитата:
Сообщение от Dniper Посмотреть сообщение
Всем привет. Возможно кому то не будет трудно запилить видео как пользоваться данным лиспом ? Заранее спасибо.
самое простое решение которое помогает в таких ситуациях с такими лиспами это перетащить лисп на чертеж. в командной строке обычно пишет, после перетаскивания, что нужно нажать что бы вызвать команду.
действие временное до закрытия файла.
PsixVK вне форума  
 
Непрочитано 23.04.2020, 20:15
#271
Coochi


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


Джентельмены, работает ли change text styles (cts) 2.0 в 2017 версии Автокада? Чтоб ни делал - реакции никакой.

dwg файл по линку https://drive.google.com/open?id=10G...Q0dAJCmVPQmx05

нужно чтоб использовался стиль GOST 2.304 type B
Coochi вне форума  
 
Автор темы   Непрочитано 25.04.2020, 09:36
#272
VVA

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


Coochi, CTSU, первый запрос "Игнорируемые стили", жмешь отмена, второй запрос - выбираешь GOST 2.304 type B

----- добавлено через ~5 мин. -----
Цитата:
Сообщение от modest-bp Посмотреть сообщение
что в описании Strip MText написано, что убирает форматирование даже в ячейках таблиц - добиться этого не получилось
Там написано не так
Цитата:
to quickly remove unwanted Mtext formatting embedded in Mtext, Mleaders, Dimensions, Tables, and Multiline Attributes objects
Форматирование мтекса и ячеек таблицы это разные вещи

----- добавлено через ~15 мин. -----
Цитата:
Сообщение от modest-bp Посмотреть сообщение
Существуют ли инструменты, которые бы позволяли вычистить это переформатирование как для отдельных ячеек, так и для отдельных колонок/строк, либо всей таблицы целиком? Было бы очень полезно...
Re: Remove table cell overrides
Цитата:
Here's a snip to try out:

(setq flag 0)
(vla-ClearTableStyleOverrides (vlax-ename->vla-object (car (entsel))) Flag)

Flag:
0 Deletes all table and cell overrides.
1 Deletes all table overrides, but retains cell overrides.
2 Deletes all cell overrides, but retains table overrides.
Код:
[Выделить все]
(vl-load-com)(vla-ClearTableStyleOverrides (vlax-ename->vla-object (car (entsel))) 0)
Скопировать код в командную строку, вместо 0 можно указывать 1 или 2. Описание выше
Вложения
Тип файла: dwg
DWG 2010
change text styles.dwg (82.8 Кб, 55 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 25.04.2020 в 09:41.
VVA вне форума  
 
Непрочитано 25.04.2020, 12:04
#273
Coochi


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


Цитата:
Сообщение от VVA Посмотреть сообщение
жмешь отмена, второй запрос
большое спасибо, сейчас получилось, сам бы не додумался ):
Coochi вне форума  
 
Автор темы   Непрочитано 25.04.2020, 20:55
#274
VVA

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


Coochi, Почему? Как нужно спросить чтобы было очевидно. Первый вопрос возник, так как просили дать возможность выбрать игнорируемые стили. Может поменять запросы местами? Игнорируемые стили, мне кажется, нужны реже
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 09.05.2020, 11:15
#275
Bubar


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


Помогите, пожалуйста разобраться как заменить все шрифты в Gost type B при помощи LISP. Вообще с Автокадом не особо дружу. Предпочитаю чертежи выполнять в Архикаде и транслировать из него в DWG. Раньше транслировал все как есть, сейчас смежники начали возмущаться начертанию текста.
Значит, что я делал: 1. в файле dwg редактировал стили с применение шрифта Gost type B
2. редактировал размерные стили применяя измененный стиль
3. редактировал стили выносок применяя измененный стиль
4. закидывал в файл change text styles (cts) 2.0.LSP
5. вводил команду CTSU (другие команды либо выводят многострочный текст в одну строку с ql;, либо вообще ничего не меняют), отмена, выбирал стиль замены и enter. Действительно поменялся весь текст, но в выносках добавляется ql;. Что это за ql; и как это убрать я не знаю.
Помогите, пожалуйста разобраться.
Файл прикрепляю - ссылка.
Спасибо.
Bubar вне форума  
 
Автор темы   Непрочитано 12.05.2020, 16:48
1 | #276
VVA

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


Цитата:
Сообщение от Bubar Посмотреть сообщение
Что это за ql; и как это убрать я не знаю.
Глюкус обыкновениус
Обновил до версии 2.0a (кое-что было не учтено в функции, убирающей форматирование мтекста)
Действуешь правильно по п.5
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.05.2020, 21:34
#277
Bubar


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


VVA Большое спасибо. Теперь все правильно отображается.
Bubar вне форума  
 
Непрочитано 17.06.2020, 13:04
#278
peltsve


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


SMT не стал работать под ACAD 2021. У меня одного?
peltsve вне форума  
 
Непрочитано 09.11.2020, 14:49
#279
Andrey7n


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


Всем привет.
CTS 2.0a убивает в таблицах поля, все - ссылающиеся на подшивку и где =2+2 было написано, остаётся только текст. Можете исправить?
Еще бы неплохо добавить в циклы (acet-ui-progress) прогресс-бар, а то операция по замене довольно длительная, на слабых машинах и в захламленных документах занимает около минуты, при этом АвтоКад выглядит будто зависший, нетерпеливые пользователи начинают убивать процесс через Диспетчер задач и больше не хотят пользоваться программой
Andrey7n вне форума  
 
Автор темы   Непрочитано 14.11.2020, 22:13
#280
VVA

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


Andrey7n, выложи пример.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум 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