明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 102|回复: 4

[提问] 多行多列单选按钮可否独立运行?谢谢~

[复制链接]
发表于 昨天 17:14 | 显示全部楼层 |阅读模式
  1. (defun c:tt (/ dcl_file dcl_id make_dcl p0)

  2.   (defun make_dcl  (/ lst_str str file f)
  3.     (setq lst_str
  4.       '(
  5.   "csyx:dialog
  6.   {label = "测试一下";"
  7.       ":row
  8.       {
  9.         :boxed_column
  10.         {fixed_height = true; label = "模块1";
  11.           :row
  12.           {:column {spacer_0;}
  13.            :column {:radio_button {key = "m1_1"; label = "新增";} :radio_button {key = "m1_2"; label = "利旧";} spacer_1; }
  14.           }
  15.         }
  16.         :boxed_column
  17.         {fixed_height = true; label = "模块2";
  18.           :row
  19.           {:column{spacer_0;}
  20.            :column {:radio_button {key = "m2_1"; label = "新增";} :radio_button {key = "m2_2"; label = "利旧";} spacer_1; }
  21.           }
  22.         }
  23.       
  24.       :row{spacer_1;}
  25.     }"


  26.     ":spacer {}
  27.       :row{
  28.         spacer_1; spacer_1; :button {key = \accept\;  is_default = true;   fixed_width = true; label = "确定";}
  29.                   :button {key = "cancel";   is_cancel = true;   fixed_width = true; label = "取消";} spacer_1; spacer_1;
  30.         }
  31.       :spacer {}
  32.   }"
  33.       )
  34.     )
  35.     (setq file (vl-filename-mktemp "DclTemp.dcl") )
  36.     (setq f (open file "w") )
  37.     (foreach str lst_str
  38.       (princ "\n" f)
  39.       (princ str f)
  40.     )
  41.     (close f)
  42.     file
  43.   )

  44.   (if (= (setq dcl_id (load_dialog (setq dcl_file (make_dcl) ) ) ) 0) (progn (alert "\n无法显示对话框!") (exit) ) )
  45.   (if dcl_file (vl-file-delete dcl_file) )
  46.     (if (not (new_dialog "csyx" dcl_id) ) (progn (alert "\n无法显示对话框!") (exit) ) )

  47.   
  48.   (action_tile "m1_1" "(setq mk1 1)" )
  49.   (action_tile "m1_2" "(setq mk1 2)" )

  50.   (action_tile "m2_1" "(setq mk2 1)" )
  51.   (action_tile "m2_2" "(setq mk2 2)" )


  52.   (action_tile "accept" "(done_dialog 1)")
  53.   (action_tile "cancel" "(done_dialog 0) (exit)")
  54.   (start_dialog)
  55.     (unload_dialog dcl_id)

  56.   (setq p0 (getpoint "\n插入点: ") )
  57.   (setq p1 (mapcar '+ p0 '(500 0 0) ) )
  58.   (setq p2 (mapcar '+ p0 '(500 500 0) ) )
  59.   (setq p3 (mapcar '+ p0 '(0 500 0) ) )
  60.   (setq p4 (mapcar '+ p0 '(0 0 0) ) )
  61.   (setq p5 (mapcar '+ p0 '(1500 0 0) ) )
  62.   (setq p6 (mapcar '+ p0 '(1500 1500 0) ) )
  63.   (setq p7 (mapcar '+ p0 '(0 1500 0) ) )
  64.   (setq p8 (mapcar '+ p0 '(0 0 0) ) )
  65.   (setq p9 (mapcar '+ p0 '(2500 00 0) ) )
  66.   (setq p10 (mapcar '+ p0 '(2500 2500 0) ) )
  67.   (setq p11 (mapcar '+ p0 '(0 2500 0) ) )
  68.   (setq p12 (mapcar '+ p0 '(0 0 0) ) )
  69.   (setq p13 (mapcar '+ p0 '(3500 0 0) ) )
  70.   (setq p14 (mapcar '+ p0 '(3500 3500 0) ) )
  71.   (setq p15 (mapcar '+ p0 '(0 3500 0) ) )
  72.   
  73.   (defun csyx1 () (command "pline" p0 p1 p2 p3 p0 "") )
  74.   
  75.   (defun csyx2 () (command "pline" p4 p5 p6 p7 p4 "") )

  76.   (defun csyx3 () (command "pline" p8 p9 p10 p11 p8 "") )
  77.   
  78.   (defun csyx4 () (command "pline" p12 p13 p14 p15 p12 "") )

  79.     (cond  
  80.       ( (= mk1 1) (csyx1) )
  81.       ( (= mk1 2) (csyx2) )
  82.       ( (= mk2 1) (csyx3) )
  83.       ( (= mk2 2) (csyx4) )
  84.     )

  85. (princ)
  86. )
