Ahankhah 发表于 2022-7-6 08:51:26

如何向ssget添加选项?

嗨,朋友们,
可以将(initget)函数定义的行为添加到(ssget)中吗
(正如大多数人所知,其他输入函数也可以使用,例如(entsel)、(entselp)、(getpoint),…)
 
例如:
 
谢谢你的帮助

Lee Mac 发表于 2022-7-6 08:58:24

不能将initget函数与ssget一起使用。
 
只有以下函数可以与initget一起使用:
 
getint,getreal,getdist,getangle,getorient,getpoint,getcorner,getkword,entsel,nentsel,nentselp。

pBe 发表于 2022-7-6 09:02:56

尝试以下操作:
 
(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公司

GP_ 发表于 2022-7-6 09:05:21

也试试这个。
 


(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"))
       )
   )
)

Ahankhah 发表于 2022-7-6 09:08:42

 
你说得对,李,
但我正在寻找一种方法来为ssget模拟initget。

Ahankhah 发表于 2022-7-6 09:13:15

感谢您的回复,但没有隐含窗口等选项。

Lee Mac 发表于 2022-7-6 09:18:37

 
附件是我的一个旧程序,试图创建与UCS对齐的ssget函数,可以修改它以添加额外选项。
 

UCS ssget。lsp

GP_ 发表于 2022-7-6 09:23:21

 
 
你想要鸡蛋和母鸡。
 
 


(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"))
       )   
   )

)

Ahankhah 发表于 2022-7-6 09:27:07

 
很好,李。你的大脑是一个宝藏,非常感谢

Ahankhah 发表于 2022-7-6 09:29:28

GP_,非常感谢。你的代码很有帮助
页: [1] 2
查看完整版本: 如何向ssget添加选项?