明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1478|回复: 2

[基础] 請教 initgetd函數的疑問

[复制链接]
发表于 2010-11-23 17:32:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 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它具體的做用是什麼??
為何在此範例中可有可無?
  1. (defun C:221()
  2.   (setvar "cmdecho" 0)
  3.   (setq en(entsel"\nselect a circle"))
  4.   
  5.   (if(null en)
  6.     (progn
  7.       (setq srr(getvar "circlerad"));;取得當前系統變數值
  8.       (setq cen(getpoint"\nselect a point"))
  9.       (setq rr(getdist"\n enter r value" cen))
  10.       (if(null rr) (setq rr srr));;如果沒有r值輸入,就載入當前系統r值
  11.       (command "circle" cen rr)
  12.       (setq en(entlast))
  13.      )
  14.    
  15.     (progn
  16.       (setq en(car en));;得x物件
  17.       (setq data(entget en))
  18.       (setq cen(cdr(assoc 10 data)))
  19.       (setq rr(cdr(assoc 40 data)))
  20.     )
  21.   )
  22.   (initget "A B C D");;
  23.   (setq facetype(getkword"\n A-喜、B怒、C哀、D樂:<A>"))
  24.   (if (null facetype) (setq facetype "A"))
  25.   (cond
  26.     ((= facetype "A")(lsp_21a))
  27.     ((= facetype "B")(lsp_21b))
  28.     ((= facetype "C")(lsp_21c))
  29.     ((= facetype "D")(lsp_21d))
  30.   )
  31.    
  32. (prin1)
  33. )
发表于 2010-11-23 20:12:00 | 显示全部楼层

新建个图形先用(getkword)  输入字母,看看

 

然后再用 (initget "A B") (getkword)  回车 输入字母看看,还是有差别的。

 

 

 

(initget "A B")函数功能是定义其后getXXX函数的关键字

 楼主| 发表于 2010-11-25 15:48:00 | 显示全部楼层

我剛剛又再自己試驗了一次

 (initget "A B C D");; 刪除之後程式就會出現錯誤,說輸入了無效關鍵字。

 

謝謝你的解釋,

我了解了INITGET函數的作用了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-10-2 16:15 , Processed in 0.174336 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表