本帖最后由 jh1005 于 2012-9-8 21:39 编辑
给你两个caoyin版主写的非常好用的函数。 - (defun sslast (en / ss) ;获取在图元 en 之后产生的选择集 ;by caoyin
- (if en ;;如果en存在
- (progn
- (setq ss (ssadd)) ;;建立空集
- (while (setq en (entnext en)) ;;当en后有对象时
- (if (not (member (cdr (assoc 0 (entget en))) '("ATTRIB" "VERTEX" "SEQEND")))
- (ssadd en ss)) ;;把en后的对象加入到空集
- )
- (if (zerop (sslength ss)) (setq ss nil)) ;;如果SS为0,设置SS为nil
- ss
- )
- (ssget "_x")
- )
- )
- (defun EntNextAll (EN / LST) ;获取在图元 en 之后产生的图元列表 ;by caoyin
- ;; [参数] en----图元名
- ;; [返回] 选择集
- ;; [测试]1.(setq en (entlast))
- ;; 执行创建图元的命令,如 LINE,BOUNDARY
- ;; (EntNextAll en)
- ;; 2.(EntNextAll (car(entsel)))
- (if EN
- (while (setq EN (entnext EN))
- (if (not (member (cdr (assoc 0 (entget EN)))
- '("ATTRIB" "VERTEX" "SEQEND")
- )
- )
- (setq LST (cons EN LST))
- )
- )
- )
- (reverse LST)
- )
|