Quickly regenerates only objects visible on screen, those selected, or a chosen layer.
Support SSGET usage for keywords
(defun c:xdtb_qregen (/ lyr scrbox ss)
(xdrx-begin)
(xdrx_initssget
(xdrx-string-multilanguage
"\n选取要Regen的实体[屏幕所有(0)/选图层(1)]<退出>:"
"\nSelect the entities to be Regen [all on screen (0)/select layer (1)]<Exit>:"
)
"0 1"
""
""
)
(if (and (xdrx-initget "0 1")
(setq ss (xdrx-ssget))
)
(progn
(setq typ ss)
(cond
((= ss "0")
(setq scrbox (xdrx-get-screenbox)
scrbox (xdrx-points-dcs2ucs scrbox)
ss (ssget "cp" scrbox)
)
)
((= ss "1")
(if (setq lyr (xd::layer:get nil t))
(setq ss (ssget "x" (list (cons 8 lyr))))
)
)
)
(if (= (type ss) 'pickset)
(progn
(xdrx-object-regen ss)
(xdrx-prompt
(cond
((= typ "0")
(xdrx-string-multilanguage "\n屏幕内," "\nIn screen,")
)
((= typ "1")
(xdrx-string-multilanguage "\n选择的图层," "\nSelected layer,")
)
(t
"\n"
)
)
(xdrx-string-formatex
(xdrx-string-multilanguage
"重新生成了%d个实体."
"%d entities were regenerated."
)
(sslength ss)
)
)
)
)
)
)
(xdrx-end)
(princ)
)