明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: gprspda

通过程序计算出来的数值和手动计算的数值不一样,是不是我的程序写错了?

  [复制链接]
发表于 2011-10-22 16:08:48 | 显示全部楼层
请问这些变量 v ; c ; h ; w ; p ; ?

代入后所要的正确结果值值是?
 楼主| 发表于 2011-10-22 16:18:07 | 显示全部楼层
Andyhon 发表于 2011-10-22 16:08
请问这些变量 v ; c ; h ; w ; p ; ?

代入后所要的正确结果值值是?

不好意思,这几个变量分别输入250   15   3000  50  p任取一条直线的一个端点, α是25
通过计算得出的r2应该是一点几或是二点几,
目前程序运算得出的是零点零零几,相差太大
发表于 2011-10-22 16:46:54 | 显示全部楼层
_$ (setq t1 (/ (* v 171233 (expt (- (+ 288 c) (* 0.006496 h)) 0.5))
       (expt (- 288 (* 0.006496 h)) 2.628)
    )
  )
298.192
_$ (setq
    r2 (/ (* 3431
      (/ (sin (* pi (/ α 180.0))) (cos (* pi (/ α 180.0))))
   )
   (* pi t1)
       )
  )
1.70784
_$
如果是在用 360 , 关了再试 ....

 楼主| 发表于 2011-10-22 16:57:40 | 显示全部楼层
本帖最后由 gprspda 于 2011-10-22 16:59 编辑
Andyhon 发表于 2011-10-22 16:46
_$ (setq t1 (/ (* v 171233 (expt (- (+ 288 c) (* 0.006496 h)) 0.5))
       (expt (- 288 (* 0.006496 ...

添加后的程序应该是下面那样的吗?如果是的话,结果还是一个样的?,如果 α是小于25的,又该怎么处理?貌似通过程序画这个螺旋线,也很麻烦,我的专业不是作图的,但是这是帮导师做的,没办法,还请高手多多帮忙

(defun c:flx(/ p p0 p1 p2 p3 p4 p5 p6 v c h w r1 r2 b1 b2 b3 α e t1)
(setq v (getint"\n输入指示空速"))
(setq c (getint"\n输入与ISA的差值"))
(setq h (getint"\n输入高度(米)"))
(setq w (getint"\n输入风速"))
(setq p (getpoint"\n确定起始点"))
(setq α(getangle"\n输入转弯坡度角"))
_$ (setq t1 (/ (* v 171233 (expt (- (+ 288 c) (* 0.006496 h)) 0.5))
       (expt (- 288 (* 0.006496 h)) 2.628)
    )
  )
298.192
_$ (setq
    r2 (/ (* 3431
      (/ (sin (* pi (/ α 180.0))) (cos (* pi (/ α 180.0))))
   )
   (* pi t1)
       )
  )
1.70784
_$
(if (> r2 3)(setq r2 3))
(setq r1 (/ t1 (* 20 pi r2)))
      (setq p0 (polar p 0 r1))
(setq e (/ w (* 40 r2)))
(setq p1 (polar p0 (/ pi 2) e))
(setq p2 (polar p0 0 e))
(setq p3 (polar p0 (/ (- pi) 2) e))
(setq b1 (expt(+(* r1 r1)(* e e)) 0.5))
(setq b2 (+ r1 e))
(setq b3 (+ r1 (* 2 e)))
(setq p4 (polar p1 (/ pi 2) b1))
(setq p5 (polar p2 0 b2))
(setq p6 (polar p3 (/ (- pi) 2) b3))
(command "arc" "c" p1 p4 p)
(command "arc" "c" p2 p5 p4)
(command "arc" "c" p3 p6 p5)
(setq fn(open (getfiled "将文件保存为:" "gc.txt" "txt" 1) "w"))
(write-line (strcat "t1=" (rtos t1)) fn)
(write-line (strcat "r2=" (rtos r2)) fn)
(write-line (strcat "r1=" (rtos r1)) fn)
(write-line (strcat "b1=" (rtos b1)) fn)
(write-line (strcat "b2=" (rtos b2)) fn)
(write-line (strcat "b3=" (rtos b3)) fn)
(close fn)
   (command "_zoom" "0.5X")
  (princ)
      )
发表于 2011-10-22 17:18:39 | 显示全部楼层
不懂螺旋线...
只是调试返回值
t1 ==> 298.192
r2 ==> 1.70784

评分

参与人数 1明经币 +1 收起 理由
gprspda + 1 感谢你的帮助

查看全部评分

 楼主| 发表于 2011-10-22 17:48:55 | 显示全部楼层
Andyhon 发表于 2011-10-22 17:18
不懂螺旋线...
只是调试返回值
t1 ==> 298.192

为什么我运行的时候出来的一直都是r2=0.0279
发表于 2011-10-22 18:10:56 | 显示全部楼层
r2=0.0279  
t1 ?
改在 VLIDE 中调试呗

如果是在用 360 ....
 楼主| 发表于 2011-10-22 18:27:15 | 显示全部楼层
Andyhon 发表于 2011-10-22 18:10
r2=0.0279  
t1 ?
改在 VLIDE 中调试呗

t1=298.1924   
VLIDE?我不会用啊...
发表于 2011-10-22 18:34:11 | 显示全部楼层
lisp计算的时候,数据要有.才是双精度,否则按整数来计算因此有误差(计算过程中自动取整)
如:
180   要写成  180.   或 180.0
 楼主| 发表于 2011-10-22 18:37:34 | 显示全部楼层
狂刀lxx 发表于 2011-10-22 18:34
lisp计算的时候,数据要有.才是双精度,否则按整数来计算因此有误差(计算过程中自动取整)
如:
180   要 ...

改过了,还是不行,正如andyhon写的,他算出的r2是1.70784,我算出的是0.0279
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-9 20:00 , Processed in 0.203406 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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