|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
01.05.2014, 14:16 | #1 | |
Как заставить прозрачную команду на ЛИСП возвращать значение
Москва
Регистрация: 06.10.2007
Сообщений: 132
|
||
Просмотров: 3074
|
|
||||
строительство Регистрация: 16.01.2004
Петербург
Сообщений: 165
|
Здравствуйте.
При вызове прозрачной команды , основная команда блокируется и возобновляется только после того , как прозрачная команда завершиться и выдаст свой результат. (т.е. результат не попадает в командную строку на запрос "Первая точка"). Последний раз редактировалось Эдуард, 13.05.2014 в 21:50. |
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Я именно так изначально и написал. В этом случае получается прозрачность на фоне команд Автокада, но не на фоне программ на ЛИСП. Та конструкция, которую я использую сейчас - абсолютно законная и по описанию Автодеск должна дать тот результат, на который я расчитываю. Но не дает.
----- добавлено через ~14 мин. ----- Я не очень понял.. Вы намекаете, что прозрачность не предполагает передачи результата фоновой команде? Увы, похоже правда на вашей стороне. Автокадские привязки и ссылка - прямой аналог моей программы - не являются прозрачными командами (вызываются без '). А прозрачные не возвращают значение, а только производят действие... Получается сделать программу - аналог привязки и ссылки, работающую на фоне как команд Автокада, так и программ ЛИСП невозможно? |
|||
|
||||
строительство Регистрация: 16.01.2004
Петербург
Сообщений: 165
|
Цитата:
Команда по сути своей и не должна возвращать значения. Для этого существуют функции. Ну и используйте свою функцию (rxy) подставив ее в команду на запрос первой точки как у Вас показано выше. Чем этот вариант плох? |
|||
|
||||
Регистрация: 21.07.2008
Луцьк
Сообщений: 179
|
Цитата:
он просто "впечатывает" результат в командную строку мы тоже так можем вот так будет работать для твоего примера Код:
|
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Надо было сразу прочитать справку по функции vlax-add-cmd. Никакого "полезного" значения она не вернет - только свое же имя.
Цитата:
|
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Есть программы. Хотелось бы не внося в них изменения расширить возможность указания точки. Такая функция применялась бы и для программ (моих и чужих) и для команд Автокада. Аналог ссылки в Автокаде, только более продвинутый. Я привел только небольшой фрагмент.
----- добавлено через ~2 мин. ----- Спасибо: Попробую и отпишусь! ----- добавлено через ~8 мин. ----- Если не трудно, подскажите этот проверенный и надежный способ. Для откомпилированной программы стороннего разработчика. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
В чужую откомпилированную программу все равно не воткнуть "расширение указания точки". Тем более не надо мечтать о отм, что какая-то (пусть своя) дополнительная "прозрачная" команда что-то вернет в чужую программу. Достаточно просто почитать документацию. И штатные прозрачные команды Автокада ничего не возвращают - они просто позволяют выполнить какое-то действие, например во время ожидания ввода. |
|||
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Цитата:
Если серьезно, то расширенные возможности предусматривались там, где были признаны необходимыми, однако программ много, а сейчас появился соблазн увеличения этих расширенных возможностей, и появился новый очень привлекательный механизм их реализации. Но внедрять это все через редактирование программ ( они писались еще с конца прошлого века и реализация механизма не повсюду решена через подпрограммы) очень трудоемко, тестирование тоже потребует много сил.. А все и так работает и жалоб от пользователей нет.. И остается мечта о прозрачной программе, мечта увы, похоже призрачная, т.к. реализация по принципу автокадовского 'cal предложеная уважаемым Vov.Ka) неудобна для пользователя, ибо требует неочевидного нажатия на Enter, которое нет необходимости делать при решении внутри программ. В общем, такая призрачная прозрачность, или прозрачная призрачность. Последний раз редактировалось 480725, 19.06.2014 в 03:07. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
LISP. Создание поля (field), ссылающегося на текстовое значение ячейки таблицы. | skkkk | Готовые программы | 141 | 24.11.2023 15:49 |
Какой язык перспективен для инженера-конструктора с условием | The_Mercy_Seat | Программирование | 705 | 17.03.2021 14:19 |
Проблемы с расчетом Ж/Б каркаса в ANSYS | derik | ANSYS | 457 | 04.07.2017 16:16 |
Лисп. Как выполнить команду по завершении предыдущей? | BetinS | LISP | 14 | 19.06.2014 03:25 |