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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Статистика об XData в dwg

Статистика об XData в dwg

Ответ
Поиск в этой теме
Непрочитано 22.07.2021, 19:50
Статистика об XData в dwg
АлексЮстасу
 
топограф, технолог
 
Москва
Регистрация: 24.05.2009
Сообщений: 2,963

Для общего анализа dwg и объектов.

Может быть что-то подобное на лиспе или др. уже существует?
Выводить статистику об XData в dwg. Для всего dwg или для выбранных объектов.
Использовать выбранные объекты, если не выбраны, то запрос выбора.
Отобразить, например, как на картинке. Вместо Object Data писать XData, конечно.

Сколько всего объектов, сколько Apps XData, сколько объектов с XData, сколько объектов без XData, у скольких объектов несколько Apps, для каждого из App XData - у скольких объектов.
Особенность - определить и отобразить, какие App XData имеют одновременно разные описания. Т.е. название App одно и тоже, а количество кодов, последовательность разные.
Например, отметить такие Apps обозначением DD - от Different Definition (или Different Description - не знаю, как правильнее).
Простейший пример приложен. По-разному определены MYAPP (у полилиний, у Civil/Proxy) и ACAD (у размера и штриховки) - разное число и тип данных.

Вывести статистику в свое окно. (Возможно, аналогичное AutoCAD Message или т.п. - не знаю, что на лиспе возможно).
Желательно с возможностью копирования этих данных. Чтобы анализировать и после закрытия окна.
Лучше, чтобы данные были сразу выделены.

Миниатюры
Нажмите на изображение для увеличения
Название: odedit_stat.png
Просмотров: 130
Размер:	27.3 Кб
ID:	239149  

Вложения
Тип файла: dwg
DWG 2004
XData_Different_Definition.dwg (583.9 Кб, 16 просмотров)

__________________
количество моих сообщений не говорит о знании Автокада
Просмотров: 8833
 
Автор темы   Непрочитано 17.11.2021, 15:16
#41
АлексЮстасу

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


Цитата:
Сообщение от trir Посмотреть сообщение
сказки, 0.0001% - ближе к правде
к моему большому сожалению...
Согласен, но это другая история. Действительно, у нас очень часто используют Map 3D как простой AutoCAD. И 2-3 возможности Map 3D.
Кто использует сам Map 3D, тот применяет либо Object Data, либо Feature (Object) classes, либо объекты sdf.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 17.11.2021, 15:28
#42
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,497


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Как и любая статистика - оценить предмет. Что есть, чего нет, какое и сколько. Чтобы в общем оценить, предусмотреть соответствующие действия и т.п.
Ничего не понял.
Возьму простейший пример, список замороженных слоев для конкретного видового порта автокад хранит в XData, поменять этот список можно напрямую редактируя XData или использовав соответствующие методы видового порта и вот еще упомянутый выше пример с Ревитом, в XData примитива пишется Id элемента (еще ряд параметров) которому принадлежала эта линия при экспорте. Допустим у меня пара тысяч таких файлов экспортированных из Ревит в dwg, в которых я с помощью заморозки в видовых портах оформил и подготовил к печати листы, так же настроил анатативность для размеров (это тоже пишется в XData).

Вот для этой кипы файлов я получаю статистику и могу ответить на вопросы: Что есть? чего нет? какое? и сколько?, но что мне делать с ответами на эти вопросы, для чего мне эти ответы?
"предусмотреть соответствующие действия", что Вы хотите предусмотреть? какие действия?
__________________
_бложиг
Boxa вне форума  
 
Непрочитано 17.11.2021, 15:59
#43
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,771


эта мантра
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Как и любая статистика - оценить предмет. Что есть, чего нет, какое и сколько. Чтобы в общем оценить, предусмотреть соответствующие действия и т.п.
напоминает обратный инжиниринг (Обратная разработка). Правда обратный инжиниринг обычно делается все-таки под конкретные задачи, а не как абстрактное созерцание случайных XData в позе лотоса на закате)
Сергей812 вне форума  
 
Автор темы   Непрочитано 17.11.2021, 16:37
#44
АлексЮстасу

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


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

