XD::ELIST:ADD-DEFAULTS
;; ------------------------------------------------------------------------
;;; 函数名称 / Function Name: XD::ELIST:ADD-DEFAULTS
;;;
;;; 【功能说明 / Description】
;;; 为实体属性列表 E1 添加默认属性项(如果缺失),确保关键属性存在。
;;; 默认插入属性包括:6="BYLAYER",39=0.0,48=1.0,62=256,370=-1。
;;; 插入位置紧跟在图层属性(代码8)之后。
;;;
;;; 【参数说明 / Parameters】
;;; e1 - (list) 实体属性列表,格式为 ((code . value) ...)
;;;
;;; 【返回值 / Return Value】
;;; (list) 添加默认属性后的实体属性列表
;;;
;;; 【依赖函数 / Dependencies】
;;; - assoc : 查找属性代码对应的属性对
;;; - vl-position : 获取属性代码在列表中的位置
;;; - xd::list:insert-nth : 在指定位置插入元素
;;;
;;; 【备注 / Notes】
;;; - 该函数保证实体属性列表中关键属性存在,方便后续处理。
;;; - 插入顺序依次递增,保持属性列表结构合理。
;;;
(defun XD::ELIST:ADD-DEFAULTS (e1 / n)
;; 获取图层属性(代码8)在列表中的位置
(setq n (vl-position (assoc 8 e1) e1))
(setq n (+ n 1)) ;; 插入位置紧跟图层属性之后
;; 如果缺少代码6(线型),插入默认值 "BYLAYER"
(if (not (assoc 6 e1))
(progn
(setq e1 (XD::LIST:INSERT-NTH (cons 6 "BYLAYER") e1 n))
(setq n (+ n 1))
)
)
;; 如果缺少代码39(透明度),插入默认值 0.0
(if (not (assoc 39 e1))
(progn
(setq e1 (XD::LIST:INSERT-NTH (cons 39 0.0) e1 n))
(setq n (+ n 1))
)
)
;; 如果缺少代码48(线宽),插入默认值 1.0
(if (not (assoc 48 e1))
(progn
(setq e1 (XD::LIST:INSERT-NTH (cons 48 1.0) e1 n))
(setq n (+ n 1))
)
)
;; 如果缺少代码62(颜色),插入默认值 256(BYLAYER)
(if (not (assoc 62 e1))
(progn
(setq e1 (XD::LIST:INSERT-NTH (cons 62 256) e1 n))
(setq n (+ n 1))
)
)
;; 如果缺少代码370(线型标识符),插入默认值 -1
(if (not (assoc 370 e1))
(progn
(setq e1 (XD::LIST:INSERT-NTH (cons 370 -1) e1 n))
(setq n (+ n 1))
)
)
;; 返回添加默认属性后的实体属性列表
e1
)
页:
[1]