beliit.com
Форумы Проектант
ПОИСК ПО ФОРУМАМ
перед созданием новых тем используйте поиск,
возможно ответ на Ваш вопрос уже есть на форумах

Расширенный поиск
 
  • Всего пользователей - 21995
  • Всего тем - 31028
  • Всего сообщений - 288062
Страниц: 1 [2] 3 4  Все   Вниз
ВЕРСИЯ ДЛЯ ПЕЧАТИ

AutoCAD. Способы удаления лишних элементов файла чертежа и неиспользуемых фильтров слоёв?

Количество просмотров - 114901
(ссылка на эту тему)
Обученец
*
Участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #16 : 09 Сентября 2008 года, 16:22
(ссылка на это сообщение)

Команда: (defun c:mypurge() (repeat 3 (vla-purgeall (vla-get-activedocument
(vlax-get-acad-object)))) (command "_.-purge" "_r" "" "_n") (vla-AuditInfo
(vla-get-ActiveDocument (vlax-get-acad-object)) :vlax-false)
(_> mypurge

Почему так?! Надо ^C^C(defun c:mypurge() (repeat 3 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object)))) (command "_.-purge" "_r" "" "_n") (vla-AuditInfo (vla-get-ActiveDocument (vlax-get-acad-object)) :vlax-false);mypurge;) . ПРИЧЕМ с пробелом после последней скобки, чтобы не останавливалось.

Инженер-проектировщик (Бобруйск, Беларусь)
Qvinto
**
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #17 : 09 Сентября 2008 года, 16:28
(ссылка на это сообщение)

так я повесил макрос на кнопку, и он мне такое выдает после запуска.

Инженер-геодезист (Калуш, Украина)
Обученец
*
Участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #18 : 09 Сентября 2008 года, 16:39
(ссылка на это сообщение)

Мда с кнопки выдает, а при вставке в командную строку - нет. Надо ждать MIPа, т.к. я не знаю что удалять надо из записи (предполагаю, что дело в defun...).

Инженер-проектировщик (Бобруйск, Беларусь)
Qvinto
**
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #19 : 09 Сентября 2008 года, 17:30
(ссылка на это сообщение)

так это макрос для кнопки
^C^C(defun c:mypurge() (repeat 3 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object)))) (command "_.-purge" "_r" "" "_n") (vla-AuditInfo (vla-get-ActiveDocument (vlax-get-acad-object)) :vlax-false);mypurge;)
можно и в лисп засунуть, и лиспом запускать.

Инженер-геодезист (Калуш, Украина)
MIP
***
Куратор подраздела "GeoniCS"

MIP
Сейчас отсутствует Сейчас отсутствует
 
Сообщение #20 : 09 Сентября 2008 года, 21:31
(ссылка на это сообщение)

Проблемма решается просто.
Первоначальный код
Цитата
^C^C(defun c:mypurge() (repeat 3 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object)))) (command "_.-purge" "_r" "" "_n") (vla-AuditInfo (vla-get-ActiveDocument (vlax-get-acad-object))));mypurge;

Обратите внимание что ;mypurge; находится за скобками - это вызов функции mypurge определяемой в
Цитата
(defun c:mypurge() (repeat 3 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object)))) (command "_.-purge" "_r" "" "_n") (vla-AuditInfo (vla-get-ActiveDocument (vlax-get-acad-object))))

В моем посте предлагалось заменить часть кода
Код:
(vla-AuditInfo (vla-get-ActiveDocument (vlax-get-acad-object)))

на
Код:
(vla-AuditInfo (vla-get-ActiveDocument (vlax-get-acad-object)) :vlax-false)

В конечном итоге код выглядит следующим образом
Цитата
^C^C(defun c:mypurge() (repeat 3 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object)))) (command "_.-purge" "_r" "" "_n") (vla-AuditInfo (vla-get-ActiveDocument (vlax-get-acad-object)) :vlax-false));mypurge;

а не
Цитата
^C^C(defun c:mypurge() (repeat 3 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object)))) (command "_.-purge" "_r" "" "_n") (vla-AuditInfo (vla-get-ActiveDocument (vlax-get-acad-object)) :vlax-false);mypurge;)

Вот и все! [улыбка]
можно и в лисп засунуть, и лиспом запускать.

Можно, в принципе что и делает макрос, он именно инициализирует и запускает Лисп программу. [улыбка]

Инженер (Минск, Беларусь)
Обученец
*
Участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #21 : 09 Сентября 2008 года, 22:55
(ссылка на это сообщение)

