4. АК о создании пользовательских инструментов для XData
1. Со стороны, особенно программистам, может казаться, что я предлагаю что-то ненужное-необязательное.
Почему "особенно программистам"? Из-за несоразмерной - недоуменной, отрицающей, даже агрессивно-препятствующей - реакции программистов на мои предложения с описательными данными в AutoCAD.
Я предположил, что программисты, сами не создающие чертежи-модели, ориентируются в задачах на основе пользовательских запросов-заказов. В глазах программистов, вероятно, нужные для пользователей задачи - чаще и устойчивее возникающие, повторяющиеся как проблемы. И проявляющиеся в виде заказов программ.
Действительно, задача нужности описательных данных в AutoCAD для графических объектов поднимается редко. И, не найдя решения, опять исчезает из поля зрения.
Несомненно же, что пользователи в массе об отсутствии инструментов для описательных данных в AutoCAD знают. Одновременно же, пользователи постоянно, практически всегда применяют имеющиеся - косвенные (кроме, в идее, слоев) - средства AutoCAD давать описательные данные: надписями, слоями, сочетанием цвета, веса, типа линий и пр. А так же в атрибутах. При всей их недостаточности.
Т.е. возможность описательных данных в AutoCAD в глазах пользователей, во-первых, отсутствует как специальная ("электронный кульман"), во-вторых, заменяется как-то доступными средствами.
Т.е. запроса на описательные данные у большинства не может быть по причине заведомого, предопределенного отсутствия такой возможности в AutoCAD. Одновременно же большинство программистов точно так же отлично знают, что такая возможность в AutoCAD есть - XData и Xrecord.
Вот это противоречие я и предлагаю разрешить - дать эту возможность пользователям, создав общие инструменты для применения всеми желающими хотя бы XData в AutoCAD. Лучше бы, конечно, для Xrecord.
2. Со стороны, особенно программистам, может казаться, что я не ведаю, что творю. Что не понимаю последствий и пр.
Наоборот.
Я семь лет использую в Map/Civil 3D аналог XData или Xrecord - Object Data (OD). До этого девять лет использовал похожий инструмент в Map - Feature (Object) classes. И до AutoCAD десять лет использовал похожие инструменты для описательных данных в другом CAD.
OD в Map/Civil доступны пользователям в "сыром" виде - сами пользователи создают нужные им "таблицы" в нужном количестве, составе и т.п. Сами определяют поля в них, удаляют-изменяют такие "таблицы", поля, типы данных. Ни вид, ни количество, ни содержание, ни состав данных и пр. никак не предопределены, все задают сами пользователи.
Еще раз: пользователям с OD дана возможность в любой момент самим создавать нужные им "таблицы" для описательных данных, и создавать их столько и такими, как нужно-захочется. Пользователи сами определяют, к каким объектам какие "таблицы" присоединять.
И большей доле пользователей этого от OD достаточно - для простых, не объемных описательных данных. Для ситуативных задач.
Для постоянной и согласованной работы необходимо уже проектирование "таблиц" OD. Делает это опытный пользователь или организатор работ, выполняющие роль технолога.
Для постоянной, согласованной и производительной работы фирм, организаций, для однотипных проектов необходима адаптация OD под нужные задачи. Это может быть сделано с программистами. Которые смогли бы использовать уже созданные общие инструменты работы с OD.
Инструменты в Map/Civil для OD именно самые общие: создать-изменить описания OD, присоединить указанные OD объектам, отсоединить, просмотреть-редактировать. Суть моего предложения такова же - сделать для XData подобные общие инструменты.
При том, что с количеством и набором инструментов для OD было практически так же, как для XData - их Autodesk дал всего лишь три (!), и тоже сразу же забросил. Хотя, сделаны они мощнее, удобнее, чем две команды Express для XData. Плюс - возможно, решающее - просмотр-редактирование содержания OD в окне Свойства. Плюс - использование OD во многих процессах Map/Civil.
В OD так же действуют архаичные ограничения размеров, как для XData - и 31 символ для названий, и 255 символов в строках.
После же добавления общими усилиями многих инструментов работа с описательными данными в OD стала явно легче, производительнее и качественнее. У людей стало на порядок больше возможностей и смысла давать описательные данные именно в OD. И OD вместе с этим инструментарием начали чаще встраивать в основные технологические процессы. Создавая продукцию быстрее и полнее.
Т.е. утверждения, что общих инструментов для работы с XData нельзя вообще создать - ошибочны. Пример с OD это опровергает. XDATA, XDLIST из Express тоже это опровергают.
Как неверны и суждения, что это будет бессмысленная "куча" инструментов, которой ничего продуктивного сделать нельзя - пользователи делали, делают и делать будут осмысленные и полезные проекты подобными инструментами. И просят такого рода инструменты еще.
Ни хаоса, ни массовых потерь данных, ни нарушений в работе AutoCAD, ни пр. не происходит. При том, что существенная доля пользователей Map/Civil 3D всегда, очень давно уже постоянно использовала OD, и эта доля с появлением дополнительных инструментов увеличилось.
3. Это не отменяет того, что XData слабо сделаны для описательных данных. Пусть и очень широко используются, например, в Electrical. И в огромном множестве сторонних пользовательских приложений.
XData меньше пригодны для описательных данных, чем Xrecord (AutoCAD), Object Data (Map/Civil 3D), Property Sets (Architecture, MEP, Civil 3D).
Но и XData пригодны для небольших, несложных пользовательских проектов. Т.е. для основного числа пользователей. И доступны для всех AutoCAD. В т.ч. из-за возможности реализации на Lisp. Это и определило сейчас мое предложение именно об XData.