|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Команда PURGE, или как удалить действительно ненужные неиспользуемые элементы из файла
Сообщений: n/a
|
||
Просмотров: 18354
|
|
||||
Цитата:
По настоящему все "левое" можно отпуржить, только сравнивая с исходным шаблоном==образцом. Лишними могут быть ведь не только останки дин. блоков и размеров, но и "чужие" блоки, типы линий, стили текста, мультилинии и т.д. и т.п. |
||||
![]() |
|
||||
Сообщений: n/a
|
Цитата:
Цитата:
Добавлено: Если воспользоваться функцией System Variable Editor из ExpressTools (команда _.SYSVDLG),то можно создать scr-файл прямо оттуда... Останется дело за малым: прошерстить весть это файл и удалить ненужное, и добавить и изменить, что необходимо. Последний раз редактировалось AlphaGeo, 04.06.2009 в 20:12. |
|||
|
||||
Цитата:
Т.е. позволяет ли синтаксис как-то описать звездочку "*" как обычный символ, а не как маску. В других случаях для этого можно использовать слэш "/", иногда одинарные ковычки. Я до макросов еще не дорос - может быть с этого момента и начну ![]() |
||||
![]() |
|
||||
|
||||
![]() |
|
||||
как вариант. Можно вставить в шаблон все нужные блоки размеры таблицы... засунуть из на спец слой и слой заморозить и закрыть.
После этого спокойно пуржить все подряд
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Удалились все блоки со второй буквой "D" - в том числе и полезные...
Цитата:
Последний раз редактировалось АлексЮстасу, 05.06.2009 в 21:19. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
По-моему, подойдет нечто типа
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
См. пост 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. |
||||
![]() |
|
||||
|
||||
![]() |
|
||||
Сообщений: n/a
|
Цитата:
Код:
Добавлено: Все, разобрался... Апостроф другой ("обратный") надо было набирать.... Последний раз редактировалось AlphaGeo, 06.06.2009 в 20:17. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Е-мое, да не апостроф это! Сравни
' - апостроф ` - тильда
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Сообщений: n/a
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Ладно, ладно, не бушуй
![]() Мир?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
![]() А Алексей - гигант. ![]() ![]() |
||||
![]() |
|
||||
создал макрос для очистки от "левых" блоков, но почему-то не получается создать маску для имен типа "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. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Попробуй перед $ точно так же поставить обратный апостроф.
P.S. не проверял, подобные блоки у меня удаляются лиспом обычно...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
![]() Enter name(s) to purge <*>: A`_n Verify each name to be purged? [Yes/No] <Y>: _.-purge Yes or No, please. Такое ощущение, что знак доллара воспринимается как знак точки с запятой - даром, что они висят на одной клавише (4). А не живет ли второй знак доллара еще на какой-либо клавише? Как знак вопроса, например (в русской на 7, в английской - рядом с шифтом)? Или еще как-то это объехать?... Последний раз редактировалось АлексЮстасу, 08.06.2009 в 22:23. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
AlphaGeo, у меня в 2008:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Гм... С клавиатуры и у меня сработало...
Command: _-purge 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$* Verify each name to be purged? [Yes/No] <Y>: n Deleting block "A$C18D953CB". 1 block deleted. |
||||
![]() |
|
||||
Сообщений: n/a
|
А если маску имени блока взять в кавычки ("A$C*")?
Offtop: У меня все так же нет файла с блоками A$C... ![]() Почитал Справку: символ $ вроде как используется при обозначении DIESEL-функций... Наверное, из-за этого и проблемы. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Ннда... Я б в таком случае задумывался о лиспе...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Кулик Алексей aka kpblc, может вынести обсуждение в отдельную тему "Создание макроса для очистки чертежа от анонимных блоков"?
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Цитата:
Сейчас у меня нет под рукой настоящего блока A$C18D953CB - я его на скорую руку сконструлил сам из первого попавшегося элемента ![]() Кулик Алексей, В таких случаях я задумываюсь о MicroStation ![]() До лиспа я еще не дорос... Без шуток - известно, откуда такие адские блоки типа "A$C774453FF" вообще берутся? |
||||
![]() |
|
||||
Цитата:
Один из вариантов появления: ctrl+c, shift+ctrl+v
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Сообщений: n/a
|
Цитата:
Код:
Поддерживаю... Готов поспособствовать с номерами сообщений, которые стоит перенести в другую тему. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Да легко
![]() Тем временем лисповая попытка: Код:
--- Добавлено: www.jtbworld.com/lisp/purger.htm ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 09.06.2009 в 08:59. |
|||
![]() |
|
||||
Сообщений: n/a
|
Номера сообщений, переносимых в новую тему: 1251, 1253-1258, 1260, 1262, 1285.
Название... я бы предложил "Команда PURGE, или как удалить действительно ненужные неиспользуемые элементы из файла". P.S. Это сообщение после создания новой темы и переноса сообщений можно удалить. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Сделано.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
[quote=AlphaGeo;408058]А если записать действительно в виде LISP-выражения этот макрос?
Код:
Автокад ответил: Command: (command "_Purge" "_b" "A"_n") Т.е. доллара не зрит напрочь, когда он не из командной строки... Может быть текст для макроса подгружать из внешнего файла как-нибудь? |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
АлексЮстасу,
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Ура! Сработало!
![]() ![]() В конце концов, что у меня получилось: ^C^C(command "_Purge" "_b" (strcat "A" (chr 36) "*") "n");_.-purge;_b;`*U*;_n;_.-purge;_b;`*D*;_n;_.-purge;_b;TerminatorO*;_n;_.-purge;_b;MAP_CLEAN*;_n;_.-purge;_b;ERR*;_n;_.-purge;_b;_AEC_*;_n;_.-purge;_d;;_n;_.-purge;_st;st*;_n;_.-purge;_st;стиль1;_n;_.audit;_y; пуржу блоки: "A$*", "*U*", "*D*", "TerminatorO*", "MAP_CLEAN*", "ERR*", "_AEC_*" пуржу все стили Dimension пуржу текстовые стили: "st*", любимый стиль "стиль1" и делаю аудит. спасибо ведь буквально всем! ![]() ![]() |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Попробуй, например, код из #32 вызывать как (_dwgru-purge-blocks "A$C*,`*U*,teminator*,`*D*,_AEC_*,err*" t)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
Явочным порядком - ни из командной строки, ни с кнопки (_dwgru-purge-blocks "A$C*,`*U*,teminator*,`*D*,_AEC_*,err*" t) - не запустился... Я же еще новичек в этом деле... |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Ссылка из подписи VVA : http://dwg.ru/art/8
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
Текст лиспа, конечно, заметно изящнее, короче, чем макрос. Зато, его не нужно сохранять, подгружать. За ссылку - Ссылка из подписи VVA : http://dwg.ru/art/8 - спасибо - еще не все освоил, но с ней все стало понятнее! Собственно, о том, что задача очистки файлов на самом деле еще совсем не решена. Понятно, что мусора в файлах бывает много самого-самого разного. И предугадать что именно нужно пуржить невозможно. Зато можно твердо знать, что пуржить не нужно - те ресурсы, которые нужны для проекта. В моем случае все эти ресурсы прописаны в dwt-шаблоне. Соответственно, по-настоящему правильное решение - отпуржить все, что не предусмотрено файлом-шаблоном. Кстати, а может сам Автокад таит такую очевидно нужную функцию в своих закромах? Последний раз редактировалось АлексЮстасу, 10.06.2009 в 14:39. |
||||
![]() |
|
||||
Цитата:
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Сообщений: n/a
|
Да уж... Тут с wetr'ом сложно не согласиться. Я вот тоже пользуюсь Инструментальной палитрой, и макрос с пургеном у меня "расстреливает" все неиспользуемые элементы без суда и следствия.
|
|||
|
||||
Цитата:
В полном идеале я вижу решение таким: 1. выявление вообще всего, что не предусмотрено шаблоном проекта и принятыми для проекта правилами (шаблоном же предусмотрено все - от слоев - до блоков, стилей и т.п., плюс допустимые типы элементов). Разборка с этими незаконными элементами - перекладка в слои проекта, присвоение законных цветов, стилей и т.п., преобразование в принятые типы. 2. пурж всего, что не предусмотрено шаблоном проекта. Предусмотренное остается в целости - для возможности беспроблемного дополнения, изменения. Я, к слову, предпочитаю Tool Palettes - Feature Classes ![]() |
||||
![]() |
|
||||
АлексЮстасу, тогда тебе нужно файл шаблона обозвать стандартом (*.dws) и по полной пройтись CAD Standart_ом (_checkstandards) по проверяемым файлам.
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14) |
||||
![]() |
|
||||
Цитата:
![]() Пардон, что сразу не ответил - не смог сразу переварить много разной новой информаци: и про лисп, и про стандарты. И просто работа... По поводу уже сделанного макроса - если есть блоки с встроенными размерами==Dimension, то за один запуск макроса эти "*Dxxx" не пуржатся. Я даже вставил в макрос два раза _.-purge;_b;`*U*;_n;_.-purge;_b;`*D*;_n; но ничего не получилось - "*Dxxx" остаются. |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |