Сообщество программистов Autodesk в СНГ

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: altver от 17-03-2020, 12:56:33

Название: Ошибка при создании VLX файла
Отправлено: altver от 17-03-2020, 12:56:33
Добрый всем день!
При создании VLX файла возникат многократная ошибка
 ; warning: run time evaluated expression:
и в конце-концов процесс останавливатся незавершенным. Кто стлкивался с таой ошибкой?
Спасибо!
Название: Re: Ошибка при создании VLX файла
Отправлено: Александр Ривилис от 17-03-2020, 13:19:29
; warning: run time evaluated expression:
И на какие выражения он так ругается? Не всё что работает в обычном VisualLisp можно скомпилировать в VLX.
Название: Re: Ошибка при создании VLX файла
Отправлено: altver от 17-03-2020, 13:50:33
например это
Код - Auto/Visual Lisp [Выбрать]
  1. ; warning: run time evaluated expression: (STRCAT "(setq hgt (atof $value)) " "(if (= Annotit \"0\")   (setq  hgtNoAnn  hgt) (setq hgtAnn  hgt))")
Название: Re: Ошибка при создании VLX файла
Отправлено: altver от 17-03-2020, 13:52:34
или здесь
Код - Auto/Visual Lisp [Выбрать]
  1. ; warning: run time evaluated expression: (STRCAT "(setq Annotit (get_tile \"annot\"))" "(if (= Annotit \"0\")  (set_tile \"hght\" (rtos hgtNoAnn)) (set_tile \"hght\" (itoa hgtAnn)))")
  2. ; warning: run time evaluated expression: (STRCAT "(setq act T)" "(done_dialog 0)")
Название: Re: Ошибка при создании VLX файла
Отправлено: Александр Ривилис от 17-03-2020, 13:55:16
В принципе это только предупреждение о том, что эти строки будут вычисляться в процессе выполнения кода. Так что ничего страшного. Проблема похоже в другом месте.
Название: Re: Ошибка при создании VLX файла
Отправлено: altver от 17-03-2020, 14:01:05
останавливается здесь
это поледние десяток строк,таких строк много...думаю сотня будет.
Код - Auto/Visual Lisp [Выбрать]
  1. ; warning: run time evaluated expression: NCOLORE
  2. ; warning: run time evaluated expression: NCOLORE
  3. ; warning: run time evaluated expression: NCOLORE
  4. ; warning: run time evaluated expression: NCOLORE
  5. ; warning: run time evaluated expression: NGROUPE
  6. ; warning: run time evaluated expression: (LIST (QUOTE SETQ) NCOLORE NCOLOR)
  7. ; warning: run time evaluated expression: (LIST (QUOTE SETQ) NGROUPE NGROUP)
  8. ; warning: run time evaluated expression: (LIST (QUOTE SETQ) YE "3")
  9. ; warning: run time evaluated expression: (LIST (QUOTE SETQ) TOLSTE 10)
  10. ; warning: run time evaluated expression: (LIST (QUOTE SETQ) YE "0")
  11. ; warning: run time evaluated expression: (LIST (QUOTE SETQ) YE "3")
  12. ; warning: run time evaluated expression: (LIST (QUOTE SETQ) TOLSTE (NTH ( ... ) TOLSTS))
  13. ; warning: run time evaluated expression: (LIST (QUOTE SETQ) TOLSTE 10)
  14. ; warning: run time evaluated expression: (LIST (QUOTE SETQ) YE (NTH ( ... ) YS))
  15. ; warning: run time evaluated expression: (LIST (QUOTE SETQ) YE "3")

Название: Re: Ошибка при создании VLX файла
Отправлено: Александр Ривилис от 17-03-2020, 15:09:57
Тут два варианта:
1. Не компилировать
2. Всё переписать с нуля.
Название: Re: Ошибка при создании VLX файла
Отправлено: Алексей Кулик от 17-03-2020, 16:17:58
Насколько я помню, в лиспе есть недокументированное ограничение в 255 операций внутри одной логической структуры. Так, например, внутри одного progn нельзя сделать больше чем 255 setq (или любых других конструкций). Если такое сделать, то исходный код еще можно попытаться загрузить, но ни отформатировать его, ни скомпилировать не удается.
Так что я бы анализировал код и оборачивал длинные конструкции в lambda или progn.