明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1060|回复: 4

帮我看看那里不对?

[复制链接]
发表于 2007-5-26 15:38 | 显示全部楼层 |阅读模式

帮我看看那里不对?

这是我写的对话框的调用计算的程序,麻烦帮我看看哪里不对
(defun load_yj()
  (setq dcl_id (load_dialog "c_yj"))
  (new_dialog "c_yj" dcl_id)
  (if(not(new_dialog"c_yj"dcl_id)(exit))
  (action_tile "ok" "calculate")
  (start_dialog)
  (unload_dialog)
  (princ)
)

(defun calculate()
  (setq a(atof(get_tile"n1")))
  (setq b(atof(get_tile"n2")))
  (setq c(atof(get_tile"n3")))
  (setq d(atof(get_tile"n4")))
  (setq e(sqrt(/ 4a(* 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)
  )
这是对话框的dcl:
c_yj:dialog{
label="双干活塞式液压缸计算器";
:text{
label="先输入数据,在单击确定";
}
:row{
:boxed_column{
label="输入已知参数";
:edit_box{
label="工作循环中最大外负载F";
key="n1";
fixed_width=true;
width=5;
}
:edit_box{
label="工作压力P1";
key="n2";
fixed_width=true;
width=5;
}
:popup_list
{label="出口压力P2";
list="0.2\n0.3\n0.4\n0.5\n0.6\n0.8\n1.0\n1.2\n1.5\n";
key="n3";
}
:popup_list
{label="d/D";
list="0.2\n0.3\n0.5\n0.7\n";
key="n4";
}
}
:boxed_column{
label="计算结果";
:edit_box{
label="D";
key="n5";
edit_limit=20;
edit_width=5;
}
:edit_box{
label="d";
key="n6";
edit_limit=20;
edit_width=5;
}
}
}
ok_cancel;
}
麻烦哪位大侠帮我调出来
 
发表于 2007-5-26 15:51 | 显示全部楼层
本帖最后由 作者 于 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要和对话框的值对应。

 楼主| 发表于 2007-5-26 16:12 | 显示全部楼层

谢谢!

我写错了

是4*a

 楼主| 发表于 2007-5-27 10:05 | 显示全部楼层

我改过了,可还是调不出来,麻烦再帮帮!谢谢!

 楼主| 发表于 2007-5-28 16:29 | 显示全部楼层

哪位高手帮帮小女子呀?!急切等待ing!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-5 18:30 , Processed in 0.253630 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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