请问同一个DCL对话框中radio_button切换和执行命令的功能可否同时存在?谢谢~
(vl-load-com)(defun c:tt (/ fname fn x dclid lin)
(setq fname (vl-filename-mktemp nil nil ".dcl" ))
(setq fn (open fname "w" ))
(foreach x '(
"agtckz : dialog{"
"label=\"测试一下\";"
":radio_column {"
":row {"
":radio_button {key = \"11\" ;label =\"界面一\" ;value = "1";width=10;}"
":radio_button {key = \"12\" ;label =\"界面二\" ;width=10;}"
" }"
" }"
" :row{"
" :boxed_column{"
" :row{"
" :radio_button{key=\"1\";label=\"按钮1\";width=10;}"
" :radio_button{key=\"2\";label=\"按钮2\";width=10;}"
" }"
" }"
" }"
"ok_cancel;"
"}"
);end ;endlist
(princ x fn)
(write-line "" fn)
);end foreach
(close fn)
(setq fn (open fname "r" ))
(setq dclid (load_dialog fname))
(while (or (eq (substr (setq lin (vl-string-right-trim "\" fn)" (vl-string-left-trim "(write-line \"" (read-line fn)))) 1 2) "//" ) (eq (substr lin 1 (vl-string-search " " lin)) "" ) (not (eq (substr lin (+ (vl-string-search " " lin) 1) 9) " : dialog" ))))
(new_dialog (substr lin 1 (vl-string-search " " lin)) dclid)
(action_tile "1" "(done_dialog 1)" )
(action_tile "2" "(done_dialog 2)" )
(action_tile "11" "(done_dialog 11)" )
(action_tile "12" "(done_dialog 12)" )
(action_tile "cancel" "(done_dialog 0)" )
(setq re (start_dialog))
(cond
((= re 1) (GL:1))
((= re 2) (GL:2))
((= re 11) (c:qq))
((= re 12) (c:yx_zy))
);end cond
(unload_dialog dclid)
(close fn)
(vl-file-delete fname)
(princ)
)
(vl-load-com)
(defun c:yx_zy (/ fname fn x dclid lin)
(setq fname (vl-filename-mktemp nil nil ".dcl" ))
(setq fn (open fname "w" ))
(foreach x '(
"agtckz : dialog{"
"label=\"测试一下\";"
":row {"
":radio_button {key = \"11\" ;label =\"界面一\" ;width=10;}"
":radio_button {key = \"12\" ;label =\"界面二\" ;value = "1";width=10;}"
" }"
" :row{"
" :boxed_column{"
" :row{"
" :radio_button{key=\"3\";label=\"按钮3\";width=10;}"
" :radio_button{key=\"4\";label=\"按钮4\";width=10;}"
" }"
" }"
" }"
"ok_cancel;"
"}"
);end ;endlist
(princ x fn)
(write-line "" fn)
);end foreach
(close fn)
(setq fn (open fname "r" ))
(setq dclid (load_dialog fname))
(while (or (eq (substr (setq lin (vl-string-right-trim "\" fn)" (vl-string-left-trim "(write-line \"" (read-line fn)))) 1 2) "//" ) (eq (substr lin 1 (vl-string-search " " lin)) "" ) (not (eq (substr lin (+ (vl-string-search " " lin) 1) 9) " : dialog" ))))
(new_dialog (substr lin 1 (vl-string-search " " lin)) dclid)
(action_tile "3" "(done_dialog 3)" )
(action_tile "4" "(done_dialog 4)" )
(action_tile "11" "(done_dialog 11)" )
(action_tile "12" "(done_dialog 12)" )
(action_tile "cancel" "(done_dialog 0)" )
(setq re (start_dialog))
(cond
((= re 3) (GL:3))
((= re 4) (GL:4))
((= re 11) (c:qq))
((= re 12) (c:yx_zy))
);end cond
(unload_dialog dclid)
(close fn)
(vl-file-delete fname)
(princ)
)
我想点“界面一”和“界面二”时无需再点“确定”即可切换对话框,但选取“按钮1~4”则需要点“确定”才能执行接下来设置好的命令,尝试改cond,但没成功,想请问一下怎么修改才可以?谢谢~ 飞雪神光 发表于 2024-12-30 18:04
你这里的OK控件是 accept 所以按钮1~4不能用done_dialog结束 要用过 accept 结束后判断 按钮值
1.(entmake (list '(0 . "CIRCLE") (cons 10 pt1) (cons 40 100 ) ) );
2.(entmake (list '(0 . "HATCH") '(100 . "AcDbEntity") '(100 . "AcDbHatch") '(10 0.0 0.0 0.0) '(210 0.0 0.0 1.0) '(2 . "SOLID") '(70 . 1) '(71 . 0) '(91 . 1) '(92 . 1) '(93 . 1) '(72 . 2) (cons 10 pt2) (cons 40 100 ) '(50 . 0.0) (cons 51 (* 2 pi) ) '(73 . 1) '(97 . 0) '(75 . 1) '(76 . 1) '(98 . 1) '(10 0 0 0.0) ) );
3.(entmake (list '(0 . "HATCH") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(100 . "AcDbHatch") '(10 0.0 0.0 0.0) '(210 0.0 0.0 1.0) '(2 . "SOLID") '(70 . 1) '(71 . 0) '(91 . 1) '(92 . 3) '(72 . 0) '(73 . 1) '(93 . 4) (cons 10 pt3) (cons 10 pt4) (cons 10 pt5) (cons 10 pt6) '(97 . 0) '(75 . 0) '(76 . 1) '(98 . 0) ) )。
另外,请教一下飞版:这样的代码能否实现多个指定位置批量生成啊? 飞雪神光 发表于 2025-1-8 10:49
没研究过entmake创建填充 你可以试试填充后再去设置 组码 或者 vl的方法
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=180589
http://bbs.mjtd.com/thread-178354-1-1.html
先前我在这两帖子里分别找到了和飞版一样的答案,看来entmake也不是万能的,先前生成中文字体样式的时候也有问题,再请问一下飞版,这个vla-put-是什么个情况呢?接触过几段代码了,但感觉陌生又神奇,能推荐点学习资料不?谢谢~ 逗亦斗霸 发表于 2025-1-8 10:35
请问飞版,entmake生成填充时,图案不能用组码52和53来设置角度吗?也不能用组码41来调整比例?不能私信 ...
没研究过entmake创建填充 你可以试试填充后再去设置 组码 或者 vl的方法
(vla-put-patternscale hatchobj scale)
(vla-put-patternangle hatchobj rad) 你这里的OK控件是 accept 所以按钮1~4不能用done_dialog结束 要用过 accept 结束后判断 按钮值 如果点了radio_button就关闭DCL,就没必要用radio_button,直接用button更容易让自己理解逻辑 飞雪神光 发表于 2024-12-30 18:04
你这里的OK控件是 accept 所以按钮1~4不能用done_dialog结束 要用过 accept 结束后判断 按钮值
感谢飞版回复!是的,切换按钮都不用点“确定”就能生效(new_dialog),后面的功能按钮需要点确定才执行,因为后面的功能是想做多组单选的,所以才来咨询,您楼下发的那个插件好像用不了呀~ kozmosovia 发表于 2024-12-30 19:11
如果点了radio_button就关闭DCL,就没必要用radio_button,直接用button更容易让自己理解逻辑
是的,我也是突发奇想 是这种效果吗? 黄翔 发表于 2024-12-31 10:04
是这种效果吗?
不是哦,都是选择按钮~ ;; 怪异的逻辑关系