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

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: durasovartyom от 22-09-2020, 23:17:48

Название: Экспорт и импорт видов AutoCAD
Отправлено: durasovartyom от 22-09-2020, 23:17:48
Добрый вечер! И доброго здоровья!
Есть LISP программка по экспорту и импорту видов в AutoCAD - viewsIO.lsp,
 который нашел по ссылке http://www.cad.dp.ua/sovets/lisp-functions/viewsIO.php (http://www.cad.dp.ua/sovets/lisp-functions/viewsIO.php) и здесь https://jtbworld.com/autocad-viewsio-lsp
Код - Auto/Visual Lisp [Выбрать]
  1. ;;; viewsIO.lsp
  2. ;;;
  3. ;;; Экспорт и импорт видов
  4. ;;;
  5. ;;; c:ExportViews
  6. ;;; c:ImportViews
  7. ;;; c:-ExportViews
  8. ;;; c:-ImportViews
  9. ;;;
  10. ;;; Проверено на AutoCAD 2000-2004
  11. ;;; Не работает на более поздних версиях
  12.  
  13. (defun c:ExportViews (/ fn)
  14.   (if (setq fn
  15.              (getfiled "Экспортировать виды в"
  16.                        (strcat (vl-filename-base (getvar "dwgname")) ".txt")
  17.                        "txt"
  18.                        1
  19.              )
  20.       )
  21.     (ExportViews fn)
  22.   )
  23.   (princ)
  24. )
  25.  
  26. (defun c:ImportViews (/ fn)
  27.   (if (setq fn
  28.              (getfiled "Импортировать виды в"
  29.                        (strcat (vl-filename-base (getvar "dwgname")) ".txt")
  30.                        "txt"
  31.                        1
  32.              )
  33.       )
  34.     (ImportViews fn)
  35.   )
  36.   (princ)
  37. )
  38.  
  39. (defun c:-ExportViews (/ fn x)
  40.   (setq fn (strcat (vl-filename-base (getvar "dwgname")) ".txt"))
  41.   (if (setq fn
  42.              (findfile
  43.                (if (= ""
  44.                       (setq nn (getstring
  45.                                  T
  46.                                  (strcat "Введите имя файла <"
  47.                                          fn
  48.                                          ">: "
  49.                                  )
  50.                                )
  51.                       )
  52.                    )
  53.                  fn
  54.                  nn
  55.                )
  56.              )
  57.       )
  58.     (progn
  59.       (initget "Yes No")
  60.       (setq x (getkword "\nФайл существует. Перезаписать? [Yes/No] : "))
  61.       (if (= x "Yes") (ExportViews fn))
  62.     )
  63.     (princ "\nФайл не найлен.")
  64.   )
  65.   (princ)
  66. )
  67.  
  68. (defun c:-ImportViews (/ fn)
  69.   (setq fn (strcat (vl-filename-base (getvar "dwgname")) ".txt"))
  70.   (if (setq fn
  71.              (findfile
  72.                (if (= ""
  73.                       (setq nn (getstring
  74.                                  T
  75.                                  (strcat "Введите имя файла <"
  76.                                          fn
  77.                                          ">: "
  78.                                  )
  79.                                )
  80.                       )
  81.                    )
  82.                  fn
  83.                  nn
  84.                )
  85.              )
  86.       )
  87.     (ImportViews fn)
  88.     (princ "\nФайл не найден.")
  89.   )
  90.   (princ)
  91. )
  92.  
  93. (defun ExportViews (fn / e tl f ed)
  94.   (while (setq e (tblnext "VIEW" (null e)))
  95.     (setq tl (cons (cdr (assoc 2 e)) tl))
  96.   )
  97.   (setq f (open fn "w"))
  98.   (if f
  99.     (progn
  100.       (princ "Следующие виды экспортированы:\n")
  101.       (foreach view tl
  102.         (setq ed (entget (tblobjname "view" view)))
  103.         (prin1 (cons (cons 0 "VIEW") (cdddr ed)) f)
  104.         (princ "\n" f)
  105.         (prin1 view)
  106.         (terpri)
  107.       )
  108.       (close f)
  109.     )
  110.   )
  111. )
  112.  
  113. (defun ImportViews (fn / tl f)
  114.   (setq f (open fn "r"))
  115.   (if f
  116.     (progn
  117.       (princ "Следующие виды импортированы:\n")
  118.       (while (setq tl (read-line f))
  119.         (setq tl (read tl))
  120.         (entmake tl)
  121.         (print (cdr (assoc 2 tl)))
  122.       )
  123.       (close f)
  124.     )
  125.   )
  126. )
  127.  
  128. (princ)
Но данный lisp не работает нормально.
Экспортирует виды, а вот в новый чертеж не импортирует их.
Наверное старый лисп, или еще что-то.
Можете, пожалуйста, помочь в данном вопросе.

Название: Re: Экспорт и импорт видов AutoCAD
Отправлено: Александр Ривилис от 23-09-2020, 10:02:00
Экспортирует виды, а вот в новый чертеж не импортирует их.
Что происходит, какие сообщения об ошибках?
Название: Re: Экспорт и импорт видов AutoCAD
Отправлено: durasovartyom от 23-09-2020, 19:49:11
Добрый день!
У меня почему-то при импорте не позволяет открыть файл.
https://autode.sk/3hWcZim



Кроме этого вчера выдавало ошибку, а сегодня не получается открыть файл.
Название: Re: Экспорт и импорт видов AutoCAD
Отправлено: Александр Ривилис от 23-09-2020, 19:54:55
durasovartyom,
Давай dwg-файл, на котором экспериментируешь.

P.S.: У нас на форуме можно легко встраивать Screencast в сообщение на форуме. Как это делать - в моей подписи.
Название: Re: Экспорт и импорт видов AutoCAD
Отправлено: Александр Ривилис от 23-09-2020, 20:04:03
durasovartyom,
Проверь англоязычную версию отсюда: https://jtbworld.com/autocad-viewsio-lsp
В русскоязычной точно ошибка в команде импорта - не тот флаг для функции (getfiled), и она вообще не должна работать.
Название: Re: Экспорт и импорт видов AutoCAD
Отправлено: durasovartyom от 23-09-2020, 20:04:45
Спасибо.
Название: Re: Экспорт и импорт видов AutoCAD
Отправлено: Александр Ривилис от 23-09-2020, 20:47:04
Спасибо.

Англоязычная версия сработала? Там кроме перевода есть еще ряд исправлений.
Название: Re: Экспорт и импорт видов AutoCAD
Отправлено: durasovartyom от 23-09-2020, 20:49:06
Да англо версия сработала
Название: Re: Экспорт и импорт видов AutoCAD
Отправлено: Александр Ривилис от 23-09-2020, 20:52:00
Да англо версия сработала
Тексты переведёшь сам или в этом нет необходимости?
Название: Re: Экспорт и импорт видов AutoCAD
Отправлено: durasovartyom от 23-09-2020, 21:10:47
ДУмаю, что перевод не нужен. Благодарю