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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > ObjectARX. Расчленение и удаление proxy-объектов

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

Ответ
Поиск в этой теме
Непрочитано 25.10.2007, 12:08 5 | #1
ObjectARX. Расчленение и удаление proxy-объектов
Profan
 
Москва
Регистрация: 25.12.2005
Сообщений: 13,627

Оригинал темы находится на форуме caduser.ru.

Автор программы Александр Ривилис.

Команда 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 для файла.
arx-файлы для AutoCAD 2004...2021 находятся здесь: https://adn-cis.org/assets/files
Важно! Перед применением обязательно читайте README.TXT - он существует не просто так и несет в себе необходимую информацию!

Последний раз редактировалось Кулик Алексей aka kpblc, 20.11.2020 в 19:42.
Просмотров: 558428
 
Непрочитано 25.10.2007, 13:42
#2
Кулик Алексей aka kpblc
Moderator

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


В процессе эксплуатации выяснились следующие тонкости, которые (как я думаю) просто отловить нереально:
1. При наличии ObjectEnabler'a для соответствующего софта объекты, распознаваемые ObjectEnabler'ом, не обрабатываются.
2. Объекты ADT (AA) в чистом AutoCAD'e соответствующей или более высокой версии не обрабатываются.
3. Объекты ADT 2006 в ADT 2005 не обрабатываются, хотя окно о наличии Proxy-графики показывается.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.10.2007, 14:35
#3
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
В процессе эксплуатации выяснились следующие тонкости, которые (как я думаю) просто отловить нереально:
1. При наличии ObjectEnabler'a для соответствующего софта объекты, распознаваемые ObjectEnabler'ом, не обрабатываются.
2. Объекты ADT (AA) в чистом AutoCAD'e соответствующей или более высокой версии не обрабатываются.
3. Объекты ADT 2006 в ADT 2005 не обрабатываются, хотя окно о наличии Proxy-графики показывается.
Для того, чтобы обрабатывались и эти объекты следует отключить загрузку "по требованию" (т.е. DEMANDLOAD установить в 0 или 2). И попробовать в этих условиях (после перезапуска AutoCAD, т.к. соответствующие dbx-и arx-файлы могли уже быть загружены). Ну а потом не забыть вернуть значение DEMANDLOAD назад.
Александр Ривилис вне форума  
 
Непрочитано 20.05.2008, 10:11
#4
Tasselhof


 
Регистрация: 11.10.2007
IT
Сообщений: 13


Господа, а нет ни у кого ARX для 2008 и 2009 версий ?
Tasselhof вне форума  
 
Автор темы   Непрочитано 20.05.2008, 10:19
#5
Profan


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


Этот вопрос может быть адресован только Александру Ривилису.
Profan вне форума  
 
Непрочитано 20.05.2008, 10:41
#6
VVA

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


Tasselhof, arx для 2007 работает и в 2008, и , наверное, в 2009 (не уверен)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 20.05.2008, 11:45
#7
Кулик Алексей aka kpblc
Moderator

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


Приложения, написанные для 2007, работают без перекомпиляции в 2008 и 2009.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.05.2008, 16:23
#8
Tasselhof


 
Регистрация: 11.10.2007
IT
Сообщений: 13


Спасибо.
Я немного ошибся при формулировке вопроса.
Автокад версии 2008 под WVB 64bit.
Насколько я понял проблема в том что ОС 64-х битная, а не в версии Автокада ?
Tasselhof вне форума  
 
Непрочитано 21.05.2008, 23:06
#9
Кулик Алексей aka kpblc
Moderator

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


Тут надо ждать Александра Ривилиса, а он сейчас, как я понял, в отпуске.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 22.05.2008, 07:32
#10
BarbiЁ

блондинка
 
Регистрация: 27.11.2007
Планета Плюк 215 в центуре, галактика Кин-Дза-Дза
Сообщений: 25


Тут даже я могу проквакать. Вот что написано в FAQ по AutoCAD 2009. Заодно и про LISP и про VBA.

Для 32-битной версии:

Цитата:
Приложения, написанные на языках программирования Visual LISP®, AutoLISP®, VBA, ActiveX® и ObjectARX®, а
также специализированные модули для AutoCAD 2007 вполне совместимы с 32-битной версией AutoCAD 2009.

Приложения, разработанные под AutoCAD 2004, 2005 и 2006 на языках VisualLISP и AutoLISP, также совместимы с AutoCAD 2009.

