NanoCAD-23.1 - как корректно создать кнопку с опцией ответа на запрос (GETxxx) ?
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > NanoCAD-23.1 - как корректно создать кнопку с опцией ответа на запрос (GETxxx) ?

NanoCAD-23.1 - как корректно создать кнопку с опцией ответа на запрос (GETxxx) ?

Ответ
Поиск в этой теме
Непрочитано 13.09.2024, 12:53 #1
NanoCAD-23.1 - как корректно создать кнопку с опцией ответа на запрос (GETxxx) ?
===AAA===
 
г. Норильск
Регистрация: 15.08.2005
Сообщений: 616

Всем привет!

Имею функцию с таким вот участком кода:

(command "_.undo" "_g")

... много всего разного ...

(command "_undo" "_e")


Суть - если не понравится сделанное, то чтобы потом можно было бы
одним нажатием CTRL+Z отменить всё скопом, а не по шагам.

В Автокаде всё работало "на ура", в НК поймал очередной интересный
глюк, связанный с какой-то "кривизной" реализации командной строки.

Проявляется он в том, что если на кнопку панели инструментов
назначить опцию ответа на (getstring "Выберите вариант: ") или
(getkword "Выберите вариант: ") то это самое

Выберите вариант:

появится вместо приглашения

Команда:

в командной строке после завершения функции.

Глюк проявляется, только если:

а) В функции присутствует закрывающая группу отмены
команда (command "_undo" "_e")

б) Ответ на запрос вводится не с клавиатуры (в этом случае
всё нормально), а нажатием на кнопку.

Вопрос:

а) Как можно определить (задать) группу отмены команд
без использования (command "_undo" ...) ?

б) Возможно, я криво определил описание команды кнопки

[\ConfigMan\Commands\ID_SD_NO]
cmdtype=i0
weight=i50
Intername=sID_SD_NO
LocalName=sID_SD_NO_L
BitmapDll=sD:\Путь\sd_no32.bmp
DispName=sНет
StatusText=sНаш ответ: «Нет»
Keyword=sНет^M
IsUserCommand=f1


тогда - как нужно сделать это правильно?
__________________
Счастливо, Алексей!

Последний раз редактировалось ===AAA===, 16.09.2024 в 12:12.
Просмотров: 952
 
Автор темы   Непрочитано 16.09.2024, 05:47
#2
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Полистал Полещука - (vla-StartUndoMark) + (vla-EndUndoMark)
проблему решают.

Но функционал командной строки разработчикам НК надо, видимо,
править. Ибо глюки присутствуют, однако...
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 16.09.2024, 07:43
| 1 #3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


ИМХО 99% задач можно сделать без команд.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.09.2024, 09:47
#4
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Цитата:
ИМХО 99% задач можно сделать без команд.
Да, как выяснилось, и здесь (command "_undo") - это лишь частный случай.

"Глюк" оказался более сложным. Как выяснилось, достаточно в теле
функции прописать любую (command ), например (command "_.mirror" ...)
и в качестве опции выбора использовать кнопку панели инструментов,
как после завершения функции в строке команд мы вместо

Команда:

получим запрос, который выводился по ходу выполнения в команде
(getstring "Выберите вариант: ") или (getkword "Выберите вариант: "), т.е.:

Выберите вариант:

На работу это не влияет, т.к. последующие "штатные перетыкивания"
в кнопки и пункты меню восстановят нормальное отображение и
приглашение

Команда:

и запросы этих команд, но такое вот завершение функции реально
режет глаза. :-(((

Или я реально "не так" определяю кнопку в конфиге.
Но уже по-всякому пробовал - результат один и тот же...
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 16.09.2024, 10:13
#5
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


ЯТД, в нанике решили не использовать ^C^C при определении команд - оно самопрописывается и срабатывает не спрашивая мнения пользователя ) Блин, ну нарисуй dcl-ку ту же самую и выбирай чего хоцца )
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.09.2024, 10:25
#6
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Не хочу добавлять модальное окно.

Там у меня по коду идёт

(getkword "\nПовернуть слева <-> направо? <Д>: ")

и - в принципе - можно щёлкнуть ПКМ без лишних телодвижений.

А вот если захочется ответить "Нет", тогда можно и до кнопки на
панели мышкой проехаться.

Типа, "эргономика".
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 16.09.2024, 10:46
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Offtop: Надеюсь, про initget ты не забыл и ошибку ввода отрабатываешь
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.09.2024, 11:00
#8
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Конечно, не забыл и отрабатываю. :-)

