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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Какой общий признак у всех пользовательских объектов?

Какой общий признак у всех пользовательских объектов?

Ответ
Поиск в этой теме
Непрочитано 21.08.2017, 14:40 #1
Какой общий признак у всех пользовательских объектов?
АлексЮстасу
 
топограф, технолог
 
Москва
Регистрация: 24.05.2009
Сообщений: 3,030

Пользовательские объекты обозначаются ACAD_PROXY_ENTITY. Но только вне приложений, в которых они созданы. В своих приложениях они обозначаются как авторы определили. "точка COGO", "продольный профиль" и т.п.
Есть, наверное, общий признак для всех пользовательских объектов?
__________________
количество моих сообщений не говорит о знании Автокада
Просмотров: 8039
 
Непрочитано 21.08.2017, 15:04
#2
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Пользовательские объекты обозначаются ACAD_PROXY_ENTITY
Если не загружен ObjectEnabler
Общий признак, мне кажется, только один - они не являются "базовыми" типами примитивов для ACAD.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.08.2017, 15:12
#3
trir


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


https://www.autodesk.com/techpubs/au...ity_dxf_06.htm
trir вне форума  
 
Автор темы   Непрочитано 21.08.2017, 15:12
#4
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Если не загружен ObjectEnabler
Общий признак, мне кажется, только один - они не являются "базовыми" типами примитивов для ACAD.
...Такой "отрицательный" признак. Очень зыбкий же?
"Положительный" бы, прямой.
Мало ли, какие типы примитивов в AutoCAD еще появятся. Может быть есть какие-то не документированные. И т.п.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 21.08.2017, 17:03
#5
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Цитата:
Сообщение от trir Посмотреть сообщение
https://www.autodesk.com/techpubs/au...ity_dxf_06.htm
Не скажу, что понял с этими DXF-кодами...
Например, смотрю с помощью ArxDbg точку COGO в Civil. Там виден признак, что она PROXY?
Миниатюры
Нажмите на изображение для увеличения
Название: COGO.png
Просмотров: 32
Размер:	29.1 Кб
ID:	192516  
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 21.08.2017, 18:07
#6
Кулик Алексей aka kpblc
Moderator

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


Дубль два Загружен обработчик такого типа объектов - поэтому он и не прокси. Запусти чистый ACAD, demandload в 2, перезапуск и после этого смотри на свою COGO
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.08.2017, 19:34
#7
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Дубль два Загружен обработчик такого типа объектов - поэтому он и не прокси. Запусти чистый ACAD, demandload в 2, перезапуск и после этого смотри на свою COGO
Я специально привел картинку из Civil, а не из чистого ACAD. Про наличие обработчика я был в курсе.
Я спрашивал trir и вообще посвещенных в DXF-коды ифсетакое, есть ли у, допустим, "точка COGO" признак, что она есть PROXY?

----- добавлено через ~58 мин. -----
Не может быть таким общим признаком различие "AcDb..." у полилиний и пр. и "AeccDb..." у точки COGO?
Что-нибудь вроде: если "AcDb...", то обычный примитив ACAD, а если что-то иное перед "Db...", то прокси?

----- добавлено через ~1 ч. -----
...А есть еще AcDbZombieEntity какие-то.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 21.08.2017, 20:37
#8
Кулик Алексей aka kpblc
Moderator

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


Если программист решит, что его примитив будет иметь имя класса "AcDbMyCoolEntityFigPoimesh", то так оно и будет (мне так каэцца). Так что подобная "фильтрация" может влегкую дать сбой.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.08.2017, 21:59
#9
trir


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


при demandload в 2, даже некоторые Acad объекты окажутся PROXY
trir вне форума  
 
Автор темы   Непрочитано 21.08.2017, 22:07
#10
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Если программист решит, что его примитив будет иметь имя класса "AcDbMyCoolEntityFigPoimesh", то так оно и будет (мне так каэцца). Так что подобная "фильтрация" может влегкую дать сбой.
Так это же волюнтаризм!
Цитата:
Сообщение от trir Посмотреть сообщение
при demandload в 2, даже некоторые Acad объекты окажутся PROXY
Умеете обнадежить!

Но ведь сам Автокад же знает, отображать элемент или нет, как отображать... Ему самому разве не нужен простой и прямой критерий?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 21.08.2017, 22:25
2 | #11
Александр Ривилис

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Но ведь сам Автокад же знает, отображать элемент или нет, как отображать... Ему самому разве не нужен простой и прямой критерий?
Критерий не в объекте (или примитиве), а в классе объекта (точнее в его имени). Если AutoCAD обнаруживает, что для класса объекта есть класс-обработчик (для этого он сканирует дерево классов), то этот класс-обработчик используется для работы с объектом. Если такой класс не находится, то объект становится прокси. Дерево классов-обработчиков строится из acad.exe, arx/dbx/dll-файлов самого AutoCAD или вертикальных продуктов и arx/dbx/dll-файлов сторонних приложений. В зависимости от того какие arx/dbx/dll-файлы загружены дерево классов может быть различным и соответственно в одном случае этот объект становится полноценным, а в другом - прокси.

Если у тебя установлен ARXDBG, то список классов-обработчиков ты можешь посмотреть при помощи команды ArxDbgSnoopSysRegistry

Последний раз редактировалось Александр Ривилис, 21.08.2017 в 22:32.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 22.08.2017, 04:38
#12
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Если AutoCAD обнаруживает, что для класса объекта есть класс-обработчик (для этого он сканирует дерево классов), то этот класс-обработчик используется для работы с объектом. Если такой класс не находится, то объект становится прокси.
Понятно.
Все-таки мой исходный вопрос не про то, что и когда воспринимается как прокси, а про пользовательские объекты. Про возможность определить в любом приложении, с любыми обработчиками, как бы ни назвали программисты классы, что такие-то объекты - пользовательские.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 22.08.2017, 04:57
#13
trir


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


неправильно вопрос ставишь
trir вне форума  
 
Автор темы   Непрочитано 22.08.2017, 07:53
#14
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Цитата:
Сообщение от trir Посмотреть сообщение
неправильно вопрос ставишь
Как правильно?
Да, пардон, я сам уже в 1-й фразе стартового сообщения, в других сбивался на прокси. А сам вопрос был в названии темы.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 22.08.2017, 08:45
#15
Александр Ривилис

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Понятно.
Похоже что не нет. Во всяком случае по продолжению вопроса.
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Про возможность определить в любом приложении, с любыми обработчиками, как бы ни назвали программисты классы, что такие-то объекты - пользовательские.
Все объекты AutoCAD пользовательские - никакого разделения нет. Дальше я продолжать не буду, так как программист поймёт то, что я написал выше, а тратить время на не программиста я не вижу смысла.
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 22.08.2017, 09:25
#16
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,030


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
Все объекты AutoCAD пользовательские - никакого разделения нет.
Offtop: Поделом мне! Мне программисты постоянно напоминают, что в километре 1024 метра. ))
А не получится с противоположного конца? Есть ли общий признак у стандартных примитивов AutoCAD? Т.е. отсутствие этого признака у Custom Entity?
Чтобы не перебирать все возможные стандартные. А в ближайшей же версии AutoCAD могут появиться новые стандартные...
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 22.08.2017, 10:12
#17
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
А не получится с противоположного конца? Есть ли общий признак у стандартных примитивов AutoCAD? Т.е. отсутствие этого признака у Custom Entity?
если я правильно понял уважаемого Александра Ривилис...
выгрузи или не загрузи класс отрезка или окружности из АК и они станут прокси.
в АК нет родных/неродных, есть с загруженными классами объектов все остальное прокси.
если например ввести команду
Код:
[Выделить все]
 (entGET(CAR(entSEL)))
на объект спдс с незагруженным энаблером, то для АК это (0 . "ACAD_PROXY_ENTITY")
а с загруженным энаблером (читай загруженным кллассом) (0 . "SPDSSTANDARDPART")
-------------------
зы АК сам решает прокси это или нет, в зависимости, подгружена библиотека или нет.
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 22.08.2017, 10:20
#18
trir


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


По идее все классы описанные в секции CLASSES относятся к PROXY

Цитата:
если я правильно понял уважаемого Александра Ривилис...
выгрузи или не загрузи класс отрезка или окружности из АК и они станут прокси.
в АК нет родных/неродных, есть с загруженными классами объектов все остальное прокси.
есть классы которые прописаны в ядре и их невозможно выгрузить, но для разных версий список будет разный...
trir вне форума  
 
Непрочитано 22.08.2017, 10:32
#19
doctorraz

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 2,293
Отправить сообщение для doctorraz с помощью Skype™


Offtop:
Цитата:
Сообщение от trir Посмотреть сообщение
есть классы которые прописаны в ядре и их невозможно выгрузить, но для разных версий список будет разный...
я не программист)) а это тонкости
просто попытался максимально понятно донести мысль
__________________
Мастерская СПДС
doctorraz вне форума  
 
Непрочитано 22.08.2017, 10:56
#20
Александр Ривилис

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Есть ли общий признак у стандартных примитивов AutoCAD?
Нет. Если бы было решение, то я бы его давно указал.
Цитата:
Сообщение от trir Посмотреть сообщение
есть классы которые прописаны в ядре и их невозможно выгрузить, но для разных версий список будет разный...
Да. Если быть точным, то они прописаны в acad.exe и acdbNN.dll. Это те классы, которые в принципе не могут стать прокси. Есть еще те, которые находятся в других arx/dbx/dll-файлах AutoCAD и в зависимости от того загружены они или нет, объекты этих классов будут нормальными объектами или прокси.
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Какой общий признак у всех пользовательских объектов?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему штриховка всех типов отображается как сплошная заливка при штриховки объектов? Dan0007 AutoCAD 3 13.08.2021 07:34
Помогите с чертежом виснет при выделении всех объектов sergant2la AutoCAD 12 28.02.2016 13:28
Изменить цвет всех объектов чертежа в т.ч. внутри блоков E_note AutoCAD 3 24.11.2015 16:22
Autocad Architecture 2012(rus), выбор объектов с которых нужно снять изоляцию или частичное завершение изоляции G-E-K Вертикальные решения на базе AutoCAD 8 23.05.2013 15:28
Макрос для удаления всех объектов в выбранном слое 6aman4ik Программирование 9 26.06.2009 00:26