明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 622|回复: 2

[提问] 求助,公式计算

[复制链接]
发表于 2021-5-22 18:35 | 显示全部楼层 |阅读模式
100明经币
如图片所示,不知道能不能实现...请大家帮我看下


附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

没有做 0 除检查 和 R0 /= Rt 检查 ,自己加吧。 顺便 推广一下 @lisp: http://atlisp.cn
发表于 2021-5-22 18:35 | 显示全部楼层
本帖最后由 vitalgg 于 2021-5-22 20:19 编辑

没有做 0 除检查 和 R0 /= Rt 检查 ,自己加吧。 顺便 推广一下 @lisp:   http://atlisp.cn

  1. (defun ktr0rt:dialog (/ dcl_fp dcl-tmp dcl_id ktr0rt:cal)
  2.   (defun ktr0rt:cal (/ k t1 r0 rt res)
  3.     (setq k (read (get_tile "K")))
  4.     (setq t1 (read (get_tile "t")))
  5.     (setq r0 (read (get_tile "R0")))
  6.     (setq rt (read (get_tile "Rt")))
  7.     (if k (setq k (float k)))
  8.     (if t1 (setq t1 (float t1)))
  9.     (if r0 (setq r0 (float r0)))
  10.     (if rt (setq rt (float rt)))
  11.     (cond     ((or (= 0 r0)(= 0 rt)(= 0 t1))       (alert "R0 Rt t不能为 0"))
  12.       ((and (null k)
  13.             (numberp t1)
  14.             (numberp r0)
  15.             (numberp rt))
  16.        (set_tile "K"  (rtos (* t1 (- (/ 1 rt)(/ 1 r0))) 2 5)))
  17.       ((and (numberp  k)
  18.             (null t1)
  19.             (numberp r0)
  20.             (numberp rt))
  21.        (set_tile "t" (rtos (/ k (- (/ 1 rt)(/ 1 r0))) 2 2)))
  22.       ((and (numberp k)
  23.             (numberp t1)
  24.             (null r0)
  25.             (numberp rt))
  26.        (set_tile "R0" (rtos (/ 1 (- (/ 1 rt) (/ k t1))) 2 2)))
  27.       ((and (numberp k)
  28.             (numberp t1)
  29.             (numberp r0)
  30.             (null rt))
  31.        (set_tile "Rt" (rtos (/ 1 (+ (/ 1 r0) (/ k t1))) 2 2)))     (t (alert "数据不全或太全。"))
  32.       ))

  33.   (progn
  34.     (setq dcl-tmp (strcat (getenv "temp") "\\" "tmp-ktr0rt.dcl" ))
  35.     (setq dcl_fp (open dcl-tmp "w"))
  36.     (write-line (strcat "panel : dialog {"
  37.                         "label = \"Calc\"; "
  38.                         ":row{"
  39.                         ": edit_box { key=\"K\";label=\"K\";}"
  40.                         ": edit_box { key=\"t\";label=\"t\";}"
  41.                         ": edit_box { key=\"R0\";label=\"R0\";}"
  42.                         ": edit_box { key=\"Rt\";label=\"Rt\";}"
  43.                         ": button { key=\"calc\";label=\"Cal\";}"
  44.                         "}ok_cancel;}")
  45.                         dcl_fp)
  46.     (close dcl_fp))
  47.   (setq dcl_id (load_dialog dcl-tmp))
  48.   (if (not (new_dialog "panel" dcl_id))
  49.       (exit))
  50.   (action_tile "calc" "(ktr0rt:cal)")
  51.   (start_dialog)
  52.   (unload_dialog dcl_id)
  53.   (vl-file-delete dcl-tmp))
  54. (defun C:tt ()(ktr0rt:dialog))
  55.   


评分

参与人数 1明经币 +1 收起 理由
xj6019 + 1

查看全部评分

回复

使用道具 举报

发表于 2021-5-22 22:07 | 显示全部楼层
vitalgg 发表于 2021-5-22 19:55
没有做 0 除检查 和 R0 /= Rt 检查 ,自己加吧。 顺便 推广一下 @lisp:   http://atlisp.cn

这里一个高手!  支持@lisp
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-10 06:33 , Processed in 0.153631 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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