明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 345|回复: 15

[提问] 请问同一个DCL对话框中radio_button切换和执行命令的功能可否同时存在?谢谢~

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式
  1. (vl-load-com)
  2. (defun c:tt (/ fname fn x dclid lin)
  3.        (setq fname (vl-filename-mktemp nil nil ".dcl" ))
  4.        (setq fn (open fname "w" ))
  5.        (foreach x '(



  6.                      "  agtckz : dialog{"
  7.                      "  label="测试一下";"
  8.                      

  9.         ":radio_column {"
  10.      
  11.         ":row {"

  12.         ":radio_button {key = "11" ;label ="界面一" ;value = "1";width=10;}"
  13.         ":radio_button {key = "12" ;label ="界面二" ;width=10;}"
  14.        " }"
  15.        " }"


  16.                      "     :row{"
  17.                      "     :boxed_column{"
  18.                      "     :row{"
  19.                      "      :radio_button{key="1";label="按钮1";width=10;}"
  20.                      "      :radio_button{key="2";label="按钮2";width=10;}"
  21.                      "     }"


  22.                      "     }"
  23.                      "     }"

  24.                      "ok_cancel;"

  25.                      "}"

  26.               );end ;endlist
  27.               (princ x fn)
  28.               (write-line "" fn)
  29.        );end foreach
  30.        (close fn)
  31.        (setq fn (open fname "r" ))
  32.        (setq dclid (load_dialog fname))
  33.        (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" ))))
  34.        (new_dialog (substr lin 1 (vl-string-search " " lin)) dclid)

  35.        (action_tile "1" "(done_dialog 1)" )
  36.        (action_tile "2" "(done_dialog 2)" )
  37.        (action_tile "11" "(done_dialog 11)" )
  38.        (action_tile "12" "(done_dialog 12)" )

  39.    

  40.        (action_tile "cancel" "(done_dialog 0)" )
  41.        (setq re (start_dialog))
  42.        (cond
  43.               ((= re 1) (GL:1))
  44.               ((= re 2) (GL:2))
  45.               ((= re 11) (c:qq))
  46.               ((= re 12) (c:yx_zy))


  47.        );end cond
  48.        (unload_dialog dclid)
  49.        (close fn)
  50.        (vl-file-delete fname)
  51.        (princ)
  52. )


  53. (vl-load-com)
  54. (defun c:yx_zy (/ fname fn x dclid lin)
  55.        (setq fname (vl-filename-mktemp nil nil ".dcl" ))
  56.        (setq fn (open fname "w" ))
  57.        (foreach x '(



  58.                      "  agtckz : dialog{"
  59.                      "  label="测试一下";"
  60.                      



  61.         ":row {"

  62.         ":radio_button {key = "11" ;label ="界面一" ;width=10;}"
  63.         ":radio_button {key = "12" ;label ="界面二" ;value = "1";width=10;}"
  64.        " }"



  65.                      "     :row{"
  66.                      "     :boxed_column{"
  67.                      "     :row{"
  68.                      "      :radio_button{key="3";label="按钮3";width=10;}"
  69.                      "      :radio_button{key="4";label="按钮4";width=10;}"
  70.                      "     }"


  71.                      "     }"
  72.                      "     }"

  73.                      "ok_cancel;"

  74.                      "}"

  75.               );end ;endlist
  76.               (princ x fn)
  77.               (write-line "" fn)
  78.        );end foreach
  79.        (close fn)
  80.        (setq fn (open fname "r" ))
  81.        (setq dclid (load_dialog fname))
  82.        (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" ))))
  83.        (new_dialog (substr lin 1 (vl-string-search " " lin)) dclid)

  84.        (action_tile "3" "(done_dialog 3)" )
  85.        (action_tile "4" "(done_dialog 4)" )
  86.        (action_tile "11" "(done_dialog 11)" )
  87.        (action_tile "12" "(done_dialog 12)" )
  88.    

  89.        (action_tile "cancel" "(done_dialog 0)" )
  90.        (setq re (start_dialog))
  91.        (cond
  92.               ((= re 3) (GL:3))
  93.               ((= re 4) (GL:4))
  94.               ((= re 11) (c:qq))
  95.               ((= re 12) (c:yx_zy))

  96.      
  97.        );end cond
  98.        (unload_dialog dclid)
  99.        (close fn)
  100.        (vl-file-delete fname)
  101.        (princ)
  102. )
我想点“界面一”和“界面二”时无需再点“确定”即可切换对话框,但选取“按钮1~4”则需要点“确定”才能执行接下来设置好的命令,尝试改cond,但没成功,想请问一下怎么修改才可以?谢谢~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
飞雪神光 发表于 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) ) )。
另外,请教一下飞版:这样的代码能否实现多个指定位置批量生成啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
飞雪神光 发表于 2024-12-30 18:04
你这里的OK控件是 accept 所以按钮1~4不能用done_dialog结束 要用过 accept 结束后判断 按钮值

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

使用道具 举报

发表于 5 天前 | 显示全部楼层
逗亦斗霸 发表于 2024-12-31 08:47
1.(entmake (list '(0 . "CIRCLE") (cons 10 pt1) (cons 40 100 ) ) );
2.(entmake (list '(0 . "HATCH" ...

可以啊 算好点就行了 或者生成一组后复制过去 插件没试出问题
回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层
你这里的OK控件是 accept 所以按钮1~4不能用done_dialog结束 要用过 accept 结束后判断 按钮值
回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

发表于 6 天前 | 显示全部楼层
如果点了radio_button就关闭DCL,就没必要用radio_button,直接用button更容易让自己理解逻辑
回复 支持 反对

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层
kozmosovia 发表于 2024-12-30 19:11
如果点了radio_button就关闭DCL,就没必要用radio_button,直接用button更容易让自己理解逻辑

是的,我也是突发奇想
回复 支持 反对

使用道具 举报

发表于 5 天前 | 显示全部楼层
是这种效果吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 5 天前 | 显示全部楼层

不是哦,都是选择按钮~
回复 支持 反对

使用道具 举报

发表于 5 天前 | 显示全部楼层
;; 怪异的逻辑关系


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-1-5 05:23 , Processed in 0.186741 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表