明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2514|回复: 2

用曲线画渐开线齿轮怎么出错!急……

[复制链接]
发表于 2003-7-17 17:04:00 | 显示全部楼层 |阅读模式
(defun c:jkx(/ baspt r jiao1 jiao2 rk p1 p2)
  (setq baspt 0)
  (setq r 20)
  (command "circle" baspt r)
  (setq jiao1 0)
  (setq jiao2 0)
  (setq p1 20)
  (setq p2 0)
  (command "spline")
  (repeat 10
    (command p1 p2)
    (setq jiao1 (+ jiao1 10))
    (setq jiao2 (- (/ ( sin(* (/ jiao1 180) pi)) (cos(* (/ jiao1 180) pi))) (* (/ jiao1 180) pi)))
    (setq rk (/ r cos(* (/ jiao1 180) pi)))
    (setq p1 (* rk cos(jiao2)))
    (setq p2 (* rk sin(jiao2)))
    )
  (prin1)
  )
(prompt "\n绘制渐开线的AutoLISP程序,作者卢江伟,2003年7月17日")
(prin1)
我编的一个画渐开线得程序,运行后出现以下问题,望高手指点:
命令: _appload 已成功加载 jkx.LSP。
命令:
绘制渐开线的AutoLISP程序,作者卢江伟,2003年7月17日
命令:
命令: jkx circle 指定圆的圆心或 [三点(3P)/两点(2P)/相切、相切、半径(T)]: 0
指定圆的半径或 [直径(D)]: 20
命令: spline
指定第一个点或 [对象(O)]: 20
指定下一点: 0
指定下一点: ; 错误: 参数类型错误: numberp: #<SUBR @0319bdc0 COS>
指定下一点: *取消*
发表于 2003-7-17 17:20:00 | 显示全部楼层
单从程序语法看,有以下几个错误
1、点坐标是二维或三维:(setq baspt '(0 0 0)) 或(setq baspt '(0 0))
2、注意整型和实型的运算,如(/ 10 180) ->0  而如果10或180至少有一个加上.0
结果就是你想要的,即(/ jiao1 180.0)或(setq jiao1 (+ 10.0))
3、函数的参数调用为(fun var1 var2 ...) 程序中有些地方的sin及cos调用有误。
应该为:   
(setq p1 (* rk (cos jiao2)))
(setq p2 (* rk (sin jiao2)))

至于画出渐开线的结果是否正确未加测试
 楼主| 发表于 2003-7-18 10:28:00 | 显示全部楼层

真心的感谢!!

有如此热心的斑竹,没有理由不支持,我会尽自己的所能支持论坛的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 18:41 , Processed in 0.165927 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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