通用函数 选择集与列表的转换
通用函数 选择集与列表的转换.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 | |