Re: ObjectARX. Расчленение и удаление proxy-объектов

хмм... а что значит - "по возможности"?  То есть EXPLODEALLPROXY не все примитивы может расчленить в стандартные? В таком случае такой вопрос - а я смогу увидеть в логе выполнения, что какую-то графику я потерял в результате выполнения этих команд? Чертежи огромные бывают, "вручную" не уследишь...

Re: ObjectARX. Расчленение и удаление proxy-объектов

То есть EXPLODEALLPROXY не все примитивы может расчленить в стандартные?

Не все прокси-примитивы в принципе можно расчленить.

я смогу увидеть в логе выполнения, что какую-то графику я потерял в результате выполнения этих команд?

Нет.

Re: ObjectARX. Расчленение и удаление proxy-объектов

Александр, можно ли немножко усовершенствовать программу таким образом, чтобы можно было отследить, сколько графических примитивов было утеряно в результате работы связки команд EXPLODEALLPROXY и REMOVEALLPROXY?  Жизненно необходимо.
Например:
REMOVEALLPROXY
Всего найдено 39 proxy-объектов
Всего удалено 37 proxy-объектов
Из них 5 графических proxy-объектов
И вдогонку уточняющий вопрос - Explodeallproxy после расчленения, если оно прошло успешно - удаляет исходный прокси?

Re: ObjectARX. Расчленение и удаление proxy-объектов

И вдогонку уточняющий вопрос — Explodeallproxy после расчленения, если оно прошло успешно — удаляет исходный прокси?

Да. Если это возможно.

...можно ли немножко усовершенствовать программу...

Теоретически можно, а практически бессмысленно:
1) прокси-примитивы могут быть в составе блоков и соответственно удаление одного такого примитива приводит к удалению нескольких изображений (по количеству вставок).
2) прокси-примитивы могут и не иметь вообще никакого изображения или изображение, которое не имеет ничего общего с тем, которое бы было при наличии соответствующего Object Enabler.

Re: ObjectARX. Расчленение и удаление proxy-объектов

"...Теоретически можно, а практически бессмысленно:..." 
Общий смысл был не в том, чтобы узнать кол-во удаленных примитивов, а в том чтобы узнать были ли вообще графические прокси.
  Это важно, т.к. у нас например имеет место быть групповая работа над чертежами не только на уровне отдела и рабочей группы, но и на уровне предприятия. Я не могу с уверенностью сказать есть ли, в приходящих ко мне из другого отдела чертежах, объекты Civil3D, или нет. Это скажем так, заставляет меня слегонца нервничать, запуская ваши команды. Тащиться в другой отдел и выяснять кто конкртено делал чертеж и какие конкретно программные продукты он использовал (тут у нас просто есть несколько технологических цепочек выполнения чертежей - в зависимости от ситуации) - это очень большая потеря времени и для меня и для людей, которых я буду отвлекать от текущей работы. Чертежей ведь много. Другое дело, когда я буду это делать только действительно по необходимости - то есть если увижу, что были какие то прокси-примитивы.
ЗЫ: А без Вашей программы мы обойтись не можем - эпидемия прокси объектов в чертежах. Спасибо Вам кстати большое за Вашу работу.

Re: ObjectARX. Расчленение и удаление proxy-объектов

Спасибо Вам кстати большое за Вашу работу

Стараюсь. Сделал. Только назвал их не "графические прокси-объекты", а "прокси-примитивы" - это терминологически правильнее.

Re: ObjectARX. Расчленение и удаление proxy-объектов

Как то не так работает.
1.Открываю чертеж (там три объекта - две вставки блока и один прокси примитив)
2.Набираю RemoveAllProxy
3.Получаю след. лог:
Команда: removeallproxy
Первая метка объекта: <1>, последняя метка объекта: <DCB>
Всего найдено 1773 proxy-объектов
Всего удалено 1772 proxy-объектов
Из них 0 proxy-примитивов
Для проверки ошибок выполните команду _AUDIT
вот файл http://rapidshare.com/files/176533914/_ … 1.rar.html

Re: ObjectARX. Расчленение и удаление proxy-объектов

Исправил.

Re: ObjectARX. Расчленение и удаление proxy-объектов

Теперь список масштабов не чистит. Или вы это специально убрали?

Re: ObjectARX. Расчленение и удаление proxy-объектов

Теперь масштабы "сбрасывает". Аналогично -scalelistedit _r (во всяком случае должно).

Re: ObjectARX. Расчленение и удаление proxy-объектов

Спасибо, всё работает.

Re: ObjectARX. Расчленение и удаление proxy-объектов

СПАСИБО ОГРОМНОЕ! СПАСЛИ! =)
...и еще, для непродвинутых юзеров Автокада не сразу понятно, как эту программу вообще использовать. Для таких, как я:
- открыли нужный чертеж;
- далее в меню Assist/Load Application указать путь к файлам этой программы *.arx и Load;
- дале использовать команду ExplodeAllProxy и RemoveAllProxy.

Re: ObjectARX. Расчленение и удаление proxy-объектов

скажите, в 2009 будет работать?

Re: ObjectARX. Расчленение и удаление proxy-объектов

Работает в AutoCAD 2009 x86 (т.е. в 32-разрядных Windows XP и Vista)

