Добро пожаловать!
Войдите или зарегистрируйтесь сейчас!
Войти
-

Форумчанин
- Регистрация:
- 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
-

- Регистрация:
- 24 июн 2015
- Сообщения:
- 7
- Симпатии:
- 2
Здравствуйте
Нашли ответ на вопрос? Столкнулся с такой же ситуацией#2
-

Форумчанин
- Регистрация:
- 28 май 2012
- Сообщения:
- 1.711
- Симпатии:
- 639
- Адрес:
-
Маськва
Попробуйте прямо автору написать — BearDyugin
Или в его соответствующие Ресурсы.#3
-

Форумчанин
- Регистрация:
- 30 ноя 2007
- Сообщения:
- 2.680
- Симпатии:
- 2.397
- Адрес:
-
Сибирь
С этого он и начал. Но к сожалению я не знаю в чём может быть проблема, периодически(но очень редко) обращаются с подобной проблемой, но даже предположить не могу с чем она связана. Чтобы узнать причину, мне нужно воспроизвести эту проблему на своём ПК, но сделать этого не получится.
#4
-

Форумчанин
-

- Регистрация:
- 24 июн 2015
- Сообщения:
- 7
- Симпатии:
- 2
Сейчас попробую.Спасибо.
Вчера половину этого перечитал, вопрос так и не решил.Два раза переставлял Cad— Сообщения объединены, 15 ноя 2019, Оригинальное время сообщения: 15 ноя 2019 —
Подскажите не совсем понятно.В реестре нашел эти строки.Как восстанавливаются пути.Где это делается?Может поможет
#6
-
Форумчанин
просто поиском найди его на диске
#7
-

- Регистрация:
- 24 июн 2015
- Сообщения:
- 7
- Симпатии:
- 2
Все получилось.Ура.Но пришлось менять путь в win 64, в win 32 ничего не выходило.
Спасибо кто помогал
#8
-

Форумчанин
видимо AutoCAD у тебя х64
#9
-

- Регистрация:
- 3 июл 2019
- Сообщения:
- 1
- Симпатии:
- 2
Добрый день, у меня, после удаления Autocad 2021 и установки Civil 3D вылезла аналогичная проблема — ошибка функции VLAX-ENAME->VLA-OBJECT
И, как следствие, я не смог произвести экспорт координат в файл.
Собственно помогло изменение реестра как указано в ссылка#10
BearDyugin и Qvinto нравится это.
Поделиться этой страницей
-
2014-06-16, 04:50 PM
#1

Member

