Как получить дескриптор слоя по имени?

Автор Тема: Как получить дескриптор слоя по имени?  (Прочитано 4349 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн LucaАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 0
Уважаемы форумчане, как получить дескриптор слоя по имени?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Уважаемы форумчане, как получить дескриптор слоя по имени?
В AutoCAD нет понятия "дескриптор слоя". Что ты имеешь в виду? ObjectId?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн LucaАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 0
В AutoCAD нет понятия "дескриптор слоя". Что ты имеешь в виду?
нужно перебрать все блоки и задать отношение порядка, а для этого, как я себе это представляю, мне сначала необходимо получить ссылку на слой, зная его имя, а потом уже используя свойство слоя(пока не знаю какое) получить коллекцию блоков для дальнейшей обработки.
или я не правильно себе это представляю и в иерархии слой не является контейнером для блоков?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
или я не правильно себе это представляю и в иерархии слой не является контейнером для блоков?
Всё абсолютно неправильно. Слой - это свойство примитивов AutoCAD, а не контейнер для объектов.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
нужно перебрать все блоки
Что ты понимаешь под блоками? Есть описание блока (BlockTableRecord) и есть вставка блока (BlockReference). Определись с терминологией.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн LucaАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 0
Что ты понимаешь под блоками?
в автокаде есть "Создать блок" - именно это и понимаю

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Что ты понимаешь под блоками?
в автокаде есть "Создать блок" - именно это и понимаю
Создать блок - это действие. При создании блока создаётся и BlockTableRecord и один BlockReference (хотя потом можно вставить этих BlockReference сколько угодно)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн LucaАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 0
надо другую тему создать, а эту в утил

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
надо другую тему создать, а эту в утил
Не вижу смысла. Тема очень поучительная. Надеюсь, что она тебе поможет разобраться с иерархией классов в AutoCAD .NET API и поможет четче формулировать вопросы.
Итак контейнером для "блоков" (вставок блоков - BlockReference), да и любых других примитивов (наследников Entity) является блок (описание блока BlockTableRecord). В частности это может быть блок с именем "*ModelSpace" или "*PaperSpace", т.е. Пространство модели или Пространство листа.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн LucaАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 0
Не вижу смысла. Тема очень поучительная. Надеюсь, что она тебе поможет разобраться с иерархией классов в AutoCAD .NET API и поможет четче формулировать вопросы.
Посмотрел доки и что-то такое наваялось.
BlockTableRecord BTR;
BlockTableRecordEnumerator BTRE = BTR.GetEnumerator();
тип блока (какой?)    Block;
тип блока(какой?)[]  filteredBlocksArray;
While ( Block = BTRE.MoveNext() ){
  Block.name == 'desiredName' ? filteredBlocksArray.push(Block) : break;
}

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Посмотрел доки и что-то такое наваялось.
Пока полный бред. Надеюсь на продвижение в правильном направлении.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Начни с этих статей:
https://adn-cis.org/kak-najti-vse-vstavki-dinamicheskogo-bloka.html
https://adn-cis.org/vyibor-vstavok-blokov-s-ispolzovaniem-filtra.html

P.S.: Кстати, тема ушла очень далеко от названия. Про слой и "дескриптор слоя" мы уже забыли.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн LucaАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 114
  • Карма: 0
P.S.: Кстати, тема ушла очень далеко от названия. Про слой и "дескриптор слоя" мы уже забыли.
я предлагал создать новую тему именно по этой причине.
давайте я создам новую тему, тк назавание этой совсем не отражает содержание и задачи, которые необходимо решить