找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1114|回复: 1

[教学] XML应用示例(保存图层设置)

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2014-2-9 09:27:36 | 显示全部楼层 |阅读模式

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

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

×
  1. ;;<config>
  2. ;;   <layer>
  3. ;;     <layer name=layername1>
  4. ;;        <ltype>hidden</ltype>
  5. ;;        <color>7</color>
  6. ;;     </layer>
  7. ;;     <layer name=layername2>
  8. ;;        <ltype>hidden</ltype>
  9. ;;        <color>1</color>
  10. ;;     </layer>
  11. ;;   </layer>
  12. ;;</config>
  13. (defun c:tt (/ path d el lst lyrnode lyrlst lyrNodes layerChildNodes)
  14.   (setq path (getvar "DWGPREFIX"))
  15.   ;;新建 xml, myconfig 变量 为 XML DOM
  16.   (XD::XML:GetDocument (strcat path "myconfig.xml") 'myconfig)
  17.   (while (setq d (tblnext "layer" (null d)))
  18.     (setq lst (cons (list (cdr (assoc 2 d))
  19.                           (cdr (assoc 6 d))
  20.                           (itoa (cdr (assoc 62 d)))
  21.                     )
  22.                     lst
  23.               )
  24.     )
  25.   )
  26.   (setq lst (reverse lst)) ;_图层属性列表
  27.   ;;创建根节点 config 及 layer 节点部分
  28.   (setq        lyrNode
  29.          (car (XD::XML:AddChildNodes myconfig '("config" "layer")))
  30.   )
  31.   (repeat (length lst)
  32.     (setq lyrlst (cons "layer" lyrlst))
  33.   ) ;_构造 layer 节点下的子节点
  34.   ;;创建layer子节点
  35.   (setq lyrNodes (XD::XML:AddChildNodes lyrNode lyrlst))
  36.   ;;对layer子节点创建 ltype color 子节点
  37.   (setq        layerChildNodes
  38.          (mapcar '(lambda (x)
  39.                     (XD::XML:AddChildNodes x '("ltype" "color"))
  40.                   )
  41.                  lyrNodes
  42.          )
  43.   )
  44.   ;;对 layer 子节点赋属性,属性为图层名称
  45.   (mapcar '(lambda (x y)
  46.              (XD::XML:SetNodeProperties
  47.                x
  48.                (list (cons "ATTR" (list "name" (car y))))
  49.              )
  50.            )
  51.           lyrNodes
  52.           lst
  53.   )
  54.   (mapcar '(lambda (x y)
  55.              (XD::XML:SetNodeProperties
  56.                (car x)
  57.                (list (list "TEXT" (cadr y)))
  58.              );_保存线形
  59.              (XD::XML:SetNodeProperties
  60.                (cadr x)
  61.                (list (list "TEXT" (last y)))
  62.              );_保存颜色
  63.            )
  64.           layerChildNodes
  65.           lst
  66.   )
  67.   (XD::XML:SaveAs (strcat path "myconfig.xml"));_保存XML
  68.   (princ)
  69. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 1个

财富等级: 恭喜发财

发表于 2022-4-11 22:47:33 | 显示全部楼层
来学习学习
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-2 21:34 , Processed in 0.381551 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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