Пакетная очистка файлов dwg
Захотелось мне создать такой мини-опрос
Известно, что нередки ситуации, когда надо сто-двести-пятьсот файлов очистить от мусора. Известно, что есть решения на том же dwg.ru / caduser.ru / cadtutor.net / theswamp.org etc, решающие такие вопросы.
Собственно вопрос - надо ли создавать код для таких задач? Будет он использоваться? Вообще - надо ли? Или оставить все как есть?
Прошу ответы в комментариях. В ответах не приводите никаких ссылок (иначе срабатывает спам-бот, комментарий может запросто свалиться в спам, и его никто не увидит).
Version 0.1.0; исходник.
Ошибки и пожелания
- Для 2013 и 2014 версиий AutoCAD добавить проверку и удаление проксиобъектов
Добрый день Алексей! Пакетная чистка/обработка файлов просто необходима для объёмных файловых архивов, и в организациях где обращается большое количество файлов от сторонних организаций. Это всем понятно.
В связке *.bat + *.scr + *.lsp уже много лет использую твой clean.lsp к которому по мере необходимости прикручиваю программы Александра Ривилиса DWGconvert и ExplodeProxy.
Спасибо за труд!
Я к тому, что можно сделать лисп, в котором будет сразу все (ну или почти все) Чего не будет - так это проверки (_audit) файла и удаления неразбитых прокси (removeallproxy). Подобную задачу можно попытаться реализовать только на 2013 и 2014 AutoCAD'ах, т.к. только там есть консольные варианты вызова AutoCAD.
Собственно вопрос пока остается открытым - надо или нафиг?
Алексей, я бы проголосовал ЗА.
Ну, ближайшие две недели я вряд ли смогу заниматься этим делом плотно
Тем не менее в первом посте выложил ссылку. Тестируйте, копите баги После 5 ноября можно будет пообщаться
Ввиду увеличения пользователей 2013-2014 версий Автокада, думаю это предложение будет пользоваться вниманием.
Пакетная обработка документов - сам по себе полезный функционал и не имеет значения, выполняется ли там очистка или же какие другие действия.
Однако смешивать вместе код итерации по документам с кодом конкретных операций - это само по себе не самое хорошее (мягко говоря) решение: код итерации, по хорошему, должен быть отделён от кода модификации чертежа, что позволит одному и тому же коду итерации "скармливать" разный набор операций, выполняемых над каждым документом в цикле (например, коду итерации передаётся имя lisp файла, который следует выполнять в каждом документе).
Андрей, код получения указателя на документ и закрытия документа вынесен в отдельные подфункции (грубо говоря, определенные методы класса работы ObjectDBX). Код обработки файла - отдельно. Тот факт, что все идет "вместе внутри одной функции", ни на йоту не отменяет модульности разработки
Ты ж тоже не предоставляешь свои .NET-модули миллионами, правильно? Не пишешь один модуль для открытия файла и другой - для закрытия. Здесь точно так же.
чет не силен я в кодах лиспа.. как его использовать? на двг.ру читал статью об использовании, но тут все равно не понял как )
Так там же написано
Соответственно и запуск - в командной строке вбить bp
Скажите а почему у меня в 2013 и 2014 иногда можно поставить птичку Очистка прокси, а иногда нельзя. От чего это зависит. И еще интересует будите ли вы добавлять удаление прокси. Было бы очень полезно.
Скорее всего, в 2013 / 2014 не загружен arx от А.Ривилиса ExplodeAllProxy, поэтому галочка и недоступна.
К сожалению, сейчас полная запарка по работе, поэтому какие-либо конкретные сроки называть не рискну. Будет обновление,- я о нем сообщу. Здесь, на FaceBook и Twitter.
Такое приложение однозначно и абсолютно необходимо!
Тестирую вашу версию. Конечно хочется побыстрее удаление прокси.
Заметили глюк. Если чистить какой нибудь файл №1, в то время как открыт файл №2. То из файла №2 удаляются все созданные листы, остаются только стандартный "лист 1".
Получается чистить можно только из вновь созданного файла "Чертеж 1".
Странно. Я ж ничего не делал для удаления листов. Можете выслать пару-тройку файлов? Например, на Yandex.Drive или на любой файлообменник? Я попробую повторить.
Я проверял только что на AutoCAD 2013x32, AutoCAD2013x64, AutoCAD 2014x32, AutoCAD2014x64 (все обновления на AutoCAD установлены) - повторить не удалось
P.S. К сожалению, должен сознаться: в силу некоторых обстоятельств обновление + тестирование кода притормозилось
Скажите а для 2010 можно сделать что бы пакетная очистка файлов удаляла прокси. Просто версии выше 2010 не до конца удаляют неграфические прокси. И файл хоть и пустой всеравно много весит, а вот 2010 с этой задачей справляется на ура.
Не знаю как вам написать ссылку на файл с глюком, антиспам её съедает.
Еще один глюк. Пропали размеры после чистки, в 2010.
Вот путь к файлу (ВеВеВе точка fayloobmennik точка нет)
забыл добавить в конце (/3552561)
В 2010 надо выполнить загрузку пакета ExplodeAllProxy. Если этот arx не загружен, то и опция становится недоступной.
P.S. Я не забыЛ про обещания, но еще минимум полторы недели я на обучении, времени нет совершенно
Я не обнаружил никаких расхождений между обоими файлами.
пакета ExplodeAllProxy у меня стоит в автозагрузке. А из-за чего могут размеры исчезать, после чистки?
Максик, я просто открыл оба файла в разных сессиях AutoCAD 2014 (других просто на ноуте не было). Никакой разницы между ними я не увидел. Никаких операций я не проводил.
Возможно, это у тебя на машине что-то с отображением.
Точно это у меня глюк в 2010. Когда открываю в 2013 или 2014, то все нормально.
Просьба и предложение.
1.Заметил что если указывать при чистке определенную папку, в которой лежат файлы которые нужно почистить, то чистится только те файлы которые непосредственно в ней, а если в этой папке есть еще одна под папка, то те файлы которые лежат там не чистятся.
2.И еще заметил, что если в папке кроме DWG есть еще другие типы файлов, то проверяется первый попавшийся файл DWG, а затем программа натыкается на файл НЕ DWG и перестает проверять остальные.
Можно ли сделать что бы проверялись все файлы во всех папках, подпапках и подподпапках и т.д.
Не работает, после нажатия на ок ничего не происходит. Cad 2014