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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Команда PURGE, или как удалить действительно ненужные неиспользуемые элементы из файла

Команда PURGE, или как удалить действительно ненужные неиспользуемые элементы из файла

Ответ
Поиск в этой теме
Непрочитано 04.06.2009, 18:35 #1
Команда PURGE, или как удалить действительно ненужные неиспользуемые элементы из файла
AlphaGeo
 
Сообщений: n/a

Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Кто-нибудь придумал пуржить только "левое", сохраняя то, что было в указанном файле-шаблоне?
Можно задавать маски имен блоков
Код:
[Выделить все]
_.-purge;_b;*U*;_n;
_.-purge;_b;*D*;_n;
Однако есть опасность удалить неиспользуемые полезные блоки, в имени которых содержатся символы "D" или "U".
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Пока замечал, что скорость реген сильно зависит от числа узлов в границах заливок-штриховок. И от общего числа узлов всех элементов. Можно попробовать замораживать слои с Hatch на время работы с блоками.
Кстати, сегодня обратил внимание: если при штриховке часть контура приходится на дин.блок, то после завершения штрихования в файле как раз и появляются эти самые *Uxxx и *Dxxx. Видимо, происходит переопределение блоков при участии их в контуре штриховки.

Последний раз редактировалось AlphaGeo, 04.06.2009 в 18:43.
Просмотров: 18114
 
Непрочитано 04.06.2009, 19:42
#2
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
Можно задавать маски имен блоков
Код:
[Выделить все]
_.-purge;_b;*U*;_n;
_.-purge;_b;*D*;_n;
Однако есть опасность удалить неиспользуемые полезные блоки, в имени которых содержатся символы "D" или "U".
А синтаксис позволяет задать не просто "D" или "U", а "*D" или "*U"?
По настоящему все "левое" можно отпуржить, только сравнивая с исходным шаблоном==образцом. Лишними могут быть ведь не только останки дин. блоков и размеров, но и "чужие" блоки, типы линий, стили текста, мультилинии и т.д. и т.п.
АлексЮстасу вне форума  
 
Непрочитано 04.06.2009, 19:54
#3
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
А синтаксис позволяет задать не просто "D" или "U", а "*D" или "*U"?
Представленная в посте #1251 запись как раз и учитывает блоки"*D*" и "*U*". Я незнаю, возможно ли задавать маску каким-либо символом, соотвествующим одному любому символу, а не нескольким любым символам, как это задается при помощи *.

Цитата:
Сообщение от АлексЮстасу
По настоящему все "левое" можно отпуржить, только сравнивая с исходным шаблоном==образцом. Лишними могут быть ведь не только останки дин. блоков и размеров, но и "чужие" блоки, типы линий, стили текста, мультилинии и т.д. и т.п.
Как вариант - написать пакет (Script-файл), при загруке которого сначала происходила бы очистка чертежа, а потом создание и подгрузка всех необходимых настроек. Однако, это несколько трудоемко. Но можно и попробовать.

Добавлено:
Если воспользоваться функцией System Variable Editor из ExpressTools (команда _.SYSVDLG),то можно создать scr-файл прямо оттуда... Останется дело за малым: прошерстить весть это файл и удалить ненужное, и добавить и изменить, что необходимо.

Последний раз редактировалось AlphaGeo, 04.06.2009 в 20:12.
 
 
Непрочитано 04.06.2009, 21:21
#4
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
Представленная в посте #1251 запись как раз и учитывает блоки"*D*" и "*U*".
Похоже, что я написал неоднозначно. Я имел в виду не любое вхождение символа "D", т.е. ;*D*;_ , а вхождение двух символов - "*D".
Т.е. позволяет ли синтаксис как-то описать звездочку "*" как обычный символ, а не как маску. В других случаях для этого можно использовать слэш "/", иногда одинарные ковычки.

Я до макросов еще не дорос - может быть с этого момента и начну.
АлексЮстасу вне форума  
 
Непрочитано 04.06.2009, 23:43
#5
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


АлексЮстасу, спасибо за *Х* не думал что "звездочки тут работают =)
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.
Juss_00 вне форума  
 
Непрочитано 05.06.2009, 02:22
#6
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Juss_00 Посмотреть сообщение
АлексЮстасу, спасибо за *Х* не думал что "звездочки тут работают =)
Увы, я не понял эту похвалу или иронию ... Я не понял, можно ли так записать, чтобы отпуржить только блоки "*Dxxx" и "*Uxxx"... Я в макросах полный пока ноль...
АлексЮстасу вне форума  
 
Непрочитано 05.06.2009, 03:10
#7
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,536
<phrase 1= Отправить сообщение для wetr с помощью Skype™


как вариант. Можно вставить в шаблон все нужные блоки размеры таблицы... засунуть из на спец слой и слой заморозить и закрыть.
После этого спокойно пуржить все подряд
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)
wetr вне форума  
 
Непрочитано 05.06.2009, 11:13
#8
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,905
<phrase 1=


Может так, с масками
Цитата:
_.-purge;_b;?U*;_n;
_.-purge;_b;?D*;_n;
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 05.06.2009, 18:12
#9
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от zenon Посмотреть сообщение
Может так, с масками
_.-purge;_b;?U*;_n;
_.-purge;_b;?D*;_n;
Удалились все блоки со второй буквой "D" - в том числе и полезные...

Цитата:
Я незнаю, возможно ли задавать маску каким-либо символом, соответствующим одному любому символу, а не нескольким любым символам, как это задается при помощи *.
AlphaGeo - вот, zenon уже и ответил - символом "?"

Последний раз редактировалось АлексЮстасу, 05.06.2009 в 21:19.
АлексЮстасу вне форума  
 
Непрочитано 06.06.2009, 00:51
#10
Кулик Алексей aka kpblc
Moderator

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


По-моему, подойдет нечто типа
Код:
[Выделить все]
_.-purge;_b;`*U*;_n;
Не проверял.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.06.2009, 02:37
#11
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
По-моему, подойдет нечто типа
Код:
[Выделить все]
_.-purge;_b;`*U*;_n;
Не проверял.
См. пост 1251 и позже

Похоже, что наиболее пока подходящим будет:
_.-purge;_b;?U?;_n;_.-purge;_b;?U??;_n;_.-purge;_b;?U???;_n;_.-purge;_b;?U????;_n;

Даже у меня сработало.
Однако, остается некоторый риск, что может встретиться и нужный, не временный блок с нормальным именем, подпадающим под эти маски, который пуржить бы не хотелось...
Все-таки нужна и звездочка перед "U", но у кого бы узнать, как ее описать как простой символ, а не маску? Тогда пурж будет однозначным.

Кстати, кто-нибудь еще знает, как обнулить счетчик этих "*Uxxx" и "*Dxxx"? Тогда бы вероятность отпуржить нужное еще бы уменьшилась.

Последний раз редактировалось АлексЮстасу, 06.06.2009 в 02:48.
АлексЮстасу вне форума  
 
Непрочитано 06.06.2009, 17:09
#12
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
По-моему, подойдет нечто типа
Код:
[Выделить все]
_.-purge;_b;`*U*;_n;
Не проверял.
Алексей, апостроф не спасает... Смотрел в Справке AutoCAD'a - все что нашел, это описание поиска текста с использованием * и ?. Видать, другого не предусмотренно.
 
 
Непрочитано 06.06.2009, 18:04
#13
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
По-моему, подойдет нечто типа
Код:
[Выделить все]
_.-purge;_b;`*U*;_n;
Не проверял.
С апострофом вроде бы пуржатся только "левые" блоки!
Спасибо!!
Я апостроф просто не разглядел ночью, честно, прошу у тебя прощения...
И мой пост 1264 - ошибка...
АлексЮстасу вне форума  
 
Непрочитано 06.06.2009, 19:31
#14
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
С апострофом вроде бы пуржатся только "левые" блоки!
Спасибо!!
Я апостроф просто не разглядел ночью, честно, прошу у тебя прощения...
И мой пост 1264 - ошибка...
Странно, почему ж у меня это вообще не страбатывает?
Код:
[Выделить все]
Команда: -очистить

