[請益] 2007 LISP語法 V.S 2011 LISP語法
因為最近需要畫螺旋圖
直接套用了書上以及版上的LISP語法
但是,使用之後,都各自出現問題
不知道是版本問題(我使用autoCAD 2011)?
還是語法錯誤?
版上的語法:
最後出現
; 錯誤: 損壞的引數類型: numberp: nil
_$ ); end of c:spiral
(princ)
; end of file
; 錯誤: 其他的輸入右 paren
_$
我參考書本上的
(defun c:lsp_32()
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setq p1 (getpoint "漸開線中心點:"))
(setq rr (getdist p1 "\n小圓半徑<5>:"))(if (null rr)(setq rr 5))
(setq ofs_h (getreal "\n水平偏移距離<5>:"))(if (null ofs_h)(setq ofs_h 5))
(setq ofs_v (getreal "\n垂直偏移距離<5>:"))(if (null ofs_v)(setq ofs_v 5))
(setq NN (getint "\n1/4圓弧漸開數量<9>:"))(if (null nn)(setq nn 9))
;***************************************************************************
(setq p2 (polar p1 0 ofs_h)
p3 (polar p2 (* pi 1.5) ofs_v)
p4 (polar p3 pi ofs_h)
)
(setq pp_list(list p2 p3 p4 p1));將4點成串列
(command "circle" p1 rr);畫第一個圓
(setq new_rr rr rr_list '())
(setq i 0 new_ang pi)
(setq cc_list'("1" "2" "3" "4" "5" "6" "7"))
(repeat nn
(if (= (rem i 2) 0)
(setq add_rr ofs_h)
(setq add_rr ofs_v)
)
(setq arc_cen(nth (rem i 4) pp_list))
(setq new_rr (+ new_rr add_rr))
(setq arc_ps (polar arc_cen new_ang new_rr))
(setvar "cecolor" (nth (rem i 7) cc_list))
(command "arc" arc_ps "c" arc_cen "a" -90)
(setq rr_list (cons new_rr rr_list))
(setq i (1+ i) new_ang (- new_ang (* pi 0.5)))
)
(setq arc_pe (polar arc_cen new_ang (nth 4 rr_list)))
(command "arc" "" arc_pe)
(setvar "cecolor" "bylayer")
(setvar "osmode" os)
(prin1)
)
還是有誤 不知道該如何執行 謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.137.20.21
※ 編輯: note100 來自: 140.137.20.21 (12/11 23:50)
推
12/12 11:27, , 1F
12/12 11:27, 1F
→
12/14 22:16, , 2F
12/14 22:16, 2F
→
12/14 22:43, , 3F
12/14 22:43, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):
Cad_Cae 近期熱門文章
PTT數位生活區 即時熱門文章