Выбор содержимого ячейки таблицы

Автор Тема: Выбор содержимого ячейки таблицы  (Прочитано 11481 раз)

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

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выбор содержимого ячейки таблицы
« Ответ #15 : 15-04-2022, 11:16:26 »
Алексей Кулик,
В AutoCAD 2020 позже проверю. Уточни у текстов TTF-шрифт? Это существенно, так как с SHX-шрифтами все и так отлично работает. При этом с отдельным текстом (не в таблице) (entsel) нормально срабатывает. Для проверки возьми чертеж из первого сообщения и поменяй шрифт на TTF. Так как у меня оригинального шрифта небыло, то он заменился на simplex.shx
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Выбор содержимого ячейки таблицы
« Ответ #16 : 15-04-2022, 11:34:24 »
А нужен именно TTF-шрифт (т.е. принудительное форматирование) или достаточно использования текстового стиля с ttf? У меня-то второй вариант был.
Файл скачаю, но чуть позже - не успеваю ни фига :(
Все, что сказано - личное мнение.

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

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

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

  • ADN OPEN
  • **
  • Сообщений: 91
  • Карма: 0
Re: Выбор содержимого ячейки таблицы
« Ответ #17 : 15-04-2022, 11:37:19 »
Скорее всего, я что-то не понимаю и не учитываю
У вас надо два раза делать выборку - 1.выбор таблицы; 2.выбор точки. У меня в посте №2 один клик и выборка текста производится без учета текстового стиля.

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выбор содержимого ячейки таблицы
« Ответ #18 : 15-04-2022, 11:46:22 »
Алексей Кулик,
Действительно. У тебя отдельный выбор таблицы. И наверное ты не тыкаешь в текст внутри таблицы. Иначе зачем еще дополнительно запрашивать точку...
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Выбор содержимого ячейки таблицы
« Ответ #19 : 15-04-2022, 11:49:09 »
Шрифта тоже нет, заменил на ISOCPEUR - мой код сработал. А если хочется "по одной точке определять сразу все", то код будет чуть-чуть сложнее:
Код - Auto/Visual Lisp [Выбрать]
  1. (vl-load-com)
  2.  
  3. (defun t2 (/ _kpblc-get-active-space-obj adoc space table point row col mi ma)
  4.  
  5.   (defun _kpblc-get-active-space-obj (doc)
  6.     (if (and (zerop (vla-get-activespace doc)) (equal :vlax-false (vla-get-mspace doc)))
  7.       (vla-get-paperspace doc)
  8.       (vla-get-modelspace doc)
  9.     ) ;_ end of if
  10.   ) ;_ end of defun
  11.  
  12.   (if (and (= (type (vl-catch-all-apply (function (lambda () (setq point (getpoint "\nPick the point : "))))))
  13.               'list
  14.            ) ;_ end of =
  15.            point
  16.       ) ;_ end of and
  17.     (progn
  18.       (setq adoc  (vla-get-activedocument (vlax-get-acad-object))
  19.             space (_kpblc-get-active-space-obj adoc)
  20.       ) ;_ end of setq
  21.       (vlax-for ent (if (vlax-property-available-p space 'block)
  22.                       (vla-get-block space)
  23.                       space
  24.                     ) ;_ end of if
  25.         (if (and (not table)
  26.                  (= (vla-get-objectname ent) "AcDbTable")
  27.                  (not (vl-catch-all-error-p
  28.                         (vl-catch-all-apply
  29.                           (function (lambda () (vla-getboundingbox ent 'mi 'ma)))
  30.                         ) ;_ end of vl-catch-all-apply
  31.                       ) ;_ end of vl-catch-all-error-p
  32.                  ) ;_ end of not
  33.                  (apply (function and)
  34.                         (mapcar (function <=) (vlax-safearray->list mi) point (vlax-safearray->list ma))
  35.                  ) ;_ end of apply
  36.             ) ;_ end of and
  37.           (setq table ent)
  38.         ) ;_ end of if
  39.       ) ;_ end of vlax-for
  40.       (if table
  41.         (progn
  42.           (vla-hittest table (vlax-3d-point point) (vlax-3d-point (trans (getvar 'viewdir) 1 0)) 'row 'col)
  43.           (list (cons "table" table)
  44.                 (cons "row" row)
  45.                 (cons "col" col)
  46.                 (cons "cellvalue" (vla-getcellvalue table row col))
  47.                 (cons "text" (vla-gettext table row col))
  48.           ) ;_ end of list
  49.         ) ;_ end of progn
  50.       ) ;_ end of if
  51.     ) ;_ end of progn
  52.   ) ;_ end of if
  53. ) ;_ end of defun
Попроще придумать пока не смог, в legacy закопался. Проверить код тоже пока не смог, сорри
Все, что сказано - личное мнение.

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

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

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выбор содержимого ячейки таблицы
« Ответ #20 : 15-04-2022, 12:08:35 »
В AutoCAD 2020 позже проверю.
Проверил. Ведет себя точно также, как в AutoCAD 2021. Т.е. вызов (entsel) с выбором текста внутри таблицы, у которого TTF-шрифт не срабатывает. Возвращает nil.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Выбор содержимого ячейки таблицы
« Ответ #21 : 15-04-2022, 13:04:54 »
Ну, в конце концов можно и nentsel / nentselp использовать, если уж совсем "припрет" ;)
Все, что сказано - личное мнение.

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

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

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выбор содержимого ячейки таблицы
« Ответ #22 : 15-04-2022, 13:19:20 »
Ну, в конце концов можно и nentsel / nentselp использовать, если уж совсем "припрет" ;)
Они не работают в этом случае так же, как и entsel. Проверено.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Выбор содержимого ячейки таблицы
« Ответ #23 : 15-04-2022, 13:41:08 »
То ли лыжи, то ли я. С какого тогда у меня все работает?!
Автор, сделай нормальный архив со всеми шрифтами!
Все, что сказано - личное мнение.

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

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

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Выбор содержимого ячейки таблицы
« Ответ #24 : 15-04-2022, 13:45:22 »
С какого тогда у меня все работает?!
Что именно работает? (entsel) с выбором текста из ячейки таблицы, у которой TTF-текстовый шрифт в стиле? 
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Выбор содержимого ячейки таблицы
« Ответ #25 : 15-04-2022, 13:50:19 »
Работает (nentsel).
Все, что сказано - личное мнение.

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

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

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

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

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

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Выбор содержимого ячейки таблицы
« Ответ #27 : 15-04-2022, 15:31:57 »
М-да, что-то пошло не так. Сейчас перезапустил ACAD, работать перестало. В таком случае могу предложить только свой вариант из #19 :(
Приношу свои извинения.
Все, что сказано - личное мнение.

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

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