Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: simson43 от 23-09-2018, 22:49:26

Название: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: simson43 от 23-09-2018, 22:49:26
из этого у меня еще больше вопросов.
может подскажете литературу?
Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: Александр Ривилис от 23-09-2018, 22:54:46
из этого у меня еще больше вопросов.
может подскажете литературу?
Литературы нет даже на английском. Всё что есть на русском - это наш сайт и форум и понемногу на других форумах, сайтах, блогах.
Но в данном случае даже и литература не нужна. Нужно себе представить устройство базы данных AutoCAD. Проще всего смотреть на готовых чертежах при помощи ARXDBG и MGDDBG - утилиты для анализа AutoCAD, чертежа и т.д. (http://adn-cis.org/forum/index.php?topic=7274.0)
Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: simson43 от 23-09-2018, 23:01:50
просто допустим вот как в вба (надеюсь никого здесь не обижает такое сравнение): есть документ. в нем есть несколько space! в каждом есть items. и перебирая все items можно достучаться до каждой вставки в данном пространстве.
а тут? blocktable.. это таблица из всех objectid данного документа или как?
blocktablerecord... я думал это таблица всех objectid данного пространства или что то вроде того.. это так?
Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: Александр Ривилис от 23-09-2018, 23:08:01
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 и посмотри своими глазами. Ты всё сам поймёшь.
Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: simson43 от 23-09-2018, 23:20:28
значит я не то что бы сильно ошибался.
а objectid вставки блока, который внутри блока, находится в blocktablerecord данного пространства? или в другом
Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: Александр Ривилис от 23-09-2018, 23:26:40
а objectid вставки блока который внутри блока находится в blocktablerecord данного пространства? или в другом
Если бы ты еще и знаки препинания правильно ставил, то тебе бы цены не было. :)
Если вставка блока (BlockReference) находится непосредственно в пространстве модели (или листа), то она содержится в BlockTableRecord пространства модели (или листа). Если вставка блока (BlockReference) содержится в блоке (не в пространстве модели/листа), то она не содержится в BlockTableRecord пространства модели (или листа), а содержится в BlockTableRecord блока.
Более понятно я объяснить не смогу. :(
Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: simson43 от 23-09-2018, 23:29:59
дотстаточно понятно)
Спасибо большое. немного уопрядочил знания
попробую разобраться с вашими утилитами
пс: запятые поставил (корректнее сказать просто ставил, ибо их там вовсе нет)
Если бы ты еще и знаки препинания правильно ставил
пс2: а где же хранится таблица листов? точнее LayoutDictionary
Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: Александр Ривилис от 23-09-2018, 23:37:46
пс2: а где же хранится таблица листов? точнее LayoutDictionary

(https://farm2.staticflickr.com/1959/44871446391_64f7bfe7c3_o.png)

А это из MGDDBG:

(https://farm2.staticflickr.com/1941/44821200842_0f0a93f4ac_o.png)



Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: simson43 от 23-09-2018, 23:42:09
и последний вопрос на сегодня: paperspace...
пространство листа... какого из всех? активного?
Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: Александр Ривилис от 23-09-2018, 23:47:47
пространство листа... какого из всех? активного?
Есть "*Paper_Space", "*Paper_Space0", "*Paper_Space1",  "*Paper_Space2", и т.д. по количеству листов. У каждого листа (Layout) есть своя BlockTableRecord.

(https://farm2.staticflickr.com/1938/30998837708_60ca558798_o.png)

Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: simson43 от 23-09-2018, 23:53:52
ай как просто. просто везде фигурирует modelspace и paperspace
все теперь понятно
спасибо больше Вам Александр!
Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: simson43 от 24-09-2018, 08:42:33
https://sites.google.com/site/bushmansnetlaboratory/translate-manual/osnovy-autocad-net-api/ponimanie-ierarhii-obektov-autocad
Может кому то будет полезно
Название: Re: Вопросы начинающего изучать AutoCAD .NET API
Отправлено: Владимир Шу от 24-09-2018, 09:18:01
из этого у меня еще больше вопросов.
может подскажете литературу?
http://adn-cis.org/forum/index.php?topic=1097.0 ... литература....