对话框设定初始值不显示
程序如下,(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。大侠帮着看看吧 首先,你的cad图档要和lsp、dcl文件放到同一个文件夹,其次,把第二句改下试试:(setq dcl_id (load_dialog "dia.dcl")) 荒野孤行 发表于 2015-6-2 10:34 static/image/common/back.gif
首先,你的cad图档要和lsp、dcl文件放到同一个文件夹,其次,把第二句改下试试:(setq dcl_id (load_dialog ...
我的意思是对话框可以显示出了,但是预设的kb值100不能显示在edit_box中,同时如果在对话框内输入数据,点”确定“后,也不会显示b的值,直接显示参数类型错误: stringp nil (action_tile "accept" " (setq b (atof (get_tile \"kb\"))) (done_dialog 1)") 找到原因了,对话框文件中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)") 就可以了,具体原因不清楚。
页:
[1]