Тема: No function definition: VLAX-GET-ACAD-OBJECT ?

Извините за дилетантство, но в продолжение предыдущей темы хочу спросить, что необходимо подгрузить или установить доступ к чему, чтобы выражения типа
(vla-put-DisplayScreenMenu (vla-get-Display (vla-get-Preferences (vlax-get-acad-object))) :vlax-true)
отрабатывали без
no function definition: VLAX-GET-ACAD-OBJECT.
Желательно учесть, что Ваш оппонент почти ноль в VL.

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

Для подгрузки указанных (и других) функций VisualLisp используйте функцию (vl-load-com). Она должна быть выдвана первой. Достаточно один раз на сеанс работы АКАД.

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

Спасибо, VK!
Вполне доходчиво.

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

> Kosarev
Вообще-то в AutoCAD 2000 и более поздних версиях загрузка (vl-load-com) не обязательна - вся эта музыка грузится автоматически. В R14 НУЖНО загружать VL. Но для совместимости лучше грузить в любой версии. Не помешает.
И вообще, для программирования важно какая версия AutoCAD (и соответственно LISP) используется.
______________
Удачи.

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

> kos
Встречалась проблема, что в 2002 акаде автоматически "вся эта музыка" не грузилась, возможно что-то было не правильно установлено, возможно что-то просто сглючило. От чего это может зависить?

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

vl-load-com ни разу можно не вызывать только в AutoCAD 2004. Но и вызов ее не повредит, можно оставлять для совместимости программ.
То, о чем писал > kos (2003-10-16 09:17:58) вызвано тем, что какая-то из "полустандартных" программ уже делала такой вызов. vl-load-com загружает vlcom.dll, после чего Visual Lisp начинает понимать все специфичные функции для ActiveX.
Но бывает ситуация, когда и vl-load-com не помогает. Это происходит из-за того, что по каким-то причинам удаляется из реестра информация об axauto15.dll - COM-сервере, который и поддерживает все обращения к Автокаду через интерфейсы. Произойти это может при лечениях и чистках реестра, а также если программист, зарегистрировавший Acad.tlb в палитре компонентов, потом удалит этот пакет.
Для восстановления работоспособности надо сделать

regsvr32 axauto15.dll 

из командной строки (ОС, а не Автокада).

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

Согласен с > Апельсинов (2003-10-16 09:27:31)
В Help'е и 2000, и 2004 сказано одно и то же:
VLISP provides some extensions to the AutoLISP language that are not loaded automatically when you start AutoCAD.
...
Before you can use any of these functions, you need to load the AutoLISP extensions with the following function call:
(vl-load-com)

И у меня это подтверждается и в 2000, и в 2004. В голом ACAD надо сначала (vl-load-com). И при установке (на сколько помню) ничего такого не спрашивается. Если при загрузке ACAD (vl-load-com) уже выполненно, то это делает какая-то программа. Если нет никаких сторонних программ, возможно, это делает Express.

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

Пока писал, > ShaggyDoc (2003-10-16 10:05:06) уже ответил. Но все-таки повторюсь: в голом 2004 (vl-load-com) все равно нужен.

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

Если нет никаких сторонних программ, возможно, это делает Express.

Самое интересное, что никаких Express'ов у меня не установлено. Правда пользуюсь не голым AutoCAD'ом, а Map'ом. Скорее всего ноги (сиречь com) именно оттуда и произрастают.
______________
Удачи.

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

Товарищи, ПАМАГИТЕ!!!
Учел все ваши советы, но все равно он (AutoCAD), собака, пишет:
; file "C:\\Program Files\\AutoCAD 2002\\VLLIB.DLL": 1 зarpyжeннaя фopмa
; file "C:\\Program Files\\AutoCAD 2002\\VLLIB.DLL": 1 зarpyжeннaя фopмa
; file "C:\\Program Files\\AutoCAD 2002\\VLLIB.DLL": 1 зarpyжeннaя фopмa
; Пpegynpeжgeнue:C6oй зarpyзku 6u6лuomeku munoв AutoCAD: "Ошибка при загрузке библиотеки"
; Пpegynpeжgeнue:C6oй зarpyзku 6u6лuomeku munoв AutoCAD: "Ошибка при загрузке библиотеки"
; Oшu6ka: no function definition: VLAX-INVOKE-METHOD.
Что делать подскажите!!!

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

> Дмитрий
Когда это пишет, в каком случае?

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

> VK
Загружаю втупую пример из help'а:
_$ (setq mycircle (vla-addCircle mSpace
      (vlax-3d-point '(3.0 3.0 0.0)) 2.0))
#<VLA-OBJECT IAcadCircle 03ad067c>
Преред этим делаю vl-load-com и ...

Re: No function definition: VLAX-GET-ACAD-OBJECT ?

Автокад не может найти своих файлов в Common files просто переставь его.