Работа со скриптами

Автор Тема: Работа со скриптами  (Прочитано 16440 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн Алексей ФедоровАвтор темы

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
Re: Работа со скриптами
« Ответ #15 : 02-11-2016, 14:09:36 »
Полностью функции приводить я думаю нет смысла, они достаточно громоздкие и там помимо прочего есть взаимодействие с FoxPro, приведу упрощенную версию функций. Суть от этого не меняется.

Код - Auto/Visual Lisp [Выбрать]
  1. (defun fa_razb (  /  )
  2.  
  3. (setq path_ritm_sudno (vl-registry-read "HKEY_LOCAL_MACHINE\\SOFTWARE\\ЦНИИТС\\РИТМ-СУДНО" "path"))
  4. (setq fo (open (strcat path_ritm_sudno "\\Project.txt" ) "R"))
  5. (read-line fo)
  6. (read-line fo)
  7. (read-line fo)
  8. (read-line fo)
  9. (read-line fo)
  10. (read-line fo)
  11. (setq VSPOM_ORDER_DIR (read-line fo))  
  12. (close fo)  
  13.  
  14. (setq ORDER_DIR (substr VSPOM_ORDER_DIR 6))
  15.  
  16. (setq spis_file (vl-directory-files (strcat ORDER_DIR "DWG") "*.DWG" 1))
  17. (setq le_spis_file (length spis_file))
  18. (setq i 0)
  19.  
  20.  
  21. (vl-file-delete (strcat path_ritm_sudno "\\tmp\\FasLasStat.txt"))  
  22. (setq fo (open (strcat path_ritm_sudno "\\tmp\\myscript.scr") "w"))  
  23. (while (< i le_spis_file)
  24. (write-line "_.OPEN" fo)
  25. (write-line (strcat ORDER_DIR "DWG\\" (nth i spis_file)) fo)
  26. (write-line "(np_l \"fa_stat_f_l.vlx\")" fo)  
  27. (write-line "(one_pos_stat2)" fo)
  28. (write-line "_.SAVE" fo)
  29. (write-line (strcat ORDER_DIR "DWG\\" (nth i spis_file)) fo)
  30. (write-line "_.CLOSE" fo)
  31. (setq i (+ i 1))
  32. )  
  33. ;(write-line "(np_l \"fa_stat_f_l.vlx\")" fo)  
  34. ;(write-line "(fa_svod_f_l)" fo)
  35. (close fo)
  36.  
  37.  (setvar "SDI" 0)
  38.  (command "_.delay" 0)
  39.  (command "_.SCRIPT" (strcat path_ritm_sudno "\\tmp\\myscript.scr"))
  40.  ;(vl-file-delete (strcat path_ritm_sudno "\\tmp\\myscript.scr"))
  41.  (fa_svod_f_l2)
  42.  
  43.  
  44. )
  45.  
  46. (defun one_pos_stat2 ( / )
  47. (alert "1")
  48. )
  49.  
  50. (defun fa_svod_f_l2 ( / )
  51. (alert "2")
  52. )

Все равно сначала выводится сообщение "2", а уж потом сообщения "1" столько раз, сколько DWG-файлов в папке.
« Последнее редактирование: 02-11-2016, 14:17:24 от Александр Ривилис »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Работа со скриптами
« Ответ #16 : 02-11-2016, 14:15:27 »
Я вообще перестал что-то понимать. Ты в скрипт записываешь
Код - Auto/Visual Lisp [Выбрать]
  1. (write-line "(fa_svod_f_l)" fo)
После этого запускаешь скрипт, а потом снова запускаешь
Код - Auto/Visual Lisp [Выбрать]
  1. (fa_svod_f_l)
Так и что ты хочешь?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Работа со скриптами
« Ответ #17 : 02-11-2016, 14:18:24 »
И прочитай уже наконец-то у меня в подписи как следует форматировать код на форуме.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей ФедоровАвтор темы

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
Re: Работа со скриптами
« Ответ #18 : 02-11-2016, 17:04:09 »
Александр Ривилис, извините, вы видимо не туда посмотрели. я не записываю в скрипт

Код - Auto/Visual Lisp [Выбрать]
  1. (write-line "(fa_svod_f_l)" fo)

Эта строчка в скрипте у меня закомментирована.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Работа со скриптами
« Ответ #19 : 02-11-2016, 17:25:17 »
Александр Ривилис, извините, вы видимо не туда посмотрели. я не записываю в скрипт
Я смотрел исходный скрипт в первом сообщении темы.
P.S.: Запиши в конец скрипта
Код - Auto/Visual Lisp [Выбрать]
  1. (fa_svod_f_l2)
а из основного кода его убери.
Иначе вряд ли у тебя что-то хорошее получится.
И вообще такой код будет зависеть от версии AutoCAD и состояния переменной FIBERWORLD
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение