請教 initgetd函數的疑問
本帖最后由 作者 于 2010-11-25 15:50:43 编辑initget設定下次 getxxx 函數的有效輸入
在以下的程式有讓使用者輸入a b c d ,判別開起相對應的副程式
(initget "A B C D");;
(setq facetype(getkword"\n A-喜、B怒、C哀、D樂:<A>"))
可是在我把 (initget "A B C D");; 這一行從該程式刪除後。
程式還是可以不受影響,只靠"getkword"就能正確的叫出副程式,並執行完畢
不知,initget它具體的做用是什麼??
為何在此範例中可有可無?
(defun C:221()
(setvar "cmdecho" 0)
(setq en(entsel"\nselect a circle"))
(if(null en)
(progn
(setq srr(getvar "circlerad"));;取得當前系統變數值
(setq cen(getpoint"\nselect a point"))
(setq rr(getdist"\n enter r value" cen))
(if(null rr) (setq rr srr));;如果沒有r值輸入,就載入當前系統r值
(command "circle" cen rr)
(setq en(entlast))
)
(progn
(setq en(car en));;得x物件
(setq data(entget en))
(setq cen(cdr(assoc 10 data)))
(setq rr(cdr(assoc 40 data)))
)
)
(initget "A B C D");;
(setq facetype(getkword"\n A-喜、B怒、C哀、D樂:<A>"))
(if (null facetype) (setq facetype "A"))
(cond
((= facetype "A")(lsp_21a))
((= facetype "B")(lsp_21b))
((= facetype "C")(lsp_21c))
((= facetype "D")(lsp_21d))
)
(prin1)
)
<p>新建个图形先用(getkword) 输入字母,看看</p>
<p> </p>
<p>然后再用 (initget "A B") (getkword) 回车 输入字母看看,还是有差别的。</p>
<p> </p>
<p> </p>
<p> </p>
<p>(initget "A B")函数功能是定义其后getXXX函数的关键字</p> <p>我剛剛又再自己試驗了一次</p>
<p>把<font color="#800000"> (initget "A B C D");</font><font color="#999999">;</font> 刪除之後程式就會出現錯誤,說輸入了無效關鍵字。</p>
<p> </p>
<p>謝謝你的解釋,</p>
<p>我了解了INITGET函數的作用了</p>
页:
[1]