Если пользователи сами применяют XData, получают файлы от соисполнителей или извне, то им хорошо бы знать, что и как в таких dwg с XData.
Как минимум, есть ли они там вообще. Узнают, передали ли им полные данные или без нужных XData (если они нужны).
В частности, могут увидеть, есть ли там XData с названиями, которые они используют сами. Чтобы не возникало путаницы при слиянии или переносе данных.
И т.п.

Посмотрите, кстати, на этих Ваших файлах вторую близкую программу - XDTOOLS_CHECK. Она покажет возможные проблемы с и из-за XData.
Она, конечно, тоже тормознутая, хотя и раза в три побыстрее - писал же начинающий.

Хорошо бы посмотреть такие интересные файлы. Можно не публично.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 17.11.2021, 17:07
#45
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,771


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Если пользователи сами применяют XData, получают файлы от соисполнителей или извне, то им хорошо бы знать, что и как в таких dwg с XData.
типа без XData мусора не хватает в файлах от смежников...
Сергей812 вне форума  
 
Непрочитано 17.11.2021, 17:25
#46
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,497


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Если пользователи сами применяют XData, получают файлы от соисполнителей или извне, то им хорошо бы знать, что и как в таких dwg с XData.
Как минимум, есть ли они там вообще. Узнают, передали ли им полные данные или без нужных XData (если они нужны).
Пользователи в большинстве своем не знают как автокадом пользоваться, не могут настроить шаблоны и стандарты, не знают, что такое подшивка, да просто не могут сделать для себя динамические блоки нормальные, а Вы им про XData...
Если я от коллеги на работе услышу про полноту и целостность XData для переданных или принятых файлов, я сначала, мягко говоря, офигею, а потом начну искать попа, для изгнания беса поработившего коллегу.

Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
В частности, могут увидеть, есть ли там XData с названиями, которые они используют сами. Чтобы не возникало путаницы при слиянии или переносе данных.
Я бы на это посмотрел, как пользователи контролируют десятки тысяч записей и проверяют их корректность при переносе или слиянии... Как в упомянутом примере с Ревит, вот прям пользователь смотрит на Id элемента записанный в XData и сверяет с проектом в Ревит... руками... для каждого из тысяч элементов dwg файла... ага.

Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Посмотрите, кстати, на этих Ваших файлах вторую близкую программу - XDTOOLS_CHECK. Она покажет возможные проблемы с и из-за XData.
Она, конечно, тоже тормознутая, хотя и раза в три побыстрее - писал же начинающий.
Проблемы.... ух ты... поясните, как список приложений и количество Xdata помогут мне выявить проблемы?
Автокад вылетел с фаталом... Ага!!! Тут виноват XData, нужно поправить.... Ну на, ну да, ведь при фатале прямо написано, Xdata какого объекта вызвало ошибку и из-за какого приложения... Угу.
Да и какие могут быть проблемы, если любой вменяемый разработчик понимает, что доверять этим данным нельзя, перезаписать и извратить их может кто угодно, и относится к ним нужно очень осторожно, фильтруя и перепроверяя все что там записано.

Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Хорошо бы посмотреть такие интересные файлы. Можно не публично.
Так сделайте их самостоятельно, как их сделать я описал или этого описания не достаточно? Это ремарка/шпилька на тему владения обычным автокадом пользователями....

И Вы так и не ответили на вопрос: Какие действия Вы хотите предусмотреть по результатам получения статистики?
__________________
_бложиг

Последний раз редактировалось Boxa, 17.11.2021 в 17:30.
Boxa вне форума  
 
Непрочитано 17.11.2021, 17:55
#47
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,771


Цитата:
Сообщение от Boxa Посмотреть сообщение
что доверять этим данным нельзя, перезаписать и извратить их может кто угодно, и относится к ним нужно очень осторожно, фильтруя и перепроверяя все что там записано.
Ну можно попробовать тем же хэшом контролировать, еще и зашифровав его от шаловливых ручек изучающих.
Сергей812 вне форума  
 