В некоторых случаях 32-битная версия AutoCAD 2009 поддерживает приложения, написанные под AutoCAD 2004, 2005 и 2006 на языке VBA. В других случаях такие приложения
требуется модифицировать.

Приложения, разработанные под AutoCAD 2004, 2005 и 2006 на основе ActiveX и ObjectARX, потребуется обновить для работы в AutoCAD 2009.
Для 64-битной версии:

Цитата:
Приложения, разработанные под AutoCAD 2004, 2005 и 2006 на языках VisualLISP и AutoLISP, совместимы с 64-битной версией AutoCAD 2009.

Компанией Autodesk было разработано переходное внепроцессное решение для пользователей, которые предпочитают работать с приложениями VBA в 64-битной версии AutoCAD. Однако, для постоянной работы с 64-битной версией AutoCAD потребуется преобразовать приложения VBA в VSTA.

Приложения, разработанные под AutoCAD 2007 в среде VBA, работают в 64-битной версии AutoCAD 2009 во внепроцессном режиме. Если в некоторых случаях приложения VBA для AutoCAD 2004, 2005 и 2006 могут работать во внепроцессном режиме, то в других может потребоваться их модификация.

Приложения, разработанные под AutoCAD 2007 на основе ActiveX и ObjectARX, потребуется обновить для работы в 64-битной версии AutoCAD 2009.

Приложения, разработанные под AutoCAD 2004, 2005 и 2006 на основе ActiveX и ObjectARX, потребуется обновить до версии 2007, чтобы облегчить последующий переход на 64-битную версию.

Вот так вот. LISP, он и в 2009 LISP. А вот VBA - то ли можут, а то ли не можут - науке неизвестно.
А то, что на C++ на 64 бит само собой надо перекомпилировать. Блондинке понятно.
__________________
Ох, как иногда хочется подумать!
BarbiЁ вне форума  
 
Автор темы   Непрочитано 22.05.2008, 07:51
#11
Profan


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


Это многим понятно. И Александра Ривилиса здесь ждут не для того, чтобы спросить - нужно ли перекомпилировать, а потому, что он - автор программы и перекомпилировать сможет (если захочет) только он.
Profan вне форума  
 
Непрочитано 22.05.2008, 09:52
#12
Кулик Алексей aka kpblc
Moderator

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


BarbiЁ, без обид, хорошо? Если AutoCAD 2008 32 bit запущен под 64-битной версией, там надо перекомпилировать приложения или нет? А если AutoCAD 64 bit, то там, по-моему, и подгрузить-то приложения 32-битные невозможно...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.05.2008, 07:43
#13
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Портировать свои приложения под AutoCAD'ы x64 я пока не собираюсь. Сейчас они работают только в 32-разрядных версиях AutoCAD.
Александр Ривилис вне форума  
 
Непрочитано 19.09.2008, 09:41
#14
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Не знаю, туда ли...
Файл походу побывал в AutoCAD MEP. А у меня голый 2008-й. При сохранении выдаёт такую картинку (см. вложение). Попробовал программу Александра Ривилиса: EXPLODEALLPROXY - не нашёл ничего, REMOVEALLPROXY - нашёл кучу объектов, удалил. Потом проверил аудитом. Всё равно картинка при сохранении появляется.
Следующие запуски программы ни кчему ни приводят - EXPLODEALLPROXY и REMOVEALLPROXY ничего не находят.

Я так понял, программа Александра Ривилиса удаляет грфические PROXY, а здесь вроде как не графические. Как их удалить? Может можно добавить возможность их удаления в программу?
Хотя может я всё и не так понимаю...

Короче вот файл (см. вложение). Я там удалил всё что ни попадя.

ЗЫ Вот ещё часть лога ком. строки при открытии файла. Может это что-то прояснит:
Цитата:
Загружается модуль База AD...
Загружается модуль Удлиненная AD-база...
Загружается модуль AD Базовый ИП...
Загружается модуль Проектная база AD...
Загружается модуль Данные спецификации AD...
Загружается модуль Спецификация AD...
Загружается модуль AEC Architectural Base...
Загружается модуль AD Базовые несущие элементы...
Загружается модуль База площадей AD...
Загружается модуль База AD-размеров...
Миниатюры
Нажмите на изображение для увеличения
Название: message.png
Просмотров: 1197
Размер:	9.6 Кб
ID:	10220  
Вложения
Тип файла: dwg
DWG 2004
test.dwg (93.0 Кб, 28255 просмотров)
Makswell вне форума  
 