Тип неиспользуемых объектов 
[Блоки/Рзмстили/Слои/типыЛин/Пстили/Формы/Тстили/Млстили/тблстИли/Зарегприл/Все]
: б
Имена удаляемых элементов <*>: '*U*
Запрашивать подтверждение на удаление каждого элемента? [Да/Нет] <Д>: _n
Элемент с именем "'*U*" не найден.

Команда: -ОЧИСТИТЬ

Тип неиспользуемых объектов 
[Блоки/Рзмстили/Слои/типыЛин/Пстили/Формы/Тстили/Млстили/тблстИли/Зарегприл/Все]
: б
Имена удаляемых элементов <*>: *U*
Запрашивать подтверждение на удаление каждого элемента? [Да/Нет] <Д>: _n
Удаление блок "*U10".
Удаление блок "*U11".
Удаление блок "*U12".
Удаление блок "*U6".
Удаление блок "*U7".
Удаление блок "*U9".
Удалено 6 блоки.


Добавлено:
Все, разобрался... Апостроф другой ("обратный") надо было набирать....

Последний раз редактировалось AlphaGeo, 06.06.2009 в 20:17.
 
 
Непрочитано 06.06.2009, 23:20
#15
Кулик Алексей aka kpblc
Moderator

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


Е-мое, да не апостроф это! Сравни
' - апостроф
` - тильда
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 06.06.2009, 23:48
#16
AlphaGeo


 
Сообщений: n/a


Алексей, для меня все время тильдой был вот этот символ ~
Тильда
Машинописный обратный апостроф
 
 
Непрочитано 07.06.2009, 00:00
#17
Кулик Алексей aka kpblc
Moderator

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


Ладно, ладно, не бушуй
Мир?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.06.2009, 02:55
#18
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
Смотрел в Справке AutoCAD'a - все что нашел, это описание поиска текста с использованием * и ?. Видать, другого не предусмотренно.
Если, создавая любой блок, использовать в имени *, то появится сообщение о кучке недопустимых символов в именах блоков. Там и "тильда" (обратный апостроф), и знаки больше-меньше, знаки препинания и пр. Возможно, все они чем-то могут быть нам полезны. Поле непаханное
А Алексей - гигант. И, благодаря ему, AlphaGeo и всем участникам, сделаю теперь для работы работы с дин. блоками типа свой (слегка спертый) первый макрос
АлексЮстасу вне форума  
 
Непрочитано 07.06.2009, 14:15
#19
AlphaGeo


 
Сообщений: n/a


Offtop:
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ладно, ладно, не бушуй
Мир?
Ммм... Как необычно. Обычно предложение мира мне делают только в "Цивилизации". Я всегда отказываю...
А тут вроде никто и воевать не собирался
 
 
Непрочитано 08.06.2009, 18:48
#20
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


создал макрос для очистки от "левых" блоков, но почему-то не получается создать маску для имен типа "A$C18D953CB" (откуда-то появляются блоки с подобными автоматическими именами)

Например, на: _.-purge;_b;A$C*;_n; или _.-purge;_b;A`$C*;_n; или _.-purge;_b;A$*;_n;

Автокад отвечает:

Enter type of unused objects to purge
[Blocks/Dimstyles/LAyers/LTypes/Plotstyles/SHapes/textSTyles/Mlinestyles/Tablest
yles/Regapps/All]: _b
Enter name(s) to purge <*>: A_n
Verify each name to be purged? [Yes/No] <Y>: _.-purge
Yes or No, please.

Получается, что "$" воспринимается как-то странно, хотя, в именах блоков доллар разрешен...


sv-rus, см. пост. 1212 - там как раз двустворчатая дверь разных типоразмеров.

Последний раз редактировалось АлексЮстасу, 08.06.2009 в 19:08.
АлексЮстасу вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Команда PURGE, или как удалить действительно ненужные неиспользуемые элементы из файла



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Сейсмозащита и сейсмоизоляция существующих, построенных зд. IANationalInformAgentstvo Прочее. Архитектура и строительство 216 20.01.2015 16:51
Мониторы LCD CRT Разное 94 17.06.2008 10:51
ответственность за проектную документацию zaza-noza Организация проектирования и оформление документации 3 07.03.2008 09:54
ЮМОР 2006 =) Perezz!! Разное 1122 04.01.2007 00:46