Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Luca от 03-11-2019, 16:07:38
-
Уважаемы форумчане, как получить дескриптор слоя по имени?
-
Уважаемы форумчане, как получить дескриптор слоя по имени?
В AutoCAD нет понятия "дескриптор слоя". Что ты имеешь в виду? ObjectId?
-
В AutoCAD нет понятия "дескриптор слоя". Что ты имеешь в виду?
нужно перебрать все блоки и задать отношение порядка, а для этого, как я себе это представляю, мне сначала необходимо получить ссылку на слой, зная его имя, а потом уже используя свойство слоя(пока не знаю какое) получить коллекцию блоков для дальнейшей обработки.
или я не правильно себе это представляю и в иерархии слой не является контейнером для блоков?
-
или я не правильно себе это представляю и в иерархии слой не является контейнером для блоков?
Всё абсолютно неправильно. Слой - это свойство примитивов AutoCAD, а не контейнер для объектов.
-
нужно перебрать все блоки
Что ты понимаешь под блоками? Есть описание блока (BlockTableRecord) и есть вставка блока (BlockReference). Определись с терминологией.
-
Что ты понимаешь под блоками?
в автокаде есть "Создать блок" - именно это и понимаю
-
Что ты понимаешь под блоками?
в автокаде есть "Создать блок" - именно это и понимаю
Создать блок - это действие. При создании блока создаётся и BlockTableRecord и один BlockReference (хотя потом можно вставить этих BlockReference сколько угодно)
-
надо другую тему создать, а эту в утил
-
надо другую тему создать, а эту в утил
Не вижу смысла. Тема очень поучительная. Надеюсь, что она тебе поможет разобраться с иерархией классов в AutoCAD .NET API и поможет четче формулировать вопросы.
Итак контейнером для "блоков" (вставок блоков - BlockReference), да и любых других примитивов (наследников Entity) является блок (описание блока BlockTableRecord). В частности это может быть блок с именем "*ModelSpace" или "*PaperSpace", т.е. Пространство модели или Пространство листа.
-
Не вижу смысла. Тема очень поучительная. Надеюсь, что она тебе поможет разобраться с иерархией классов в AutoCAD .NET API и поможет четче формулировать вопросы.
Посмотрел доки и что-то такое наваялось.
BlockTableRecord BTR;
BlockTableRecordEnumerator BTRE = BTR.GetEnumerator();
тип блока (какой?) Block;
тип блока(какой?)[] filteredBlocksArray;
While ( Block = BTRE.MoveNext() ){
Block.name == 'desiredName' ? filteredBlocksArray.push(Block) : break;
}
-
Посмотрел доки и что-то такое наваялось.
Пока полный бред. Надеюсь на продвижение в правильном направлении.
-
Начни с этих статей:
https://adn-cis.org/kak-najti-vse-vstavki-dinamicheskogo-bloka.html
https://adn-cis.org/vyibor-vstavok-blokov-s-ispolzovaniem-filtra.html
P.S.: Кстати, тема ушла очень далеко от названия. Про слой и "дескриптор слоя" мы уже забыли.
-
P.S.: Кстати, тема ушла очень далеко от названия. Про слой и "дескриптор слоя" мы уже забыли.
я предлагал создать новую тему именно по этой причине.
давайте я создам новую тему, тк назавание этой совсем не отражает содержание и задачи, которые необходимо решить