找回密码
 注册会员
查看: 10777|回复: 7

[已解决] CAD里怎么画螺旋线

  [复制链接]
发表于 2009-8-30 13:36:25 |Error| 显示全部楼层 |阅读模式

我们不再是孤独的探索者;让我们的手紧紧相连,一起成长。

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

×
CAD里怎么画螺旋线
发表于 2009-8-30 14:07:09 |Error| 显示全部楼层
好象没有一个直接的命令来画螺旋线,螺旋线的投影画法是一个三角函数正弦曲线,不同的节距是不一样的,不过,做一个LISP程序可以解决此问题,作出来的线是一条多段线。这是一家之言。
回复 顶 踩

使用道具 举报

发表于 2009-8-31 06:14:10 |Error| 显示全部楼层
没看懂2楼是什么意思能说得更清楚么
回复 顶 踩

使用道具 举报

发表于 2009-8-31 08:15:26 |Error| 显示全部楼层

我说的就是制作一个小程式LISP,按近似等分数将各点坐标用公式表示,在CAD中加载这个小程式,然后输入螺距、外径、内径等参数,利用数据化绘图,以下是我多年前编写的一个程式,语言不够简洁,但可用,你可以用记事本,将以下文字复制到记事本,保存,后缀名用.lsp 然后在CAD中加载(appload命令)该文件。试一下吧,我当时也是在制作螺旋时厌其烦才搞了这么一个小程式,螺旋叶片的展开图同时画出(近视画法),绘图时会提示等分数,最好取24、48、96……等,数越大越精确。
(defun c:lxyp()   ;;;本程序将绘制出螺旋叶片的内外径在螺管上的一个节距的投影图.
  (setq os(getvar"osmode")) ;;保存OSNAP系统变量值。
  (setvar"osmode"0)        ;;关闭捕捉功能
  (setq cen (getpoint"\输入展开图中心:"))
  (setq pp(getpoint"\n输入绘图中心:"))
  (setq dd (getdist"\n请输入螺旋大径:"))
  (setq dd1 (getdist"\n请输入螺旋小径:"))
  (setq tt(getdist"\n请输入螺旋节距:"))
  (setq n (getdist"\n请输入等分数:"))
  (setq rr (/ dd 2.0))    ;;;计算螺旋的外半径
  (setq rr1 (/ dd1 2.0))  ;;;计算螺旋的内半径
  (setq tt1 (/ tt n))
  (setq pp1 (list (car pp) (cadr pp)))
  (setq p1 (list (car pp) (cadr pp)))
  (setq inc (/ (* pi 2)  n)) ;;;计算等分角度。
  (setq pa (polar pp 0 rr1))
  (setq pb (polar pa (/ pi 2.0) tt))
  (setq pc (polar pp pi  rr1))
  (setq pd (polar pc (/ pi 2.0) tt))
  (setq a 0)
  (while (< a ( + 1 n));;;循环语句连续绘制曲线。
  (setq p0 (list (+ (car pp) (* (cos(* a inc)) rr)) (+ (cadr pp) (* tt1 a))))
  (setq pp0 (list (+ (car pp) (* (cos( * a inc)) rr1)) (+ (cadr pp) (* tt1 a))))
  (command "line"p1 p0 "")
  (command "line" pp1 pp0 "")
  (setq p1 (list (car p0) (cadr p0)))    ;;;重新指定初值重复绘制线段。
  (setq pp1 (list (car pp0) (cadr pp0)))
  (setq a (+ 1  a )))
  (command "line" pa pb"")  ;;;绘制螺管素线。
  (command "line" pc pd"") ;;;绘制螺管素线。
  (SETQ Paa (polar pp (/ PI 2.0) tt))
  (setq la(* dd1 pi))
  (setq lb(* dd pi))
  (setq a (sqrt(+(* tt tt) (* la la))))
  (setq b (sqrt(+(* tt tt) (* lb lb))))
  (setq c(/ (- dd dd1) 2))
  (setq rr1(/ (* a c) (- b a)))
  (setq rr2(+ rr1 c))
  (command "circle"cen rr1)
  (command "circle" cen rr2)
   (command "LAYER" "S""0""");;;根据你所设的图层,“将0改为你所需的中心线表示层。
  (command "line" pp paa"")

  (setvar "osmode"os)       ;;;恢复保存过的系统变量osnap的值。
(princ)         ;;;退出程序。
  )

[ 本帖最后由 fgq86233246 于 2009-8-31 08:46 编辑 ]
Snap1.jpg
回复 顶 踩

使用道具 举报

发表于 2009-10-16 13:48:05 |Error| 显示全部楼层
顶一下....有没有在CAD中绘制螺旋片的小软件?
回复 顶 踩

使用道具 举报

发表于 2009-10-18 15:55:35 |Error| 显示全部楼层
我是初学者!看不懂啊
回复 顶 踩

使用道具 举报

发表于 2009-10-22 13:49:19 |Error| 显示全部楼层
很有用呀
!!!!
回复 顶 踩

使用道具 举报

发表于 2009-10-23 13:19:46 |Error| 显示全部楼层
很好用的小程式,谢谢分享
回复 顶 踩

使用道具 举报

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

本版积分规则

小黑屋|手机版|Cncad.Net ( 苏ICP备2026083443号 )

GMT+8, 2026-11-1 22:51 , Processed in 0.298489 second(s), 30 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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