Команда не выплняется прозрачно
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Команда не выплняется прозрачно

Команда не выплняется прозрачно

Ответ
Поиск в этой теме
Непрочитано 29.03.2007, 00:31 #1
Команда не выплняется прозрачно
mmax
 
Программист широкого профиля.
 
Челябинск
Регистрация: 08.09.2005
Сообщений: 722

Код:
[Выделить все]
(vlax-add-cmd "dispp" 'disppoint "dispxy" 1)
Функция disppoint делает несколько запросов и Возвращает список из двух чисел, тоесть точку.

Но команда dispp не работает прозрачно, тоесть не выполняется до завершения выполняемой команды.

Например:

Код:
[Выделить все]
Команда:
Команда: _circle Центр круга или [3Т/2Т/ККР (кас кас радиус)]: dispp

Требуется точка или ключевое слово.
Центр круга или [3Т/2Т/ККР (кас кас радиус)]: *Прервано*
А вот если на запрос уазания центра окружности ввести (disppoint) со скобками, то все работает как надо и запросы функции и возвращаемая точка является центром окружности. Вобщем все работает как надо.

А как сделать так чтобы команду можно было ввести без скобок, перфиксов итп и чтобы функция выполнилась?

Повесить команду-функцию (disppoint) на кнопку панели не предлагать.

Всем заранее спасибо.
Просмотров: 2961
 
Непрочитано 29.03.2007, 09:39
#2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Словарь терминов — прозрачная команда (transparent command)

Команда, которую можно вызывать в ходе выполнения другой команды. Для использования команды в прозрачном режиме
перед ее именем следует ввести апостроф.

Код:
[Выделить все]
Команда: _circle Центр круга или [3Т/2Т/ККР (кас кас радиус)]: 'dispp

>>Вождь пролетариата:Ленин

Возобновляется команда КРУГ.
Центр круга или [3Т/2Т/ККР (кас кас радиус)]:
Радиус круга или [Диаметр] <23.9414>:
VVA вне форума  
 
Автор темы   Непрочитано 29.03.2007, 13:53
#3
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 722


прозрачная команда должна возвращать координаты для центра круга, а она прерывает текучую команду и возобновляет после выполнения не достигая эффекта.
mmax вне форума  
 
Непрочитано 29.03.2007, 13:56
#4
Кулик Алексей aka kpblc
Moderator

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


Мне просто любопытно - а на код функции можно глянуть?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 29.03.2007, 14:58
#5
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Код:
[Выделить все]
(defun C:DISPP ( /  t1 t2)
  (initget 1)
  (setq t1 (getpoint "\nТочка с коорд Х круга"))
  (initget 2)
  (setq t2 (getpoint "\nТочка с коорд Y круга"))
  (list (car t1)(cadr t2))
  )
Код:
[Выделить все]
Команда: _circle Центр круга или [3Т/2Т/ККР (кас кас радиус)]: 'dispp

Точка с коорд Х круга
Точка с коорд Y круга(-93130.3 124771.0)

Радиус круга или [Диаметр] <53400.4771>:
VVA вне форума  
 
Автор темы   Непрочитано 29.03.2007, 16:02
#6
mmax

Программист широкого профиля.
 
Регистрация: 08.09.2005
Челябинск
Сообщений: 722


Так чтоли получается (vlax-add-cmd) и не нужна вовсе? :shock:
mmax вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Команда не выплняется прозрачно