| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
18.08.2014, 16:15 | 11 | | #1 |
LISP. Очистка чертежа от мусора
строю, ломаю
Украина
Регистрация: 03.04.2008
Сообщений: 5,515
|
||
Просмотров: 183173
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Добавь еще очистку параметрических зависимостей и историю твердых тел Можно заодно еще и словари посносить, но это только для варианта "невертикального" AutoCAD (ИМХО).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Очистка истории твердых тел какая-то есть. Насчет параметризации я пока не нашел "некомандный" способ для сего действия. В планах еще разобраться с с пустыми блоками, изображениями и внешними ссылками (код спилю у VVA из bgtools) и очистка прокси с помощью программы А. Ривилиса.
Алгоритм обработки текста самый простой пока, но это все поправимо |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Посмотри у меня на сайте - я делал все это.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Не думаю, что получится. Посмотри мой код http://autolisp.ru/2014/03/24/clear-dwg-at-opening/ - вроде бы работало. Нарисовать для этого кода dcl не проблема, но мне сегодня точно не до этого будет.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Более ли менее потестировал по всем пунктам - ошибок не нашел.
Критиковать - нос не дорос, а вот предложения - пожалуй (в добавок к #3): 1. Прикрутить бы туда удаление дубликатов из overkill'a. 2. Мое мнение: галочки на удаление точек и маскировок и групп по умолчанию лучше бы убрать. Думаю, их правильнее сознательно поставить, чем случайно посносить нужные объекты. А в идеале - запоминать галочки, выбранные ранее. Хотя бы в пределах сеанса, но неплохо бы и глобально. Как это сделать лучше - не знаю. Может в реестр писать или в текстовый файл? 3. Не смог создать пустой Мтекст (однострочник получилось), может, программно надо было - поленился. А вот текст, содержащий только пробелы, не удаляется. Жаль, потому что его нельзя выделить кроме как Ctrl+A. Может, добавить галку "Текст из пробелов"? Ну или под одну грубенку его, все равно не могу придумать от него практического толку - в топку. Беру на вооружение, спасибо, gomer. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Offtop: Если завтра будет время, опубликую графический вариант своего кода.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Тут я бы посоветовал макрос, так как overkill - самостоятельная команда со своим диалогом
Цитата:
Цитата:
Текст с маскировкой может быть полезен Сейчас программа выбирает только пустой текст. Придумаешь маску (условие пустоты) для выбора, добавлю. Вообще это не так просто, нужно выбрать все тексты и каждый проверить на наличие контента и уж потом удалить. Это займет больше времени, а я уже заметил, что на больших файлах программа может вызвать подвисание. В-общем нужно тестить. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Цитата:
Вариант №1: 1. Создаем для каждой галки запись в реестре. Шучу. Если это будет сумма битовых флагов, то записи хватит одной. 2. При запуске читаем эту запись. 3. При изменении пользователем набора галочек... чтобы узнать что будем делать, отправь смс на короткий номер Вариант №2: 1. Создаем в укромном местечке, а может и в той же самой папке, откуда запущен лисп (кстати, не об этом ли здесь?) текстовый файл и делаем туда запись суммы битовых флагов. 2. Далее как и в п.п. 2 и 3 варианта №1. Ну ладно, не в топку. То есть, если делать, то непременно отдельную галку? А маскированные пустые тексты, может, вообще удалять/не удалять вместе с маскировками? Пока слёту так и не могу придумать маску для n-ного количества пробелов. А заодно и "непустых" пробелов (те, что Ctrl+Shift+Space). А может и не надо, потому что - это как-то не айс. Реально долго это может быть. Если уж и делать такую галку, то с пометкой "долго" и выключенной по умолчанию ----- добавлено через ~1 ч. ----- Еще пару мыслей: 1. Линии нулевой длины. 2. Может, "плющилку" 2D? Или хотя бы обнуление уровня полилиний? В частности случаи, когда полилиния ведет себя как-то неадекватно. Попадались такие файлы, может, смогу найти - выложу. При выборе такой полилинии не видна ее центральная ручка (при GRIPS=2) , и при попытке потянуть за крайнюю ручку рядом с полилинией появляется начало координат, с осью, параллельной этой полилинии (СК объекта?). У таких полилиний уровень всегда ненулевой, и при попытке обнулить его через свойства полилиния просто пропадает из виду. Надеюсь, понятно объяснить получилось... Последний раз редактировалось skkkk, 20.08.2014 в 04:14. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Это не шутки, так и придется сделать, ведь
и сразу найдутся товарищи, кому не по нраву линии маленькой, но гордой, ненулевой длины. Точнее отрезки и скукоженные полилинии но это опять же лопатить. Знаю, спрашивал... Хотя лопатить все равно придется, если нужно будет чистить в блоках |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
Еще раз говорю - посмотри у меня на сайте (http://autolisp.ru/2014/03/24/clear-dwg-at-opening/). Вся очистка регулируется единственным параметром - битом. А разбираешь ты его уже внутри кода.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Тримить строку от пробелов и табуляции и проверять на пустоту.
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848
|
А заодно сносить форматирование...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Да, если мтекст и все что на его основе.
Offtop: Как же с этим проще в NET! Там напрямую из MTEXT без танцев с бубном можно прочитать строку без форматирования...
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Цитата:
----- добавлено через ~11 мин. ----- В смысле, только из-за линий нулевой длины придется делать запись в реестре для каждой галочки? Не пойму, почему так? |
|||
|
||||
Offtop:
Цитата:
Если убрать всю "обвязку" (используемые имена пространств, выбор объектов, открытие-закрытие объектов на запись и пр...), то все сводится к одной строчке: Код:
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Почему очистка чертежа не выполняется при наличии Object Enabler? | Xara | AutoCAD | 15 | 03.07.2014 11:50 |
Создание шаблона и очистка чертежа | Сержик | AutoCAD | 9 | 14.02.2013 23:06 |
LISP. Как запустить LISP программу при создании чертежа по шаблону? (Автоматическое заполнение основной надписи) | Do$ | LISP | 25 | 22.06.2011 15:39 |
очистка скана от мусора | grozd62 | Прочее. Программное обеспечение | 4 | 04.04.2011 21:41 |
LISP для очистки чертежа от дублирующихся объектов | Nikolays | AutoCAD | 5 | 13.12.2010 16:59 |