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

ADN Club => AutoCAD .NET API => Тема начата: Atomohod от 31-03-2020, 18:03:46

Название: Получить исходное имя блока
Отправлено: Atomohod от 31-03-2020, 18:03:46
Здравствуйте!
Кто-нибудь может подсказать как для вставок блоков типа U*, я думаю что это unnamed blocks, получить нормальное имя блока?
Название: Re: Получить исходное имя блока
Отправлено: Александр Пекшев aka Modis от 31-03-2020, 18:52:26
Это анонимные блоки и U* - это и есть их нормальное название
Название: Re: Получить исходное имя блока
Отправлено: Привалов Дмитрий от 31-03-2020, 19:11:41
Кто-нибудь может подсказать как для вставок блоков типа U*, я думаю что это unnamed blocks, получить нормальное имя блока?

Наверное так
Код - C# [Выбрать]
  1. private string GetBlockReferenceOriginalName(BlockReference blockIns)
  2. {
  3.    string blockInsName = "";
  4.  
  5.    if (blockIns.BlockTableRecord == blockIns.AnonymousBlockTableRecord)
  6.    {
  7.       blockInsName = blockIns.Name;
  8.    }
  9.    else
  10.    {
  11.       ObjectId anonymBlockId = blockIns.AnonymousBlockTableRecord;
  12.       using (BlockTableRecord block = anonymBlockId.Open(OpenMode.ForRead) as BlockTableRecord)
  13.       {
  14.          if (block != null) blockInsName = block.Name;
  15.       }
  16.    }
  17.  
  18.    return blockInsName;
  19. }
Название: Re: Получить исходное имя блока
Отправлено: Александр Ривилис от 31-03-2020, 20:02:35
Atomohod,
Кто-то ленится пользоваться поиском: https://adn-cis.org/forum/index.php?topic=7286.0
Так имя блока U* или *Unnnn ?
Название: Re: Получить исходное имя блока
Отправлено: Александр Ривилис от 31-03-2020, 20:03:09
Наверное так
???
Название: Re: Получить исходное имя блока
Отправлено: Atomohod от 31-03-2020, 22:31:47
Про поиск на форуме я как-то упустил :-\ - просто гуглил по сети.  Имя блока типа *U50.
Название: Re: Получить исходное имя блока
Отправлено: Atomohod от 31-03-2020, 22:36:48
Тут еще вот какой вопрос - если я хочу вставить блок по имени и его нормальное имя, например, block1 то как быть с его именем типа *U755? Введя его я что-ли тоже вставляю нужный мне блок? Но как тогда быть с нужным мне visibility для дин блока, я чего-то совсем запутался.
Название: Re: Получить исходное имя блока
Отправлено: Александр Ривилис от 31-03-2020, 22:41:39
Вставлять нужно блок по нормальному имени и переключать видимость вставки.
Название: Re: Получить исходное имя блока
Отправлено: Atomohod от 31-03-2020, 23:32:57
и переключать видимость вставки.
То есть для каждой видимости внутри блока Autocad сам генерирует отображение блока с миенем типа *U777 и отображает его вместо исходного? А почему тогда в свойствах отображается нормальное имя, а не *U777? Пользователь вообще его не видит - оно только на уровне базы чертежа.
Название: Re: Получить исходное имя блока
Отправлено: Александр Ривилис от 31-03-2020, 23:36:34
То есть для каждой видимости внутри блока Autocad сам генерирует отображение блока с миенем типа *U777 и отображает его вместо исходного?
Да.
А почему тогда в свойствах отображается нормальное имя, а не *U777?
Потому, что так решили в Autodesk.
Название: Re: Получить исходное имя блока
Отправлено: Atomohod от 31-03-2020, 23:44:29
    То есть для каждой видимости внутри блока Autocad сам генерирует отображение блока с миенем типа *U777 и отображает его вместо исходного?

Да.
Можно маленькое уточнение - то есть это отображение по своей сути вставка блока уже не динамическая - обычный блок без динамики? Да?
Название: Re: Получить исходное имя блока
Отправлено: Александр Ривилис от 31-03-2020, 23:47:35
Можно маленькое уточнение - то есть это отображение по своей сути вставка блока уже не динамическая - обычный блок без динамики?
Нет. Блок остаётся динамическим (все динамические свойства блока на месте).