I’m getting this message » ; error: no function definition: nil»
I have not don list for a while just getting back into it. so I have this lisp that makes a layer from the selected element and changes the color, and moves the selected ement to that layer, This works fine except I get this error message, «would like to know what this means» and how to fix it.
Thanks,Code:
(defun C:LRl (/ ent elay ldata) ; = Move To -New Layer [and make that Layer] (setvar "cmdecho" 0) (setq ent (car (entsel "nSelect object to make -New Layer for and move to it: " ) ) elay (cdr (assoc 8 (entget ent))) ldata ; Layer data without non-transferable elements (vl-remove-if-not '(lambda (x) (member (car x) '(0 100 2 70 62 6))) (entget (tblobjname "layer" elay)) ) ; vl-remove-if-not & ldata ) (if (or (< (strlen elay) 5) ; not a long-enough Layer name to already end in -New with anything preceding (/= (strcase (substr elay (- (strlen elay) 3))) "-REMV") ; not already on a Layer like that ) ; and (progn (entmake (subst (cons 2 (strcat elay "-REMV")"") (assoc 2 ldata) ldata) ) ; create Layer ((command "_.chprop" ent "" "_layer" (strcat elay "-REMV")) ; move object to it (command "._layer" "_C" "8" "*-remv*" "") ) ) ; progn ) ("cmdecho" 1) ; if (princ) )Last edited by rkmcswain; 2014-06-18 at 02:16 PM.
Reason: added [CODE] tags
-
2014-06-16, 05:11 PM
#2
Re: I’m getting this message » ; error: no function definition: nil»
Try replacing
Code:
((command "_.chprop" ent "" "_layer" (strcat elay "-REMV"))
with
Code:
(setq elay (strcat elay "-REMV")) (command "_.chprop" ent "" "_layer" elay)
or at least get rid of the extra open parentheses.
-
2014-06-16, 05:16 PM
#3
Re: I’m getting this message » ; error: no function definition: nil»
Also should be
Code:
(setvar "cmdecho" 1)
While entering a system variable at the command line to change it works it will not in lisp since «cmdecho» is not a lisp command.
-
2014-06-16, 06:44 PM
#4

Member

Re: I’m getting this message » ; error: no function definition: nil»
Thank you for your response, tried both suggestion and still get this error message:
it works correctly just has this funny mesage at the end. and dont really understand why.PLOT
Code:
(defun C:LR (/ ent elay ldata) ; = Move To -New Layer [and make that Layer] (setvar "cmdecho" 0) (setq ent (car (entsel "nSelect object to make -New Layer for and move to it: " ) ) elay (cdr (assoc 8 (entget ent))) ldata ; Layer data without non-transferable elements (vl-remove-if-not '(lambda (x) (member (car x) '(0 100 2 70 62 6))) (entget (tblobjname "layer" elay)) ) ; vl-remove-if-not & ldata ) (if (or (< (strlen elay) 5) ; not a long-enough Layer name to already end in -New with anything preceding (/= (strcase (substr elay (- (strlen elay) 3))) "-REMV") ; not already on a Layer like that ) ; and (progn (entmake (subst (cons 2 (strcat elay "-REMV")) (assoc 2 ldata) ldata)) ; create Layer ((command "_.chprop" ent "" "_layer" (strcat elay "-REMV") "" "" ""); move object to it (command "._layer" "_C" "8" "*-remv*" "") (setvar "cmdecho" 1) ) ) ; progn ) ; if )Last edited by rkmcswain; 2014-06-18 at 02:17 PM.
Reason: added [CODE] tags
-
2014-06-16, 07:27 PM
#5
Re: I’m getting this message » ; error: no function definition: nil»
Try clicking the ‘Go Advanced’ button, Then pick ‘Wrap [CODE] tags around selected text’ (# symbol from menu bars) and place the lisp code inside the [CODE] tags. That makes it easier for us to test your code.
Pasting everything that was output to the command line in response to the command may help as well.
-
2014-06-18, 02:24 PM
#6
Re: I’m getting this message » ; error: no function definition: nil»
When you paste code into the edit window, please add [CODE] to the beginning and [/CODE] to the end of your code. That will cause the code to be printed in a special window/font so it’s easy to spot, copy, etc.
Code:
;;; this is a sample
-
2014-06-20, 01:40 PM
#7

Member

Re: I’m getting this message » ; error: no function definition: nil»
Code:
(defun C:LR (/ ent elay ldata) ; = Move To -New Layer [and make that Layer] (setq ent (car (entsel "nSelect object to make -New Layer for and move to it: ")) elay (cdr (assoc 8 (entget ent))) ldata ; Layer data without non-transferable elements (vl-remove-if-not '(lambda (x) (member (car x) '(0 100 2 70 62 6))) (entget (tblobjname "layer" elay)) ); vl-remove-if-not & ldata ): (if (or (< (strlen elay) 5) ; not a long-enough Layer name to already end in -New with anything preceding (/= (strcase (substr elay (- (strlen elay) 3))) "-REMV"); not already on a Layer like that ); and (progn (entmake (subst (cons 2 (strcat elay "-REMV")) (assoc 2 ldata) ldata)) ; create Layer (command "._layer" "_C" "8" "*-remv*" "") (command "_.chprop" ent "" "_layer" (strcat elay "-REMV") "" "" ""); move object to it ) ) ; progn ) ; if ) ; defun
-
2014-06-20, 01:59 PM
#8
Re: I’m getting this message » ; error: no function definition: nil»
Try:
Code:
(defun C:LR (/ ent elay ldata) ; = Move To -New Layer [and make that Layer] (setq ent (car (entsel "nSelect object to make -New Layer for and move to it: " ) ) elay (cdr (assoc 8 (entget ent))) ldata ; Layer data without non-transferable elements (vl-remove-if-not '(lambda (x) (member (car x) '(0 100 2 70 62 6))) (entget (tblobjname "layer" elay)) ) ; vl-remove-if-not & ldata ) : (if (or (< (strlen elay) 5) ; not a long-enough Layer name to already end in -New with anything preceding (/= (strcase (substr elay (- (strlen elay) 3))) "-REMV") ; not already on a Layer like that ) ; and (progn (entmake (subst (cons 2 (strcat elay "-REMV")) (assoc 2 ldata) ldata) ) ; create Layer (command "_.chprop" ent "" "_layer" (strcat elay "-REMV") "" "._layer" "_C" "8" "*-remv*" ""); move object to it ) ; progn ) ; if (princ) )
-
2014-06-20, 07:59 PM
#9

