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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Очистка чертежа от мусора

LISP. Очистка чертежа от мусора

Ответ
Поиск в этой теме
Непрочитано 18.08.2014, 16:15 11 |
LISP. Очистка чертежа от мусора
gomer
 
строю, ломаю
 
Украина
Регистрация: 03.04.2008
Сообщений: 5,515

Выкладываю пилотный проект программы по очистке чертежа. Код не мой, я просто собрал кое-что до кучи
Надеюсь кому-нибудь да поможет

Применение
- Загрузить CleanDWG.vlx в автокад или CleanDWG.des в bricscad
- В командной строке набрать CLEANDWG

Замеченные ошибки
В Autocad 2013 En русские буквы в диалоговом окне отображаются некорректно. Обсуждение проблемы тут

Критика и предложения приветствуются

История изменений
31.03.2014 Программа обновлена до версии 1.3

Миниатюры
Нажмите на изображение для увеличения
Название: CleanDWG13.png
Просмотров: 7696
Размер:	39.4 Кб
ID:	147269  

Вложения
Тип файла: zip CleanDWG13.zip (19.1 Кб, 12436 просмотров)


Последний раз редактировалось gomer, 16.03.2016 в 18:02.
Просмотров: 181353
 
Непрочитано 29.09.2015, 17:57
#61
Bob_833


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


AutoCAD 2013
Bob_833 вне форума  
 
Автор темы   Непрочитано 29.09.2015, 18:55
#62
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Встречал подобный глюк на bricscad10. Рекомендую загружать не исходник, а CleanDWG.vlx - скомпилированный модуль, исходник я вложил для kpblc, ну и для будущих вундеркиндов. Из-за низкой скорости лиспа в автокаде использовать исходник строго не рекомендуется на тяжелых чертежах.
хм... только сейчас заметил лажу в архиве... Readme нет, исходнике не в папке для исходников... Моя вина конечно. Будет исправлено в следующем апдейте, если он случится...
gomer вне форума  
 
Непрочитано 14.10.2015, 13:04
#63
diek


 
Регистрация: 26.02.2007
от туда
Сообщений: 370


спасибо, большое человеческое
diek вне форума  
 
Непрочитано 03.12.2015, 17:46
#64
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Замечено, что удаление словарей ликвидирует экранные представления AutoCAD MEP.
Profan вне форума  
 
Непрочитано 03.12.2015, 17:52
#65
Кулик Алексей aka kpblc
Moderator

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


Просто надо удалять не все словари подряд, а фильтровать те, которые надо оставить "в живых". Я сам на таком же в свое время погорел )
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.12.2015, 18:49
#66
skkkk


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Просто надо удалять не все словари подряд, а фильтровать те, которые надо оставить "в живых".
А как их пометить, чтобы данная программа их не посносила? Видимо, удалять их следует не ею?
skkkk вне форума  
 
Непрочитано 03.12.2015, 21:40
#67
VVA

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


Там в архиве есть lsp файл. Фрагмент удаления словарей ниже. Самое сложное определить имя или имена словарей Mep
В коде не удаляются словари "ACAD_*" и "AcDb*"
Код:
[Выделить все]
;;; удаление словарей ________________________________________

      (if (checked-p "dicts")
        (progn 
          (setq cnt 0)
          (foreach & (entget (namedobjdict))
            (or (/= 3 (car &))
                (wcmatch (strcase (cdr &)) "ACAD_*")
                (wcmatch (cdr &) "AcDb*")
                (dictremove (namedobjdict) (cdr &))
            )
          )
          (princ "\nСловари удалены")
        )
      ) ;_ конец if
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 03.12.2015, 22:29
#68
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от skkkk Посмотреть сообщение
А как их пометить, чтобы данная программа их не посносила?
Эта возможность доступна в версии PRO. Шучу! Просто сейчас нет времени на доработку и к тому же каждая новая функция замедливает и без того не быстрый процесс очистки
gomer вне форума  
 
Непрочитано 03.12.2015, 23:02
#69
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Цитата:
Сообщение от VVA Посмотреть сообщение
Там в архиве есть lsp файл. Фрагмент удаления словарей ниже. Самое сложное определить имя или имена словарей Mep
В коде не удаляются словари "ACAD_*" и "AcDb*"
Видимо, надо добавить еще словари "AEC_", "AECB_", "AECS_"
Profan вне форума  
 