Автор темы   Непрочитано 17.11.2021, 22:19
#48
АлексЮстасу

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


Вы давным-давно уже могли бы заметить, что Ваши недоумения от того, что Вы не можете посмотреть на предмет как пользователь, а не как программист.
Цитата:
Сообщение от Boxa Посмотреть сообщение
Пользователи в большинстве своем не знают как автокадом пользоваться..., а Вы им про XData...
Ничего оригинального - с XData как со всем остальным. Обученные показывают остальным не как делать блоки, шаблоны и пр., а какие команды вызывать, чтобы получить нужное. Тем, кто чертит, не нужно забивать голову ни про устройство динамических блоков, ни про создание шаблонов и пр. XData - им это нужно выдавать заготовленное. Не в последнюю очередь, чтобы у всех было стандартизовано и унифицировано.

Для пользователей (и для меня) слово "XData" не означает то же, что для программистов. Для пользователей это условное название конкретно этого способа работы с описательными данными. Пользователю только нужно знать, что в данном случае для описательных данных ему нужно присоединить это нечто к объекту, и в окне такой-то команды ввести нужные значения - нужные характеристики сущностей, с которыми он работает. Такими-то командами можно их просматривать/редактировать, выбирать, проверять и экспортировать. Т.е. пользователь работает не с XData (или т.п.), а с обозначением сущностей объектов и с их характеристиками посредством соответствующих команд. Хотя и в XData (или в т.п.).
Цитата:
Сообщение от Boxa Посмотреть сообщение
Как в упомянутом примере с Ревит, вот прям пользователь смотрит на Id элемента записанный в XData и сверяет с проектом в Ревит... руками... для каждого из тысяч элементов dwg файла... ага.
Причем в данном случае пользователь? XData, нужные для работы программ, пользователя не касаются, не интересуют. Пользователя, который применяет XData, интересуют те, которые несут нужную ему информацию, в которых определяются нужные ему описательные данные.
Цитата:
Сообщение от Boxa Посмотреть сообщение
Какие действия Вы хотите предусмотреть по результатам получения статистики?
Например:
1. Пользователь увидит общее количество объектов и объектов с нужными ему XData. Если все объекты для его работы должны быть с XData определенных им/ему названий, то он оценит полноту работы.
2. Пользователь сможет сравнить количество объектов какого-то типа с количеством соответствующих XData. И, соответственно, доработать.
3. Пользователь найдет одноименные XData, имеющие различный состав данных. И увидит необходимость исправлений.
4. В т.ч. он сможет контролировать полноту и правильность присоединения XData, запуская программу статистики для однотипных объектов dwg. И, соответственно, присоединить к нужным объектам соответствующие XData или, наоборот, отсоединить.
5. Пользователь увидит, что каких-то нужных XData не хватает. И сможет дополнить данные.
6. Пользователь увидит лишние XData. Которых не должно быть - он сможет удалить. Или оставить, если нужны для другого.
В целом: для общего представления о данных, для их контроля и для принятия соответствующих решений и действий. Все - как и при получении статистики (общих сведений) вообще о любом интересующем предмете. Хотите узнать о слоях в dwg - открываете диспетчер слоев. Интересует демография - берете статистику о народонаселении...
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 18.11.2021, 00:02
#49
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,771


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
1. Пользователь увидит общее количество объектов и объектов с нужными ему XData. Если все объекты для его работы должны быть с XData определенных им/ему названий, то он оценит полноту работы.
2. Пользователь сможет сравнить количество объектов какого-то типа с количеством соответствующих XData. И, соответственно, доработать.
3. Пользователь найдет одноименные XData, имеющие различный состав данных. И увидит необходимость исправлений.
4. В т.ч. он сможет контролировать полноту и правильность присоединения XData, запуская программу статистики для однотипных объектов dwg. И, соответственно, присоединить к нужным объектам соответствующие XData или, наоборот, отсоединить.
5. Пользователь увидит, что каких-то нужных XData не хватает. И сможет дополнить данные.
6. Пользователь увидит лишние XData. Которых не должно быть - он сможет удалить. Или оставить, если нужны для другого.
Если пользователь начнет вручную (даже с помощью набора утилит) проверять и править XData - на свою основную работу у него уже банально не будет времени) Но бесполезно это вам это говорить, потому что в голове у вас давно перемкнуло - служебный скрытый локальный механизм хранения данных для программистов пытаетесь втюхать бедным пользователям)
Сергей812 вне форума  
 
