谁帮我看看我这个lisp调用dcl对话框后为什么就动不了呢???????
具体症状是:lisp调用dcl后,对话框的edit_box中有默认数据,也能往里面填写修改的数据,,但只要一点确认按钮,整个cad就动不了了,不知道是一直在做死循环还是直接死机了,,,求人帮我看一下。。由于源程序很乱,我只贴了部分程序上来:
(setq dcl_id (load_dialog "cxc"))
(new_dialog "dia" dcl_id)
(set_tile "edit_bh" cxc_entbh1)
(set_tile "edit_tc" cxc_enttc2)
(set_tile "edit_d"cxc_entzj3)
(set_tile "edit_s"cxc_entjj)
(set_tile "edit_z"cxc_entzm)
(set_tile "edit_y"cxc_entym)
(set_tile "edit_j"cxc_entjy)
(set_tile "edit_fwx" cxc_entfwxcd)
(action_tile "accept" "(ok_dia) (done_dialog 1)")
(start_dialog)
(unload_dialog dcl_id)
(defun ok_dia ()
(setq cxc_entbh1_2(get_tile "edit_bh")
cxc_enttc2_2 (get_tile "edit_tc")
cxc_entzj3_2 (get_tile "edit_d" )
cxc_entjj_2 (get_tile "edit_s" )
cxc_entzm_2 (get_tile "edit_z" )
cxc_entym_2 (get_tile "edit_y" )
cxc_entjy_2 (get_tile "edit_j" )
cxc_entfwxcd_2(get_tile "edit_fwx")
)
)
另外dcl程序是:
dia:dialog{
label="钢筋属性表";
:edit_box{
label="钢筋编号";
key="edit_bh";
edit_width=20;
}
:edit_box{
label="钢筋类别";
key="edit_tc";
edit_width=20;
}
:edit_box{
label="钢筋直径D(mm)";
key="edit_d";
edit_width=20;
}
:edit_box{
label="钢筋间距S(mm)";
key="edit_s";
edit_width=20;
}
:edit_box{
label="钢筋左锚固长度Z(15d+0.1,0.7-0.03等表达式)";
key="edit_z";
edit_width=20;
}
:edit_box{
label="钢筋右锚固长度Y(15d+0.1,0.7-0.03等表达式)";
key="edit_y";
edit_width=20;
}
:edit_box{
label="钢筋多加几根J";
key="edit_j";
edit_width=20;
}
:edit_box{
label="钢筋分布长度(mm)";
key="edit_fwx";
edit_width=20;
}
ok_only;
}
(defun shodcl ()
(if (> (setq dcl_id (load_dialog "cxc")) 0) (progn
(if (new_dialog "dia" dcl_id) (progn
(set_tile "edit_bh" cxc_entbh1)
(set_tile "edit_tc" cxc_enttc2)
(set_tile "edit_d"cxc_entzj3)
(set_tile "edit_s"cxc_entjj)
(set_tile "edit_z"cxc_entzm)
(set_tile "edit_y"cxc_entym)
(set_tile "edit_j"cxc_entjy)
(set_tile "edit_fwx" cxc_entfwxcd)
(action_tile "accept" "(ok_dia) (done_dialog 1)")
(setq re (start_dialog))
)
(princ "\n无法显示对话框!")
)
(unload_dialog dcl_id)
)
(princ "\n无法加载对话框!")
)
(if (= re 1) (do))
(princ)
)
感谢ZZXXQQ抽出时间来帮忙啊!! ZZXXQQ老大,
我这个还是不行,还是死机,我把我的程序附上来,麻烦你再看看啊。我主要是想调用对话框修改图中“钢筋”的属性(图中钢筋就是一条红线), ;; 代码结构复杂,函数do未定义
程序运行时直接改扩展数据,在图形上无反应。
xyp1964 发表于 2014-7-3 08:59 static/image/common/back.gif
;; 代码结构复杂,函数do未定义
谢谢xyp1964老大的修改,我的程序繁琐了点,不简洁,,,很多地方还需要优化。但经过你和ZZXXQQ老大的修改后,暂时能用了,谢谢费心~~ 本帖最后由 chenxc 于 2014-7-3 21:31 编辑
ZZXXQQ 发表于 2014-7-3 09:16 static/image/common/back.gif
程序运行时直接改扩展数据,在图形上无反应。
有劳ZZXXQQ老大的修改,你修改后的程序在我电脑上没问题了,终于又见到之前熟悉的对话框了,而且也修改成功了,有你和其他热心版主的帮助,我觉得学到不少~~再次感谢您的费心!!
页:
[1]