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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Подскажите где я ошибаюсь

Подскажите где я ошибаюсь

Ответ
Поиск в этой теме
Непрочитано 10.07.2008, 13:25 #1
Подскажите где я ошибаюсь
DonVik
 
Украина
Регистрация: 07.02.2007
Сообщений: 222

Вот код:
Код:
[Выделить все]
(defun vout ()
           (setq n (getpoint "Начало"))
  	(setq k (getpoint "Кончало"))
  	(command "select" (list n) (list k))
)
Хочу так сказать сделать свой SELECT.

Вот как акад реагирует:
Цитата:
Command: (vout)
НачалоКончалоselect
Select objects:
Command:
Command: nil
Где я туплю? И вообще можно ли так делать?
Просмотров: 3253
 
Непрочитано 10.07.2008, 13:33
#2
Кулик Алексей aka kpblc
Moderator

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


А что с набором потом делать? И почему бы не использовать конструкцию типа
Код:
[Выделить все]
(command "_.select")
(while (/= (getvar "cmdactive") 0)
  (command pause)
  ) ;_ end of while
Это в простейшем случае.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.07.2008, 13:44
#3
DonVik


 
Регистрация: 07.02.2007
Украина
Сообщений: 222


Цитата:
А что с набором потом делать?
Да это я все с той _amviewout бьюсь. Дошел до того что там где ей нужно указать обьекты достаточно просто ввести координаты рамочки, которая наподобие команды селекта действует.
Вот и решил я сначала до вызова команды amviewout выбрать координаты, которые потом укажут ей то что я хочу оторвать.

Вот на Select тренируюсь, пока не очень, потому и спрашиваю где я ошибаюсь.

Если просто сначала прогой получить переменки x и y через getpoint, описывающие выделяющую рамку, а потом в процессе набора ручками amviewout указывать прям в командной строке сначала (list x) потом (list y) все работает как надо, а вот из проги не работает
DonVik вне форума  
 
Непрочитано 10.07.2008, 14:05
#4
Кулик Алексей aka kpblc
Moderator

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


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


 
Регистрация: 07.02.2007
Украина
Сообщений: 222


Цитата:
А точки ты вычисляешь или запрашиваешь у пользователя?
Запрашиваю:
Код:
[Выделить все]
    (setq n (getpoint "Начало"))
  	(setq k (getpoint "Кончало"))
Это и есть верхний-левый угол рамки и правий-нижний.
Цитата:
Вот чего нет, того нет.
Дык понимаешь какая чтука, amviewout это в Mechanical Desctop Acad.
Но координаты она запрашивает аналогично команде select, посему и решил сначала на ней потренироваться.
Но не получается
Неужели нельзя так вот сделать селекцию обьектов?
DonVik вне форума  
 
Непрочитано 10.07.2008, 14:43
#6
Кулик Алексей aka kpblc
Moderator

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


Примерно так, наверное, можно (не проверял):
Код:
[Выделить все]
(command "_.select" (setq pt2 (getcorner (setq pt1 (getpoint)))))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.07.2008, 15:29
#7
DonVik


 
Регистрация: 07.02.2007
Украина
Сообщений: 222


Неа. все равно потом просит выделить...
DonVik вне форума  
 
Непрочитано 10.07.2008, 15:33
#8
Кулик Алексей aka kpblc
Moderator

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


А если вместо "_.select" поставить "_amviewout" ? Ну а потом через (getvar "cmdactive") проверять завершенность команды?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.07.2008, 17:05
#9
DonVik


 
Регистрация: 07.02.2007
Украина
Сообщений: 222


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А если вместо "_.select" поставить "_amviewout" ? Ну а потом через (getvar "cmdactive") проверять завершенность команды?
Пробую так:
Код:
[Выделить все]
(command "_amviewout" "o" "v")
  	(while (= (getvar "CMDACTIVE") 1)
	 )
  	(command "2000")
Но CMDACTIVE постоянно равна 1, посему цикл получается бесконечный.
Мне бы нужна какая-нить системная переменка, которая бы говорила закончен ли выбор объектов...
DonVik вне форума  
 
Непрочитано 10.07.2008, 17:31
#10
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


попробуй так
Код:
[Выделить все]
(command "_amviewout" "_o" "_v")
  	(while (> (getvar "CMDACTIVE") 0)
	  (command pause)
	 )
(command "2000")
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 11.07.2008, 08:02
#11
DonVik


 
Регистрация: 07.02.2007
Украина
Сообщений: 222


Цитата:
Сообщение от VVA Посмотреть сообщение
попробуй так
Неа. пока amviewout полностью по всем опциям не отработает цикл не завершится.

Я вот что подумал, а может реакторы помогут? Только вот на что ставить реактор? Ну или на VBA прописать какое нить событие на клик Энтера, и по нему уже пытаться продолжить команду?

Еще неплохо бы найти исходник этой amviewout, может кто знает...
Ну и если не сложно подскажите литературу по реакторам желательно на русском и подробнее.
DonVik вне форума  
 
Непрочитано 11.07.2008, 08:21
#12
Кулик Алексей aka kpblc
Moderator

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


Ну то, что пока команда не завершится, цикл будет запрашивать ввод пользователя - то так и задумано.
Насчет реакторов (хотя на вертикальных приложениях AutoCAD'a лично я с ними бы поосторожнее) - посмотри в http://dwg.ru/search.php?zone=1&mod=...E0%EA%F2%EE%F0 - литература там точно есть.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Подскажите где я ошибаюсь

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где можно скачать русификатор для 3Д МАКС 9,0 ASЪ Прочее. Программное обеспечение 7 30.05.2008 20:53
Подскажите на счет балкона. Алёнка Поиск литературы, чертежей, моделей и прочих материалов 4 04.12.2007 17:58
Где окошко? помогите... PVal AutoCAD 4 16.10.2007 14:01
Люди, подскажите программиста! Студент2005 Программирование 17 16.03.2006 16:34
Подскажите, где найти lesson01.dwt - lesson10.dwt для r14 ? Георгий AutoCAD 1 13.10.2003 20:13