Получается, что я запутал всех немного, но благодаря MIP похоже разобрались. Тема оказалась интересной, теперь буду только так чистить чертежи от не нужного мусора.

Инженер-проектировщик (Бобруйск, Беларусь)
Qvinto
**
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #22 : 10 Сентября 2008 года, 06:21
(ссылка на это сообщение)

Команда: (defun c:mypurge() (repeat 3 (vla-purgeall (vla-get-activedocument
(vlax-get-acad-object)))) (command "_.-purge" "_r" "" "_n") (vla-AuditInfo
(vla-get-ActiveDocument (vlax-get-acad-object)) :vlax-false))
C:MYPURGE

Команда: mypurge
_.-purge
Тип неиспользуемых объектов
[Блоки/Рзмстили/Слои/типыЛин/мАтериалы/Пстили/Формы/Тстили/Млстили/тблстИли/визУ
альные стили/Зарегприл/Все]: _r Имена удаляемых элементов <*>: Запрашивать
подтверждение на удаление каждого элемента? [Да/Нет] <Д>: _n Удаление
зарегистрированное приложение "ACAD_EXEMPT_FROM_CAD_STANDARDS".
Удаление зарегистрированное приложение "AcAecLayerStandard".
Удаление зарегистрированное приложение "AcLayerTools".
Удалено 3 зарегистрированные приложения.

Команда:

Проверка заголовка

Проверка таблиц

Проверка объектов, проход 1

Проход 1: проверено объектов: 2900
Проверка объектов, проход 2

Проход 2: проверено объектов: 2900
Проверка блоков

Проверено блоков: 3

Всего найдено ошибок: 0, исправлено: 0

Стерто 0 объектов

Команда: nil

Вот такое мне выдает при применении кода. У меня вопрос.
А почему в конце Команда: nil
Это остановка цикла, или ошибка? Или каких то аргументов не хватает?

Инженер-геодезист (Калуш, Украина)
MIP
***
Куратор подраздела "GeoniCS"

MIP
Сейчас отсутствует Сейчас отсутствует
 
Сообщение #23 : 10 Сентября 2008 года, 08:59
(ссылка на это сообщение)

А почему в конце Команда: nil
Это остановка цикла, или ошибка? Или каких то аргументов не хватает?

Ничего страшного, все команды написанные на Лисп в конце своей работы возвращают значение последней выполненной функции, в этом случае возвращаемое значение nil.
Если не хочешь чтобы оно выводилось замени макрос на
Цитата
^C^C(defun c:mypurge() (repeat 3 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object)))) (command "_.-purge" "_r" "" "_n") (vla-AuditInfo (vla-get-ActiveDocument (vlax-get-acad-object)) :vlax-false) (princ));mypurge;



Инженер (Минск, Беларусь)
Немо
**
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #24 : 15 Сентября 2008 года, 09:59
(ссылка на это сообщение)

У меня все  работает! Отличная штука, спасибо за нее всем писавшим!

Инженер-проектировщик (Минск, Беларусь)
Qvinto
**
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #25 : 15 Сентября 2008 года, 10:07
(ссылка на это сообщение)

А я что-то не очень доволен. [растерян]
Вставляю блок в чертеж, затем удаляю его. Провожу чистку. А код мне не сообщает, что удалил что-то лишнее. Почему?
И еще: Захожу в редактор блоков, редактируем блок, не выхожу из редактора провожу чистку. Все примитивы чертежа удаляются, а блок остается. [шок]
Не нравиться мне это совсем.

Инженер-геодезист (Калуш, Украина)
Немо
**
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #26 : 15 Сентября 2008 года, 10:26
(ссылка на это сообщение)

Захожу в редактор блоков, редактируем блок, не выхожу из редактора провожу чистку. Все примитивы чертежа удаляются, а блок остается.

Точно, есть такое! Но еще ни разу так сам не делал. Даже в голову не приходило редактировать блок и одновременно чистить чертеж. Надо все по порядку. Плохо конечно, но считаю не критично.

Инженер-проектировщик (Минск, Беларусь)
Qvinto
**
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #27 : 15 Сентября 2008 года, 10:35
(ссылка на это сообщение)


Даже в голову не приходило редактировать блок и одновременно чистить чертеж.

В голову должно все приходить. Случаи то ведь разные бывают.

Инженер-геодезист (Калуш, Украина)
Немо
**
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #28 : 15 Сентября 2008 года, 10:43
(ссылка на это сообщение)

Не спорю. Кстати на запуск команды _purge выдает:
Цитата
Команда: _purge ** Команда _PURGE недопустима в редакторе блоков. **
Разработчики ушли от данной проблемы запрещением очистки чертежа при редактировании блока.

