Импорт стилей и настроек CIVIL3D LISP

Автор Тема: Импорт стилей и настроек CIVIL3D LISP  (Прочитано 10706 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Коллеги, приветствую всех.

Стоит задача автоматизировать импорт стилей и настроек из шаблона, для последующего использования в autodesk batch utility и вручную.
Написал лист с вызовом из командной строки и указал путь шаблона, но команда проскакивает импортируя 0 стилей и 0 настроек.
Lisp не знаю, но могу написать команды с вызовом через командную строку.
в сети искал, толком ничего не нашел. https://www.3dcadworld.com/aeccimportstyles-and-aeccimportstylesandsettings-undocumented-commands
Подскажите, пожалуйста,  есть ли возможность запустить команду или нет, если да то как?
Заранее благодарен за ответ.

Код - Auto/Visual Lisp [Выбрать]
  1. (defun c:AECCIMPORTSTYLESANDSETTINGS_RA()
  2.  (command "_textscr")
  3.    (setvar "CMDDIA" 0)
  4.    (setvar "FILEDIA" 0)
  5.    (command "_.qsave")
  6.  (command "AECCIMPORTSTYLESANDSETTINGS" "S:\Standart\20181023.dwt" "_Y" " ")
  7.  (command "'_.ZOOM" "_E")
  8. (setvar "CMDDIA" 1)
  9. (setvar "FILEDIA" 1)
  10. )
Результат работы лиспа
Извините, вам запрещён просмотр содержимого спойлеров.
« Последнее редактирование: 23-10-2018, 13:57:07 от Александр Ривилис »

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #1 : 23-10-2018, 13:15:51 »
попробуй IMPORTSTYLESANDSETTINGS
NET Api
StyleBase.ExportTo(Autodesk.AutoCAD.DatabaseServices.ObjectIdCollection styleIds, Autodesk.AutoCAD.DatabaseServices.Database destinationDatabase, Autodesk.Civil.StyleConflictResolverType conflictResolution)

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

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #2 : 23-10-2018, 13:25:06 »
Спасибо за ответ,
IMPORTSTYLESANDSETTINGS попробовал, ведет себя также.
а Net api еще пока не выучил ;D
Извините, вам запрещён просмотр содержимого спойлеров.

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #3 : 23-10-2018, 13:25:41 »
видимо нечего импортировать

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

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #4 : 23-10-2018, 13:31:26 »
ручной импорт с этого файла
Извините, вам запрещён просмотр содержимого спойлеров.

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #5 : 23-10-2018, 13:37:50 »
укажи версию Civil'а
у меня в 2017 импортирует, но может это от файлов зависит...

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #6 : 23-10-2018, 14:00:04 »
Александр Панькин,
Обрати внимание на правильное форматирование кода на форуме (у меня в подписи) и соблюдай его!
Замени в пути к файлу символы "\" (в лиспе они должны быть двойными) на "/".
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #7 : 23-10-2018, 16:10:21 »
Коллеги, благодарю, лисп стал работать.
причина была в том, что чертеж на который я ссылался был открыт, после закрытия все стили и настройки импортировались.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #8 : 23-10-2018, 17:20:37 »
Как вариант проверки "файл в режиме только чтение или нет" попробуй к файлу применить vl-file-systime. У открытого файла функция вернет nil.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #9 : 23-10-2018, 21:01:43 »
Коллеги, благодарю, лисп стал работать.
причина была в том, что чертеж на который я ссылался был открыт, после закрытия все стили и настройки импортировались.

И всё-так почувствуй разницу:



Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Александр Панькин 23-10-2018, 23:59:20

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #10 : 23-10-2018, 21:27:58 »
В качестве улучшения кода (ну надоело мне работать!)
Код - Auto/Visual Lisp [Выбрать]
  1. (vl-load-com)
  2.  
  3. (defun c:aeccimportstylesandsettings_ra (/ adoc sysvar file)
  4.   (if (and (setq file "S:\\Standart\\20181023.dwt") (findfile file) (vl-file-systime file))
  5.     (progn (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  6.            (setq sysvar (vl-remove-if-not (function cdr)
  7.                                           (mapcar (function (lambda (x / tmp)
  8.                                                               (if (setq tmp (getvar (car x)))
  9.                                                                 (progn (setvar (car x) (cdr x)) (cons (car x) tmp))
  10.                                                                 ) ;_ end of if
  11.                                                               ) ;_ end of lambda
  12.                                                             ) ;_ end of function
  13.                                                   '(("sysmon" . 0) ("cmddia" . 0) ("filedia" . 0))
  14.                                                   ) ;_ end of mapcar
  15.                                           ) ;_ end of vl-remove-if-not
  16.                  ) ;_ end of setq
  17.            (vl-catch-all-apply
  18.              (function (lambda ()
  19.                          (command "_textscr")
  20.                          (command "_.qsave")
  21.                          (command "AECCIMPORTSTYLESANDSETTINGS" file "_Y" " ")
  22.                          (command "'_.ZOOM" "_E")
  23.                          ) ;_ end of lambda
  24.                        ) ;_ end of function
  25.              ) ;_ end of vl-catch-all-apply
  26.            (foreach item sysvar (setvar (car item) (cdr item)))
  27.            (vla-endundomark adoc)
  28.            ) ;_ end of progn
  29.     (princ (strcat "\nОшибка : файл \"" file "\" не обнаружен либо открыт!"))
  30.     ) ;_ end of if
  31.   (princ)
  32.   ) ;_ end of defun
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

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

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #11 : 24-10-2018, 00:10:16 »
Благодарю, за ответ.
Я сделал топорно, но работает.
После импорта добавил purgestyles и purge по циклу 3 раза, после это qsave и ещё раз importstylesandsettings, только в таком случае стили, которые ранее были установлены по умолчанию для команд затираются.
Но осталась проблема, если стиль применён к объекту - его не удалить.
Как написать на лисп не знаю, поэтому перед запуском лисп переназначаю стиль объектам, и после лиспа на "ничего" ( он есть и в новом и старом шаблоне), а после обновления возвращаю нужный.
Завтра выложу код и отредактирую это сообщение.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Re: Импорт стилей и настроек CIVIL3D LISP
« Ответ #12 : 24-10-2018, 00:33:12 »
Сугубо ИМХО.
Работать с вертикальными приложениями из-под лиспа чертовски неудобно. Если есть возможность, переходи на .NET.
P.S. Редактировать пост не надо, зачем?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!