做我自己的选择。
****代码需要一个名为note的层,该层已经生成****我要做的是以AutoCAD使用其自己的comman选项的方式显示选项,例如在text命令中:
:
可以做类似的事情。优点是用户可以看到选项,从而减少了错误。是否也可以设置助记符快捷方式(如上述本机命令中的大写字母、A、F、C、M、R等),并且用户可以通过键入(仅)助记符字符来指示选择。任何提示都会有帮助。提前谢谢。
这是我的程序,我希望它做的是,而不是键入什么材料将被使用,用户可以选择,它将自动输入,而不是键入。
例如:
命令:tef
..布料
[黄铜/钢/冷冲压…等]
(注意:如果您选择Brass,它将在“material=”旁边放置“BR-60-40-Muntz”)
肯特
TEF良好。lsp 如。
(initget 0 "Pizza Burger fiSh")
(getkword "\nWhat would you like? : ")
检查
选项关键字无效。无支票:哭泣:
你忘了在Lisp中重新设置旧的OSMODE和CLAYER。
(setq cl (getvar "CLAYER"))
(setvar "CLAYER" "NOTE")
(setq cs (GETVAR "OSMODE"))
(setvar "OSMODE" 0)
....... your codes running...
.........
(setvar "osmode" cs)
(setvar "clayer" cl)
我认为艾伦所说的话足以让你更新密码。。。。。。
当做
塔瓦特 这里有一个完整的例子来回答你的问题。。。。。。必须满足
(initget 0 "Brass Steel ColdRolled")
(setq a (getkword "\n Specify the Material : "))
(command "text" "J" "C" pause "0.187" "0" (strcat "Material =" a))
当做
塔瓦特 这可能是我编写您的程序的方式:
(defun c:tef ( / *error* LM:lst->str LM:Text mLst )
;; © Lee Mac 2010
(defun *error* ( msg )
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ)
)
(defun LM:lst->str ( lst del )
(if (cdr lst)
(strcat (car lst) del (LM:lst->str (cdr lst) del))
(car lst)
)
)
(defun LM:Text ( pt hgt str lay )
(entmakex
(list
(cons 0 "TEXT")
(cons 8lay)
(cons 10pt)
(cons 40 hgt)
(cons 1str)
(cons 7 (getvar 'TEXTSTYLE))
(cons 71 0)
(cons 72 1)
(cons 11pt)
)
)
)
(setq mLst '(("Brass" . "BR-60-40-Muntz")
("Steel" . "ST-60-40-Muntz")
("Coldrolled" . "CR-60-40-Muntz")))
(
(lambda ( i / p )
(while (setq p (getpoint "\nSpecify Point <Exit> : "))
(setq p (trans p 1 0))
(mapcar
(function
(lambda ( string offset )
(if (not (eq "" string))
(LM:Text (list (car p) (- (cadr p) offset)) 0.187 string "NOTE")
)
)
)
(list
(strcat "Quantity="
(itoa
(setq *qty*
(cond
(
(progn (initget 4)
(getint
(strcat "\nSpecify Quantity <"
(itoa
(setq *qty*
(cond ( *qty* ) ( 1 ))
)
)
"> : "
)
)
)
)
( *qty* )
)
)
)
)
(strcat "Material="
(cdr
(assoc
(setq *mat*
(cond
(
(progn (initget (LM:lst->str (mapcar 'car mLst) " "))
(getkword
(strcat "\nSpecify Material [" (LM:lst->str (mapcar 'car mLst) "/") "] <"
(setq *mat*
(cond ( *mat* ) ( (caar mLst) ))
)
"> : "
)
)
)
)
( *mat* )
)
)
mLst
)
)
)
(strcat "Thickness="
(rtos
(setq *thk*
(cond
(
(progn (initget 6)
(getdist
(strcat "\nSpecify Thickness <"
(rtos
(setq *thk*
(cond ( *thk* ) ( 1.0 ))
)
)
"> : "
)
)
)
)
( *thk* )
)
)
)
)
(strcat "NAME=" (getstring "\nSpecify Name: ") (itoa (setq i (1+ i))))
"MACHINE=Trumpf L2530 PLUS"
)
'(1.0 1.3 1.6 1.9 2.2)
)
)
)
0
)
(princ)
)
我喜欢它。你告诉我我错了,然后告诉OP我是对的,然后使用我在另一个例子中建议的方法。 你搞错了,
我没有告诉你你错了,那只是一个小笑话。
这是批准。
当然,我和其他人仍在学习,必须得到专家的建议,直到能够给出我们的建议。
就这样。。。。。。请随意
顺致敬意,
塔瓦特
你不这么说:眨眼:
我认为这是一个笑话,说你没有把“鸡”作为一个选项。。。
页:
[1]
2