Создать аннотативный блок (COM Interop)

Автор Тема: Создать аннотативный блок (COM Interop)  (Прочитано 8990 раз)

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

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

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
Добрый день!
В разрабатываемом ПО основная работа проводится не в Autocad, поэтому подключение к Autocad и некоторые функции организованы через COM (Interop) с поздним связыванием.

Подскажите, пожалуйста, есть ли возможность сделать блок аннотативным?

Блок создается вот так:
Код - C# [Выбрать]
  1. var blockPoint = activeDoc.Blocks.Add(AcadPoint(0, 0), nameBlock);
  2. blockPoint.AddCircle(AcadPoint(0, 0), 0.1);
  3. blockPoint.AddAttribute(2.5, 0, "Имя", AcadPoint(1.5, 1.5), "НАИМЕНОВАНИЕ", "Имя не заполнено");

Позже блок вставляется в чертеж с использованием InsertBlock().
« Последнее редактирование: 17-11-2020, 18:11:13 от Александр Ривилис »

Отмечено как Решение Alexeynico 17-11-2020, 19:03:26

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создать аннотативный блок (COM Interop)
« Ответ #1 : 17-11-2020, 18:15:29 »
Alexeynico,
1. Напоминая про правило форматирования кода на нашем форуме (у меня в подписи).
2.
Подскажите, пожалуйста, есть ли возможность сделать блок аннотативным?
Средствами AutoCAD COM/ActiveX нельзя. Собственно говоря аннототивность в AutoCAD появилась тогда, когда развитие COM/ActiveX в AutoCAD уже давно закончилось.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
Re: Создать аннотативный блок (COM Interop)
« Ответ #2 : 17-11-2020, 19:07:13 »
Да, с оформлением кода оплошал, впредь буду внимательней. Спасибо!
По теме: придется делать костыль через лисп и командную строку (аналогично https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/block-to-annotative-block/td-p/4711815)

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 738
Re: Создать аннотативный блок (COM Interop)
« Ответ #3 : 18-11-2020, 18:55:46 »
придется делать костыль через лисп и командную строку (аналогично https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/block-to-annotative-block/td-p/4711815)
По идее, этот лисп просто цепляет расширенные данные. Подозреваю, что это можно сделать напрямую через COM без лисп-костылей.

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

  • ADN OPEN
  • Сообщений: 8
  • Карма: 0
Re: Создать аннотативный блок (COM Interop)
« Ответ #4 : 18-11-2020, 19:17:27 »
По идее, этот лисп просто цепляет расширенные данные. Подозреваю, что это можно сделать напрямую через COM без лисп-костылей.
Думаю, что так и есть. Сейчас как раз разбираюсь с этим. Спасибо.

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

  • Administrator
  • *****
  • Сообщений: 13898
  • Карма: 1790
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Создать аннотативный блок (COM Interop)
« Ответ #5 : 18-11-2020, 22:03:13 »
Дмитрий Загорулькин,
Насколько я помню этого недостаточно. Во всяком случае аннототивность может заработать только если чертеж сохранить, закрыть и снова открыть. И кроме того там не только Xdata. Там и обычные dxf-коды, с которыми COM/ActiveX не дружит - только через lisp.
« Последнее редактирование: 19-11-2020, 00:15:55 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение