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

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: Алексей Кулик от 27-07-2017, 18:19:58

Название: Некорректное срабатывание nentsel в таблице
Отправлено: Алексей Кулик от 27-07-2017, 18:19:58
Создадим в dwg текстовый стиль (например, "shx-style"), использующий shx-шрифт. Следом создаем табличный стиль, использующий в качестве текстового стиля "shx-style"(пусть будет "table-shx"). Создаем таблицу со стилем "table-shx".
В VLIDE выполняем (nentsel), указываем на текстовое содержимое любой ячейки - и получаем результат наподобие
Код - Auto/Visual Lisp [Выбрать]
  1. '(<Entity name: 7ffffb06720> (1848.48 1935.88 0.0) ((1.0 0.0 0.0) (0.0 1.0 0.0) (0.0 0.0 1.0) (1755.23 1951.91 0.0)) (<Entity name: 7ffffb066e0>))
Т.е. функция сработала.
Теперь создаем текстовый стиль с ttf-шрифтом ("ttf-style"), и табличный стиль ("table-ttf"), использующий "ttf-style". Опять выполняем (nentsel) - и получаем nil при попытке выбора текста любой ячейки.
Это что, ошибка? Или так и должно быть?
P.S. Во вложении - пример. Все операции по созданию стилей и объектов выполнялись вручную.
Обнаружено в AutoCAD 2016.
Название: Re: Некорректное срабатывание nentsel в таблице
Отправлено: Александр Ривилис от 27-07-2017, 18:57:10
Очень похоже на баг. Интересно, что если расчленить таблицу, то (nentsel) прекрасно работает с получившимися MTEXT'ами и для shx- и для ttf-шрифтов.
Название: Re: Некорректное срабатывание nentsel в таблице
Отправлено: Алексей Кулик от 27-07-2017, 18:59:59
Что самое забавное - если взять shx-шрифт, не имеющий в своем составе, например, символа № (вместо него будет подставляться соответствующий символ из ttf), то выделение на части текста с shx сработает, а на ttf - нет.
Название: Re: Некорректное срабатывание nentsel в таблице
Отправлено: Александр Ривилис от 27-07-2017, 19:01:05
Хорошо видно, что для shx-шрифтов при наведении на текст в таблице он подсвечивается:
(https://farm5.staticflickr.com/4312/36035381172_1e82809247_o.png)
а ttf-текст - нет:
(https://farm5.staticflickr.com/4302/36035406702_e87e521234_o.png)
Я проверял в AutoCAD 2018 со всеми обновлениями.
Название: Re: Некорректное срабатывание nentsel в таблице
Отправлено: Александр Ривилис от 27-07-2017, 19:03:27
Вывод - (vla-HitTest) "наше всё".
Название: Re: Некорректное срабатывание nentsel в таблице
Отправлено: Алексей Кулик от 27-07-2017, 19:08:21
Не покатит. При обработке данных внутри блоков / ссылок nentsel - самое то. vla-hittest срабатывает, насколько я помню, только для таблиц.
Название: Re: Некорректное срабатывание nentsel в таблице
Отправлено: Александр Ривилис от 27-07-2017, 19:31:26
vla-hittest срабатывает, насколько я помню, только для таблиц.
Да. Конечно.