Анкерные системы Schöck Dorn
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

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

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

АлексЮстасу вне форума Вставить имя

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

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Пользовательские объекты обозначаются ACAD_PROXY_ENTITY
Если не загружен ObjectEnabler
Общий признак, мне кажется, только один - они не являются "базовыми" типами примитивов для ACAD.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 21.08.2017, 15:12
#3
trir


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


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

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


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

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


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

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


Дубль два Загружен обработчик такого типа объектов - поэтому он и не прокси. Запусти чистый ACAD, demandload в 2, перезапуск и после этого смотри на свою COGO
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 21.08.2017, 19:34
#7
АлексЮстасу

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


Цитата:
Сообщение от Кулик Алексей 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
С.-Петербург
Сообщений: 34,668


Если программист решит, что его примитив будет иметь имя класса "AcDbMyCoolEntityFigPoimesh", то так оно и будет (мне так каэцца). Так что подобная "фильтрация" может влегкую дать сбой.
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 21.08.2017, 21:59
#9
trir


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


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

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


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

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

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,151
Отправить сообщение для Александр Ривилис с помощью ICQ Отправить сообщение для Александр Ривилис с помощью 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
Москва
Сообщений: 2,541


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


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


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

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


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

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


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

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


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

электрик
 
Регистрация: 19.02.2010
Волгоград
Сообщений: 937
Отправить сообщение для 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
Сообщений: 2,374


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

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

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


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

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


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

Инженерные консультации
Опции темы Поиск в этой теме
Поиск в этой теме:

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему штриховка всех типов отображается как сплошная заливка при штриховки объектов? Dan0007 AutoCAD 2 27.03.2016 18:36
Помогите с чертежом виснет при выделении всех объектов 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

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


Размещение рекламы