Ошибка no function definition vlax get acad object

I added the following programming to my Acad2013.lsp file to add Support File Search Paths automatically.

Now I get the following two errors:

no function definition: VLAX-GET-ACAD-OBJECT

; error: no function definition: ACET-REG-PRODKEY

ACAD2013.lsp:

; MODULE_ID ACAD2007_LSP_
;;;    ACAD2013.LSP Version 1.0 for AutoCAD 2013
;;;
;;;  Copyright 2012 Autodesk, Inc.  All rights reserved.
;;;
;;;  Use of this software is subject to the terms of the Autodesk license
;;;  agreement provided at the time of installation or download, or which
;;;  otherwise accompanies this software in either electronic or hard copy form. ;;;
;;;
;;;
;;;    Note:
;;;            This file is normally loaded only once per AutoCAD session.
;;;            If you wish to have LISP code loaded into every document,
;;;            you should add your code to acaddoc.lsp.
;;;
;;;    Globalization Note:  
;;;            We do not support autoloading applications by the native
;;;            language command call (e.g. with the leading underscore
;;;            mechanism.)

(if (not (=  (substr (ver) 1 11) «Visual LISP»)) (load «acad2013doc.lsp»))

;; Silent load.
(princ)

;; This loads CGA custom macro for «Set to current layer» lisp file
(load «s:/acad2007/lisp/layer.lsp»)

;; This loads CGA custom macro for «Set to current layer» lisp file
(load «s:/acad2007/lisp/cgalayr.lsp»)

;; This loads CGA custom lisp files
(load «s:/acad2007/lisp/CGA_custom.lsp»)

;; This loads CGA custom lisp files
(load «s:/acad2007/lisp/door.lsp»)

;; This loads CGA custom macro for Dimension Block Insertion file
(load «s:/acad2007/lisp/cgablockInsert.lsp»)

;; This loads CGA custom macro for Dimension Block Insertion file
(load «s:/acad2007/lisp/imperial-metricblockInsert.lsp»)

;; This loads custom Civil Cannoscales
(load «s:/acad2007/lisp/CS.lsp»)

;; This loads custom GHA Page Setups
(load «s:/acad2007/lisp/GHA Pagesetups.lsp»)

;; This loads custom zoom > xp routine
(load «s:/acad2007/lisp/zoomxp.lsp»)

;; This loads custom Electrical Plan Template
(load «s:/acad2007/lisp/electrical-plan.lsp»)

;; This loads custom dimension routine
(load «s:/acad2007/lisp/dimension.lsp»)

;; This loads custom mvsetup routine
(load «s:/acad2007/lisp/mvsetup.lsp»)

;; This loads custom leader routine
(load «s:/acad2007/lisp/leader.lsp»)

;; This loads custom Roof Framing Template routine
(load «s:/acad2007/lisp/Roof Frame.lsp»)

;; This loads custom Upper Floor Framing Template routine
(load «s:/acad2007/lisp/Upper Frame.lsp»)

;; This loads custom Main Floor Framing Template routine
(load «s:/acad2007/lisp/Main Frame.lsp»)

;; This loads custom GHA Title Block routine
(load «s:/acad2007/lisp/Layout Setup.lsp»)

;; This loads custom Change Caps routine
(load «s:/acad2007/lisp/Chgcase.lsp»)

;; This loads custom GHA Title Block routine
(load «s:/acad2007/lisp/STL.lsp»)

(prompt «nacad2007doc.lsp Loaded…»)

(vla-put-supportpath
  (setq files (vla-get-files (vla-get-preferences (vlax-get-acad-object))))
  (strcat «;S:\Fonts»
          «;»
          (vla-get-supportpath files)
  )
)

(vla-put-supportpath
  (setq files (vla-get-files (vla-get-preferences (vlax-get-acad-object))))
  (strcat «;S:\Acad2007\Hatch_Patterns»
          «;»
          (vla-get-supportpath files)
  )
)

(vla-put-supportpath
  (setq files (vla-get-files (vla-get-preferences (vlax-get-acad-object))))
  (strcat «;S:\Acad2007\Simpson\Menu»
          «;»
          (vla-get-supportpath files)
  )
)

(vla-put-supportpath
  (setq files (vla-get-files (vla-get-preferences (vlax-get-acad-object))))
  (strcat «;S:\Acad2007\Lisp»
          «;»
          (vla-get-supportpath files)
  )
)