Member

Re: I’m getting this message » ; error: no function definition: nil»
Is there a way to have this promt for user input for the layer it creates?
-
2014-06-23, 05:16 PM
#10
Re: I’m getting this message » ; error: no function definition: nil»
Try:
Code:
(defun C:LR (/ str len ent elay ldata) ; = Move To -New Layer [and make that Layer] (setq str (getstring T "nAdd Suffix: ") len (strlen str) ent (car (entsel "nSelect object to make -New Layer for and move to it: " ) ) elay (cdr (assoc 8 (entget ent))) ldata ; Layer data without non-transferable elements (vl-remove-if-not '(lambda (x) (member (car x) '(0 100 2 70 62 6))) (entget (tblobjname "layer" elay)) ) ; vl-remove-if-not & ldata ) : (if (or (< (strlen elay) len) ; not a long-enough Layer name to already end in -New with anything preceding (/= (strcase (substr elay (- (strlen elay) len))) str) ; not already on a Layer like that ) ; and (progn (entmake (subst (cons 2 (strcat elay str)) (assoc 2 ldata) ldata) ) ; create Layer (command "_.chprop" ent "" "_layer" (strcat elay str) "" "._layer" "_C" "8" (strcat "*" str) ""); move object to it ) ; progn ) ; if (princ) )
Перейти к содержимому раздела
Форумы CADUser
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Дерево сообщений Активные темы Темы без ответов
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
#1 21 декабря 2007г. 01:59:52

