找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 191|回复: 0

[实体] XD::ELIST:ADD-DEFAULTS

[复制链接]

已领礼包: 40个

财富等级: 招财进宝

发表于 2025-5-12 08:35:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
  1. ;; ------------------------------------------------------------------------
  2. ;;; 函数名称 / Function Name: XD::ELIST:ADD-DEFAULTS
  3. ;;;
  4. ;;; 【功能说明 / Description】
  5. ;;;     为实体属性列表 E1 添加默认属性项(如果缺失),确保关键属性存在。
  6. ;;;     默认插入属性包括:6="BYLAYER",39=0.0,48=1.0,62=256,370=-1。
  7. ;;;     插入位置紧跟在图层属性(代码8)之后。
  8. ;;;
  9. ;;; 【参数说明 / Parameters】
  10. ;;;     e1 - (list) 实体属性列表,格式为 ((code . value) ...)
  11. ;;;
  12. ;;; 【返回值 / Return Value】
  13. ;;;     (list) 添加默认属性后的实体属性列表
  14. ;;;
  15. ;;; 【依赖函数 / Dependencies】
  16. ;;;     - assoc          : 查找属性代码对应的属性对
  17. ;;;     - vl-position    : 获取属性代码在列表中的位置
  18. ;;;     - xd::list:insert-nth : 在指定位置插入元素
  19. ;;;
  20. ;;; 【备注 / Notes】
  21. ;;;     - 该函数保证实体属性列表中关键属性存在,方便后续处理。
  22. ;;;     - 插入顺序依次递增,保持属性列表结构合理。
  23. ;;;
  24. (defun XD::ELIST:ADD-DEFAULTS (e1 / n)
  25.   ;; 获取图层属性(代码8)在列表中的位置
  26.   (setq n (vl-position (assoc 8 e1) e1))
  27.   (setq n (+ n 1)) ;; 插入位置紧跟图层属性之后
  28.   ;; 如果缺少代码6(线型),插入默认值 "BYLAYER"
  29.   (if (not (assoc 6 e1))
  30.     (progn
  31.       (setq e1 (XD::LIST:INSERT-NTH (cons 6 "BYLAYER") e1 n))
  32.       (setq n (+ n 1))
  33.     )
  34.   )
  35.   ;; 如果缺少代码39(透明度),插入默认值 0.0
  36.   (if (not (assoc 39 e1))
  37.     (progn
  38.       (setq e1 (XD::LIST:INSERT-NTH (cons 39 0.0) e1 n))
  39.       (setq n (+ n 1))
  40.     )
  41.   )
  42.   ;; 如果缺少代码48(线宽),插入默认值 1.0
  43.   (if (not (assoc 48 e1))
  44.     (progn
  45.       (setq e1 (XD::LIST:INSERT-NTH (cons 48 1.0) e1 n))
  46.       (setq n (+ n 1))
  47.     )
  48.   )
  49.   ;; 如果缺少代码62(颜色),插入默认值 256(BYLAYER)
  50.   (if (not (assoc 62 e1))
  51.     (progn
  52.       (setq e1 (XD::LIST:INSERT-NTH (cons 62 256) e1 n))
  53.       (setq n (+ n 1))
  54.     )
  55.   )
  56.   ;; 如果缺少代码370(线型标识符),插入默认值 -1
  57.   (if (not (assoc 370 e1))
  58.     (progn
  59.       (setq e1 (XD::LIST:INSERT-NTH (cons 370 -1) e1 n))
  60.       (setq n (+ n 1))
  61.     )
  62.   )
  63.   ;; 返回添加默认属性后的实体属性列表
  64.   e1
  65. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-6-24 12:20 , Processed in 0.343101 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表