Lisp. Неверная функция
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. Неверная функция

Lisp. Неверная функция

Ответ
Поиск в этой теме
Непрочитано 15.03.2014, 01:06 #1
Lisp. Неверная функция
Flash
 
Регистрация: 15.03.2014
Сообщений: 3

Выдаёт ошибку "Неверная функция ", в чем может быть проблема?
Код:
[Выделить все]
 (defun schet (x y)
(setq a (x y))

(setq x1 (+ x 10))
(setq y1 (+ y 0))
(setq b (list x1 y))

(setq x2 (+ x 40))
(setq y2 (+ y 10))
(setq c (list x2 y2))

(setq x3 (+ x 50))
(setq y3 (+ y 20))
(setq d (list x3 y3))

(setq x4 (+ x 40))
(setq y4 (+ y 30))
(setq e (list x4 y4))

(setq x5 (+ x 0))
(setq y5 (+ y 40))
(setq g (list x5 y5))

(setq x6 (+ x 150))
(setq y6 (+ y 40))
(setq k (list x6 y6))

(setq x7 (+ x 150))
(setq y7 (+ y 30))
(setq w (list x7 y7))

(setq x8 (+ x 120))
(setq y8 (+ y 30))
(setq v (list x8 y8))

(setq x9 (+ x 110))
(setq y9 (+ y 20))
(setq p (list x9 y9))

(setq x10 (+ x 120))
(setq y10 (+ y 10))
(setq w (list x10 y10))

(setq x11 (+ x 150))
(setq y11 (+ y 10))
(setq u (list x11 y11))

(setq x12 (+ x 150))
(setq y12 (+ y 0))
(setq z (list x12 y12))

(setq x13 (+ x 75))
(setq y13 (+ y 20))
(setqn (list x13 y13))
)

(defun plot ()

(command "_line" a b "")
(command "_line" b c "")
(command "_line" f e "")
(command "_line" f g "")
(command "_line" g k "")
(command "_line" k v "")
(command "_line" v p "")
(command "_line" w u "")
(command "_line" u z "")
(command "_line" a z "")
(command "_arc" c d e)
(command "_arc" v p w)
(command "_circle" n 5)

)
Просмотров: 3751
 
Непрочитано 15.03.2014, 01:32
#2
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от Flash Посмотреть сообщение
...
(setq a (x y))
....
Что это за выражение?
Хотите начать программировать на ЛИСП? Сюда http://forum.dwg.ru/showthread.php?t...ighlight=kpblc
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Автор темы   Непрочитано 15.03.2014, 01:40
#3
Flash


 
Регистрация: 15.03.2014
Сообщений: 3


это первая точка
Flash вне форума  
 
Непрочитано 15.03.2014, 04:54
#4
gomer

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


Цитата:
Сообщение от Flash Посмотреть сообщение
это первая точка
(list x y) - это точка, (x y) функция x от y, но функция не может быть числом, поэтому она неверная
gomer вне форума  
 
Автор темы   Непрочитано 15.03.2014, 13:03
#5
Flash


 
Регистрация: 15.03.2014
Сообщений: 3


Тогда нужно задавать её так?
(setq a (getint))
Flash вне форума  
 
Непрочитано 15.03.2014, 13:46
#6
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


Цитата:
Сообщение от Flash Посмотреть сообщение
Тогда нужно задавать её так?
1. Посмотри хотя бы начало темы, на которую я послал....
2. Всю отладку ЛИСПа делай в редакторе.
Для этого:
а) в комстроке Команда: VLIDE
б) скопируй свой текст в Новый файл или открой в Редакторе, который создал
в) пошагово запускай текст или поставь точки останова
в) открой HELP (F1), там есть перечень функций ЛИСПа, тогда не будешь задавать подобных вопросов.
Например
getint

Pauses for user input of an integer, and returns that integer
(getint [msg])
Examples

Command: (setq num (getint))
15


getpoint

Pauses for user input of a point, and returns that point
(getpoint [pt] [msg])
Examples

(setq p (getpoint))
(setq p (getpoint "Where? "))
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...

Последний раз редактировалось Alan, 15.03.2014 в 14:50.
Alan вне форума  
 
Непрочитано 15.03.2014, 15:04
#7
gomer

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


Писать надо так, чтоб это смогли понять и улучшить!
Код:
[Выделить все]
 (defun c:draw ()

  (defun _shift	(pt x y)
    (mapcar '+ pt (list x y))
  )

  (setq
    p0 '(0 0)			        ; Базовая точка
    w  40				; Ширина
    l  150				; Длина
    r  10				; Радиус паза
    d  40				; Глубина паза
    c  10				; Диаметр отверстия
  )

  (setq
    h1	(- (* 0.5 w) r)
    h2	(+ (* 0.5 w) r)

    p1	(_shift p0 l 0)
    p2	(_shift p0 l h1)
    p3	(_shift p0 (- l d) h1)
    p4	(_shift p0 (- l d) h2)
    p5	(_shift p0 l h2)
    p6	(_shift p0 l w)
    p7	(_shift p0 0 w)
    p8	(_shift p0 0 h2)
    p9	(_shift p0 d h2)
    p10	(_shift p0 d h1)
    p11	(_shift p0 0 h1)
    p12	(_shift p0 (* 0.5 l) (* 0.5 w))
  )

  (setq	osm (getvar 'osmode)
	cmd (getvar 'cmdecho)
  )

  (setvar 'cmdecho 0)
  (setvar 'osmode 0)

  (command "_.pline"	   p0	   p1	   p2	   p3	   "_arc"
	   p4	   "_line" p5	   p6	   p7	   p8	   p9
	   "_arc"  p10	   "_line" p11	   "_close"
	  )
  (command "_.circle" p12 "_diameter" c)

  (setvar 'cmdecho cmd)
  (setvar 'osmode osm)

  (princ)
)
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Lisp. Неверная функция



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP: функция strcat игнорирует управляющие символы? WhiteShark LISP 21 21.02.2014 18:48
LISP: функция Nth наоборот WhiteShark LISP 26 24.03.2013 13:22
LISP. Функция /= Do$ LISP 11 11.07.2011 10:06
Какая LISP функция проверяет чётность/нечётность числа? Владимир Егорьев LISP 5 19.04.2011 21:11