乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 47|回复: 2

[编程交流] 在dwg t中保存命名对象

[复制链接]

91

主题

428

帖子

326

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-6 08:12:23 | 显示全部楼层 |阅读模式
大家好,
 
是否可以:
1-获取表格组的属性(例如图层、textstyle、dimstyle等)
2-保存图纸内的信息(通过Dictadd等)
3-清除已处理的表组。
 
因此,有可能在需要时恢复信息。
 
 
如果可能的话,我们非常感谢您的任何建议。
回复

使用道具 举报

VVA

1

主题

308

帖子

308

银币

初来乍到

Rank: 1

铜币
8
发表于 2022-7-6 08:45:48 | 显示全部楼层
试试看
  1. (vl-load-com)
  2. (defun savetable (table / d)
  3.    ;;; table - "LAYER" "DIMSTYLE" "STYLE" "LTYPE",
  4. (while (setq d (tblnext table (null d)))
  5.    (vlax-ldata-put
  6.      (strcat "$SAVED$_" table)
  7.      (cdr (assoc 2 d))
  8.      (vl-remove-if
  9.        (function
  10.          (lambda(x)
  11.            (member (car x) '(-1 5 330 390 347))
  12.            )
  13.          )
  14.        (entget(tblobjname table (cdr (assoc 2 d))))
  15.        )
  16.      )
  17.    );_while
  18. )
  19. (defun restoretable (table item / d)
  20. ;;; table - "LAYER" "DIMSTYLE" "STYLE" "LTYPE",
  21. ;;; item - item name to restored or nil - all
  22. (mapcar
  23.    (function
  24.      (lambda (x)
  25.        (entmakex (cdr x))
  26.        )
  27.      )
  28.    ((lambda(l)
  29.       (if (assoc item l)(list (assoc item l)) l)
  30.       )
  31.      (vlax-ldata-list (strcat "$SAVED$_" table))
  32.      )
  33.    )
  34. )
  35. (defun C:LS ()
  36. ;;;Layer save
  37. ;;;Line Type save
  38. (savetable "LTYPE")
  39.   (savetable "LAYER")(princ)
  40. )
  41. (defun C:LR ()
  42. ;;;Layer restore
  43. (restoretable "LTYPE" nil)
  44. (restoretable "LAYER" nil)(princ)
  45. )
  46. (defun C:LR1 (/ item)
  47. ;;;One Layer restore
  48. (if (and
  49.        (setq item (mapcar 'car (vlax-ldata-list (strcat "$SAVED$_" "LAYER"))))
  50.        (setq item (mydcl "Select layer" item))
  51.        )
  52.    (progn
  53.      (restoretable "LTYPE" nil)
  54.      (restoretable "LAYER" item)
  55.      )
  56.    )
  57. (princ)
  58. )
  59. (defun mydcl (zagl info-list / fl ret dcl_id)
  60.      (vl-load-com)
  61.      (if (null zagl)
  62.        (setq zagl "Select")
  63.      ) ;_ end of if
  64.      (setq fl (vl-filename-mktemp "mip" nil ".dcl"))
  65.      (setq ret (open fl "w"))
  66.      (mapcar
  67.        '(lambda (x) (write-line x ret))
  68.        (list "mip_msg : dialog { "
  69.              (strcat "label="" zagl "";")
  70.              " :list_box {"
  71.              "alignment=top ;"
  72.              "width=51 ;"
  73.              "allow_accept = true;"
  74.              "tabs = "16 32";"
  75.              "tab_truncate = true;"
  76.              (if (> (length info-list) 26)
  77.                "height= 26 ;"
  78.                (strcat "height= " (itoa (+ 3 (length info-list))) ";")
  79.              ) ;_ end of if
  80.              "is_tab_stop = false ;"
  81.              "key = "info";}"
  82.              "ok_cancel;}"
  83.        ) ;_ end of list
  84.      ) ;_ end of mapcar
  85.      (setq ret (close ret))
  86.      (if (and (not (minusp (setq dcl_id (load_dialog fl))))
  87.               (new_dialog "mip_msg" dcl_id)
  88.          ) ;_ end of and
  89.        (progn
  90.          (start_list "info")
  91.          (mapcar 'add_list info-list)
  92.          (end_list)
  93.          (set_tile "info" "0")
  94.          (setq ret (car info-list))
  95.          (action_tile
  96.            "info"
  97.            "(setq ret (nth (atoi $value) info-list))"
  98.          ) ;_ end of action_tile
  99.          (action_tile
  100.            "cancel"
  101.            "(progn(setq ret nil)(done_dialog 0))"
  102.          ) ;_ end of action_tile
  103.          (action_tile "accept" "(done_dialog 1)")
  104.          (start_dialog)
  105.        ) ;_ end of progn
  106.      ) ;_ end of if
  107.      (unload_dialog dcl_id)
  108.      (vl-file-delete fl)
  109.      ret
  110.    )
回复

使用道具 举报

91

主题

428

帖子

326

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-6 09:13:44 | 显示全部楼层
弗拉基米尔,非常感谢你的代码。这太棒了。
 
Дзякуй Уладзімір
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-9 09:37 , Processed in 0.582168 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表