Помогите адаптировать Lisp код с 2011A-Cad'a на 2015 A-Cad - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Помогите адаптировать Lisp код с 2011A-Cad'a на 2015 A-Cad

Помогите адаптировать Lisp код с 2011A-Cad'a на 2015 A-Cad

Ответ
Поиск в этой теме
Непрочитано 08.08.2014, 17:28
Помогите адаптировать Lisp код с 2011A-Cad'a на 2015 A-Cad
d.mOnII
 
Проектирование
 
Минск
Регистрация: 22.01.2013
Сообщений: 123

Добрый день.
Я пользовался кодом лисп на акаде 2007-2011, но с переходом на новое место работы и формировании проектного отдела столкнулся с такой от проблемой.
преобретая акад, мы можем приобрести только последнюю версию, а это 2015 кад (либо 2014 еще можно найти), с одной стороны и клучшему, поюзал кад 2014 вроде поприятнее интерфейс ну и пару полезных фичЪ есть, НО ни один код на лиспе теперь не работает, выдает от такое сообщение:

Цитата:
Function is not available in AutoCAD Version 19.1s (LMS Tech). для када 2014
Function is not available in AutoCAD Version 20.0s (LMS Tech). для када 2015
что можно сделать? посоветуйте, пожалуйста
код такой подгрузка ссылок массивом
Код:
[Выделить все]
 
(defun c:xrm ( / actlayer AcadVersion dvbFile StartMacro AcadApp xrefLayerName)

   (setvar "cmdecho" 0)

   (setq xrefLayerName NIL)
   (if (tblsearch "LAYER" "XREF")         (setq xrefLayerName "XREF") )
   (if (tblsearch "LAYER" "LL_STDL_XREF") (setq xrefLayerName "LL_STDL_XREF") )  ;15.03.04
   (if (tblsearch "LAYER" "AW_STDL_XREF") (setq xrefLayerName "AW_STDL_XREF") )  ;31.01.08
      
   (setq dvbFile (findfile "XREFS_#x.dvb"))
(princ "\n xrefLayerName:'")
(princ xrefLayerName)
(princ "'found!!!")
(princ)

   (if dvbFile
     (progn
        (setq actlayer (getvar "clayer"))
        (if xrefLayerName
           (progn
             (command "_layer" "_thaw"   xrefLayerName "")
             (command "_layer" "_unlock" xrefLayerName "")
             (command "_layer" "_on"     xrefLayerName "")
        
             (setq StartMacro (strcat dvbFile "!Modul1.Start"))
             (setq AcadApp (vlax-get-acad-object))
             (vla-loadDVB   AcadApp dvbFile)
             (Command "_-vbarun" StartMacro)

;             (vla-unloadDVB AcadApp dvbFile)   => 21.09.2011 The unload command causes in AutoCAd 2012 an "Execution error
           )
           (progn
             (alert "ERROR: Layer XREF and NN_STDL_XREF not found !!")
           )
        );fi xrefLayerName   
     )
     (progn
       (princ "\n ** Program XREFS_#x.DVB not found !")
       (c:xa)  ;
     )  
   );fi dvb_name

   (princ)
   
); ende xrm

Последний раз редактировалось d.mOnII, 12.08.2014 в 15:36.
Просмотров: 6587
 
Непрочитано 12.08.2014, 15:57
#21
gomer

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


так и будешь огрызки свои бросать?
gomer вне форума  
 
Автор темы   Непрочитано 12.08.2014, 16:05
#22
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


сделал так
тупо дописал в код две строчки
Код:
[Выделить все]
 		(wcmatch acad_ver "19.*")
		(wcmatch acad_ver "20.*"))
все заработало но! при исполнении кода я наблюдаю в командной строке сообщения "неизвестная команда", но все так быстро происходит что не могу понять, что не выполняет код...
пошаговую отладку запустить не получается/ не знаю как пользоваться, а гугл не помогает, интуитивно не разобрался(
запускаю accoreconsole.exe а что дальше не понимаю, на команду кода пишет следующее: неизвестная команда, читай по F1 а что там читать ?...

так что правильность работы кода проверить не получается, но вижу что файл формируется и вижу что файл прикрепляется согласно всех требований

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от gomer Посмотреть сообщение
так и будешь огрызки свои бросать?
прошу прощения, но это все в разных файлах а не в одном, а подгружались все лиспы одновременно, сейчас по одному гружу и смотрю что происходит
d.mOnII вне форума  
 
Непрочитано 12.08.2014, 16:25
#23
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от d.mOnII Посмотреть сообщение
пошаговую отладку запустить не получается/ не знаю как пользоваться
http://autolisp.ru/2009/09/10/vlide-misc-01/
http://autolisp.ru/2009/09/12/vlide-misc-02/
Цитата:
Сообщение от d.mOnII Посмотреть сообщение
запускаю accoreconsole.exe
О как, начинается самое веселое! Про что еще не рассказано?
http://autolisp.ru/2014/03/04/accoreconsole-lisp-debug/

----- добавлено через 54 сек. -----
Добавлю: консольный ACAD вообще-то не предназначен для ооочень многих вещей.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 12.08.2014, 16:49
#24
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
О как, начинается самое веселое! Про что еще не рассказано?
http://autolisp.ru/2014/03/04/accoreconsole-lisp-debug/
именно по этой ссылке я и вышел на консоль, но методом тыка не смог с ним справиться) спасибо за ваше терпение, господа, ща поизучаю
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
http://autolisp.ru/2009/09/10/vlide-misc-01/
http://autolisp.ru/2009/09/12/vlide-misc-02/
и, надеюсь, пролью свет на свою темень