Непрочитано 04.12.2015, 00:53
#70
skkkk


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


Цитата:
Сообщение от VVA Посмотреть сообщение
Фрагмент удаления словарей ниже.
Вот и решение, похоже. От VVA обычно другого и не ждешь.
Цитата:
Сообщение от gomer Посмотреть сообщение
каждая новая функция замедливает и без того не быстрый процесс очистки
Думаю подобная проверка не займет сильно больше миллисекунды. А польза от нее ощутима.

Цитата:
Сообщение от Profan Посмотреть сообщение
Видимо, надо добавить еще словари "AEC_", "AECB_", "AECS_"
А по-хорошему вообще отрыть где-либо список всех возможных словарей из вертикалок (как минимум, префиксов) и тоже добавить.
Беглый поиск по Сети не увенчался у меня успехом, поэтому предлагается заинтересованным в топике обладателям вертикалок выудить их прям с поля боя. Этот пример из Полещука вернет список словарей:
Код:
[Выделить все]
 (mapcar 'cdr (vl-remove-if-not (function (lambda (x) (= (car x) 3))) (entget (namedobjdict))))
Однако, надо думать, что пока в чертеже не существуют, допустим
Цитата:
Сообщение от Profan Посмотреть сообщение
экранные представления AutoCAD MEP
- то и словаря этого нет. Но префиксы, думаю, можно для каждой вертикалки выловить таким образом.
А также надо не забыть добавить свои словари. И после этого спокойненько сносить все лишнее.
skkkk вне форума  
 
Автор темы   Непрочитано 04.12.2015, 01:22
#71
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от skkkk Посмотреть сообщение
А по-хорошему вообще отрыть где-либо список всех возможных словарей из вертикалок (как минимум, префиксов) и тоже добавить.
не получится без геморроя
gomer вне форума  
 
Непрочитано 04.12.2015, 07:43
#72
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Может, убрать вообще удаление словарей из программы?
Profan вне форума  
 
Автор темы   Непрочитано 04.12.2015, 10:02
#73
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Profan Посмотреть сообщение
Может, убрать вообще удаление словарей из программы?
Можно просто снять соответствующую галку
gomer вне форума  
 
Непрочитано 04.12.2015, 16:20
#74
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Можно снять, если знаешь, что она зарубит проект. А если не знаешь? Тогда, дескать, закрывай чертежа без сохранения. Только безобразие это не сразу обнаруживается, можно случайно и сохранить по "вредной" привычке сохранять чертеж после каждого телодвижения.
Profan вне форума  
 
Автор темы   Непрочитано 05.12.2015, 15:01
#75
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Profan Посмотреть сообщение
А если не знаешь?
Что по-твоему нужно сделать?
gomer вне форума  
 
Непрочитано 05.12.2015, 17:27
#76
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


В предыдущей версии не было этого поля и как-то обходились. Да и в команде "_-PURGE" ("-ОЧИСТИТЬ") в опциях не упоминаются словари.
Profan вне форума  
 
Непрочитано 16.12.2015, 16:54
#77
НиРо


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


Андрей, большое спасибо, ты не представляешь, хотя наверно представляешь))), какое благое дело сделал для людей работающих в САПР! Ну прям кланяюсь до земли!!!!!!!
НиРо вне форума  
 
Непрочитано 06.02.2016, 11:06
#78
Maks63708


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


Спасибо!!!!!!!!!!!!!!!!!!!!
Maks63708 вне форума  
 
Непрочитано 06.02.2016, 14:25
#79
engngr

сети
 
Регистрация: 03.11.2008
Московия*
Сообщений: 5,766


А будет (есть?) вариант для _-, то есть без диалогового окна?
engngr вне форума  
 
Автор темы   Непрочитано 06.02.2016, 15:57
#80
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от engngr Посмотреть сообщение
А будет (есть?) вариант для _-, то есть без диалогового окна?
Такая возможность не планируется. Во первых потому, что параметров достаточно много, во-вторых, процесс очистки занимает много времени и давать возможность консольного управления - это обречь себя на непонимание пользователя... слишком много есть таких кто любит загружать всяких хлам при загрузке...
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > LISP. Очистка чертежа от мусора

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему очистка чертежа не выполняется при наличии 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