Сообщество программистов Autodesk в СНГ
ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: power_factor от 07-07-2023, 20:55:09
-
Добрый день!
Разбираюсь с возможностью хранения и использования пользовательских данных в чертеже (целые числа и числа с плавающей точкой, строки). Прошу подсказать по некоторым вопросам:
1. Основные способы для подобного хранения, известные мне, это Custom properties, Xdata и Dictionaries + Xrecord. Это все возможные способы или имеются ещё? (именно для хранения внутри чертежа, без соединения с "внешним" миром)
2. В литературе встречаются термины Dictionary и Extension dictionary. Являются ли они одним и тем же?
3. Можно ли "вкладывать" одни словари в другие, т. е. создавать древовидные структуры?
4. Можно ли копировать словари полностью либо их отдельные X-записи?
-
1. Основные способы для подобного хранения, известные мне, это Custom properties, Xdata и Dictionaries + Xrecord. Это все возможные способы или имеются ещё? (именно для хранения внутри чертежа, без соединения с "внешним" миром)
Можно хранить и в Custom Object/Entity - но это только помощью ObjectARX.
2. В литературе встречаются термины Dictionary и Extension dictionary. Являются ли они одним и тем же?
Extension dictionary это разновидность Dictionary.
3. Можно ли "вкладывать" одни словари в другие, т. е. создавать древовидные структуры?
Можно.
4. Можно ли копировать словари полностью либо их отдельные X-записи?
Можно. Но средства VisualLisp не предназначены для этого. Это или ObjectARX или AutoCAD .NET API
-
Можно хранить и в Custom Object/Entity - но это только помощью ObjectARX.
А Вы не могли бы, пожалуйста, немного объяснить. Допустим, имеется в чертеже линия, то есть уникальный экземпляр класса AcDbLine, имеющий свойства Length и Angle, относящиеся только к ему. Свойствам этим присвоены какие-то значения. Правильно ли я понимаю, что эти значения хранятся "внутри" именно этого экземпляра, создаются и уничтожаются вместе с ним?
Чтобы мне также было возможно хранить данные внутри объектов, мне нужно с помощью ObjectARX создавать свои классы?
-
Правильно ли я понимаю, что эти значения хранятся "внутри" именно этого экземпляра, создаются и уничтожаются вместе с ним?
Да.
Чтобы мне также было возможно хранить данные внутри объектов, мне нужно с помощью ObjectARX создавать свои классы?
Зависит от того что это за данные.
-
Зависит от того что это за данные.
Пока только числа и строки.
-
Пока только числа и строки.
Вопрос не в том, какого типа данные (хотя это тоже может быть важно). Вопрос в том как эти данные связаны внутри dwg-файла. В каком-то случае они могут быть связаны с объектами/примитивами AutoCAD, или со всем чертежом целиком...