|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
Нам тоже тогда приходилось делать InCAD - "ГИС на базе Автокад". Там блоками создавались объекты (точечные, линейные, площадные), но в скрытых атрибутах были уже ссылки на БД. Это были времена DOS, БД велись в Clipper. Геометрия объектов хранилась в БД, причем в специальном формате, в котором Clipper читал и записывал массивы чисел, наподобие {{x1,y1}{x2,y2}...{xn,yn}}. В результате, имея БД можно было в пустом чертеже создать все "информационные" объекты. Они накладывались на топографию, сделанную средствами этой же системы, но в виде обычных примитивов. Три города так были оцифрованы. Система несколько лет работала, потом перешли уже под Win95 и AutoCAD R14. Вот там уже были более серьезные возможности. Потом от Автокадов совсем ушли, но все данные, вместе с геометрией, перекочевали в другие ГИС. Но самое большое извращение я видел, когда информацию, требуемую для извлечения в СО хранили в именах блоков. |
|||
![]() |
|
||||
Вопрос в том, что в Xdata поля определяются только типом и позицией относительно других полей. Из-за этого никакими средствами, ни "кнопками", ни программно понять, что в этом поле Int записан "номер", а в этом "количество" невозможно. Эта информация просто отсутствует. Вообще.
В т.ч. и потому, что названия "application" в Xdata не определяют ничего - любые два одноименных Xdata могут иметь совершенно разную структуру полей. Поэтому и интересно, как разные люди решают эту проблему - проблему определения что где в Xdata. Я нашел два варианта решения - 2-й, когда в каждом Xdata только одно поле, а его назначение дается в названии "application", и 3-й, когда поля всегда описываются парами: название, содержание. Оба, конечно, фиговые. ![]() Там в статьях о том, что Xdata и Xrecord лучше, чем атрибуты. В принципе, как подход. И там же про отвратительную реализацию их самих для пользователей.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
а доступа без программирования к XData нет. |
|||
![]() |
|
||||
Цитата:
Во-вторых, дополнительные/расширенные/описательные данные так же нужны пользователям, как и программистам. Пользователям больше. Иначе бы не изобретали, не пользовались издревле и до сих пор костылем в виде атрибутов. Вы, похоже, так и не прочитали исходный вопрос, и его повторы в постах. Как это поможет определить, что вот это строковое поле для названий, а другое для адреса, а третье для ID и т.п.?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
есть штатное средство создания заготовок отчетов в виде извлечения данных. А с вашими даже идентифицированными по типу хранимой информации "полями" в XData что делать дальше? |
|||
![]() |
|
||||
Цитата:
Цитата:
Но, опять-таки, это очередное отклонение от темы - здесь не вопрос об использовании XData, а о том, как обеспечить определенность их содержания.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Это не очередное отклонение от темы - а вы зациклились на своих описательных характеристиках, хотя это лишь верхушка айсберга. Без дальнейшего использования этих характеристик для формирования взаимосвязей, расчетов, создания отчетов и т.п. - это мертвый груз. А дальнейшая обработка с хранением всех данных в контейнере последовательного доступа типа XData - все равно их придется куда-то извлекать для этой обработки с целью убыстрения и упрощения, и тогда и будет их нужная интерпретация...
|
|||
![]() |
|
||||
Цитата:
"...тогда и будет их нужная интерпретация" - возникнет волшебным образом? Сама? Раз Вы знаете секрет, как определить, что в таком-то поле XData описана взаимосвязь, а в таком-то "Primary Key БД", а не наоборот или не что-то еще другое и т.п., то поделитесь же, наконец. Тема именно об этом.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Регистрация: 24.12.2019
Сообщений: 3
|
Цитата:
Те же (проверенные временем) атрибуты - в них любые значения (строки, метки, натуральные и вещественные числа) хранятся в виде строк, которые при извлечении сначала интерпретируются, а затем используются должным образом. В любом случае в документе все храниться в бинарном виде. |
|||
![]() |
|
||||
Цитата:
Цитата:
И, получив от кого-то данные, не имея соответствующих программ, как определить, что где в Xdata записано? Цитата:
Т.е. у атрибутов блоков есть такой защитный механизм, обеспечивающий однозначность определения какой атрибут что содержит. Придумал еще три варианта: Вариант 4. В неубиваемом месте dwg хранить Xdata, описывающих нужную структуру используемых application. Вариант 5. Каждому элементу, к которому присоединяется Xdata с данными, добавлять специальные Xdata с описанием соответствующей структуры. Вариант 6. Отвести первое строчное поле каждого Xdata под хранение его описания. Вроде: "Полей: 5; 1 - Long, ID; 2 - Str, Название; 3 - Real, Диаметр; 4- Str, Материал; 5 - Str, Тип". Или т.п.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Вот именно. Потому что всё это
Цитата:
АлексЮстасу никак не может смириться, что базовый AutoCAD - всего лишь "шасси" для разработки предметных приложений. "Вертикальных", "Горизонтальных", "Наискосячных". И все они создаются в результате программирования. Цитата:
Но программист, использующий координаты точек, знает об этом. Им обновляет БД чертежа, причем тремя способами. Так же, как конечному пользователю СУБД просто вредно знать имена полей, типы данных и прочее. Он видит "русские" заголовки и может ввести только дозволенные данные. Например только числа, да еще в заданном диапазоне, или только строку из доступного списка. Причем он и не знает, что в таблице, которую он видит глазами, на самом деле будет не строка, а число. А сама строка хранится в другой таблице, а иногда и в другой БД. |
|||
![]() |
|
||||
Цитата:
Цитата:
Есть большой класс процессов - обмен данными. В т.ч. нужные данные могут быть в Xdata. (Льзя-нельзя, правильно-неправильно - не в этой теме). (Так же, как во внешних БД, в Xrecord, в Object Data из Map, Property Sets из Civil, Architecture, MEP, в атрибутах...). Здесь вопрос о том, как можно записывать в Xdata данные так, чтобы их могли полно и правильно интерпретировать другие. Не Вы сами, а другие. Без Вашего участия, вашего кода и пр. Как это можно сделать с атрибутами, Property Sets и т.п. У Варианта 4 недостаток, что всегда можно создать Xdata с тем же названием, но другой структуры. Т.е. общее для dwg описание Xdata перестанет быть действительным. У Варианта 6 недостаток, что в строчном поле Xdata можно записать только 255 (или 259?) символов. Точнее, записать можно хоть 8000, но первый же AUDIT их обрежет. 255 явно мало. Варианты 2, 3, 5, вроде, неплохи. Самый надежный, однозначный, похоже, Вариант 2. См. первый пост.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 28.12.2019 в 02:00. |
||||
![]() |
|
||||
"Зачем", "не нужно" и т.п. обсуждать в других темах.
Здесь тема для обсуждения "как". Если нечего об этом сказать, то зачем засорять эфир? Повторю, что есть задача обмена данными. Которые могут быть в Xdata. Еще есть требования заказчиков. Которые могут заказать данные в Xdata. (Или это тоже вариант обмена?). И т.д. Кстати, вычитал, что в мире накоплен миллиард чертежей в dwg и т.п. Вероятно, достаточно актуальных, иначе зачем их считать.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Посчитать коэффициенты унификации конструктивных элементов, точности обработки, шероховатости поверхностей | Igorek21 | Машиностроение | 2 | 09.11.2016 12:32 |
Как найти уточненные значения жесткостей элементов по СП 52-103-2007? | Midimi | Железобетонные конструкции | 9 | 30.04.2016 13:43 |
Описание xdata | АлексЮстасу | Программирование | 68 | 09.10.2014 11:46 |
описывать свойства элементов по слою (bylayer) или прямо | АлексЮстасу | AutoCAD | 110 | 13.03.2010 03:51 |
Lisp: Список элементов в слоях | ALFMario | LISP | 4 | 29.04.2008 17:26 |