(print «Printer setup started.»)
(vl-load-com)
(vlax-for ps (vla-get-plotconfigurations
(vla-get-activedocument (vlax-get-acad-object))
)
(vla-delete ps)
)
(setq expert (getvar «expert»))
(setvar «expert» 2)
(command «._-PSETUPIN»
«S:/ACAD2007/Templates/Sheetsets/Architectural Imperial.dwt»
«*»
)
(setvar «expert» expert)

(print «Printer setup completed.»)

Подобный вопрос с завидной регулярностью появляется на самых разных форумах:

Загружаю лисп, пытаюсь выполнить, а AutoCAD мне в ответ:
no function definition: VLAX-GET-ACAD-OBJECT
И результат нулевой. Что делать?


Все очень просто: в лиспах используется расширение ActiveX, которое в AutoCAD не подгружено. В некоторых версиях (например, 2006) эта подгрузка выполнялась автоматически независимо от желания пользователя; в 2008, 2010 и 2011 это уже надо делать принудительно. Достаточно в самом начале лиспа поставить

И все будет работать.

Надо просто про это не забывать…

Добавлю: сообщение может меняться, но начало всегда одно: не определена функция vl… Решение абсолютно то же самое :)

Перейти к содержимому раздела

Форумы CADUser

Информационный портал для профессионалов в области САПР

Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.

Дерево сообщений Активные темы Темы без ответов

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

#1 15 октября 2003г. 17:51:05

  • Kosarev
  • Восстановленный участник
  • На форуме с 14 октября 2003г.
  • Сообщений: 28
  • Спасибо: 0

Тема: 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.

#2 Ответ от VK 15 октября 2003г. 18:47:36

  • VK
  • Восстановленный участник
  • На форуме с 17 марта 2003г.
  • Сообщений: 1,980
  • Спасибо: 0

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

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

#3 Ответ от Kosarev 16 октября 2003г. 09:04:43

  • Kosarev
  • Восстановленный участник
  • На форуме с 14 октября 2003г.
  • Сообщений: 28
  • Спасибо: 0

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

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

#4 Ответ от kos 16 октября 2003г. 09:17:58

  • kos
  • Восстановленный участник
  • На форуме с 6 марта 2002г.
  • Сообщений: 637
  • Спасибо: 0

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

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

#5 Ответ от Апельсинов 16 октября 2003г. 09:27:31

  • Апельсинов
  • Восстановленный участник
  • На форуме с 19 марта 2003г.
  • Сообщений: 83
  • Спасибо: 0

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

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

#6 Ответ от ShaggyDoc 16 октября 2003г. 10:05:06

  • ShaggyDoc
  • Восстановленный участник
  • На форуме с 10 сентября 2001г.
  • Сообщений: 1,761
  • Спасибо: 0

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 в палитре компонентов, потом удалит этот пакет.
Для восстановления работоспособности надо сделать

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

#7 Ответ от leha 16 октября 2003г. 10:13:42

  • leha
  • Восстановленный участник
  • На форуме с 24 июня 2002г.
  • Сообщений: 235
  • Спасибо: 0

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.

#8 Ответ от leha 16 октября 2003г. 10:15:34

  • leha
  • Восстановленный участник
  • На форуме с 24 июня 2002г.
  • Сообщений: 235
  • Спасибо: 0

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

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

#9 Ответ от kos 16 октября 2003г. 10:24:04

  • kos
  • Восстановленный участник
  • На форуме с 6 марта 2002г.
  • Сообщений: 637
  • Спасибо: 0

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

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

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

#10 Ответ от Дмитрий 19 ноября 2003г. 19:55:52

  • Дмитрий
  • Восстановленный участник
  • На форуме с 17 ноября 2003г.
  • Сообщений: 12
  • Спасибо: 0

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.
Что делать подскажите!!!

#11 Ответ от VK 19 ноября 2003г. 20:36:02

  • VK
  • Восстановленный участник
  • На форуме с 17 марта 2003г.
  • Сообщений: 1,980
  • Спасибо: 0

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

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

#12 Ответ от Дмитрий 20 ноября 2003г. 09:29:56

  • Дмитрий
  • Восстановленный участник
  • На форуме с 17 ноября 2003г.
  • Сообщений: 12
  • Спасибо: 0

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 и …

#13 Ответ от allis 26 декабря 2003г. 14:20:48

  • allis
  • Восстановленный участник
  • На форуме с 26 декабря 2003г.
  • Сообщений: 1
  • Спасибо: 0

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

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

Сообщения 13

