※ 引述《MTLOVER (我要加油~~~)》之銘言:
: 請問大家
: 如以下的程式碼:
: (setq ask (getstring "\n是否還要選點?[Y/N]"))
: (While ask(= Y)
: (setq p5 (getpoint "\n請選點:"))
: (setq p5x (nth 0 p5)
: p5y (nth 1 p5)
: p5z (nth 2 p5)
: )
: (setq m11 (((* p5x p5x)+) m11)
: m12 (((* p5x p5y)+) m12)
: m13 ((p5x +) m13)
: m21 (= m12)
: m22 (((* p5y p5y)+) m22)
: m23 ((p5y +) m23)
: m31 (= m13)
: m32 (= m23)
: )
: (setq ask (getstring "\n是否還要選點?[Y/N]"))
: )
: 我想要在這個while迴圈內
: 如果最後ㄧ行是否還要選點(Y)
: 就可以呼叫自己這個迴圈ㄧ次
: 一直到如果選擇(N)才跳出這個while迴圈
: 請問要怎麼寫呢?
: 還有大家有沒有學過C??
: 我想要寫像是a=a+b
: 新的a會取代掉舊的a
: 這種要怎麼寫阿??
: 像我程式中的m11~m33
: 就是想寫這種
: 拜託教教我~~很急~~
: 因為是新手~請大家多多包函
: 謝謝謝謝~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.245.79.166
以下是 一個求總合的 AutoLISP 程式,
給你做 參考。
; 這一行是 註解
如何執行這個程式?
假設檔案名稱是 sum.LSP
在 AutoCAD 指令行下面,輸入
(load "sum")
即可產生一個 新的 AutoCAD 指令 sum
輸入
sum
即可開始執行
; file: sum.LSP
(defun c:sum( / no sum i)
(setq no (getint "\n Input a integer number: "))
(setq sum 0)
; for i=1 to no do ...
(setq i 1)
(while (<= i no)
(setq sum (+ sum i))
(setq i (+ i 1))
); end of while
(princ (strcat "\n sum= " (itoa sum) "\n"))
(princ)
); end of c:sum
; end of file