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

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: Алексей Кулик от 13-02-2020, 14:39:54

Название: Не удается отследить "прозрачные" команды в AutoCAD 2019
Отправлено: Алексей Кулик от 13-02-2020, 14:39:54
Необходимо отследить начало (или окончание, неважно) прозрачных команд в ACAD2019 - таких, как pan, zoom, select etc.
Попробовал через командный реактор - мимо. Реакторы изменений базы рисунка, естественно, не проходят - они вообще под другое заточены. Реакторы редактирования тоже мимо.
Подумал на предмет реакторов на системные переменные - но на какие? vsmin, vsmax, dbmod - все мимо.
Название: Re: Не удается отследить "прозрачные" команды в AutoCAD 2019
Отправлено: Александр Ривилис от 13-02-2020, 15:27:23
Необходимо отследить начало (или окончание, неважно) прозрачных команд в ACAD2019 - таких, как pan, zoom, select etc.
Первые две могут быть как в виде реально прозрачных команд (т.е.  '_ZOOM и '_PAN) так и как реакция на действия с мышью. Первый вариант отлавливается командным реактором (во всяком случае в ObjectARX/.NET). В примере запущено _LINE, а потом '_ZOOM:
(https://live.staticflickr.com/65535/49529698591_df90bcf6e9_o.png)
С мышкой можно смотреть на изменения системных переменных VIEWCTR и VIEWSIZE. Впрочем не всегда работает...

Название: Re: Не удается отследить "прозрачные" команды в AutoCAD 2019
Отправлено: Алексей Кулик от 13-02-2020, 16:19:53
Лиспом, к сожалению, не отлавливается :(
Название: Re: Не удается отследить "прозрачные" команды в AutoCAD 2019
Отправлено: Александр Ривилис от 13-02-2020, 16:26:43
Лиспом, к сожалению, не отлавливается :(
Пора перебираться на C++/C# :)
Название: Re: Не удается отследить "прозрачные" команды в AutoCAD 2019
Отправлено: Алексей Кулик от 13-02-2020, 16:28:06
Я б и рад, да грехи условия задачи не дают ;)
Название: Re: Не удается отследить "прозрачные" команды в AutoCAD 2019
Отправлено: Александр Ривилис от 13-02-2020, 16:38:26
Лиспом, к сожалению, не отлавливается :(
Подожди. Как не отлавливается? '_ZOOM и '_PAN у меня прекрасно отлавливаются твоим же кодом:
Код - Auto/Visual Lisp [Выбрать]
  1. (progn
  2.    (defun start-command (reactor execute-command)
  3.        (princ (strcat "\nCommandReactor. Command : " (car execute-command)))
  4.    )
  5.    (setq vlr_react
  6.       (vlr-command-reactor "Command reactor"
  7.          (list '(:vlr-commandwillstart . start-command))
  8.       )
  9.    )
  10. )


(https://live.staticflickr.com/65535/49530161112_7396f3db52_o.png)

Название: Re: Не удается отследить "прозрачные" команды в AutoCAD 2019
Отправлено: Алексей Кулик от 13-02-2020, 16:49:20
Я не знаю, какие настройки нужно ковырять, но в ком.строке не показывается ни 'pan, ни 'zoom при нажатии / кручении колеса мыши. От слова совсем. Никаких команд не активно в этот момент.
Название: Re: Не удается отследить "прозрачные" команды в AutoCAD 2019
Отправлено: Александр Ривилис от 13-02-2020, 17:01:32
Я не знаю, какие настройки нужно ковырять, но в ком.строке не показывается ни 'pan, ни 'zoom при нажатии / кручении колеса мыши. От слова совсем. Никаких команд не активно в этот момент.
Так и не будет. Я же об этом и писал выше. Только запуск этих команд из меню или вручную в командной строке. Никакими настройками не лечится.
Название: Re: Не удается отследить "прозрачные" команды в AutoCAD 2019
Отправлено: Алексей Кулик от 13-02-2020, 17:02:49
Ясно, спасибо :) Ну, раз задача не имеет решения, не буду и напрягаться ;) Я ж не Кристобаль Хунта )))
Название: Re: Не удается отследить "прозрачные" команды в AutoCAD 2019
Отправлено: Александр Ривилис от 13-02-2020, 17:13:56
Здесь обсуждалось: https://www.theswamp.org/index.php?topic=41484.0
Пришли к выводу, что средствами только VisualLisp это сделать нельзя.
Название: Re: Не удается отследить "прозрачные" команды в AutoCAD 2019
Отправлено: Алексей Кулик от 13-02-2020, 17:28:24
Значит, мне пока решение и не светит. Ну что ж, пойду дальше ковыряться ))
Спасибо за консультацию!