明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3278|回复: 17

帮忙看一下让列表对话框双击或点确定都执行命令

  [复制链接]
发表于 2013-1-21 01:21:37 | 显示全部楼层 |阅读模式
本帖最后由 ww5w 于 2013-1-21 01:24 编辑

(defun C:tt ()
(if (< (setq DCL_ID (load_dialog "cmdDCL.dcl")) 0)
(exit)
)
(setq LIS '("画线" "画圆" "复制" "移动"))
(new_dialog "cmdDCL" DCL_ID)
(start_list "list")
(action_tile "list" "(setq ind (nth (atoi $value) lis))(set_tile \"sset\" ind)")
(action_tile "accept" "(done_dialog 1)")
(setp run (start_dialog))
(cond
  ((= run 1) (c:line))
  ((= run 2) (c:copy))
(unload_dialog DCL_ID)
IND
)
;;对话框--
cmdDCL:dialog{
label="命令列表";
:list_box{
   label="双击确定执行";
   key="list";allow_accept=true;
   list="画线\n画圆\n复制\n移动";
   width=30;
   height=10;
}
:row{
:edit_box{
   label="选中:";
   key="sset";
   }
ok_button;
}
:row{help_button;}
帮忙改一下,我弄了一天没弄好,谢谢!


本帖子中包含更多资源

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

x
发表于 2013-1-21 05:34:42 | 显示全部楼层
(action_tile "序号" "(setq id $value)(if (= 4 $reason) (progn (vvfdclget1)(done_dialog 1)))")
参照着改吧
发表于 2013-1-21 08:06:39 | 显示全部楼层
本帖最后由 ZZXXQQ 于 2013-1-21 08:24 编辑

  1. (defun C:tt ()
  2. (if (> (setq DCL_ID (load_dialog "cmdDCL.dcl")) 0) (progn
  3.   (setq LIS '("画线" "画圆" "复制" "移动"))
  4.   (setq run 2)
  5.   (while (> run 0)
  6.    (if (new_dialog "cmdDCL" DCL_ID) (progn
  7.     (start_list "list")
  8.     (mapcar 'add_list lis)
  9.     (end_list)
  10.     (action_tile "list" "(setq ind (nth (atoi $value) lis))(set_tile \"sset\" ind) (done_dialog 1)")
  11.     (action_tile "accept" "(setq ind (nth (atoi (get_tile \"list\")) lis)) (done_dialog 1)")
  12.     (action_tile "cancel" "(done_dialog 0)")
  13.     (setq run (start_dialog))
  14.    )
  15.     (princ "\n无法显示对话框!")
  16.    )
  17.    (if (= run 1)
  18.     (cond
  19.      ((= ind "画线") (line))
  20.      ((= ind "画圆") (circle))
  21.      ((= ind "复制") (copy))
  22.      ((= ind "移动") (move))
  23.     );cond
  24.    );if
  25.   );while
  26.   (unload_dialog dcl_id)
  27. )
  28.   (princ "\n无法加载对话框!")
  29. )
  30. (princ)
  31. )

 楼主| 发表于 2013-1-21 10:37:16 | 显示全部楼层
ZZXXQQ 发表于 2013-1-21 08:06

版主,先谢谢你,跟你改的加载后变成单击了,还有下面 选择框里 不会显示选中的
单击后提示:
命令: tt
; 错误: no function definition: LINE
命令:
麻烦你看看是什么原因,

点评

那是需要你自己定义的函数,你没定义当然出错。另外不要用C:打头,这会与原CAD命令冲突。  发表于 2013-1-21 19:43
 楼主| 发表于 2013-1-21 10:44:35 | 显示全部楼层
masterlong 发表于 2013-1-21 05:34
(action_tile "序号" "(setq id $value)(if (= 4 $reason) (progn (vvfdclget1)(done_dialog 1)))")
参照着 ...

谢谢你,想问一下这里的 序号是指那些,我理解是列表的0~n,改成1提示:错误: no function definition: SETP;
下面这样改的:
(setq LIS '("画线" "画圆" "复制" "移动"))
(new_dialog "cmdDCL" DCL_ID)
(start_list "xlist")
(action_tile "xlist" "(setq ind (nth (atoi $value) lis))(set_tile \"sset\" ind)")
(action_tile "0" "(setq id $value)(if (= 4 $reason) (progn (vvfdclget1)(done_dialog 1)))")
(action_tile "1" "(setq id $value)(if (= 4 $reason) (progn (vvfdclget1)(done_dialog 2)))")
(setp run (start_dialog))
(cond
  ((= run 1) (c:line))
  ((= run 2) (c:copy))
)
(unload_dialog DCL_ID)

发表于 2013-1-21 11:02:35 | 显示全部楼层
List_box 如果需要双击, 属性须加一条:is_default=true;
参考Vlisp帮助里的解释
 楼主| 发表于 2013-1-21 11:21:34 | 显示全部楼层
sunny20102 发表于 2013-1-21 11:02
List_box 如果需要双击, 属性须加一条:is_default=true;
参考Vlisp帮助里的解释

is_default=true;不是默认缺省按钮?
allow_accept=true;我看说这个是双击
发表于 2013-1-21 11:34:21 | 显示全部楼层
ww5w 发表于 2013-1-21 11:21
is_default=true;不是默认缺省按钮?
allow_accept=true;我看说这个是双击

在Vlisp里按F1 搜索Callback Reasons

本帖子中包含更多资源

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

x
 楼主| 发表于 2013-1-21 11:44:48 | 显示全部楼层
sunny20102 发表于 2013-1-21 11:34
在Vlisp里按F1 搜索Callback Reasons

不好意思,刚学这个,可以帮我看一下上面怎么改吗,我弄了好久都不行.谢谢
发表于 2013-1-21 11:48:20 | 显示全部楼层
ww5w 发表于 2013-1-21 11:44
不好意思,刚学这个,可以帮我看一下上面怎么改吗,我弄了好久都不行.谢谢

Z版改的就很好的,只是需要把两行改下:
  1. (action_tile "accept" "(setq ind (nth (atoi (get_tile "list")) lis)) (done_dialog 1)")
  2.     (action_tile "cancel" "(done_dialog 0)")
改为:
  1. (action_tile "accept" "(setq ind (nth (atoi (get_tile "list")) lis)) (done_dialog 0)")
  2.    ;;; (action_tile "cancel" "(done_dialog 0)")
因为对话框文件里只有ok,没有cancel,所以只有设置ok为退出了

点评

对话框没有?右上角的叉就是cancel。你这么改后面自定义程序不会运行。  发表于 2013-1-21 19:45
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 02:13 , Processed in 0.196305 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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