马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
 - ;; ------------------------------------------------------------------------
- ;;; 函数名称 / 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
- )
|