Непрочитано 18.11.2021, 10:10
| 1 #50
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,497


АлексЮстасу, извините, но весь Ваш пост №48 противоречит сам себе. Сначала Вы пишете, что пользователю никакие XData не нужны, ему нужен готовый продукт, а во второй половине поста описываете как пользователь правит именно XData...
Но, Вы правы, пользователю нужен готовый продукт, готовая программа с которой он работает и которая выдает нужный ему результат, а как эта программа хранит свои данные, в XData, в Extension Dictionary или еще где то, пользователю плевать. И даже если пользователь узнает, что его любимая програмуля хранит данные в Xdata и там же лежат данные еще нескольких программ, это ничего не изменит.
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Причем в данном случае пользователь?
При том, что Вы пытаетесь навязать пользователю проверку целостности данных, хранящихся в XData и я Вам привел пример, как это будет выглядеть.
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
XData, нужные для работы программ, пользователя не касаются, не интересуют.
ВОООООТ!!! Прочитайте еще раз свою цитату, медленно, вдумчиво, смакуя... не торопитесь, дайте этой цитате настояться в голове


ЗЫ.
Вы дали очень интересный набор пунктов в конце, но позвольте я его немного отредактирую, для иллюстрации....
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Например:
1. Пользователь увидит общее количество объектов и объектов с нужными ему XData цветом. Если все объекты для его работы должны быть с XData цветом определенных им/ему названий, то он оценит полноту работы.
2. Пользователь сможет сравнить количество объектов какого-то типа с количеством соответствующих XData цвета. И, соответственно, доработать.
3. Пользователь найдет одноименные XData одинаковые объекты, имеющие различный состав данных цвет. И увидит необходимость исправлений.
4. В т.ч. он сможет контролировать полноту и правильность присоединения XData задания цвета, запуская программу статистики для однотипных объектов dwg. И, соответственно, присоединить к придавать нужным объектам соответствующие XData цвета или, наоборот, отсоединить.
5. Пользователь увидит, что каких-то нужных XData цветов не хватает. И сможет дополнить данные.
6. Пользователь увидит лишние XData цвета. Которых не должно быть - он сможет удалить. Или оставить, если нужны для другого.
Надеюсь эта иллюстрация поможет Вам понять, что статистика "цветов" объектов в автокаде, сама по себе, ничего не значит.
__________________
_бложиг
Boxa вне форума  
 
Автор темы   Непрочитано 20.11.2021, 18:46
| 1 #51
АлексЮстасу

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


Цитата:
Сообщение от Boxa Посмотреть сообщение
Сначала Вы пишете, что пользователю никакие XData не нужны, ему нужен готовый продукт, а во второй половине поста описываете как пользователь правит именно XData...
Противоречие есть. Но оно в другом. Это то, что я помянул выше - это противоречие отношения к программным средствам/инструментам программистов и пользователей.
Часть внимания пользователей всегда вынужденно отвлечена на применяемые средства/инструменты. Для пользователей - это издержки при решении своих задач. Т.е. работы с данными. Пользователям в пределе нужно, чтобы эти издержки исчезли.
В той же статистике пользователя интересует не статистика об XData (или т.п.), а есть/нет, чего и сколько в XData (или в т.п.), предназначенных для нужных пользователю данных. Т.е. пользователя интересуют сначала и всегда сами данные.
А Вы - как программист - естественно, видите сами XData (или т.п.). Т.е. сами программные средства и инструменты для Вас естественное главное.

