本帖最后由 作者 于 2007-5-26 16:01:58 编辑
(defun load_yj() (setq dcl_id (load_dialog "c_yj"));;(setq dcl_id (load_dialog "tmp1")) (new_dialog "c_yj" dcl_id) ;;; (if(not(new_dialog"c_yj"dcl_id)(exit)) ;;; (action_tile "ok" "(calculate)") (ACTION_TILE "accept" "(calculate)") (start_dialog) (unload_dialog) (princ) )
(defun calculate() (setq a(atof(get_tile"n1"))) (setq b(atof(get_tile"n2"))) (setq c(nth(atoi(get_tile"n3"))'(0.2 0.3 0.4 0.5 0.6 0.8 1.0 1.2 1.5))) (setq d(nth(atoi(get_tile"n4"))'(0.2 0.3 0.5 0.7))) (setq e(sqrt(/ 4 a(* pi(- 1(* d d))(- b c))))) (setq f (* e d)) (setq g(rtos e 2 4)) (setq h(rtos e 2 4)) (set_tile"n5" g) (set_tile"n6" h) ) 1、主程序写的有点矛盾,对话框的OK(action_tile "ok" "(calculate)")键不是“OK”的是 (ACTION_TILE "accept" "(calculate)")
2、楼主的子程序(calculate)里面有一行为: (setq e(sqrt(/ 4a(* pi(- 1(* d d))(- b c)))))的, 4a 是什么东东变量? 是不是又是笔误?我在上面改成了(setq e(sqrt(/ 4 a(* pi(- 1(* d d))(- b c))))),还有就是变量C、D要和对话框的值对应。 |