Форумы caduser.ru

  5
Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти  
Страницы: 1 2 3 4 5 ... 9 След.
RSS
ObjectARX. Расчленение и удаление proxy-объектов
Команда EXPLODEALLPROXY:
Расчленяет все proxy-примитивы (которые можно расчленить, т.е. программист при их создании не указал флаг нерасчленяемости), во всем чертеже.
Команда REMOVEALLPROXY:
Удаляет все proxy-объекты и proxy-примитивы (в том числе и те, которые имеют флаг неудаляемости). Ее удобно выполнять после EXPLODEALLPROXY - тогда она удалит все то, что не удалось расчленить.
==================================================­===
Для вызова из VisualLisp:
(ExplodeProxyEntity ent)
ent - имя примитива вида <entity name: 321456465465465>. Расчленяет только этот
примитив, даже если он входит в блок.
Например: (explodeproxyentity (car (nentsel)))
(ExplodeAllProxyInBlock "имя блока")
Этой функции можно передавать не только имя блока, но и имя примитива внутри блока.
Например: (explodeallproxyinblock (car (nentsel)))
расчленит все прокси в блоке, на который указали.
Функции возвращают следующие значения:
Код
0 success - успешное завершение
-1  parmerr - ошибка передачи параметра
-2  openerr - ошибка открытия proxy-объекта
-3  explerr - ошибка разбития proxy
-4  appenderr - ошибка добавления "состава" proxy в файл dwg.
-5  eraseerr  - ошибка удаления исходного объекта.
Во всех случаях, кроме success и appenderr, требуется провести _AUDIT для файла.
Кроме того обязательно (!!!) выполнить команду _AUDIT после вызова RemoveAllProxy
arx-файлы для AutoCAD 2000...2017 находятся здесь: http://www.maestrogroup.com.ua/suppor...eProxy.zip
Достаточно однократной загрузки соответствующего arx-файла в AutoCAD (при помощи команд _APPLOAD или _ARX), чтобы при следующих запусках AutoCAD этот arx-файл загружался сам.
В версии AutoCAD 2008 и выше команда RemoveAllProxy позволяет удалить неиспользуемые масштабы (AcDbScale) из списка масштабов.
Добавлено принудительное удаление неиспользуемых классов объектов/примитивов.
Изменено: Александр Ривилис - 15-04-2016 12:32:53
Как быть в случае (explodeproxyentity (car (nentsel))) = "-2"?
Присутствуют невидимые блочки в чужих блоках... созданные на отдельных слоях типа "1", "2"...
Разбивать и уничтожать блоки - нельзя!
Как бороться - не знаю smile:(
> iv (2006-12-07 14:44:04)
Это "блочки" или proxy-примитивы? Если это не proxy-примитивы - моя программа с ними ничего делать не будет!
А как узнать? И что делать если это блочки??
Извиняюсь за дилетантизм в этом вопросе. smile:) Поиск не помог к сожалению smile:(
> iv (2006-12-07 21:00:14)
Набрать в командной строке AutoCAD:
Код

(entget(car(nentsel)))

ткнуть в "неизвестно что" и поместить сюда то, что напечатает AutoCAD.
Один из простых примеров:
Select object: ((-1 . <Entity name: 7e46a180>) (0 . "LINE") (330 . <Entity
name: 7e46a0e8>) (5 . "8028") (100 . "AcDbEntity") (67 . 0) (8 . "0") (6 .
"Continuous") (100 . "AcDbLine") (10 -971.631 799.591 0.0) (11 -158.29 -13.4127
0.0) (210 0.0 0.0 1.0))
Их куча, а по хорошему ничего из себя не представляют - просто "картиночки" оборудования, которые впролне достойны быть внутри одного, корневого блока и на слое 0.
> iv (2006-12-08 12:26:51)
Это не ко мне.
Изменен алгоритм работы. Теперь proxy-объекты удаляются из чертежа даже если у них при создании был установлен флаг неудаляемости.
Программа полезная и удобная.
Добавил обработку заблокированных слоев в команды REMOVEALLPROXY и EXPLODEALLPROXY.
Уважаемый Александр Наумович.
А можно ли получить исходный текст Вашей программы. Очень нужная штука(я имею ввиду програму), но мне бы хотелось внедрить её в свою утилиту, да для позновательных целей не мешало бы разобраться. Спасибо.
PS. Так, на всякий случай AutoCAD 2007
> Vic (2007-12-19 07:42:40)
Напишите мне на e-mail. Подумаю, что смогу передать.
> Александр Ривилис (2006-12-06 00:32:53)
Программа не просто хороша она стала жизненно необходимой.
Спасибо автору!!!
> Yuriy (2008-04-27 00:51:25)
Да ладно уж... (краснею) smile:-)
Сегодня столкнулся с проблемой, которую Вы решили давно. Воспользуюсь ExplodeAllProxy (пришёл на сайт по совету Модератора dwg.ru), так как уверен в продукте заранее. Пользуюсь Вашими программами SelSim и GeomProps, и доволен, как наевшийся рыбы кот!
Где-то прочитал, что малодушные люди "бледнеют", а храбрые люди "краснеют".
"Краснейте" столько, сколько Вам и заблагорассудится!
> basf (2008-06-07 23:17:44)
Нужно использовать и ExplodeAllProxy и RemoveAllProxy.
И потом пойдут проблемы не копируются и не вставляются объекты.
Вот тут сразу как от них избавится.
ObjectARX. Расчленение и удаление proxy-объектов
http://www.caduser.ru/forum/index.php...&TID=31852
>>Valery Brelovsky
А масло то масляное!
(сравните ссылки)
Да, Валерий заблудился.smile:)
> Александр Ривилис (2008-06-08 00:30:28)
А так же и audit не помешает
При условии, что explodeproxy.arx загружен, макрос может быть таким
Код
^C^CEXPLODEALLPROXY;REMOVEALLPROXY;_AUDIT;_Y;_LAYERP;_LAYERP;
добрый день, у меня вопросик, набираю команду _explodeallproxy или _removeallproxy и мне пишет, что неизвестная команда smile:(
> Natashechka (2008-06-11 04:36:33)
Значит не загружен соответствующий arx-файл. В первом сообщении указано где его взять. В AutoCAD при помощи команды _APPLOAD нужно загрузить ExplodeProxy200X.arx
X зависит от версии AutoCAD.
Модифицированный вариант макроса с подгрузкой arx модуля отсюда:
Код

^C^C(if(not(member "explodeproxy200[B]X[/B].arx" (arx)))(arxload "explodeproxy200[B]X[/B].arx"));EXPLODEALLPROXY;REMOVEALLPROXY;_AUDIT;_Y;_LAYERP;_LAYERP;

Вместо X вписать
0 - 2002 Автокад
6 - 2004,2005,2006 Автокад
7 - 2007, 2008, 2009 Автокад
Вариант для 2004,2005 и 2006 Автокада
Код
^C^C(if(not(member "explodeproxy200[B]6[/B].arx" (arx)))(arxload "explodeproxy200[B]6[/B].arx"));EXPLODEALLPROXY;REMOVEALLPROXY;_AUDIT;_Y;_LAYERP;_LAYERP;

Сами arx модули можно взять по ссылке в 1-м посте
А можно эту же прокси переделать в line? Многие програмы создают проксиобъекты - не пропадать же добру. На сколько эта спецификация отличается от спецификации объекта Line
> Сантехник (2008-09-02 21:25:02)
Это раздел готовых программ.
Страницы: 1 2 3 4 5 ... 9 След.
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)