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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Автокад при выполнении лиспа не отслеживает происходящее на экране, можно настроить чтобы отслеживал?

Автокад при выполнении лиспа не отслеживает происходящее на экране, можно настроить чтобы отслеживал?

Ответ
Поиск в этой теме
Непрочитано 02.06.2017, 12:12 #1
Автокад при выполнении лиспа не отслеживает происходящее на экране, можно настроить чтобы отслеживал?
RrRR
 
Регистрация: 23.04.2009
Сообщений: 637

Всем привет!
Такой вопрос, в Автокаде 2017 при выполнении лиспа не отслеживается происходящее на экране.
Т.е. после запуска лиспа пользователь видит пустой чертеж, Acad в это время думает, на экране ничего не происходит, через пару минут решив, что приложение окончательно зависло пользователь закрывает его. Возможно за секунду до того как лисп отработает полностью и появится обширная таблица и т.п.
Как то можно это настроить? Раньше мне кажется было по другому (в реальном времени) .
Просмотров: 2754
 
Непрочитано 02.06.2017, 12:24
#2
Кулик Алексей aka kpblc
Moderator

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


Прогресс-бар добавь Или меняй логику приложения.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.06.2017, 12:28
#3
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


1. Наливать пользователю валерьянки перед запуском лиспа.
2. Оптимизировать лисп.
3. Вставить в лисп вывод в комстроку этапов операции - чтобы пользователь не ощущал себя покинутым.
Сергей812 вне форума  
 
Непрочитано 02.06.2017, 12:59
#4
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


AutoCAD вообще весь не "потокобезопасный"
trir вне форума  
 
Автор темы   Непрочитано 02.06.2017, 13:28
#5
RrRR


 
Регистрация: 23.04.2009
Сообщений: 637


Про валерьянку и прогресс-бар понравилось
попробую повставлять (princ "..text...") с текстом пояснения, что в данную минуту происходит
RrRR вне форума  
 
Непрочитано 02.06.2017, 13:30
#6
Кулик Алексей aka kpblc
Moderator

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


А в чем трудность, чтобы использовать прогресс-бар?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.06.2017, 13:54
#7
RrRR


 
Регистрация: 23.04.2009
Сообщений: 637


Странно, в процессе выполнения лиспа (princ "..text...") ничего не появляется. Только когда все отработанно можно видеть нажав F2, что все princ присутствуют.
CMDECHO=1, почему в процессе выполнения лиспа тишина? Даже princ не пробивается
RrRR вне форума  
 
Непрочитано 02.06.2017, 14:01
#8
Кулик Алексей aka kpblc
Moderator

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


Попробуй не princ, а print или prin1.
Но я все равно бы сделал прогресс-бар...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.06.2017, 14:08
#9
RrRR


 
Регистрация: 23.04.2009
Сообщений: 637


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Но я все равно бы сделал прогресс-бар...
Алексей, для тех кто на Вы с лиспом, как это можно сделать? Ссылку бы
RrRR вне форума  
 
Непрочитано 02.06.2017, 14:54
#10
Кулик Алексей aka kpblc
Moderator

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


Если сегодня получится, сделаю статейку на своем сайте.

----- добавлено через ~11 мин. -----
Во, что-то из старенького нашел: http://autolisp.ru/2013/04/01/progre...me-operations/ и сегодняшний комментарий (http://autolisp.ru/2013/04/01/progre...#comment-72540)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.06.2017, 16:27
#11
RrRR


 
Регистрация: 23.04.2009
Сообщений: 637


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Если сегодня получится, сделаю статейку на своем сайте.

----- добавлено через ~11 мин. -----
Во, что-то из старенького нашел: http://autolisp.ru/2013/04/01/progre...me-operations/ и сегодняшний комментарий (http://autolisp.ru/2013/04/01/progre...#comment-72540)
Спасибо, обязательно попробую прогресс-бар.
А может быть так, что из-за измененного значения какой-нибудь переменной у меня все лиспы проскакивают не показывая процесса работы самого лиспа, даже prin1, print, princ?
RrRR вне форума  
 
Непрочитано 05.06.2017, 09:43
#12
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Как бы вы ни старались, автокад все равно будет "виснуть", если вы пытаетесь нарисовать большое количество примитивов. никакие счетчики вас не спасут, так как винда ждать не будет.
впрочем, если делать красиво, тогда уж так
Код:
[Выделить все]
 (defun random (Num / modulus multiplier increment)
;;; Генерирует случайное число в диапазоне от 0 до Num

  (or *SEED* (setq *SEED* (getvar "DATE")))

  (fix
    (* Num
       (progn
	 (setq
	   modulus    65536
	   multiplier 25173
	   increment  13849
	   *SEED*     (rem (+ increment (* multiplier *SEED*)) modulus)
	   Num        (/ *SEED* modulus)
	 )
       )
    )
  )
)

(defun entmake-line (start end)
;;; Функция рисования отрезка
  (entmake (mapcar 'cons '(0 62 10 11) (list "LINE" (random 255) start end)))
)


(defun c:test ( / iter maxiter)
  (setq iter 0 maxiter 100000)
  (while (< iter maxiter)
    (entmake-line (list (random 800) (random 600)) (list (random 800) (random 600)))
    (acet-ui-status (strcat "Прогресс: "
			    (rtos (* 100 (/ iter (float maxiter))) 2 2)
			    "%")
                    "Подождите")
    (setq iter (1+ iter))
  )
    (acet-ui-status)
)
gomer вне форума  
 
Непрочитано 05.06.2017, 09:55
#13
Кулик Алексей aka kpblc
Moderator

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


Я бы использовал принципиально другой подход. Варианты описывал здесь.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 05.06.2017, 10:14
#14
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,004


Цитата:
Сообщение от gomer Посмотреть сообщение
автокад все равно будет "виснуть", если вы пытаетесь нарисовать большое количество примитивов. никакие счетчики вас не спасут, так как винда ждать не будет.
будет виснуть любое приложение - если не обрабатывать очередь сообщений от виндоуз. Но, насколько понимаю, встроенного в Lisp метода типа Application.DoEvents() нет?
Сергей812 вне форума  
 
Непрочитано 05.06.2017, 18:30
#15
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,405
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Но, насколько понимаю, встроенного в Lisp метода типа Application.DoEvents() нет?
Нет. Поэтому как вариант: http://maestrogroup.com.ua/support/ProgressBars.zip
Там реализован аналог Application.DoEvents
Александр Ривилис вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Автокад при выполнении лиспа не отслеживает происходящее на экране, можно настроить чтобы отслеживал?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли настроить зависимость текста от линейных параметров объекта Pole AutoCAD 3 22.11.2014 15:48
Можно ли осуществлять автоматические расчеты в Автокад в зависимости от количества элементов на чертеже Tatyana2 Поиск литературы, чертежей, моделей и прочих материалов 1 09.10.2014 09:17
как настроить автокад 2006, чтобы выставлялись размеры с масштабом 1, а не 10? Dimmitriy AutoCAD 2 18.02.2010 15:06
что сделать чтобы в рамке А4 можно было задавать правильные размеры? Alannn AutoCAD 9 15.10.2008 22:54
как настроить чертеж, чтобы автоматически выводились таблицы matrixx AutoCAD 15 20.04.2006 22:48