----- добавлено через ~14 мин. -----
открыл окно VLIDE
открыл проект LISP
нажимаю F8 - глухо, ищу в меню отладку, нахожу, но половина команд из выпадающего списка меню "отладка" неактивна, в том числе и шаг с заходом

----- добавлено через ~20 ч. -----
Так как выполнить пошаговую отладку? если меню неактивно(

Последний раз редактировалось d.mOnII, 12.08.2014 в 17:23.
d.mOnII вне форума  
 
Автор темы   Непрочитано 28.09.2014, 16:25
#25
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


Добрый день.
В общем по-находил я все файлы и этот #.DVB

пытаюсь теперь впринципе разобраться в кодах

Код:
[Выделить все]
    (if dvbFile
     (progn
        (setq actlayer (getvar "clayer"))
        (if xrefLayerName
           (progn
             (command "_layer" "_thaw"   xrefLayerName "")
             (command "_layer" "_unlock" xrefLayerName "")
             (command "_layer" "_on"     xrefLayerName "")
        
             (setq StartMacro (strcat dvbFile "!Modul1.Start"))
             (setq AcadApp (vlax-get-acad-object))
             (vla-loadDVB   AcadApp dvbFile)
             (Command "_-vbarun" StartMacro)

;             (vla-unloadDVB AcadApp dvbFile)  
помогите, пожалуйста, разобраться с этим (setq AcadApp (vlax-get-acad-object))
где эта функция должна присутствовать? и что она делает?

----- добавлено через ~4 мин. -----
все чем порадовал гугл http://docs.autodesk.com/MAP/2014/RU...=ACDd30e620190
небольшой справкой из када (но что-то все равно не понятно(((( )
d.mOnII вне форума  
 
Непрочитано 28.09.2014, 17:07
#26
gomer

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


Цитата:
Сообщение от d.mOnII Посмотреть сообщение
где эта функция должна присутствовать? и что она делает?
в коде, это не функция, а выражение, присваивает переменной AcadApp ссылку на текущий экземпляр автокада
gomer вне форума  
 
Автор темы   Непрочитано 28.09.2014, 21:29
#27
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


хммм, тогда не понятна ошибка када error: no function definition: vlax-get-acad-object при запуске команды
d.mOnII вне форума  
 
Непрочитано 28.09.2014, 22:05
#28
Кулик Алексей aka kpblc
Moderator

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


http://autolisp.ru/2010/06/09/no-fun...t-acad-object/
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.09.2014, 15:00
#29
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


Спасибо, но я так и не понял куда добавлять команду VL-Load-com
Между этих двух строк?
Код:
[Выделить все]
              (setq StartMacro (strcat dvbFile "!Modul1.Start"))
             (setq AcadApp (vlax-get-acad-object))
но тогда я вижу ошибку: xrefLayerName:'AW_STDL_XREF'found!!!Ошибка при выполнении

p.s. весь блок прописан в посте вопроса defun c:xrm


данный слой есть
AW_STDL_XREF присутствует
локальная функция для прикрепления ссылок по команде ХА работает исправно, а вот xrm что-то выпендривается(((

Последний раз редактировалось d.mOnII, 30.09.2014 в 15:21.
d.mOnII вне форума  
 
Непрочитано 30.09.2014, 15:31
#30
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от d.mOnII Посмотреть сообщение
я так и не понял куда добавлять команду VL-Load-com
В самое начало лиспа.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 30.09.2014, 17:03
#31
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


покрутил повертел
Код:
[Выделить все]
         (vl-load-com)
             (setq StartMacro (strcat dvbFile "!Modul1.Start"))
             (setq AcadApp (vlax-get-acad-object))
             (vla-loadDVB   AcadApp dvbFile)
             (Command "_-vbarun" StartMacro)
Команда: XRM
xrefLayerName:'AW_STDL_XREF'found!!!Инициализация системы VBA...Ошибка при выполнении

если я правильно понимаю - проблема в самом файле VBA?

Добавил и так
Код:
[Выделить все]
         (vl-load-com)
(defun c:xrm
и так
Код:
[Выделить все]
 (defun c:xrm ( / actlayer AcadVersion dvbFile StartMacro AcadApp xrefLayerName)
        (vl-load-com)
результат такой же:
xrefLayerName:'AW_STDL_XREF'found!!!Инициализация системы VBA...Ошибка при выполнении

Последний раз редактировалось d.mOnII, 30.09.2014 в 17:09.
d.mOnII вне форума  
 
Непрочитано 30.09.2014, 17:04
#32
Кулик Алексей aka kpblc
Moderator

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


Вполне легко.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 30.09.2014, 17:51
#33
gomer

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


Ошибка скорей всего в модуле VBA. Возможно он не адаптирован под новый автокад...
gomer вне форума  
 
Автор темы   Непрочитано 01.10.2014, 15:19
#34
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


Блин, а VBA не посмотреть( запаролен((((((((
d.mOnII вне форума  
 
Непрочитано 01.10.2014, 15:24
#35
gomer

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


ну, тогда в Поиск
gomer вне форума  
 
Автор темы   Непрочитано 01.10.2014, 18:39
#36
d.mOnII

Проектирование
 
Регистрация: 22.01.2013
Минск
Сообщений: 123
Отправить сообщение для d.mOnII с помощью Skype™


? чем поиск может помочь?
d.mOnII вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Помогите адаптировать Lisp код с 2011A-Cad'a на 2015 A-Cad



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Использование чужого кода в своих программах Golem-iq Программирование 31 02.09.2013 14:33
Уменьшение времени выполнения кода на VBA Vladmart Программирование 1 11.12.2009 14:35
Жаль, что у ЛИСПа нет генератора кода :( Малявка Разное 3 16.07.2009 14:20
Перенос кода лисп программ в Persistant Reactors Torino LISP 2 06.12.2004 14:54