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

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

Ожидание выполнения программы

Ответ
Поиск в этой теме
Непрочитано 10.04.2009, 12:15 #1
Ожидание выполнения программы
ceiba
 
Ярославль
Регистрация: 06.02.2008
Сообщений: 24

Вопрос: как сделать ожидание выполнения лиспа приятным глазу? Чтоб пользователь не бежал с криками «Зависло!», а знал, что идет процесс вычерчивания? Что-нибудь типа диалогового окна, которое создает “alert”, но чтоб само исчезало по завершении. Ткните носом, плиз
Просмотров: 3529
 
Непрочитано 10.04.2009, 12:29
#2
Кулик Алексей aka kpblc
Moderator

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


Искать ProgressBar от А.Ривилиса.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 10.04.2009, 12:45
#3
ceiba


 
Регистрация: 06.02.2008
Ярославль
Сообщений: 24


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Искать ProgressBar от А.Ривилиса.
Спасибо! Еще и DosLib гляну!
ceiba вне форума  
 
Непрочитано 10.04.2009, 13:43
#4
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Или вставить код для функций из Express (файл acetutil.arx)
Код:
[Выделить все]
(acet-ui-progress-init "Суммирование линий" kn)
(while (> kn 0)
(setq n (1+ n))
(acet-ui-progress-safe n)
;; ПРОЦЕСС
);;end while
(acet-ui-progress-done)
nik_mb вне форума  
 
Автор темы   Непрочитано 10.04.2009, 14:22
#5
ceiba


 
Регистрация: 06.02.2008
Ярославль
Сообщений: 24


Цитата:
Сообщение от nik_mb Посмотреть сообщение
Или вставить код для функций из Express (файл acetutil.arx)
Что такое здесь kn и n?
ceiba вне форума  
 
Непрочитано 10.04.2009, 14:50
#6
VVA

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


Еще простенький прогрессбар. Информация выводится в статусную строку
Код:
[Выделить все]
(setq i 0)
(repeat 10000
  (grtext -1 (strcat "Работаю - " (itoa (setq i (1+ i)))))
  (repeat 200 (princ)) ;_Что-то делаем
  )
(command "_redrawall")
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.04.2009, 15:01
#7
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от ceiba Посмотреть сообщение
Что такое здесь kn и n?
kn - длина обрабатываемого набора (обязательно больше нуля), n - предустановлено в 0, идет добавление шкалы. Можно шкалу изменять по kn, но тогда она будет двигаться в обратном направлении. Переменные n и kn могут называться как угодно.
nik_mb вне форума  
 
Автор темы   Непрочитано 10.04.2009, 15:07
#8
ceiba


 
Регистрация: 06.02.2008
Ярославль
Сообщений: 24


Цитата:
Сообщение от VVA Посмотреть сообщение
Еще простенький прогрессбар. Информация выводится в статусную строку
Код:
[Выделить все]
(setq i 0)
(repeat 10000
  (grtext -1 (strcat "Работаю - " (itoa (setq i (1+ i)))))
  (repeat 200 (princ)) ;_Что-то делаем
  )
(command "_redrawall")
Вставляю вместо слов "_Что-то делаем" то, что делаем, и это дело повторяется 10000 раз С ProgressBar'ом то же самое.
Моя что-то простое, видимо, не понимает. В чем дело?
ceiba вне форума  
 
Непрочитано 10.04.2009, 15:35
#9
nik_mb

конструктор
 
Регистрация: 23.03.2009
Волгоград
Сообщений: 120


Цитата:
Сообщение от ceiba Посмотреть сообщение
Вставляю вместо слов "_Что-то делаем" то, что делаем, и это дело повторяется 10000

Все это предназначено для цикличных процессов (везде стоят функции repeat или while). Для нецикличных, последовательных операций придется вставлять отметку прохода.
Код:
[Выделить все]
 (grtext -1 (strcat "Работаю - " (itoa (setq i (1+ i)))))
;или, в зависимости от варианта 
(acet-ui-progress-safe n)(setq n (1+ n))
Чем чаще тем, лучше. Но размер кода всей программы станет поболее.
nik_mb вне форума  
 
Непрочитано 10.04.2009, 15:35
#10
VVA

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


ceiba,
Вставь код как есть и посмотри куда это выводится.
Цикл repeat 10000 дан для примера. У тебя это может быть и while и foreach. Здесь показан просто принцип - писать сообщение об i-ой операции в статусную строку. А в конце подчищать. Можно писать туда же текущий шаг, типа
(grtext -1 "Черчу дом. Подожди...")
....
(grtext -1 "Подвожу сети к дому. Подожди...")
....
(grtext -1 "Завожу мебель в дом. Подожди...")
и.т.д
Есть еще и что-нибудь типа диалогового окна
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 10.04.2009, 15:43
#11
ceiba


 
Регистрация: 06.02.2008
Ярославль
Сообщений: 24


Цитата:
Сообщение от VVA Посмотреть сообщение
Цикл repeat 10000 дан для примера. У тебя это может быть и while и foreach. Здесь показан просто принцип - писать сообщение об i-ой операции в статусную строку. А в конце подчищать.
Понятно. У меня там на точки ставятся блоки, а третья координата забирается и рядом проставляется текстом. В тот же while, значит, и вставлю. Спасибо огромное всем!
Сама долго искала бы
ceiba вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Ожидание выполнения программы

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Появление окна загрузки приложения во время выполнения программы. Как избежать? Tugodum-ka Программирование 10 05.04.2009 01:56
Запуск пользовательской программы из лиспа vosh LISP 2 16.03.2008 22:16
Помогите с отменой действия программы! 480725 Программирование 63 10.10.2007 20:43