Задать аннотативнось объекту

Автор Тема: Задать аннотативнось объекту  (Прочитано 11518 раз)

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

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

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
Всем привет,
Есть у Алексея статья http://autolisp.ru/2011/03/17/howto-create-annotative-style-or-block/
там два исходника по добавлению и удалению аннотативности. Успешно пользовался ими долгое время, но вот на 2017 AutoCAD случилось странное...
Создаю Мтекст, добавляю к нему аннотативность, и... объект есть а в чертеже его нет :-( Гадал, гадал, нашёл через поиск содержимого текста, и оказалось что аннотатвиность -да, а список масштабов аннотации пуст, потому то текст есть но не отображается.
Как это победить?
В коменнтах на AutoLisp.ru писать не стал, прошлые мои комменты остались без ответа.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Задать аннотативнось объекту
« Ответ #1 : 03-12-2016, 14:24:14 »
список масштабов аннотации пуст
Пуст у чертежа или у текста?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
Re: Задать аннотативнось объекту
« Ответ #2 : 03-12-2016, 15:38:38 »
список масштабов аннотации пуст
Пуст у чертежа или у текста?
У текста

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

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
Re: Задать аннотативнось объекту
« Ответ #3 : 03-12-2016, 15:47:37 »
Я уже не знаю, проверил в 2016 англицком та же ситуация

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Задать аннотативнось объекту
« Ответ #4 : 03-12-2016, 16:43:12 »
Давай код, которым ты делаешь текст аннотативным.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
Re: Задать аннотативнось объекту
« Ответ #5 : 03-12-2016, 17:01:36 »
Код - Auto/Visual Lisp [Выбрать]
  1. (defun c:test (/ _lispru-ent-make-annotative)
  2.   (defun _lispru-ent-make-annotative (ent / res)
  3.     (if
  4.       (and (> (atof (getvar "acadver")) 17.)
  5.            (not
  6.              (assoc "AcadAnnotative"
  7.                     (cdr (assoc -3 (entget ent '("*"))))
  8.              )
  9.            )
  10.       )
  11.        (progn
  12.          (regapp "AcadAnnotative")
  13.          (setq
  14.            res (entmod
  15.                  (list (cons -1 ent)
  16.                        '(-3
  17.                          ("AcadAnnotative"
  18.                           (1000 . "AnnotativeData")
  19.                           (1002 . "{")
  20.                           (1070 . 1)
  21.                           (1070 . 1)
  22.                           (1002 . "}")
  23.                          )
  24.                         )
  25.                  )
  26.                )
  27.          )
  28.        )
  29.     )
  30.   )
  31.  
  32.   (_lispru-ent-make-annotative (setq ent (car (entsel))))
  33. )
выбираю однострочный не аннотативный текст

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Задать аннотативнось объекту
« Ответ #6 : 03-12-2016, 17:22:20 »
Похоже, что средствами только VisualLisp ты не сможешь сделать ТЕКСТ/МТЕКСТ аннотативным. Глянь это видео:

В нём хорошо видно, что кроме XDATA еще необходимо создать Extended Dictionary с очень специфическим содержимым.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
Re: Задать аннотативнось объекту
« Ответ #7 : 03-12-2016, 17:41:32 »
Похоже, что средствами только VisualLisp ты не сможешь сделать ТЕКСТ/МТЕКСТ аннотативным.
Но ведь это точно работало в 2016 русском AutoCAD, и Алексей это придумал уже давно и тоже похоже где-то успешно применяет...
Ещё нашёл командный метод
Код - Auto/Visual Lisp [Выбрать]
  1. (command "_chprop" (car (entsel)) "" "_A" "_Yes" "")
вроде работает

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Задать аннотативнось объекту
« Ответ #8 : 03-12-2016, 17:49:26 »
Ещё нашёл командный метод
Код - Auto/Visual Lisp [Выбрать]

    (command "_chprop" (car (entsel)) "" "_A" "_Yes" "")

вроде работает
Этот - да. А вот создание XDATA по образцу и подобию аннотативного объекта - нет. Т.е. возможно в какой-то ситуации и работает, но есть куча сообщений на форумах, в которых говорится, что этот способ не работает - исчезают тексты. 
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
Re: Задать аннотативнось объекту
« Ответ #9 : 03-12-2016, 17:52:44 »
А вот создание XDATA по образцу и подобию аннотативного объекта - нет.
Т.е. к списку масштабов аннотации объекта из Lisp ни как не добраться, чтоб туда добавить текущий масштаб, и тогда бы объект "появился"

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Задать аннотативнось объекту
« Ответ #10 : 03-12-2016, 18:14:44 »
Т.е. к списку масштабов аннотации объекта из Lisp ни как не добраться, чтоб туда добавить текущий масштаб, и тогда бы объект "появился"
Добраться можно, чтобы прочитать его содержимое. А вот изменить я думаю будет слишком сложно (если вообще возможно, и не уверен, что это будет работать во всех версиях).
Кстати, командой можно добавить к аннотативному объекту новый масштаб аннотации. Команда _-OBJECTSCALE. Но объект уже должен быть аннотативным.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Задать аннотативнось объекту
« Ответ #11 : 04-12-2016, 18:23:22 »
М-да, косяаааак... Теоретически можно поставить (временно, конечно!) annoautoscale равным 4, потом назначить аннотативность, потом программно поменять cannoscale, установить аннотативность объекту и вернуть системные переменные обратно. Но, по-моему, это костыль тот еще :(
Попробую сегодня вечером - вдруг что-то да срастется.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

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

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
Re: Задать аннотативнось объекту
« Ответ #12 : 28-01-2018, 05:01:44 »
Попробую сегодня вечером - вдруг что-то да срастется.
Прошло чуть больше года... Не появилось ни какого решения?

Похоже, что средствами только VisualLisp ты не сможешь сделать ТЕКСТ/МТЕКСТ аннотативным
Я так подозреваю с помощью ObjectARX это сделать не особо сложно? Но это опять будет пятьсот тридцать два файла под каждую версию\разрядность AutoCAD... А если на NET?

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Задать аннотативнось объекту
« Ответ #13 : 28-01-2018, 16:44:25 »
К сожалению, я совсем забросил работу с аннотативными объектами. Сейчас не до нее :( Приношу свои самые искренние извинения :(
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

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

  • ADN Club
  • ****
  • Сообщений: 270
  • Карма: 24
  • Геодезист
Re: Задать аннотативнось объекту
« Ответ #14 : 28-01-2018, 16:49:12 »
К сожалению, я совсем забросил работу с аннотативными объектами.
Это не перспективное направление? Нам тоже можно забрасывать?