Re: ObjectARX. Расчленение и удаление proxy-объектов

ОГРОМАДНОЕ СПАСИБО АВТОРУ!!!!!!!!!!!!!!!!

Re: ObjectARX. Расчленение и удаление proxy-объектов

Здавствуйте, Всем!
Спасибо Автору за прогу!
Однако при работе в некоторых чертежах все равно происходит зависание на 99%, именно когда запускаем ExplodeProxy2007.arx (от 26.12.08). Видимо зависание происходит при очистке масштабов (хотя список масштабов в этом чертеже не раздутый). То же при вводе scalelistedit. Автокад зависает. После завершения приложения через минуту вылетает окно ошибки с сообщением типа Microsoft visual C++ "R6025  - Pure virtual function call  " (сейчас не помню, как вылетит - напишу точнее.
По поиску в инете - пишут что ошибка в программе. Кто что думает. Попробую прикрепить файл.

Re: ObjectARX. Расчленение и удаление proxy-объектов

> Айрат
Для проверки мне нужны:
1) файл;
2) версия AutoCAD и Windows, наличие SP;
3) возникающее сообщение об ошибке.

Re: ObjectARX. Расчленение и удаление proxy-объектов

test

Re: ObjectARX. Расчленение и удаление proxy-объектов

Александр, спасибо  за отзывчивость,
Отправлю на на ваш email.

Re: ObjectARX. Расчленение и удаление proxy-объектов

Добавил запрос на очистку списка масштабов (в AutoCAD 2008 и 2009):

Очистить список масштабов? [Да/Нет] <Да>:

Причина - невозможность очистки списка масштабов в чертеже, переданном Айратом. Стандарная -SCALELISTEDIT _R так же не работала. Да и _PURGE тоже. Только после удаления всех прокси и аудита стало возможно очистить список масштабов.

Re: ObjectARX. Расчленение и удаление proxy-объектов

программа успешно удаляет прокси-объекты триангуляции созданные SCreator. Спасибо за помощь

Re: ObjectARX. Расчленение и удаление proxy-объектов

подскажите пожалуйста макрос на кнопку для акада 2009, что бы последовательно все выполнялось и аудит в конце запускался, а то как то не понятно с этим диалогом по очистке масштабов

Command: (if(not(member "explodeproxy2007.arx" (arx)))(arxload
"explodeproxy2007.arx"))
nil

Command: EXPLODEALLPROXY

Удалено Proxy: 0 Новых объектов: 0
Command: REMOVEALLPROXY

Первая метка объекта: <1>, последняя метка объекта: <EED>
Всего найдено proxy-объектов: 0. Из них proxy-примитивов: 0.
Очистить список масштабов? [Да/Нет] <Да>: _AUDIT

Invalid option keyword.

Очистить список масштабов? [Да/Нет] <Да>:

Всего удалено proxy-объектов: 0. Из них proxy-примитивов: 0.
Для проверки ошибок выполните команду _AUDIT

сейчас на кнопке:
^C^C(if(not(member "explodeproxy2007.arx" (arx)))(arxload "explodeproxy2007.arx"));EXPLODEALLPROXY;REMOVEALLPROXY;_AUDIT;_Y;_LAYERP;_LAYERP;

(изменено: Владимир Азарко, 16 марта 2009г. 18:05:48)

Re: ObjectARX. Расчленение и удаление proxy-объектов

Сергей, Причина в том, что появился дополнительный запрос.См Два поста выше
Поэтому макрос немного изменится (должен работать, но не проверял):

^C^C(if(not(member "explodeproxy2007.arx" (arx)))(arxload "explodeproxy2007.arx"));EXPLODEALLPROXY;REMOVEALLPROXY;_Y;_AUDIT;_Y;_LAYERP;_LAYERP;

Re: ObjectARX. Расчленение и удаление proxy-объектов

Владимир Азарко пишет:

Сергей, Причина в том, что появился дополнительный запрос.См Два поста выше

Поэтому макрос немного изменится (должен работать, но не проверял):

Код^C^C(if(not(member "explodeproxy2007.arx" (arx)))(arxload "explodeproxy2007.arx"));EXPLODEALLPROXY;REMOVEALLPROXY;_Y;_AUDIT;_Y;_LAYERP;_LAYERP;

Так понимаю что этот макрос позволит провести очистку от proxy объектов с AUDIT автоматически. Сейчас всё по очереди запускаю.  Для 2000 нужно только убрать из строки _LAYERP;_LAYERP;.
За программу для работы с полилиниями отдельное спасибо. Сегодня уже не представляю как без неё.

(изменено: Александр Ривилис, 18 марта 2009г. 08:03:27)

Re: ObjectARX. Расчленение и удаление proxy-объектов

Valery Brelovsky пишет:

Так понимаю что этот макрос позволит провести очистку от proxy объектов с AUDIT автоматически. Сейчас всё по очереди запускаю.  Для 2000 нужно только убрать из строки _LAYERP;_LAYERP;.

Да и _Y; после REMOVEALLPROXY тоже для 2000-ного (и 2004...2006) нужно убрать, т.к. в этих версиях них нет списков масштабов, точнее список масштабов в них - это обычные прокси-объекты, которые удаляются без запроса.