准备写个xdata编辑工具,欢迎大家一起来意淫~~~
本帖最后由 77077 于 2014-8-10 10:57 编辑还没好的思路,自己虽然实验成功,不过偶尔还是会出错,希望大家一起来研究研究~~~
(if (setq l (cdr(assoc '-3 (entget (car (entsel "/n请选择图元:" )) '("*")))));获取图元XDATA
(setql1 (mapcar '(lambda(x) (cons (car x) (cdr(cadr x)))) l)) ;组成新表
(alert "\n所选图元无拓展数据XDATA")
)
(MAKE-EditDCL l1);对表写成临时DCL编辑框,并加载
;按下OK,读取新数据l2
;写入新数据到图元
(defun MAKE-EditDCL (lst / file F1 I)
(setq file (vl-filename-mktemp "DclTemp.dcl"))
(setq F1 (open file "w"))
(progn
(write-line "EditDCL:dialog{label=\"拓展数据XDATA编辑器\";" F1)
(write-line ":boxed_column{label=\"XDATA列表\";" F1)
(write-line ":row{\n:column{" F1)
(setq I 1)
(foreach n lst
(write-line
(strcat ":edit_box{label=\"" (vl-princ-to-string (car n))
"\";value=\"" (vl-princ-to-string (cdr n))
"\";key=\"KEY" (itoa I) "\";}" ) F1)
(if (= (rem i 10) 0) (write-line "}\n:column{" F1))
(setq I (1+ I))
)
(if (/= (rem (1- i) 10) 0) (write-line "}" F1))
(write-line "}\n}" F1)
(write-line "ok_only;" F1)
(write-line "}" F1)
(close F1)
file
)
) 占楼,等最后发出完整源码~~~ 本帖最后由 77077 于 2014-8-10 10:50 编辑
目前比较难解决的是,增加xdata对话框
打算按照波斯猫的想法去做
http://bbs.mjtd.com/forum.php?mo ... D110%26typeid%3D110
可惜重载DCL时,难保存已填写的DCL数据 本帖最后由 77077 于 2014-8-10 14:12 编辑
;添加xdata到图元
;测试:
(PutXData (car(entsel)) '(("south" (1000 . "204201") (1040 . 1.0)) ("AAAA" (1041 . 562.307)(1000 . "aaaaa"))))
(defun PutXData (Obj Data / dxf)
(setq dxf(entget obj))
(foreach x Data
(regapp (car x))
(entmod (append dxf (list( cons -3 (list x)))))
)
)
命令: (cdr(assoc '-3 (entget (car (entsel "/n请选择图元:" )) '("*"))))
/n请选择图元:(("south" (1000 . "204201") (1040 . 1.0)) ("AAAA" (1041 . 562.307)
(1000 . "aaaaa")))
本帖最后由 SunSpring 于 2014-8-10 15:08 编辑
http://bbs.mjtd.com/thread-65914-1-1.html
很早之前写的,可以参考,可能有问题. 支持一下!!!!!!!!!!!! 非常期待楼主作品! SunSpring 发表于 2014-8-10 15:01 static/image/common/back.gif
http://bbs.mjtd.com/thread-65914-1-1.html
很早之前写的,可以参考,可能有问题.
打不开链接 山寨版“建筑统计”——扩展数据的应用
xyp1964 发表于 2014-8-10 17:21 static/image/common/back.gif
山寨版“建筑统计”——扩展数据的应用
院长,先给个XDATA编辑的思路啊,最好能像波斯猫那种,可以动态增加textbox~
页:
[1]
2