逗亦斗霸 发表于 2024-12-30 17:40:27

请问同一个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-31 08:47:37

飞雪神光 发表于 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 11:09:38

飞雪神光 发表于 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:49:43

逗亦斗霸 发表于 2025-1-8 10:35
请问飞版,entmake生成填充时,图案不能用组码52和53来设置角度吗?也不能用组码41来调整比例?不能私信 ...

没研究过entmake创建填充 你可以试试填充后再去设置 组码 或者 vl的方法
(vla-put-patternscale hatchobj scale)
        (vla-put-patternangle hatchobj rad)

飞雪神光 发表于 2024-12-30 18:04:38

你这里的OK控件是 accept 所以按钮1~4不能用done_dialog结束 要用过 accept 结束后判断 按钮值

飞雪神光 发表于 2024-12-30 18:22:39

kozmosovia 发表于 2024-12-30 19:11:57

如果点了radio_button就关闭DCL,就没必要用radio_button,直接用button更容易让自己理解逻辑

逗亦斗霸 发表于 2024-12-31 08:41:37

飞雪神光 发表于 2024-12-30 18:04
你这里的OK控件是 accept 所以按钮1~4不能用done_dialog结束 要用过 accept 结束后判断 按钮值

感谢飞版回复!是的,切换按钮都不用点“确定”就能生效(new_dialog),后面的功能按钮需要点确定才执行,因为后面的功能是想做多组单选的,所以才来咨询,您楼下发的那个插件好像用不了呀~

逗亦斗霸 发表于 2024-12-31 08:42:41

kozmosovia 发表于 2024-12-30 19:11
如果点了radio_button就关闭DCL,就没必要用radio_button,直接用button更容易让自己理解逻辑

是的,我也是突发奇想

黄翔 发表于 2024-12-31 10:04:43

是这种效果吗?

逗亦斗霸 发表于 2024-12-31 11:14:03

黄翔 发表于 2024-12-31 10:04
是这种效果吗?

不是哦,都是选择按钮~

xyp1964 发表于 2024-12-31 11:39:04

;; 怪异的逻辑关系


页: [1] 2 3
查看完整版本: 请问同一个DCL对话框中radio_button切换和执行命令的功能可否同时存在?谢谢~