Инженер-проектировщик (Минск, Беларусь)
MIP
***
Куратор подраздела "GeoniCS"

MIP
Сейчас отсутствует Сейчас отсутствует
 
Сообщение #29 : 15 Сентября 2008 года, 18:26
(ссылка на это сообщение)

А я что-то не очень доволен.
Вставляю блок в чертеж, затем удаляю его. Провожу чистку. А код мне не сообщает, что удалил что-то лишнее. Почему?

А что нужно чтобы сообщало? Макрос с программой сделаны чтобы удалять все неиспользуемое в чертеже автоматически без лишних вопросов.
Если хотите видеть что будет удалено запускайте просто команду _.purge и смотрите какие элементы есть в чертеже но не используются, и удаляйте только то что надо.
И еще: Захожу в редактор блоков, редактируем блок, не выхожу из редактора провожу чистку. Все примитивы чертежа удаляются, а блок остается.
Не нравиться мне это совсем.

Здрасте приехали! Нельзя запустить команду по очистке чертежа находясь в редакторе блоков, т.к. по сути выполняется другая команда. Так же нельзя запустить очистку и при редактировании внешних ссылок. Так устроена система.
Точно, есть такое! Но еще ни разу так сам не делал. Даже в голову не приходило редактировать блок и одновременно чистить чертеж. Надо все по порядку. Плохо конечно, но считаю не критично.

Трудно чистить и резать апельсин одновременно.
В голову должно все приходить. Случаи то ведь разные бывают.

А что мешает выйти из редактора блоков и почистить чертеж? В принципе если простматривать логику то при вызове команды "Очистить" должна завершится команда "Редактор блоков" с вопросом о сохранении внесенных в блок изменений и запуститься команда "Очистить". В принципе оно так и работает для многих простых команд Автокада, но как я понимаю есть тонкости в самом редакторе блоков.

Инженер (Минск, Беларусь)
Qvinto
**
Активный участник форумов


Сейчас отсутствует Сейчас отсутствует
 
Сообщение #30 : 16 Сентября 2008 года, 06:20
(ссылка на это сообщение)

А что нужно чтобы сообщало?

Так хочу знать чего и сколько он удаляет. Зачем тогда выдавать сообщение: Стерто 0 объектов? Или эти сообщения о проверке чертежа?
Тогда пускай так и будет. Раз там все нормально работает.

Инженер-геодезист (Калуш, Украина)
Страниц: 1 [2] 3 4  Все   Вверх
ВЕРСИЯ ДЛЯ ПЕЧАТИ



Сейчас Вы - Гость на форумах «Проектант». Гости не могут писать сообщения и создавать новые темы.
Преодолейте несложную формальность - зарегистрируйтесь! И у Вас появится много больше возможностей на форумах «Проектант».


Здравствуйте, Гость
Сейчас Вы присутствуете на форумах в статусе Гостя.
Для начала общения надо зарегистрироваться или пройти авторизацию:
Вам не пришло письмо с кодом активации?
 
 
  (забыли пароль?)  
   

если Вы не зарегистрированы, то
пройдите регистрацию
Последние сообщения на форуме «Программное обеспечение Autodesk»
автор: Vikkkkktor
Вчера в 22:58

автор: Маркос
16 Апреля 2024 года, 09:38

автор: Trust Me
09 Апреля 2024 года, 21:02

автор: Антониони
19 Марта 2024 года, 07:08

автор: Mclaud 72
09 Марта 2024 года, 00:51

автор: Posetitel
27 Февраля 2024 года, 14:19

автор: Mike_Moke
26 Февраля 2024 года, 15:10

автор: Файруза
26 Февраля 2024 года, 14:12

автор: Val
17 Ноября 2023 года, 07:52

автор: shalva
13 Ноября 2023 года, 17:06

автор: kollega_
29 Сентября 2023 года, 09:05

автор: Антониони
12 Мая 2023 года, 14:01

автор: Настачка
06 Мая 2023 года, 18:27

12 Апреля 2023 года, 08:38

автор: Антониони
31 Марта 2023 года, 07:53


Сейчас на форуме:
Сейчас на форумах: гостей - 484, пользователей - 7
Имена присутствующих пользователей:
Dizel 2012, Electrik 1998, doctorRaz, Александр ЭОМ, Чистильщик, Evdbor, VadGKorn
Контактные данные| Партнёрская программа | Подробная статистика
Настройка форумов © «Проектант» | Конфиденциальность данных
Powered by SMF 1.1.23 | SMF © 2017, Simple Machines