Непрочитано 19.09.2008, 09:44
#15
Кулик Алексей aka kpblc
Moderator

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


Аттача нет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.09.2008, 10:28
#16
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Прошу прощения. Сразу почему-то не получилось приложить.
Makswell вне форума  
 
Непрочитано 19.09.2008, 10:33
#17
Кулик Алексей aka kpblc
Moderator

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


Такое ощущение, что делали в 2009 Или работаете в 2008, но сохранение выполняется в предыдущих версиях (а в АА, например, такой номер уже не прокатит).
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.09.2008, 10:52
#18
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Сразу скажу, файл не выходил за пределы нашей конторы. А у нас только AutoCAD 2008 и AutoCAD MEP 2008. И ещё несколько Автокадов предыдущих версий (в частности 2004). 2009-го нет.
Сохраняем в формате 2004-го. Это как раз из-за тех немногих, у кого остался 2004-й.

Скажу как есть.
Мы (т.е. инж.-строители) выдаем задание на отверстия смежникам в электронном виде (планы этажей в dwg). Смежники наносят свои отверстия в этом же файле, заполняют таблицу отверстий и возвращают файл нам. Насколько мне известно, работают они в MEP'е. И вот как раз после них файл становится таким.

Надо что-то с этим сделать, потому что нам ещё нужно работать с данным файлом дальше.

ЗЫ Кстати, попробовал сохранить в формате 2007 - прошло без проблем. Выход только такой?
Makswell вне форума  
 
Непрочитано 19.09.2008, 11:13
#19
VVA

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


У меня такое ощущение, что в MEP (возможно 2008, 2009) внедрены объекты вертикальных решений (например того же AA). Тогда в 2008 они не являются проксями, и плющилка от Александра Ривилиса их не опознает.
Вот что выдает 2006 Автокад (PROXYNOTICE=1)
В 2006 Автокаде REMOVEALLPROXY вычистила еще 362 объекта. Результат в файле test1.dwg
Кстати учти еще один факт: не имея никаких вертикальных рещений, сохраняя чертеж в формат 2004 из 2007, Автокады 2004-2006 могут вылетать.Autodesk выпустила для них hotfix'ы. Рекомендую поставить на оставшиеся 2004.
Выход пока у нас такой.
1. У всех пользователей PROXYNOTICE = 1.
2. Никаких object enabler'ов. Особенно в ранних версиях.
3. У пользователей нужно выработать рефлекс как у собаки Павлова: В случае появления окна о заместителях объектов сразу жать заветную кнопку.
4. Если пользователель работает в поздней (например 2008) версии, выставлено сохранение по умолчанию в 2004 и окно постоянно надоедает то:
- если у него есть чистый Автокад ранней (2006) версии, то открыть в нем и выполнить пункты 1,2,3
- если раннего Автокада нет, переслать мне для препарирования.
Миниатюры
Нажмите на изображение для увеличения
Название: test.png
Просмотров: 1319
Размер:	69.3 Кб
ID:	10227  
Вложения
Тип файла: dwg
DWG 2004
test1.dwg (80.7 Кб, 28205 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 19.09.2008, 11:47
#20
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


VVA, огромное спасибо. Теперь всё нормально.
Правда осталось нехорошее ощущение, что если, например, выставлено сохранение по умолчанию в 2007, то всё проходит тихо, а вот всякая гадость в файле остаётся. Не нравится мне это.

Offtop: Вообще-то я написал один эпизод путешествия файла - после которого происходит данная фигня. На самом деле приключения файла более разнообразные.
Сначала архитекторы рисуют Ревите, экспортируют планы в Автокад, потом мы берём эти планы, делаем основу смежникам в Автокаде, потом, как я уже говорил, смежники нам на выходе дают планы отверстий, которые они сделали в МЕР'е, ну а затем мы всё это дорабатываем в том же Автокаде.
Так что такая вот дикая связка: Ревит-Автокад-МЕР-Автокад
Makswell вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Готовые программы > ObjectARX. Расчленение и удаление proxy-объектов

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление объектов из пространства листа paradoxvaha Программирование 9 24.08.2007 14:25
Удаление объектов, сделанных недоступным ObjectARX-прил. жертва нашизма AutoCAD 11 25.07.2006 09:37
Удаление дублируюшихся объектов Арлинг AutoCAD 2 25.04.2004 13:56