错误:输入列表格式不正确
大家好,需要一些lisp的帮助,请在错误处划线。我修正了你告诉大家的,但新的错误来了,不知道去哪里找。编辑了程序。
错误:错误的参数类型:numberp:nil
;Funkcija pavercianti laipsnius i radianus
(defun dtr (alfa)
(* pi (/ alfa 180.0))
)
;Duomenų įvedimas
(defun duom ()
(setq t0 (getpoint "\n Pažymėti pradžios tašką t0:"))
(if (null t0) (setq t0 (list 10.0 10.0)))
(setq h (getdist "\n Įveskite aukšti h: <30>:"))
(if (null h) (setq h 30))
(setq L (getdist "\n Įveskite ilgį L: <25>:"))
(if (null L) (setq L 25))
(setq R1 (getdist "\n Įveskite spindulį R1: <9>:"))
(if (null R1) (setq R1 9))
(setq R2 (getdist "\n Įveskite spindulį R2: <18>:"))
(if (null R2) (setq R2 18))
(setq W (getdist "\n Įveskite linijos plotį W: <0.5>:"))
(if (null W) (setq W 0.5))
)
;Koordinačių priskyrimas
(defun koord ()
(setq t1 (polar t0 (dtr 90) h))
(setq t2 (polar t1 (dtr 0) (- L R1)))
(setq T3 (polar t2 (dtr 270) R1))
(setq t4 (list (+ (- L R1) (- (sqrt(- (* (+ R1 R2) (+ R1 R2)) (* (- h R1) (- h R1)))) (/(* (sqrt(- (* (+ R1 R2) (+ R1 R2)) (* (- h R1) (- h R1)))) R2) (+ R1 R2)))) (/(* R2 (- h R1)) (+ R1 R2))))
(setq T6 (list (+ (car t3) (sqrt(- (* (+ R1 R2) (+ R1 R2)) (* (- h R1) (- h R1))))) (cadr t0)))
(setq t5 (list (- (car T6) R2) (cadr t0)))
)
;--Braižymas
(defun braiz ()
(command "PLINE" t0 "w" W "" t1 t2 "ARC" "A" "-90" "CE" t3 t4 "CE" T6 t5 "L" t0 "")
(setq pl (entlast))
(command "hatch" "ansi31" 1 0 pl "")
)
;Pagrindine programa
(defun C:PRZC()
(duom)
(koord)
(braiz)
(princ)
) 我不会回答,但会指出,如果您使用了
tags you wouldn't get the smiley faces. 这似乎是最令人反感的部分。首先,请看下面的内容。我没有试着检查日常生活。我只指出你在某处遗漏了几个括号。这只是一个示例更正。
;Koordinaciu priskyrimas
(defun koord ()
; use setq, don't write equations (except as comments)
s1=(+ R1 R2)
s2=(sqrt(-(* s1 s1) (* (- h R1) (- h R1))))
s3=(/(* s2 R2) s1)
(setq t1 (polar t0 (dtr 90) h))
(setq t2 (polar t1 0 (- L R1)))
(setq T3 (polar t2 (dtr 270) R))
(setq t4 (list (+ (- L R1) (- s2 s3)) (/(* R2 (- h R1)) s1) ))
(setq t5 (list (- (car T6) R2) (cadr t0)) )
(setq T6 (list (+ (car t3) s2) (cadr t0)) )
) 按照你说的改变了程序,但错误变了。有什么想法吗? 当然这里有三点:1。修复第一个条目,将其包含在代码标记中。2、在代码标签中发布最新版本。3、报告您遇到的错误。
http://www.cadtutor.net/forum/showthread.php?9184-代码发布指南 看看第一篇文章,它是经过编辑的。 也许吧,但你忘了回复其他评论。 对不起,我是新来的。按你的要求编辑所有内容。 也许是这样的
Code:
;Funkcija pavercianti laipsnius i radianus
(defun dtr (alfa)
(* pi (/ alfa 180.0))
)
;Duomenu ivedimas
(defun duom ()
(setq t0 (getpoint "\n Pažymeti pradžios taška t0:"))
(if (null t0) (setq t0 (list 10.0 10.0)))
(setq h (getdist "\n Iveskite aukšti h: <30>:"))
(if (null h) (setq h 30))
(setq L (getdist "\n Iveskite ilgi L: <25>:"))
(if (null L) (setq L 25))
(setq R1 (getdist "\n Iveskite spinduli R1: <9>:"))
(if (null R1) (setq R1 9))
(setq R2 (getdist "\n Iveskite spinduli R2: <18>:"))
(if (null R2) (setq R2 18))
(setq W (getdist "\n Iveskite linijos ploti W: <0.5>:"))
(if (null W) (setq W 0.5))
)
;Koordinaciu priskyrimas
(defun koord ()
(setq t1 (polar t0 (dtr 90) h))
(setq t2 (polar t1 (dtr 0) (- L R1)))
(setq T3 (polar t2 (dtr 270) R1));; R don't exists I did change it to R1 for testing...
(setq t4 (list (+ (- L R1) (- (sqrt(- (* (+ R1 R2) (+ R1 R2)) (* (- h R1) (- h R1)))) (/(* (sqrt(- (* (+ R1 R2) (+ R1 R2)) (* (- h R1) (- h R1)))) R2) (+ R1 R2)))) (/(* R2 (- h R1)) (+ R1 R2))))
;(setq t5 (list (- (car T6) R2) (cadr t0)));; T6 is not set yet
(setq T6 (list (+ (car t3) (sqrt(- (* (+ R1 R2) (+ R1 R2)) (* (- h R1) (- h R1))))) (cadr t0)))
(setq t5 (list (- (car T6) R2) (cadr t0)))
)
;--Braižymas
(defun braiz ()
(command "PLINE" t0 "w" W "" t1 t2 "ARC" "A" "-90" "CE" t3 t4 "CE" T6 t5 "L" t0 "")
(setq pl (entlast))
(command "hatch" "ansi31" 1 0 pl "")
)
;Pagrindine programa
(defun C:PRZC()
(duom)
(koord)
(braiz)
(princ)
)
HTH
亨里克 谢谢hmsilva,有人能告诉我这条线有什么不好的地方吗,还是我的设定值有问题?附上照片,我想得到什么,我得到什么。
(command "PLINE" t0 "w" W "" t1 t2 "ARC" "A" "-90" "CE" T3 t4 "CE" T6 t5 "L" t0 "")
页:
[1]
2