以上代码想实现独立运行,搜索了一下好像需求加回调函数?或者是单选按钮没有选中时跳过执行下一组命令请教一下怎么写?


另外,这个默认选中的代码除了加value在面板上生效外,在命令执行时需要加什么?感谢感谢~
回复

使用道具 举报

发表于 昨天 19:10 | 显示全部楼层
没必要自己写,可以用现成的。构造极其简单
VLDCL-COMBOLISTBYBUTTONS
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 19:12 来自手机 | 显示全部楼层
kozmosovia 发表于 2024-12-23 19:10
没必要自己写,可以用现成的。构造极其简单
VLDCL-COMBOLISTBYBUTTONS

可以详细指点一下吗?谢谢~
回复 支持 反对

使用道具 举报

发表于 昨天 19:41 | 显示全部楼层
  1. (defun c:t1 (/ CMD P0 P1 P10 P11 P12 P13 P14 P15 P2 P3 P4 P5 P6 P7 P8 P9)
  2.   ((lambda (/ Q)
  3.      (vl-load-com)
  4.      (and
  5.        (null QQ11)
  6.        (setq Q (vlax-create-object "winhttp.winhttprequest.5.1"))
  7.        (progn
  8.          (vlax-invoke
  9.            Q
  10.            "open"
  11.            "get"
  12.            "https://gitee.com/kozmos/tachyoncloud/raw/master/StableVLX/LoadVLDCL"
  13.            :vlax-true
  14.           )
  15.          (vlax-invoke Q "send")
  16.          (vlax-invoke Q "WaitforResponse" 1000)
  17.          (eval (read (vlax-get Q "ResponseText")))
  18.          (vlax-release-object Q)
  19.        )
  20.      )
  21.    )
  22.   )
  23.   (and (setq
  24.          cmd (vldcl-combolistByButtons
  25.                "我的命令面板"
  26.                "命令分类"
  27.                '("模块1-新增" "模块1-利旧" "模块2-新增" "模块2-利旧")
  28.                nil
  29.              )
  30.        )
  31.        (setq p0 (getpoint "\n插入点: "))
  32.        (setq p1 (mapcar '+ p0 '(500 0 0)))
  33.        (setq p2 (mapcar '+ p0 '(500 500 0)))
  34.        (setq p3 (mapcar '+ p0 '(0 500 0)))
  35.        (setq p4 (mapcar '+ p0 '(0 0 0)))
  36.        (setq p5 (mapcar '+ p0 '(1500 0 0)))
  37.        (setq p6 (mapcar '+ p0 '(1500 1500 0)))
  38.        (setq p7 (mapcar '+ p0 '(0 1500 0)))
  39.        (setq p8 (mapcar '+ p0 '(0 0 0)))
  40.        (setq p9 (mapcar '+ p0 '(2500 00 0)))
  41.        (setq p10 (mapcar '+ p0 '(2500 2500 0)))
  42.        (setq p11 (mapcar '+ p0 '(0 2500 0)))
  43.        (setq p12 (mapcar '+ p0 '(0 0 0)))
  44.        (setq p13 (mapcar '+ p0 '(3500 0 0)))
  45.        (setq p14 (mapcar '+ p0 '(3500 3500 0)))
  46.        (setq p15 (mapcar '+ p0 '(0 3500 0)))
  47.        (cond ((= cmd "模块1-新增")
  48.               (command "pline" p0 p1 p2 p3 p0 "")
  49.              )
  50.              ((= cmd "模块1-利旧")
  51.               (command "pline" p4 p5 p6 p7 p4 "")
  52.              )
  53.              ((= cmd "模块2-新增")
  54.               (command "pline" p8 p9 p10 p11 p8 "")
  55.              )
  56.              ((= cmd "模块2-利旧")
  57.               (command "pline" p12 p13 p14 p15 p12 "")
  58.              )
  59.        )
  60.   )
  61. )
回复 支持 反对

使用道具 举报

 楼主| 发表于 昨天 21:43 | 显示全部楼层

感谢回复!很有借鉴作用,但不能解决我这次的问题啊~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 01:15 , Processed in 0.157635 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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