hbgsw
发表于 2015-9-17 10:28:23
77077 发表于 2015-9-16 22:29 static/image/common/back.gif
GetAttributesSetAttributes 论坛里面的通用函数~~~
论坛的搜索太坑了,我找了都找不到,楼主给个函数库地址吧
USER2128
发表于 2015-9-17 15:46:18
为应用程序数据提供一个简单的修改界面
lucas_3333
发表于 2015-9-17 16:24:46
USER2128 发表于 2015-9-17 15:46 static/image/common/back.gif
为应用程序数据提供一个简单的修改界面
经这么一提醒,现在想起来了,这个函数确实方便,不要考虑editbox的对齐
USER2128
发表于 2015-9-17 17:13:13
lucas_3333 发表于 2015-9-17 16:24 static/image/common/back.gif
经这么一提醒,现在想起来了,这个函数确实方便,不要考虑editbox的对齐
为此,你还给我加了一个明经币,谢谢!
lucas_3333
发表于 2015-9-17 17:34:07
USER2128 发表于 2015-9-17 17:13 static/image/common/back.gif
为此,你还给我加了一个明经币,谢谢!
客气了,币不值钱,重要的是受教了,我要谢谢你才对!
米兰达薇薇2899
发表于 2015-9-29 11:38:33
命令:XX-TT ***属性块编辑****
选择属性块:; 错误: 参数类型错误: stringp <图元名: 7ffff6e3600>
qyming
发表于 2018-1-4 13:10:18
;|;;文本型点对表编辑
|
(editlst '(("标签1" . "值1")
("标签2" . "值2")
("标签3" . "值3")
("标签4" . "值4")
("标签5" . "值5")
("标签6" . "值6")
("标签7" . "值7")
("标签8" . "值8")
)
)
|;
(defun editlst (lst / getdata fname F1 I lst1 dclid)
(defun getdata ()
(setq lst1 NIL
I 1
)
(foreach n lst
(setq LST1 (cons (cons (car n) (get_tile (strcat "KEY" (itoa I))))
LST1
)
I (1+ I)
)
)
)
(setq fname (vl-filename-mktemp nil nil ".dcl"))
(setq F1 (open fname "w"))
(write-line
"EditDCL:dialog{label=\"文本型点对表编辑 \";"
F1
)
(write-line ":boxed_column{ " F1)
(write-line ":row{\n:column{" F1)
(setq I 1)
(foreach n lst
(write-line
(strcat ":edit_box{label=\""
(car n)
"\";value=\""
(cdr n)
"\";key=\"KEY"
(itoa I)
"\";}"
)
F1
)
(if(= (rem i 5) 0)
(write-line "}\n:column{" F1)
)
(setq I (1+ I))
)
(if (/= (rem (1- i) 5) 0)
(write-line "}" F1)
)
(write-line "}\n}" F1)
(write-line "ok_cancel;" F1)
(write-line "}" F1)
(close F1)
(setq dclid (load_dialog fname))
(vl-file-delete fname)
(new_dialog "EditDCL" dclid)
(action_tile "accept" "(getdata)(done_dialog 1)")
(action_tile "cancel" "(done_dialog 0)")
(start_dialog)
(unload_dialog dclid)
(if lst1
(setq lst (reverse lst1))
(setq lst lst)
)
)
(defun c:xx-tt (/ ENT attlst)
(prompt "***属性块编辑****")
(while (setq ENT (CAR (entsel "\n 选择属性块:")))
(setq attlst (editlst (GetAttributes ent)))
(SetAttributes ent attlst)
(princ "继续选择下一属性块")
)
(princ)
)
怎么对齐??????
qyming
发表于 2018-1-4 13:11:28
(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))
)
)
)
77077
发表于 2021-2-20 21:37:51
调整了一下,用edit_box。
(defun editlst (lst / dclfile dclfo i keys key dclid out)
(setq dclfile (vl-filename-mktemp nil nil ".dcl"))
(setq dclfo (open dclfile "w"))
(write-line "minbox:edit_box{fixed_width=true;fixed_height=true;vertical_margin=none;horizontal_margin=none;}" dclfo)
(write-line "consListEdit:dialog{label=\"文本型点对表编辑 \";" dclfo)
(write-line ":boxed_column{ " dclfo)
(setq i 1 keys nil)
(foreach n lst
(setq key (strcat "key" (itoa i)) keys (cons key keys))
(write-line ":row{" dclfo)
(write-line(strcat ":minbox{width=15;is_enabled=false;value=\""(car n)"\";}")dclfo)
(write-line(strcat ":minbox{width=20;value=\""(cdr n)"\";key=\"" key "\";}")dclfo)
(write-line "}" dclfo);row
(setq i (1+ i))
)
(setq keys(reverse keys))
(write-line "}" dclfo);boxed_column
(write-line "ok_cancel;" dclfo)
(write-line "}" dclfo);dialog
(close dclfo)
(setq dclid (load_dialog dclfile))
(vl-file-delete dclfile)
(new_dialog "consListEdit" dclid)
(mode_tile (car keys) 2)
(action_tile "accept" "(setq out(mapcar '(lambda(v k)(cons (car v)(get_tile k))) lst keys))(done_dialog)")
(action_tile "cancel" "(setq out nil)(done_dialog)")
(start_dialog)
(unload_dialog dclid)
out
)
yoyoho
发表于 2021-2-21 01:09:59
77077 发表于 2021-2-20 21:37
调整了一下,用edit_box。
指令: (editlst '(("标签1" . "值1") ("标签2" . "值2") ("标签3" . "值3") ("标签4" . "值4")))
; 错误: 引数太多