明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1306|回复: 1

各位大哥帮忙看看

[复制链接]
发表于 2007-6-13 10:34 | 显示全部楼层 |阅读模式

我写的一个程序加载后说

错误: 参数太少: (IF (NOT (NEW_DIALOG "jisuanqingdu" ID) (EXIT)))

帮我看看到底是哪里有问题么,有些地方我暂时空着

程序如下:

(defun jisuanqiangdu()
  (setq id (load_dialog "D:/DWX/qiangdujisuan.DCL"))
  (if (< id 0)(exit))
  (if (not(new_dialog "jisuanqingdu" id)(exit)))
  ;7个互锁
  (action_tile "n1" "(setq nn 0.45)")
  (action_tile "n2" "(setq nn 0.69)")
  (action_tile "n1" "(setq nn 0.58)")
  (action_tile "s1" "(setq ss  )")
  (action_tile "s2" "(setq ss  )")
  (action_tile "s3" "(setq ss  )")
  (action_tile "s4" "(setq ss  355 sb 600)")
  ;6个编辑框
  (action_tile "P" "(getdata1)")
  (action_tile "L" "(getdata2)")
  (action_tile "N" "(getdata3)")
  (action_tile "Ne" "(getdata4)")
  (action_tile "Dm" "(getdata5)")
  (action_tile "Vs" "(getdata6)")
 

  (defun getdata();读取保存的数据
    (setq f1(open " " "r"))
    (setq data1(read(read-line f)))
    (setq data2(read(read-line f)))
  )

  (defun getdata1();定义额定功率,最大功率取值
    (setq P data1)
    (setq Pmax(* p 1.1)) 
  )

  (defun getdata2();输入轴的总长
    (setq L(atof(get_tile "L")))
  )

  (defun getdata3();定义主机额定转速
    (setq N dat2)
    (setq Nmax (* N 1.1))
  )

  (defun getdata4();输入轴的额定转速
    (setq Ne(atof(get_tile "Ne")))
  )

  (defun getdata5();计算轴的直径
    (setq K0(expt (/ 44 (+ 44 (* (/ 2 3) (- (* 9.81 sb) 44)))) (/ 1.0 3.0)));K0有三次根号,怎么算?
    (setq Dm(* 87.8 K0 (sqrt (* nn (/ (* 1.36 p) Ne)))))
  )

  (defun getdata6();输入船的航速
    (setq Vs(atof(get_tile "Vs")))
  )

  ;强度校核需要的值

  ;定义四段轴初始长度
  (setq lmin (* 24.9 (expt Dm (/ 3 2))))
  (setq lmax (* 142 (sqrt Dm)))
  (setq lc (/ (- L l0 lmax) 3))
  (setq l0 1)
  (if (< lc lmin)
    (progn
          (setq lc lim)
          (setq l1 lc)(setq l2 lc)(setq l3 lc)(setq l4 (- L l0 l1 l2 l3))
    )
    (progn
          (setq l1 lc)(setq l2 lc)(setq l3 lc)(setq l4 lmax)
    )
  )
  ;各段截面惯性距
  (setq Ibc (/ (* pi  Dm Dm Dm Dm) 64))
  (setq Icd (/ (* pi  Dm Dm Dm Dm) 64))
  (setq Ide (/ (* pi  Dm Dm Dm Dm) 64))

  ;轴承弯距计算,最后得出个力矩及在这轴承间距条件下力矩间的大小波动
  (defun lijufenpei()
  ;相对刚度
  (setq Kbc (/ Ibc l2))
  (setq Kcd (/ Icd l3))
  (setq Kde (/ Ide l4))
  ;分配系数
  (setq Ub1 0)
  (setq Ub2 1)
  (setq Uc1 (/ Kbc (+ Kbc Kcd)))
  (setq Uc2 (- 1 Uc1))
  (setq Ud1 (/ Kcd (+ Kcd Kde)))
  (setq Ud2 (- 1 Ud1))
  (setq Ue 0)
  ;各节点初始弯距       Mt表示临时弯距
  (setq Mt1 (- (* -1 Qp l1) (* 0.5 q (+ l1 l0))));B点左
  (setq Mt2 (/ (* q l2 l2) 12));B点右
  (setq Mt3 (* -1 Mt2));c点左
  (setq Mt4 (/ (* q l3 l3) 12));C点右
  (setq Mt5 (* -1 Mt4));D点右
  (setq Mt6 (/ (* q l4 l4) 12));D点右
  (setq Mt7 (* -1 Mt6));E点右
  ;力矩分配
  (setq delt1 (* -1 (- Mt1 Mt2)))
  (setq delt2 (* -1 (- Mt3 Mt4)))
  (setq delt3 (* -1 (- Mt5 Mt6)))
  (setq delt (max delt1 delt2 delt3))
  (while (< delt 1)
    (setq M20 (* 0.5 delt2 Uc1))
    (setq M30 (* 0.5 delt1 Ub2))
    (setq M40 (* 0.5 delt3 Ud1))
    (setq M50 (* 0.5 delt2 Uc2))
    (setq M60 0)
    (setq M70 (* 0.5 delt3 Ud2))
    ;各力矩相加
    (setq Mt1 (+ Mt1 0))
    (setq Mt2 (+ Mt2 M20 (* delt1 Ub2)))
    (setq Mt3 (+ Mt3 M30 (* delt2 Uc1)))
    (setq Mt4 (+ Mt4 M40 (* delt2 Uc2)))
    (setq Mt5 (+ Mt5 M50 (* delt3 Ud1)))
    (setq Mt6 (+ Mt6 M60 (* delt3 Ud2)))
    (setq Mt7 (+ Mt7 M70))
    ;求下一循环时候的DELT
    (setq delt1 (* -1 Mt20))
    (setq delt2 (* -1 (- Mt30 Mt40)))
    (setq delt3 (* -1 (- Mt50 Mt60)))
    (setq delt (max delt1 delt2 delt3))
   )
  ;求最大最小力矩间的幅度
  (setq Mmax (max Mt1 Mt2 Mt3 Mt4 Mt5 Mt6 Mt7))
  (setq Mmin (min Mt1 Mt2 Mt3 Mt4 Mt5 Mt6 Mt7))
  (setq Et (/ (- Mmax Mmin) Mmax))
  )
  ;先求一个值
  (setq q0 (/ (* pi Dm Dm (expt 7.85 4)) 4));78500是重度,785N/M
  (setq q (* q0 1.26));1.26为修正系数
  ;相对刚度
  (setq Kbc (/ Ibc l2))
  (setq Kcd (/ Icd l3))
  (setq Kde (/ Ide l4))

  ;分配系数
  (setq Ub1 0)
  (setq Ub2 1)
  (setq Uc1 (/ Kbc (+ Kbc Kcd)))
  (setq Uc2 (- 1 Uc1))
  (setq Ud1 (/ Kcd (+ Kcd Kde)))
  (setq Ud2 (- 1 Ud1))
  (setq Ue 0)
  ;各节点初始弯距
  (setq M1 (- (* -1 Qp l1) (* 0.5 q (+ l1 l0))));B点左
  (setq M2 (/ (* q l2 l2) 12));B点右
  (setq M3 (* -1 M2));c点左
  (setq M4 (/ (* q l3 l3) 12));C点右
  (setq M5 (* -1 M4));D点右
  (setq M6 (/ (* q l4 l4) 12));D点右
  (setq M7 (* -1 M6));E点右

  ;力矩分配
  (setq delt1 (* -1 (- M1 M2)))
  (setq delt2 (* -1 (- M3 M4)))
  (setq delt3 (* -1 (- M5 M6)))
  (setq delt (max delt1 delt2 delt3))
  (while (< delt 1)
    (setq M20 (* 0.5 delt2 Uc1))
    (setq M30 (* 0.5 delt1 Ub2))
    (setq M40 (* 0.5 delt3 Ud1))
    (setq M50 (* 0.5 delt2 Uc2))
    (setq M60 0)
    (setq M70 (* 0.5 delt3 Ud2))
    ;各力矩相加
    (setq M1 (+ M1 0))
    (setq M2 (+ M2 M20 (* delt1 Ub2)))
    (setq M3 (+ M3 M30 (* delt2 Uc1)))
    (setq M4 (+ M4 M40 (* delt2 Uc2)))
    (setq M5 (+ M5 M50 (* delt3 Ud1)))
    (setq M6 (+ M6 M60 (* delt3 Ud2)))
    (setq M7 (+ M7 M70))
    ;求下一循环时候的DELT
    (setq delt1 (* -1 M20))
    (setq delt2 (* -1 (- M30 M40)))
    (setq delt3 (* -1 (- M50 M60)))
    (setq delt (max delt1 delt2 delt3))
   )
  (setq Mmax (max M1 M2 M3 M4 M5 M6 M7))
  (setq Mmin (min M1 M2 M3 M4 M5 M6 M7))
  (setq E (/ (- Mmax Mmin) Mmax))

  (while (< (+ l1 l2 l3 l4 l0) L)
  (while (< (+ l1 l2 l3 l4 l0) L)
    (while (< (+ l1 l2 l3 l4 l0) L)
      (lijufenpei)
      (if (< Et E)
 (setq M1 Mt1) (setq M2 Mt2);替换力矩
 (setq M3 Mt3) (setq M4 Mt4)
 (setq M5 Mt5) (setq M6 Mt6)
 (setq M7 Mt7)
 (setq lab l1) (setq lbc l2);替换轴承间距
 (setq lcd l3) (setq lde l4)
      )
      (setq l3 (+ 1 l3))
    )
   (lijufenpei)
   (if (< Et E)
     (setq M1 Mt1) (setq M2 Mt2)
     (setq M3 Mt3) (setq M4 Mt4)
     (setq M5 Mt5) (setq M6 Mt6)
     (setq M7 Mt7)
     (setq lab l1) (setq lbc l2)
     (setq lcd l3) (setq lde l4)
   )
      (setq l2 (+ 1 l2))
  )
  (lijufenpei)
  (if (< Et E)
    (setq M1 Mt1) (setq M2 Mt2)
    (setq M3 Mt3) (setq M4 Mt4)
    (setq M5 Mt5) (setq M6 Mt6)
    (setq M7 Mt7)
    (setq lab l1) (setq lbc l2)
    (setq lcd l3) (setq lde l4)   
  )
  (setq l1 (+ 1 l1))
  )
  ;求Mw
  (setq Mw (/ (+ M1 M2 M3 M4 M5 M6 M7) 7))
  ;求各点支反力
  (setq Fb (/ (+ (* Qp (+ lab lbc)) (* 0.5 q (+ lab lbc l0) (+ lab lbc l0)) M3 M2) lbc))
  (setq Fc1 (/ (- (* 0.5 q lcd lcd) M3 M2 (* Q lab)) lbc))
  (setq Fc2 (/ (+ (* 0.5 q lcd lcd) M4 M5) lcd))
  (setq Fc (+ Fc1 Fc2))
  (setq Fd1 (/ (- (*0.5 q lcd lcd) M4 M5) lcd))
  (setq Fd2 (/ (+ (* 0.5 q lde lde) M6 M7) lde))
  (setq Fd (+ Fd1 Fd2))
  (setq Fe (/ (- (* 0.5 q lde lde) M6 M7) lde))
  ;求现在的相对刚度
  (setq Kbc (/ Ibc lbc))
  (setq Kcd (/ Icd lcd))
  (setq Kde (/ Ide lde))
  ;先求一次抬高点E
  (setq Mde (/ (* -6 (expt 20.6 10) Kde 0.00001) lde))
  (setq Med (/ (* -6 (expt 20.6 10) Kde 0.00001) lde))
  (setq M1 0) (setq M2 0) (setq M3 0) (setq M4 0) (setq M5 0) (setq M6 Mde) (setq M7 Med)
  (setq delt1 (* -1 (- M1 M2)))
  (setq delt2 (* -1 (- M3 M4)))
  (setq delt3 (* -1 (- M5 M6)))
  (setq delt (max delt1 delt2 delt3))
  (while (< deltt 1)
  (setq M20 (* 0.5 deltt2 Uc1))
  (setq M30 (* 0.5 deltt1 Ub2))
  (setq M40 (* 0.5 deltt3 Ud1))
  (setq M50 (* 0.5 deltt2 Uc2))
  (setq M60 0)
  (setq M70 (* 0.5 deltt3 Ud2))
  ;各力矩相加
  (setq M2 (+ M2 M20 (* delt1 Ub2)))
  (setq M3 (+ M3 M30 (* delt2 Uc1)))
  (setq M4 (+ M4 M40 (* delt2 Uc2)))
  (setq M5 (+ M5 M50 (* delt3 Ud1)))
  (setq M6 (+ M6 M60 (* delt3 Ud2)))
  (setq M7 (+ M7 M70))
  ;求下一循环时候的DELT
  (setq delt1 (* -1 M20))
  (setq delt2 (* -1 (- M30 M40)))
  (setq delt3 (* -1 (- M50 M60)))
  (setq delt (max delt1 delt2 delt3))
  )
  (setq M1 M1) (setq M2 M2)
  (setq M3 M3) (setq M4 M4)
  (setq M7 M7)
  (setq F0b (/ (+  M3 M2) lbc))
  (setq F0c1 (/ (-  0 M3 M2 ) lbc))
  (setq F0c2 (/ (+  M4 M5) lcd))
  (setq F0c (+ F0c1 F0c2))
  (setq F0d1 (- 0 Mt4 Mt5))
  (setq F0d2 (/ (+  M6 M7) lde))
  (setq F0d (+ F0d1 F0d2))
  (setq F0e (/ (- 0 M6 M7) lde))
  (setq Fjb (+ Fb F0b))
  (setq Fjc (+ Fc F0c))
  (setq Fjd (+ Fd F0d))
  (setq Fje (+ Fe F0e))
  (setq Ez (/ (- (max Fb Fc Fd Fe) (min Fb Fc Fd Fe)) (max Fb Fc Fd Fe)))
  (setq tgb deltb)
  (setq tgc deltc)
  (setq tgd deltd)
  (setq tge delte)

  ;力矩分配
  (defun lijufenpei2()
  (setq delt1 (* -1 (- M1 M2)))
  (setq delt2 (* -1 (- M3 M4)))
  (setq delt3 (* -1 (- M5 M6)))
  (setq delt (max delt1 delt2 delt3))
  (while (< deltt 1)
    (setq Mt20 (* 0.5 deltt2 Uc1))
    (setq Mt30 (* 0.5 deltt1 Ub2))
    (setq Mt40 (* 0.5 deltt3 Ud1))
    (setq Mt50 (* 0.5 deltt2 Uc2))
    (setq Mt60 0)
    (setq Mt70 (* 0.5 deltt3 Ud2))
    ;各力矩相加
    (setq Mt2 (+ M2 Mt20 (* delt1 Ub2)))
    (setq Mt3 (+ M3 Mt30 (* delt2 Uc1)))
    (setq Mt4 (+ M4 Mt40 (* delt2 Uc2)))
    (setq Mt5 (+ M5 Mt50 (* delt3 Ud1)))
    (setq Mt6 (+ M6 Mt60 (* delt3 Ud2)))
    (setq Mt7 (+ M7 Mt70))
    ;求下一循环时候的DELT
    (setq delt1 (* -1 Mt20))
    (setq delt2 (* -1 (- Mt30 Mt40)))
    (setq delt3 (* -1 (- Mt50 Mt60)))
    (setq delt (max delt1 delt2 delt3))
  )
  (setq M1 Mt1) (setq M2 Mt2)
  (setq M3 Mt3) (setq M4 Mt4)
  (setq M7 Mt7)
  (setq Ft0b (/ (+  Mt3 Mt2) lbc))
  (setq Ft0c1 (/ (-  0 Mt3 Mt2 ) lbc))
  (setq Ft0c2 (/ (+  Mt4 Mt5) lcd))
  (setq Ft0c (+ F0c1 F0c2))
  (setq Ft0d1 (- 0 Mt4 Mt5))
  (setq Ft0d2 (/ (+  Mt6 Mt7) lde))
  (setq Ft0d (+ F0d1 F0d2))
  (setq Ft0e (/ (- 0 Mt6 Mt7) lde))
  (setq Fjtb (+ Fb F0b))
  (setq Fjtc (+ Fc F0c))
  (setq Fjtd (+ Fd F0d))
  (setq Fjte (+ Fe F0e))
  (setq Etz (/ (- (max Fb Fc Fd Fe) (min Fb Fc Fd Fe)) (max Fb Fc Fd Fe)))
  )
  ;抬高支撑时的弯距和支反力
  (setq deltb -0.001 deltc -0.001 deltd -0.001 delte -0.001)
  (while (< deltb 0.001)
  (while (< deltc 0.001)
    (while (< deltd 0.001)
      (while (< delte 0.001)
 (setq Mde (/ (* -1 (expt 20.6 10) Kde 0.00001) lde))
        (setq Med (/ (* -1 (expt 20.6 10) Kde 0.00001) lde))
        (setq M1 0) (setq M2 0) (setq M3 0) (setq M4 0) (setq M5 0) (setq M6 Mde) (setq M7 Med)
        (lijufenpei2)
 (if (< Etz Ez)
   (setq Fjb  Fjtb F0b)
          (setq Fjc  Fjtc F0c)
          (setq Fjd  Fjtd F0d)
          (setq Fje  Fjte F0e)
   (setq tgb deltb)
   (setq tgc deltc)
   (setq tgd deltd)
   (setq tge delte)
 )
 (setq delte (+ 0.00001 delte))
      )
      (setq Mcd (/ (* -6 (expt 20.6 10) Kcd 0.00001) lcd))
      (setq Mdc Mcd)
      (setq Mde (/ (* 6 (expt 20.6 10) Kde 0.00001) lde))
      (setq Med Mde)
      (setq M1 0) (setq M2 0) (setq M3 0) (setq M4 Mcd) (setq M5 Mdc) (setq M6 Mde) (setq M7 Med)
      (lijufenpei2)
      (if (< Etz Ez)
 (setq Fjb  Fjtb)
        (setq Fjc  Fjtc)
        (setq Fjd  Fjtd)
        (setq Fje  Fjte)
 (setq tgb deltb)
 (setq tgc deltc)
        (setq tgd deltd)
 (setq tge delte)
      )
      (setq deltd (+ 0.00001 deltd))
    )
    (setq Mbc (/ (* -6 (expt 20.6 10) Kbc 0.00001) lbc))
    (setq Mcb Mbc)
    (setq Mcd (/ (* 6 (expt 20.6 10) Kcd 0.00001) lcd))
    (setq Mdc Mcd)
    (setq M1 0) (setq M2 Mbc) (setq M3 Mcb) (setq M4 Mcd) (setq M5 Mdc) (setq M6 0) (setq M7 0)
    (lijufenpei2)
    (if (< Etz Ez)
      (setq Fjb  Fjtb)
      (setq Fjc  Fjtc)
      (setq Fjd  Fjtd)
      (setq Fje  Fjte)
      (setq tgb deltb)
      (setq tgc deltc)
      (setq tgd deltd)
      (setq tge delte)
    )
    (setq deltc (+ 0.00001 deltc))
  )
  (setq Mbc (/ (* 6 (expt 20.6 10) Kbc 0.00001) lbc))
  (setq Mcb Mbc)
  (setq M1 bc) (setq M2 Mcb) (setq M3 0) (setq M4 0) (setq M5 Mdc) (setq M6 0) (setq M7 0)
  (lijufenpei2)
  (if (< Etz Ez)
    (setq Fjb  Fjtb)
    (setq Fjc  Fjtc)
    (setq Fjd  Fjtd)
    (setq Fje  Fjtee)
    (setq tgb deltb)
    (setq tgc deltc)
    (setq tgd deltd)
    (setq tge delte)
  )
  (setq deltb (+ 0.00001 deltb))
  )

  ;力与力矩的计算完毕

  ;主机扭矩引起的剪应力
  (setq Ww (/ (* pi Dm Dm) 16))
  (setq Mk (* 955525.39 (/ Pmax Nmax)))
  (setq To (/ Mk Ww))

  ;中间轴本身质量和呢国所产生的弯曲应力
  (setq Wmw (/ (* PI Dm Dm Dm) 32))
  (setq Sw (/ Mw Wmw))

  ;由螺旋桨推力产生的压缩应力
  (setq Tu (* 1945.2 (/ Pmax Vs) nn))
  (setq Fw (* pi (* (/ Dm 2) (/ Dm 2))))
  (setq Sy (/ T Fw))

  ;由安装误差引起的弯曲应力
  (setq Swz );值取多少?

  ;合成应力
  (setq S (+ Sy Sw Swz))
  (setq Sh (sqrt (+ (* S S) (* 3 To To))))

  ;计算安全系数
  (setq K (/ ss Sh))

  (defun getdata7();将安全系数值赋给K
    (set_tile "K" (rtos K 2 2))
  )

  (defun getdata8()
    (if (> K 2.5)
       (set_tile "anquan" "安全")
    )
  )
  ;1个按扭及其对应的编辑框
  (action_tile "K" "(getdata7)")
  (action_tile "anquan" "(getdata8)")
  ;确定取消
  (action_tile "accept" "(donedialog 1)")
  (action_tile "cancel" "(donedialog -1)")

  (setq std (start_dialog))
  (if (= std -1)
  (setq f2(open "" "a"))
  (write-line "" "a")
  (write-line "" "a")
  (write-line "" "a")
  (write-line "" "a")
  (write-line "" "a")
  (write-line "" "a")
  (write-line "" "a")
  (write-line "" "a")
  )
  (unload_dialog id)
  )

发表于 2007-6-13 10:56 | 显示全部楼层

  (if (not(new_dialog "jisuanqingdu" id)(exit)))

->(if (not(new_dialog "jisuanqingdu" id))(exit))


  ;7个互锁
  (action_tile "n1" "(setq nn 0.45)")
  (action_tile "n2" "(setq nn 0.69)")
  (action_tile "n1" "(setq nn 0.58)")
  (action_tile "s1" "(setq ss ?)")
  (action_tile "s2" "(setq ss ?)")
  (action_tile "s3" "(setq ss ?)")

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

本版积分规则

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

GMT+8, 2024-5-19 03:36 , Processed in 0.224814 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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