Тут другое.

Запрос команд (getstring "Выберите вариант: "), (getkword ...),
а возможно и других (get_xxx ) команд - не проверял - заменяет
временно собою выражение, которое НК выводит, как "приглашение".

Глюк чистой воды.

Если мне не изменяет память, в АвтоКаде можно было заменить
стандартное приглашение

Команда:

на какое-нибудь

Чего изволите:

напомните, плиз, как это делалось, попробую ещё в этом
направлении покопать....
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 16.09.2024, 11:15
#9
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Ты чего-то путаешь ИМХО
Код:
[Выделить все]
 (initget "Да Нет Yes No _ Y N Y N")
(getkword  "\nВведите {Да/Нет] <Да> : ")
Что в ACAD, что в NC ведет себя абсолютно одинаково.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.09.2024, 11:38
#10
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Да где тут путать-то...

Эти две строки обработаются корректно, если ответ ввести с клавиатуры.

А вот попробуй сделать связку:

(defun aaa ()

(ininget ....)
(getkword "Запрос")
(command "- любая разумная, например ЗЕРКАЛО")

)

И - самое главное - ответ на "Запрос" вводи не с клавиатуры
(с клавиатуры - всё ОК), а с кнопки, определённой
для этого ответа.

Вот здесь и вылезет, что вместо слова

Команда:

После корректной отработки функции, приглашение командной строки превратится в слово

Запрос

Вот ровно так, без двоеточия на конце.

Временно, до следующих тычков мышкой в меню/кнопки.

В общем, тему пора переименовывать на:

NanoCAD-23.1 - как корректно создать кнопку с опцией ответа на запрос (GETxxx) ?
__________________
Счастливо, Алексей!

Последний раз редактировалось ===AAA===, 16.09.2024 в 11:48.
===AAA=== вне форума  
 
Непрочитано 16.09.2024, 11:59
#11
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Цитата:
Сообщение от ===AAA=== Посмотреть сообщение
тему пора переименовывать
Переименовывай, кто мешает?
P.S. Я уже сказал:

Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
ЯТД, в нанике решили не использовать ^C^C при определении команд - оно самопрописывается и срабатывает не спрашивая мнения пользователя
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.09.2024, 13:32
#12
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


Дополнение:

Если по телу функции запросов будет несколько, типа

(get_xxx "Вопрос-1")
(get_xxx "Вопрос-2")

то слово

Команда:

Заменится на последний из них, т.е. в данном случае на

Вопрос-2
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 16.09.2024, 13:51
#13
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Повторить не удается. При одном условии - идеей (скажем так) с выбором ответа через кнопки не заморачивался, не заморачиваюсь и заморачиваться не собираюсь.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 16.09.2024, 14:07
#14
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616


А может быть, ты и прав...

Так и так ведь у мышки клавишу давить нужно будет.

А если сделать окно ( [Выбор 1] [Выбор 2] ) по центру
экрана, то Пользователю не нужно будет смотреть
вниз-влево, чтобы узнать, а что оно там в командной
строке запросило?

Тоже неплохо.

Но - ёлки-палки - почему в НК глюк на глюке-то! :-(((
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 16.09.2024, 14:21
#15
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404


Это не баги, это фичи )))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > NanoCAD-23.1 - как корректно создать кнопку с опцией ответа на запрос (GETxxx) ?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
NanoCad: как выполнять автозагрузку настроек в каждый новый открываемый документ? kosmi LISP 6 28.06.2024 13:42
Как создать свою проектно - сметную группу? Android1501 Организация проектирования и оформление документации 35 12.10.2017 12:23
Как создать на ленте раскрывающиеся списки Color control, Line type control (AutoCAD Architecture 2013) ? Tyhig AutoCAD 6 07.08.2017 12:48
VBA Autocad2016 можно ли создать новую группу свойств и новые свойства, отображаемые в окне "Properties" AutoCAD 2016 yurms Программирование 3 27.07.2016 07:03
VBA: как управлять проектом, или единственный редактор без команд открыть и сохранить zenija2007 Программирование 2 05.07.2016 08:57