看板 Cad_Cae 關於我們 聯絡資訊
因為最近需要畫螺旋圖 直接套用了書上以及版上的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)
jiwenho:你程式最初忘了關掉抓點模式(setvar "osmode" 0) 12/12 11:27
passerwater:最後是prinl??是否應該是princ?? 12/14 22:16
passerwater:有prin1(數字1不是小寫L)常會看錯所以抑制常用princ 12/14 22:43