Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: simson43 от 23-09-2018, 22:49:26
-
из этого у меня еще больше вопросов.
может подскажете литературу?
-
из этого у меня еще больше вопросов.
может подскажете литературу?
Литературы нет даже на английском. Всё что есть на русском - это наш сайт и форум и понемногу на других форумах, сайтах, блогах.
Но в данном случае даже и литература не нужна. Нужно себе представить устройство базы данных AutoCAD. Проще всего смотреть на готовых чертежах при помощи ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д. (http://adn-cis.org/forum/index.php?topic=7274.0)
-
просто допустим вот как в вба (надеюсь никого здесь не обижает такое сравнение): есть документ. в нем есть несколько space! в каждом есть items. и перебирая все items можно достучаться до каждой вставки в данном пространстве.
а тут? blocktable.. это таблица из всех objectid данного документа или как?
blocktablerecord... я думал это таблица всех objectid данного пространства или что то вроде того.. это так?
-
blocktable.. это таблица из всех objectid данного документа или как?
BlockTable содержит все ObjectId всех BlockTableRecord имеющихся в документе
BlockTableRecord содержит ObjectId всех примитивов содержащихся в этом блоке. В частности BlockTableRecord с именем "*Model_Space" - это пространство модели, а BlockTableRecord с именем "*Paper_Space" - это пространство листа.
Т.е. если найти все ObjectId в BlockTableRecord с именем "*Model_Space", то мы получим все примитивы в пространстве модели.
Вот из документации полезная табличка:
(https://farm2.staticflickr.com/1921/43959980535_41d5fcd2ed_o.png)
Короче, воспользуйся ARXDBG и MGDDBG и посмотри своими глазами. Ты всё сам поймёшь.
-
значит я не то что бы сильно ошибался.
а objectid вставки блока, который внутри блока, находится в blocktablerecord данного пространства? или в другом
-
а objectid вставки блока который внутри блока находится в blocktablerecord данного пространства? или в другом
Если бы ты еще и знаки препинания правильно ставил, то тебе бы цены не было. :)
Если вставка блока (BlockReference) находится непосредственно в пространстве модели (или листа), то она содержится в BlockTableRecord пространства модели (или листа). Если вставка блока (BlockReference) содержится в блоке (не в пространстве модели/листа), то она не содержится в BlockTableRecord пространства модели (или листа), а содержится в BlockTableRecord блока.
Более понятно я объяснить не смогу. :(
-
дотстаточно понятно)
Спасибо большое. немного уопрядочил знания
попробую разобраться с вашими утилитами
пс: запятые поставил (корректнее сказать просто ставил, ибо их там вовсе нет)Если бы ты еще и знаки препинания правильно ставил
пс2: а где же хранится таблица листов? точнее LayoutDictionary
-
пс2: а где же хранится таблица листов? точнее LayoutDictionary
(https://farm2.staticflickr.com/1959/44871446391_64f7bfe7c3_o.png)
А это из MGDDBG:
(https://farm2.staticflickr.com/1941/44821200842_0f0a93f4ac_o.png)
-
и последний вопрос на сегодня: paperspace...
пространство листа... какого из всех? активного?
-
пространство листа... какого из всех? активного?
Есть "*Paper_Space", "*Paper_Space0", "*Paper_Space1", "*Paper_Space2", и т.д. по количеству листов. У каждого листа (Layout) есть своя BlockTableRecord.
(https://farm2.staticflickr.com/1938/30998837708_60ca558798_o.png)
-
ай как просто. просто везде фигурирует modelspace и paperspace
все теперь понятно
спасибо больше Вам Александр!
-
https://sites.google.com/site/bushmansnetlaboratory/translate-manual/osnovy-autocad-net-api/ponimanie-ierarhii-obektov-autocad
Может кому то будет полезно
-
из этого у меня еще больше вопросов.
может подскажете литературу?
http://adn-cis.org/forum/index.php?topic=1097.0 ... литература....