Тему читают: 1 гость

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться


Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти


  1. ViruS_worm

    Форумчанин

    Регистрация:
    22 сен 2014
    Сообщения:
    61
    Симпатии:
    6

    здравствуйте. стоит win7 x64+автокад сивил 2016+растер дизигнер
    помогите решить проблему, запускаю програмки с форума (гео-откос и гео_апп) а они не адекватно работают.
    произошло это как всегда неожиданно примерно в такой последовательности:
    все работало -> какое-то время не пользовался -> и на тебе «как отрезало»
    в частности гео-откос выдает: no function definition: vlax-ename->vla-object
    гео_апп не реагирует на кнопки, чертит не полилинии, а отрезки, не вставляет блоки.
    пробовал (vl-load-com) в коммандной строке вводить в ответ ничего
    пробовал (vla-get-activedocument (vlax-get-acad-object)) в ответ #<VLA-OBJECT IAcadDocument 0000000023870cf8>
    пробовал полную переустановку автокада с чистокой реестра и удалением папок ключей описанную здесь
    конечно при полной переустановке операционной системы все болезни лечатся, но как то это кардинально, да и времени тучу потратить
    может кто сталкивался с подобным?

    #1


  2. VovkaMel

    Регистрация:
    24 июн 2015
    Сообщения:
    7
    Симпатии:
    2

    Здравствуйте
    Нашли ответ на вопрос? Столкнулся с такой же ситуацией

    #2


  3. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.777
    Симпатии:
    653
    Адрес:

    Маськва

    Попробуйте прямо автору написать — BearDyugin
    Или в его соответствующие Ресурсы.

    #3


  4. BearDyugin

    Форумчанин

    Регистрация:
    30 ноя 2007
    Сообщения:
    2.703
    Симпатии:
    2.444
    Адрес:

    Сибирь

    С этого он и начал. Но к сожалению я не знаю в чём может быть проблема, периодически(но очень редко) обращаются с подобной проблемой, но даже предположить не могу с чем она связана. Чтобы узнать причину, мне нужно воспроизвести эту проблему на своём ПК, но сделать этого не получится.

    #4


  5. trir

    Форумчанин


  6. VovkaMel

    Регистрация:
    24 июн 2015
    Сообщения:
    7
    Симпатии:
    2

    Сейчас попробую.Спасибо.
    Вчера половину этого перечитал, вопрос так и не решил.Два раза переставлял Cad

    — Сообщения объединены, 15 ноя 2019, Оригинальное время сообщения: 15 ноя 2019

    Подскажите не совсем понятно.В реестре нашел эти строки.Как восстанавливаются пути.Где это делается?Может поможет

    #6


  7. trir

    Форумчанин

    просто поиском найди его на диске

    #7


  8. VovkaMel

    Регистрация:
    24 июн 2015
    Сообщения:
    7
    Симпатии:
    2

    Все получилось.Ура.Но пришлось менять путь в win 64, в win 32 ничего не выходило.
    Спасибо кто помогал

    Благодарность.png

    #8


  9. trir

    Форумчанин

    видимо AutoCAD у тебя х64

    #9


  10. Yaroslavv

    Регистрация:
    3 июл 2019
    Сообщения:
    1
    Симпатии:
    2

    Добрый день, у меня, после удаления Autocad 2021 и установки Civil 3D вылезла аналогичная проблема — ошибка функции VLAX-ENAME->VLA-OBJECT
    И, как следствие, я не смог произвести экспорт координат в файл.
    Собственно помогло изменение реестра как указано в ссылка

    #10


    BearDyugin и Qvinto нравится это.

Поделиться этой страницей

If you have an AutoLISP file that does not work or exits like the sample below there might be an easy solution.

Command: (vlax-get-acad-object)
; error: no function definition: VLAX-GET-ACAD-OBJECT

Try running (vl-load-com) or add it to the beginning of the LSP file.

Command: (vl-load-com)

Command: (vlax-get-acad-object)
#<VLA-OBJECT IAcadApplication 00d73d3c>

Now it works as expected without any errors.

What is (vl-load-com) ?

This function loads the extended AutoLISP functions provided with Visual LISP. The Visual LISP extensions implement ActiveX and AutoCAD reactor support through AutoLISP, and also provide ActiveX utility and data conversion functions, dictionary handling functions, and curve measurement functions.

It does not hurt to add (vl-load-com) to your LSP files to make sure it works. If the extensions already are loaded (vl-load-com) does nothing.

Понравилась статья? Поделить с друзьями:
  • Ошибка no function definition vlax ename vla object
  • Ошибка no function definition nil
  • Ошибка no data for testing
  • Ошибка no compatible graphics device found
  • Ошибка no bus что это такое