明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 682|回复: 4

[提问] 对话框设定初始值不显示

[复制链接]
发表于 2015-6-2 09:50:49 | 显示全部楼层 |阅读模式
程序如下,
(princ "加载程序成功,输入dd命令可应用此工具\n")
(defun c:dd (/ exi dcl_id)
   (setq dcl_id (load_dialog "dia"))
   (new_dialog "dia" dcl_id)  ;启动dia对话框
  (set_tile "kb" "100")   ;设定宽kb初始值100
   (action_tile "accept" " (setq b (atof (get_tile "kb"))) (done_dialog 1)")
   (setq exi (start_dialog))
     (unload_dialog dcl_id)
   (cond
     ((= exi 1) (princ "确定") (princ b))
     ((= exi 0) (exit))) ;_ 结束cond
   (princ)
)

dia:dialog{
label="设置";
spacer_1;
   :boxed_row{label="数据";
   :edit_box{label="板宽";Key="kb";edit_width=6;}
}
                 spacer_1;
:row{
fixed_width=true;
alignment=centered;
ok_cancel;
:spacer{width=2;}
:button{label="关于…";Key="info";width=10;}
}
}

这个运行时,出现对话框,但是kb初始值一直不显示,为什么不显示?还有输入数值后,按确定键也不会princ b值。显示参数类型错误: stringp nil。大侠帮着看看吧
发表于 2015-6-2 10:34:54 | 显示全部楼层
首先,你的cad图档要和lsp、dcl文件放到同一个文件夹,其次,把第二句改下试试:(setq dcl_id (load_dialog "dia.dcl"))
 楼主| 发表于 2015-6-2 13:01:34 | 显示全部楼层
荒野孤行 发表于 2015-6-2 10:34
首先,你的cad图档要和lsp、dcl文件放到同一个文件夹,其次,把第二句改下试试:(setq dcl_id (load_dialog ...

我的意思是对话框可以显示出了,但是预设的kb值100不能显示在edit_box中,同时如果在对话框内输入数据,点”确定“后,也不会显示b的值,直接显示参数类型错误: stringp nil
发表于 2015-6-2 13:24:34 | 显示全部楼层
(action_tile "accept" " (setq b (atof (get_tile \"kb\"))) (done_dialog 1)")
 楼主| 发表于 2015-6-2 21:21:17 | 显示全部楼层
找到原因了,对话框文件中Key要区分大小写,改成key,就可以了
(action_tile "accept" " (setq b (atof (get_tile \"kb\"))) (done_dialog 1)")提示输入的字符串有缺陷
或者(action_tile "accept" " (setq b (atof (get_tile "kb"))) (done_dialog 1)")提示参数太多,我把(setq b (atof (get_tile "kb"))) 另做个子函数改成 (action_tile "accept" "(getnum)(done_dialog 1)") 就可以了,具体原因不清楚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 18:00 , Processed in 0.190685 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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