И под готовым продуктом мы с Вами (и другими программистами) в данном случае понимаем разное.
В данном случае, для XData (или т.п.) для пользователей нужен продукт-"удочка". Т.е. свободный набор инструментов общего назначения.
А программисты понимают продукт-"рыбу". Т.е. заказы под конкретные пользовательские задачи.
Не сомневаюсь, что часть программистов понимает, что я имею в виду "удочку". Похоже, что именно это и является настоящей причиной непримиримого оппонирования.

Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
расставь по коду (после завершения
выборок, циклов и т.п.) с десяток "выводов текущего времени".
Увидишь, какой блок программы тратит самое большое время.
Еще раз спасибо! Вы - единственный, кто дал совет по делу.
Автор не мог выбросить код, как советовали профессионалы. Поскольку он совсем неопытный новичок.
Он нашел критичный фрагмент таймерами, как смог переделал, и теперь XDTOOLS_STAT для того тяжелого файла у меня выполняется за 13-14 секунд чистого времени. Все остальное - выделение с ручками, вывод в окно и пр. - занимает сам AutoCAD.
Учитывая, что у очень опытных профессиональных программистов за 10 секунд решалась примерно половина задачи, то этот результат совсем не плох же?
К тому же эти 13-14 секунд - на моей не мощной машине (Win7, 3.2 гГц, 16 гб памяти, проблемный не SSD диск) и в AutoCAD 2018.

Ни автор XDTOOLS_STAT, ни я и не сомневаемся ничуть, что программа написана очень-очень слабо. Поэтому советы по делу или альтернативные коды были бы полезны.
Издевательства же над совершенным новичком, глумление над лишенными каких-то способностей тоже полезны. Они показывают, чем являются позволяющие себе это люди.
Для меня же главное, если программа полноценно и без доп. проблем выполняет свою задачу. Пусть и написана ужасно.
Вложения
Тип файла: lsp XDTOOLS_STAT.lsp (9.9 Кб, 6 просмотров)
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 22.11.2021 в 16:31.
АлексЮстасу вне форума  
 
Непрочитано 20.11.2021, 19:31
#52
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,771


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
за 10 секунд решалась примерно половина задачи, то этот результат совсем не плох же?
не за 10 сек, а за 200+мс. И там проходит по всем расширенным данным, просто не фиксируются данные кроме имен. Если и их собирать - то времени не намного больше будет (основные затраты времени на получение данных из акада, имхо). Но здесь дело не только в скорости работы, а что утилита для изучения чего либо на чертеже с окнами вместо нормальной стандартной палитры - это издевательство над пользователями в 2021 году. Но лисп не умеет напрямую работать с палитрами, только через прокладки из более "свежих" языков программирования.
Сергей812 вне форума  
 
Автор темы   Непрочитано 10.01.2022, 23:53
#53
АлексЮстасу

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
13-14 секунд - на моей не мощной машине (Win7, 3.2 гГц, 16 гб памяти, проблемный не SSD диск) и в AutoCAD 2018.
Еще в два раза быстрее - 6 секунд.
От того же автора, XDTOOLS_STAT-v-0-3.lsp.

Незадолго до этого появился с нуля написанный очень быстрый вариант от koMon, get_xd_statistics.lsp.
Меньше 4 секунд.
Дополнительное его достоинство, что из окна отчета действует Ctrl C.
Еще бы добавить вертикальную прокрутку в окне отчета.
И, возможно, стоило бы на Ok выполнять то же Ctrl C.

Теперь разрываюсь между вариантами.
Вложения
Тип файла: lsp XDTOOLS_STAT-v-0-3.lsp (9.6 Кб, 10 просмотров)
Тип файла: lsp get_xd_statistics.lsp (6.4 Кб, 14 просмотров)
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Статистика об XData в dwg

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выгрузить XData в csv (txt) АлексЮстасу LISP 55 14.03.2022 20:31
Автокад 2010 виснит намертво при сохранении файла LenaE AutoCAD 18 04.05.2020 12:59
Как принято, как лучше описывать Xdata у элементов? АлексЮстасу AutoCAD 96 08.01.2020 09:25
Описание xdata АлексЮстасу Программирование 68 09.10.2014 11:46
Ищу способы упрощения работы с XData (расширенными данными) в VBA, Lisp RasRuf LISP 1 29.01.2009 10:55