分享

通用函数 选择集与列表的转换

 寻找小倩 2010-09-02

通用函数 选择集与列表的转换

 
通用函数 选择集与列表的转换.LSP

;;;=================================================================*
;;;      通用函数 之 选择集转换系列                                 *
;;;                                                                 *
;;;=================================================================*
;;;      01                                                         *
;;;功能:选择集转换为图元名表                                       *
;;;参数:SS -----选择集                                             *
;;;返回:图元名表                                                   *
(defun ZML-SS->ENLIST (SS / I EN LST_EN)
    (setq LST_EN '()
  I 0
    )
    (repeat (sslength SS)
(setq EN     (ssname SS I)
      LST_EN (cons EN LST_EN)
      I      (1+ I)
)
    )
    ;;返回
    (reverse LST_EN)
)
;;;=================================================================*
;;;      02                                                         *
;;;功能:选择集转换为群组码列表                                     *
;;;参数:SS -----选择集                                             *
;;;返回:群组码列表                                                 *
(defun ZML-SS->ENTLIST (SS / I ENT LST_ENT)
    (setq LST_ENT '()
  I 0
    )
    (repeat (sslength SS)
(setq ENT     (entget (ssname SS I))
      LST_ENT (cons ENT LST_ENT)
      I       (1+ I)
)
    )
    ;;返回
    (reverse LST_ENT)
)
;;;=================================================================*
;;;      03                                                         *
;;;功能:图元名表转换为选择集                                       *
;;;参数:LST_EN -----图元名列表                                     *
;;;返回:选择集                                                     *
(defun ZML-ENLIST->SS (LST_EN / SS EN)
    (setq SS (ssadd))
    (foreach EN LST_EN
(if (= (type EN) 'ENAME)
    (ssadd EN SS) ;  (setq ss (ssadd en ss))
)
    )
    ;;返回
    (if (= (sslength SS) 0)
NIL
SS
    )
)
;;;=================================================================*
;;;      04                                                         *
;;;功能:群组码列表转换为选择集                                     *
;;;参数:LST_ENT -----群组码列表                                    *
;;;返回:选择集                                                     *
(defun ZML-ENTLIST->SS (LST_ENT / SS ENT)
    (setq SS (ssadd))
    (foreach ENT LST_ENT
(setq EN (cdr (assoc -1 ENT)))
(if (= (type EN) 'ENAME)
    (ssadd EN SS) ;  (setq ss (ssadd en ss))
)
    )
    ;;返回
    (if (= (sslength SS) 0)
NIL
SS
    )
)
;;;=================================================================*

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多