- Salina
- Восстановленный участник
- На форуме с 25 июля 2007г.
- Сообщений: 14
- Спасибо: 0
Тема: error: no function definition
Взят с форума лисп, положен в папку support, макрос на кнопку
^C^C^P(if (not (calc_dist)) (load «calc_dist.lsp»)) (calc_dist)
Сам лисп
(defun c:mlen2 (/ adoc selset layer_list init _kpblc-string-subst item sum_len)
(vl-load-com)
(setq adoc (vla-get-activedocument (vlax-get-acad-object))
sum_len 0.0
) ;_ end of setq
(vla-startundomark adoc)
(if
(setq ent (entsel "nУкажите примитив, с которого брать слой <Выход> : "))
(progn
(setq selset (ssget (list (assoc 8 (entget (car ent))))))
(while (and selset
(> (sslength selset) 0)
) ;_ end of and
(setq item (ssname selset 0))
(ssdel item selset)
(setq item (vlax-ename->vla-object item)
sum_len (+ sum_len
(if (vlax-property-available-p item 'length)
(vla-get-length item)
(cond
((= (strcase (vla-get-objectname item) t) "acdbarc")
(vla-get-arclength item)
)
((= (strcase (vla-get-objectname item) t) "acbcircle")
(* pi 2.0 (vla-get-radius item))
)
(t 0.0)
) ;_ end of cond
) ;_ end of if
) ;_ end of +
) ;_ end of setq
) ;_ end of while
(princ (rtos sum_len 2 4))
) ;_ end of progn
) ;_ end of if
(vla-endundomark adoc)
(princ)
) ;_ end of defun
И хоть убейся-выдает ошибку error: no function definition: CALC_DIST
Не подскажете, в чем может быть проблема?
#2 Ответ от Electr 21 декабря 2007г. 05:56:43

- Electr
- Активный участник
- Откуда: Киргизстан / Биш
- На форуме с 6 августа 2007г.
- Сообщений: 241
- Спасибо: 2
Re: error: no function definition
Исравь в программе calc_dist на mlen2
#3 Ответ от Electr 21 декабря 2007г. 06:00:07

- Electr
- Активный участник
- Откуда: Киргизстан / Биш
- На форуме с 6 августа 2007г.
- Сообщений: 241
- Спасибо: 2
Re: error: no function definition
Извини не в программе а в макросе. И надо чтобы файл программы назывался mlen2.lsp
^C^C^P(if (not (mlen2)) (load «mlen2.lsp»)) (mlen2)
#4 Ответ от Salina 21 декабря 2007г. 14:16:01

- Salina
- Восстановленный участник
- На форуме с 25 июля 2007г.
- Сообщений: 14
- Спасибо: 0
Re: error: no function definition
не получается. теперь error: no function definition: MLEN2 🙁
#5 Ответ от Hrenn 21 декабря 2007г. 14:30:27

- Hrenn
- Восстановленный участник
- На форуме с 28 октября 2004г.
- Сообщений: 2,016
- Спасибо: 0
Re: error: no function definition
Файл с программой имеет имя mlen2.lsp или какое другое?
#6 Ответ от Salina 21 декабря 2007г. 14:32:02

- Salina
- Восстановленный участник
- На форуме с 25 июля 2007г.
- Сообщений: 14
- Спасибо: 0
Re: error: no function definition
именно mlen2.lsp
#7 Ответ от Hrenn 21 декабря 2007г. 14:37:26

- Hrenn
- Восстановленный участник
- На форуме с 28 октября 2004г.
- Сообщений: 2,016
- Спасибо: 0
Re: error: no function definition
Попробуйте вручную загрузить лисп через команду _appload
После загрузки введите с ком. строки
Если заработает — надо править макрос
#8 Ответ от Hrenn 21 декабря 2007г. 14:48:58

- Hrenn
- Восстановленный участник
- На форуме с 28 октября 2004г.
- Сообщений: 2,016
- Спасибо: 0
Re: error: no function definition
Ещё проверить, прописан ли путь к папке Support в настройках _options
#9 Ответ от Salina 21 декабря 2007г. 14:50:44

- Salina
- Восстановленный участник
- На форуме с 25 июля 2007г.
- Сообщений: 14
- Спасибо: 0
Re: error: no function definition
так работает, с кнопки-никак
#10 Ответ от Salina 21 декабря 2007г. 14:51:33

- Salina
- Восстановленный участник
- На форуме с 25 июля 2007г.
- Сообщений: 14
- Спасибо: 0
Re: error: no function definition
путь к папке прописан. второй лисп работает в той же папке без проблем.
#11 Ответ от Александр Ривилис 21 декабря 2007г. 15:00:22

- Александр Ривилис
- Активный участник
- Откуда: Украина / Киев
- На форуме с 15 апреля 2005г.
- Сообщений: 8,659
- Спасибо: 157
Re: error: no function definition
А так:
^C^C^P(if (not c:mlen2) (load "mlen2.lsp")) mlen2
Или так:
^C^C^P(if (not c:mlen2) (load "mlen2.lsp")) (c:mlen2)
?
#12 Ответ от Salina 21 декабря 2007г. 15:16:15

- Salina
- Восстановленный участник
- На форуме с 25 июля 2007г.
- Сообщений: 14
- Спасибо: 0
Re: error: no function definition
а так работает! Спасибо!
Сообщения 12
Тему читают: 1 гость
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться