如何向ssget添加选项?
嗨,朋友们,可以将(initget)函数定义的行为添加到(ssget)中吗
(正如大多数人所知,其他输入函数也可以使用,例如(entsel)、(entselp)、(getpoint),…)
例如:
谢谢你的帮助 不能将initget函数与ssget一起使用。
只有以下函数可以与initget一起使用:
getint,getreal,getdist,getangle,getorient,getpoint,getcorner,getkword,entsel,nentsel,nentselp。 尝试以下操作:
(defun c:test (/ Prcd gr Npt Mode Par )
(prompt "\nSelect objects, or :")
(while (null Prcd)
(setq gr (grread nil 4 2) Mode (car gr))
(cond
((= 3 Mode)
(princ "\nSelect Mode")
(setq Objects (ssget "_C" (cadr gr)
(setq Npt (Getcorner (cadr gr) "\nOther Corner:"))))
(foreach mp (vl-remove-if 'listp
(mapcar 'cadr(ssnamex Objects)))
(redraw mp 3))
(setq Prcd T))
((and (= 2 Mode)
(setq Par (member (cAdr gr) '(67 76 83 99 108 115))))
(princ (strcat "\nYou Pressed " (chr (car Par))))
(setq Prcd T))
)
)
(princ)
)
剩下的留给你想象
HTH公司 也试试这个。
(defun C:TEST ()
(setq SEL (ssadd))
(initget "S L C")
(setq a (entsel "\nSelect objects, or by ...:"))
(if (= a "S")
(progn
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)
)
(if (= a "L")
(progn
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)
)
(if (= a "S")
(progn
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)
)
(if (and (/= a nil)(/= a "S")(/= a "L")(/= a "C"))
(progn
(setq SEL (ssadd (car a) SEL))
(command "_select" SEL pause)
(setq SEL (ssget "_P"))
)
)
(if (= a nil)
(progn
(command "_select" "_BOX" (cadr (grread T)) pause)
(setq SEL (ssget "_P"))
)
)
)
你说得对,李,
但我正在寻找一种方法来为ssget模拟initget。 感谢您的回复,但没有隐含窗口等选项。
附件是我的一个旧程序,试图创建与UCS对齐的ssget函数,可以修改它以添加额外选项。
李
UCS ssget。lsp
你想要鸡蛋和母鸡。
(defun C:TEST (/ a b option)
(setq SEL (ssadd))
(initget "? ST LA CO W L C B ALL F WP CP G A R M P U AU SI SU O")
(setq a (entsel "\nSelect objects, or by ...:"))
(if (= a "?")
(progn
(setq b nil)
(while (not (member b (list "W" "L" "C" "B" "BOX" "ALL" "F" "WP" "CP"
"G" "A" "R" "M" "P" "U" "AU" "SI" "SU" "O")))
(prompt "Expects a point or" )
(prompt "\nWindow/Last/Crossing/BOX/ALL/Fence/WPolygon/")
(prompt "CPolygon/Group/Add/Remove/Multiple/Previous/")
(prompt "Undo/AUto/SIngle/SUbobject/Object ")
(prompt "\nSelect objects:" )
(setq b (strcase (getstring)))
(if (= b nil) (exit))
)
(setq a b)
)
)
(if (= a "ST")
(progn
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)
)
(if (= a "LA")
(progn
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)
)
(if (= a "CO")
(progn
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
)
)
(if (and
(/= a nil)
(not
(member a
(list "?" "ST" "LA" "CO" "W" "L" "C" "B"
"BOX" "ALL" "F" "WP" "CP" "G" "A"
"R" "M" "P" "U" "AU" "SI" "SU" "O")
)
)
)
(progn
(setq SEL (ssadd (car a) SEL))
(command "_select" SEL pause)
(setq SEL (ssget "_P"))
)
)
(if (= a nil)
(progn
(command "_select" "_BOX" (cadr (grread T)) pause)
(setq SEL (ssget "_P"))
)
)
(if (member a (list "W" "L" "C" "B" "BOX" "ALL" "F" "WP" "CP"
"G" "A" "R" "M" "P" "U" "AU" "SI" "SU" "O"))
(progn
(setq option (strcat "_" a))
(command "_select" option pause)
(setq SEL (ssget "_P"))
)
)
)
很好,李。你的大脑是一个宝藏,非常感谢 GP_,非常感谢。你的代码很有帮助
页:
[1]
2