属性块属性编辑器ODCL版
七拼八凑,弄了个属性编辑器,发源码!试用前,请按照ODCL(command "OPENDCL")
(vl-load-com)
(defun GetAttributes(ent / lst)
(if (safearray-value(setq lst (vlax-variant-value (vla-getattributes (vlax-ename->vla-object ent)))))
(mapcar '(lambda (x) (cons (vla-get-tagstring x) (vla-get-textstring x))) (vlax-safearray->list lst))
)
)
(defun SetAttributes (ent lst / n atts)
(if (safearray-value(setq atts(vlax-variant-value(vla-getattributes (vlax-ename->vla-object ent)))))
(progn
(foreach n lst
(mapcar '(lambda (x)
(if(= (strcase (car n)) (strcase (vla-get-tagstring x)))
(vla-put-textstring x (cdr n))
)
)
(vlax-safearray->list atts)
)
)
(vla-update (vlax-ename->vla-object ent))
)
)
)
(defun Showlst (str1 lst / col0 col1 string
c:gm_proplist_Form1_OnInitialize
c:gm_proplist_Form1_OnClose
c:gm_proplist_Form1_cancle_OnClicked
c:gm_proplist_Form1_ok_OnClicked)
(defun c:gm_proplist_Form1_OnInitialize (/ row_n col_n)
(dcl_Control_SetTitleBarText gm_proplist str1)
(setq row_n -1 col_n -1)
(mapcar '(lambda (x y)
(dcl_Grid_AddRow gm_grid1 "\t")
(dcl_Grid_SetCellText gm_grid1 (setq row_n (1+ row_n)) 0 x)
(dcl_Grid_SetCellText gm_grid1 (setq col_n (1+ col_n)) 1 y)
)
(mapcar 'car lst)
(mapcar 'cdr lst)
)
)
(defun c:gm_proplist_Form1_cancle_OnClicked nil
(dcl_Form_Close gm_proplist)
)
(defun c:gm_proplist_Form1_ok_OnClicked nil
(setq col0 (dcl_Grid_GetColumnCells gm_grid1 0)
col1 (dcl_Grid_GetColumnCells gm_grid1 1)
)
(dcl_Form_Close gm_proplist)
)
(defun c:gm_proplist_Form1_OnClose nil
(dcl_Form_Close gm_proplist_Form1)
)
(setq string (apply 'strcat
'("YWt6A+gNAADXp1dRBuKTKTcxai9ugBj6n5ceOq5mUXhr3U/svv52YLseam/p/Wmz+mfI7x+4xvl1"
"Ocn1WTHg8q/1BaKctw5OblGAfm0Ju4OYv/vIlIsKwQC7ch5aOm3FjcShKYsgKwsrw9TnB7DmfRH6"
"fkJQfxit5Xcryzbef+OWPHlD5S7zBASprbPNZuz61K/W10tKFd6LNwRIH1PE96A+4iQEFHtwNRJa"
"YKF3nAlu0eTaqq7SLzUyrlI3zXCqr5bYZ7UXXBDykEScuTYtcpUu+tYZz8BoP/tuiG7P9CXuu3+K"
"7XBL8gzx7SXcCOz6vtt489YvzCrrZUI6TQupHsOAyL4JesBbjnHd8WeURjQCHSehjPy48SbiFnEv"
"naYxolJDrTafXnA/00yEYM2C4fYGlKYxlOK+OXpgPA++QtZZ/AGqvOs30jkANZxOyLmv8HJIrTZv"
"WTtfmyt96jBUbMybAWmE8KcmeQVo30xY0++/8Fo3CPgsWbPMNdPDKy3LS1a9y8In0TLc8VbjLru8"
"mBW8mFV8IWuGjFpAMYVHnJxA/4WDZvnADLAaewHhvtn7wDHAsSJCGKiV4oJSiAGKDaq7KxyBaR3x"
"mJlHGB9W8dqkM/SMCdX2Y7yY4oXFtpeUxEbgSXrgXfAtuOwrpPgj1tqv1dvbF8Dv4EN2YJW7wpHS"
"7s2ujgVnEWkG+b+1ZgHOijzTToJ1IkjIZ8L6qcn0zM4rnkj/yXby7hOR9q7BLAIx3lLKro7xrwLY"
"8kU4n1LbhOH7T6LwqMFcAiJW/J8FfkUCfYaJvFlUperVTvmLATuFg/TY8bUs5JZ9zx+iMfIzmp9q"
"h+/EiiAfJyqemVaLzlH8UwYdreOi2+BfFK+5YqsyDzKdTrtKPVncSHFTeAsxlgMjPoD1fIovUrYV"
"mSUqmtvBzJs6DD3DypcPZOMy4VWS9bEOeFv6wG18kWiG2r5MfTF3IliO4Oe1JnntiZ6JwAWjfI2w"
"auYRksA///W6hD6PIbOGnEpriOUcId6u4Z88Ip+AWa8M4g8bgSyfSN4lKt5zQvyjeMZn1NkcgT2v"
"GLBlUZbR4t4TztX9E50AFmSk+KNY6iWMBTKP594TcpmgwX5Htq1u")
))
(dcl_project_import string nil nil)
(dcl_form_show gm_proplist)
(dcl_control_setproperty gm_proplist "Close" "c:gm_proplist_Form1_OnClose")
(setq attlst (mapcar 'cons col0 col1))
)
(defun c:blkattedit( / ent blkname attlst)
(while (setq ent (car(entsel "\n选择属性图块:")))
(setq blkname (cdr(assoc 2 (entget ent)))
attlst (GetAttributes ent))
(Showlst blkname attlst)
(SetAttributes ent attlst)
(princ)
)
) 这个编织起来很方法,如果能做成纯 lisp更好,支持!!! 还是发张截图,说明下情况
这个界面很简洁,看着舒服,能否做lsp文件,便以使用,谢谢! 赞,简洁多了. 出错,提示没有“dcl_project_import”函数,我已安装opendol 77077 发表于 2014-8-22 21:16 static/image/common/back.gif
还是发张截图,说明下情况
可否传上ODCL的源文件呢? yhly555 发表于 2015-9-15 09:41 static/image/common/back.gif
出错,提示没有“dcl_project_import”函数,我已安装opendol
如果实在不能用,我另外写了个dcl版的。
http://bbs.mjtd.com/thread-169488-1-1.html 77077 发表于 2015-9-15 10:58 static/image/common/back.gif
如果实在不能用,我另外写了个dcl版的。
http://bbs.mjtd.com/thread-169488-1-1.html
非常感谢 77077 发表于 2015-9-15 10:58 static/image/common/back.gif
如果实在不能用,我另外写了个dcl版的。
http://bbs.mjtd.com/thread-169488-1-1.html
也用不了,提示错误,不知道什么原因?
页:
[1]
2