明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2609|回复: 10

这是齿轮的LISP程序,看看有没有错

[复制链接]
发表于 2005-4-21 10:54 | 显示全部楼层 |阅读模式
defun involute()
(command "erase" "all" " " " ")
(command "snapmode" 0)
(command "osnap" "NON")
(initget 7)
(setq m (getreal "\n 输入齿轮模数:"))
(initget 7)
(setq z (getint "\n 输入齿轮齿数:"))
(setq x 0)
(setq alpha (* pi (/20.018.0)))
(if (< z 17)
(setq x (getreal "\n 输入变位系数:"))
) (setq pt (getpoint "\n 选择中心点"))
(setq r (/(*m z) 2))
(setq rb (* r (cos alpha)))
(setq ra (+ r (*(+ 1 x) m)))
(setq rf (- r (*(- 1.25 x) m)))
(setq ta (atan (sqrt (-(expt ra 2) (expt rb 2))) rb))
(setq ta (+ ta 0.1))
(setq tt 0.0)
(setq l nil)
(while (<=tt ta)
(progn
(setq cost (cos tt))
(setq sint (sin tt))
(setq x (*rb (+ cost (* tt sint))))
(setq y (*rb (- sint (* tt cost))))
(setq px (list x y))
(setq 1 (cons px 1))
(setq tt (+ tt 0.1))
)
) (command "circle" '(0 0) ra)
(setq cira (ssget "L"))
(command "circle" '(0 0) rf)
(command "circle" '(0 0) rb)
(command " ") (setq i 0)
(setq 11 (length 1))
(command "pline") (while (< i ll)
(setq px (nth i 1))
(command px)
(setq i ( 1+i))
)
(command " " " " " ")
(setq invalpha (- (/ (sin alpha) (cos alpha)) alpha))
(setq thita (+ invalpha (/(* pi m)(* r 4))))
(setq sl (ssget "L"))
(command "trim" cira " " (nth 0 l) " ")
(setq p1 (list 0 0))
(setq p2 (list (* ra (cos thita)) (* ra (sin thita))))
(COMMAND "LINE" P1 P2 " ")
(command "mirror" s1 " "p1 p2 " "
 楼主| 发表于 2005-4-21 10:57 | 显示全部楼层
多提议一下
发表于 2005-4-21 12:16 | 显示全部楼层
这叫什么问题?


自己运行一下,不就知道有没有错了吗?
发表于 2005-4-21 13:06 | 显示全部楼层
问题不少,首先 "(" 和 ")" 就不匹配...
发表于 2005-4-21 14:08 | 显示全部楼层
哪里抄来的程序,怎么这么不小心
 楼主| 发表于 2005-4-24 10:09 | 显示全部楼层
是从书上抄来的。运行出现小错误
发表于 2005-4-24 11:08 | 显示全部楼层
才出现小错误啊,这段程序至少有15处错误,运算符与变量之间要有空格,其中变量"L"的你把它写成"1"了,这可能是你看错了。总之有很多错误,你自己好好对一下。
 楼主| 发表于 2005-4-25 11:03 | 显示全部楼层
哦,谢谢提意见
发表于 2005-5-1 00:57 | 显示全部楼层
错的地方太多了。。程序根本不能运行。。。首先。。程序开始与结束处必须用一对括号引起来。另外很多运算符和变量之间没有空格。。还有你先做个简单的齿轮程序。。不要一开始就想做复杂的。如果是按书中例子做,也请仔细校对。你已经有书了。不是更好办了吗。分析程序可以看出。你是想编程序自动绘制齿形,但公式你又不提供。谁知道你公式有错没。。这一句我实在是搞不懂。请看。。 (setq alpha (* pi (/ 20.018.0)))
pi 是变量。。20.018.0是常量。这没错。但你想达到什么目的?程序可以这样理解。 20。0180*pi 这没有错。那么。。还有一个 /,它和谁运算。。如果按你程序中这样。。编译后在这里就提示参数输入有误。。请仔细查你的书中例子再改过来。。这个程序基本上错误太多。没法运行。。如果真的想别人邦你调试。你就必须把程序中所用到的所有公式提供。否则这样的程序没人会有耐心去看。。你应该首先自已运行。对着书做。你有书这有多好。一句句的对。一句没有问题,再看下一句。你一上来。发这么一大长段程序。要大家邦你查错。我只能说未免有点太不负责任了。而且这样也不利于你的提高。。如果你把后面的程序段所用到的公式都附上来。。大家就可以好查些了。。对没学过机械的。。又很少用变位齿轮的。。你这样的程序很难有实用性。。建议你自已上机调试程序。。编程本是枯燥的事。。只是要有耐心啊。。呵呵。。。好了。累了。。有什么问题下面留言啊。。88。。
 楼主| 发表于 2005-6-14 14:58 | 显示全部楼层
哈,看来,书中也有很多毛病,看来我想学那就麻烦了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-7 10:20 , Processed in 0.295742 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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