明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2697|回复: 13

[函数] 属性块属性编辑器ODCL版

[复制链接]
发表于 2014-8-22 21:08 | 显示全部楼层 |阅读模式
七拼八凑,弄了个属性编辑器,发源码!
试用前,请按照ODCL
  1. (command "OPENDCL")
  2. (vl-load-com)
  3. (defun GetAttributes  (ent / lst)  
  4.   (if (safearray-value(setq lst (vlax-variant-value (vla-getattributes (vlax-ename->vla-object ent)))))
  5.     (mapcar '(lambda (x) (cons (vla-get-tagstring x) (vla-get-textstring x))) (vlax-safearray->list lst))
  6.   )
  7. )
  8. (defun SetAttributes (ent lst / n atts)  
  9.   (if (safearray-value(setq atts(vlax-variant-value(vla-getattributes (vlax-ename->vla-object ent)))))
  10.     (progn
  11.     (foreach n lst
  12.   (mapcar '(lambda (x)
  13.        (if(= (strcase (car n)) (strcase (vla-get-tagstring x)))
  14.          (vla-put-textstring x (cdr n))
  15.        )
  16.      )
  17.     (vlax-safearray->list atts)
  18.   )
  19.       )
  20.       (vla-update (vlax-ename->vla-object ent))
  21.     )
  22.   )
  23. )
  24. (defun Showlst (str1 lst / col0 col1 string
  25.         c:gm_proplist_Form1_OnInitialize
  26.         c:gm_proplist_Form1_OnClose
  27.         c:gm_proplist_Form1_cancle_OnClicked
  28.         c:gm_proplist_Form1_ok_OnClicked)
  29.   (defun c:gm_proplist_Form1_OnInitialize (/ row_n col_n)
  30.     (dcl_Control_SetTitleBarText gm_proplist str1)
  31.     (setq row_n -1 col_n -1)
  32.     (mapcar '(lambda (x y)
  33.             (dcl_Grid_AddRow gm_grid1 "\t")
  34.             (dcl_Grid_SetCellText gm_grid1 (setq row_n (1+ row_n)) 0 x)
  35.             (dcl_Grid_SetCellText gm_grid1 (setq col_n (1+ col_n)) 1 y)
  36.             )
  37.       (mapcar 'car lst)
  38.       (mapcar 'cdr lst)
  39.     )
  40.   )
  41.   (defun c:gm_proplist_Form1_cancle_OnClicked nil
  42.     (dcl_Form_Close gm_proplist)
  43.   )
  44.   (defun c:gm_proplist_Form1_ok_OnClicked nil
  45.     (setq col0 (dcl_Grid_GetColumnCells gm_grid1 0)
  46.           col1 (dcl_Grid_GetColumnCells gm_grid1 1)
  47.           )
  48.     (dcl_Form_Close gm_proplist)
  49.   )
  50.   (defun c:gm_proplist_Form1_OnClose nil
  51.     (dcl_Form_Close gm_proplist_Form1)
  52.   )
  53.   (setq string (apply 'strcat
  54. '("YWt6A+gNAADXp1dRBuKTKTcxai9ugBj6n5ceOq5mUXhr3U/svv52YLseam/p/Wmz+mfI7x+4xvl1"
  55. "Ocn1WTHg8q/1BaKctw5OblGAfm0Ju4OYv/vIlIsKwQC7ch5aOm3FjcShKYsgKwsrw9TnB7DmfRH6"
  56. "fkJQfxit5Xcryzbef+OWPHlD5S7zBASprbPNZuz61K/W10tKFd6LNwRIH1PE96A+4iQEFHtwNRJa"
  57. "YKF3nAlu0eTaqq7SLzUyrlI3zXCqr5bYZ7UXXBDykEScuTYtcpUu+tYZz8BoP/tuiG7P9CXuu3+K"
  58. "7XBL8gzx7SXcCOz6vtt489YvzCrrZUI6TQupHsOAyL4JesBbjnHd8WeURjQCHSehjPy48SbiFnEv"
  59. "naYxolJDrTafXnA/00yEYM2C4fYGlKYxlOK+OXpgPA++QtZZ/AGqvOs30jkANZxOyLmv8HJIrTZv"
  60. "WTtfmyt96jBUbMybAWmE8KcmeQVo30xY0++/8Fo3CPgsWbPMNdPDKy3LS1a9y8In0TLc8VbjLru8"
  61. "mBW8mFV8IWuGjFpAMYVHnJxA/4WDZvnADLAaewHhvtn7wDHAsSJCGKiV4oJSiAGKDaq7KxyBaR3x"
  62. "mJlHGB9W8dqkM/SMCdX2Y7yY4oXFtpeUxEbgSXrgXfAtuOwrpPgj1tqv1dvbF8Dv4EN2YJW7wpHS"
  63. "7s2ujgVnEWkG+b+1ZgHOijzTToJ1IkjIZ8L6qcn0zM4rnkj/yXby7hOR9q7BLAIx3lLKro7xrwLY"
  64. "8kU4n1LbhOH7T6LwqMFcAiJW/J8FfkUCfYaJvFlUperVTvmLATuFg/TY8bUs5JZ9zx+iMfIzmp9q"
  65. "h+/EiiAfJyqemVaLzlH8UwYdreOi2+BfFK+5YqsyDzKdTrtKPVncSHFTeAsxlgMjPoD1fIovUrYV"
  66. "mSUqmtvBzJs6DD3DypcPZOMy4VWS9bEOeFv6wG18kWiG2r5MfTF3IliO4Oe1JnntiZ6JwAWjfI2w"
  67. "auYRksA///W6hD6PIbOGnEpriOUcId6u4Z88Ip+AWa8M4g8bgSyfSN4lKt5zQvyjeMZn1NkcgT2v"
  68. "GLBlUZbR4t4TztX9E50AFmSk+KNY6iWMBTKP594TcpmgwX5Htq1u")
  69.          ))
  70.   (dcl_project_import string nil nil)
  71.   (dcl_form_show gm_proplist)
  72.   (dcl_control_setproperty gm_proplist "Close" "c:gm_proplist_Form1_OnClose")
  73. (setq attlst (mapcar 'cons col0 col1))
  74. )
  75. (defun c:blkattedit( / ent blkname attlst)
  76. (while (setq ent (car(entsel "\n选择属性图块:")))
  77.    (setq blkname (cdr(assoc 2 (entget ent)))
  78.          attlst (GetAttributes ent))
  79.    (Showlst blkname attlst)
  80.    (SetAttributes ent attlst)
  81.    (princ)
  82. )
  83. )

评分

参与人数 2明经币 +1 金钱 +5 收起 理由
biya + 5 赞一个!
aihuyujian + 1 赞一个!

查看全部评分

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2015-9-13 09:35 | 显示全部楼层
这个编织起来很方法,如果能做成纯 lisp更好,支持!!!
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2014-8-22 21:16 | 显示全部楼层
还是发张截图,说明下情况



本帖子中包含更多资源

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

x
发表于 2015-5-30 16:01 | 显示全部楼层
这个界面很简洁,看着舒服,能否做lsp文件,便以使用,谢谢!
发表于 2015-5-31 00:46 | 显示全部楼层
赞,简洁多了.
发表于 2015-9-15 09:41 | 显示全部楼层
出错,提示没有“dcl_project_import”函数,我已安装opendol
发表于 2015-9-15 10:33 | 显示全部楼层
77077 发表于 2014-8-22 21:16
还是发张截图,说明下情况

可否传上ODCL的源文件呢?
 楼主| 发表于 2015-9-15 10:58 | 显示全部楼层
yhly555 发表于 2015-9-15 09:41
出错,提示没有“dcl_project_import”函数,我已安装opendol

如果实在不能用,我另外写了个dcl版的。
http://bbs.mjtd.com/thread-169488-1-1.html
发表于 2015-9-15 11:02 | 显示全部楼层
77077 发表于 2015-9-15 10:58
如果实在不能用,我另外写了个dcl版的。
http://bbs.mjtd.com/thread-169488-1-1.html

非常感谢
发表于 2015-9-15 12:13 | 显示全部楼层
77077 发表于 2015-9-15 10:58
如果实在不能用,我另外写了个dcl版的。
http://bbs.mjtd.com/thread-169488-1-1.html

也用不了,提示错误,不知道什么原因?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-29 18:49 , Processed in 0.291631 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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