CAD设计论坛

 找回密码
 立即注册
论坛新手常用操作帮助系统等待验证的用户请看获取社区币方法的说明新注册会员必读(必修)
查看: 5932|回复: 21

求助:在AutoCAD2006里绘制3D弹簧怎么画啊?

[复制链接]
发表于 2007-1-2 11:06 | 显示全部楼层 |阅读模式
我用的AutoCAD2006绘图,可画三维弹簧画不出来,请各位大虾帮忙啊!
我的邮箱:[email protected]
谢谢了啊!

[ 本帖最后由 cad 于 2007-1-25 16:42 编辑 ]
 楼主| 发表于 2007-1-2 11:10 | 显示全部楼层
谢谢了!

[ 本帖最后由 jammal 于 2007-1-3 09:18 编辑 ]
发表于 2007-1-2 11:35 | 显示全部楼层
先给你一个程序,你可以看看
将以下代码COPY到记事本中,然后存为spring.lsp,后在CAD中加载进去,就可以在命令行输入spring,绘制三维螺旋线,转换坐标系,在线头画一个端面圆利用拉伸命令就可以画三维的弹簧

  1. spring;;;-----------弹簧的程序----------
  2. (defun c:spring(/)
  3.   (setq p1(getpoint "请指定螺旋线基点:"))
  4.   (setq r(getreal "请输入弹簧平均半径:"))
  5.   (setq d0(getreal "请输入弹簧丝直径:"))
  6.   (setq disp(getreal "请输入弹簧节距:"))
  7.   (setq n0(getint "请输入弹簧工作圈数:"))
  8.   (setq n(getint "请输入每圈细化段数(16/20/24/28/32/36/40/48/52/56/60/100):"))
  9.   (setq n1(* 1.25 n))                   ;支撑圈细化段数
  10.   (setq n1(fix n1))
  11.   (setq n2(* n0 n))                     ;工作圈细化段数
  12.   (setq delta(/ (* 2.0 pi) n))          ;单位转角
  13.   (setq j(/ disp n))                    ;工作圈轴向位移量
  14.   (setq j0(/ d0 n))                     ;支撑圈轴向位移量
  15.   (setq bb(caddr p1))
  16.   (setq ang 0)
  17.   (setq jj 0)
  18.   (command "ucs" "o" p1)
  19.   (setq pt1(list r 0 0))
  20.   (command "3dpoly" pt1)
  21.   (repeat n1                            ;绘制下支撑圈
  22.     (setq jj(+ jj 1))
  23.     (setq ang(+ delta ang))
  24.     (setq pt(list (* r (cos ang)) (* r (sin ang)) (* j0 jj)))
  25.     (command pt)
  26.   )
  27.   (setq p2(list 0 0 (* j0 jj)))
  28.   (setq g1(* j0 jj))                    ;下支撑圈高度
  29.   (setq jj 0)
  30.   (repeat n2                            ;绘制工作圈
  31.     (setq jj(+ jj 1))
  32.     (setq ang(+ delta ang))
  33.     (setq pt(list (* r (cos ang)) (* r (sin ang)) (+ g1 (* j jj))))
  34.     (command pt)
  35.   )
  36.   (setq p3(list 0 0 (* j jj)))
  37.   (setq g2(* j jj))                     ;工作圈高度
  38.   (setq jj 0)
  39.   (repeat n1                            ;绘制上支撑圈
  40.     (setq jj(+ jj 1))
  41.     (setq ang(+ delta ang))
  42.     (setq pt(list (* r (cos ang)) (* r (sin ang)) (+ g1 g2 (* j0 jj))))
  43.     (command pt)
  44.   )
  45.   (setq g3(* j0 jj))                    ;上支撑圈高度
  46.   (command "")
  47.   (setq e1(entlast))
  48.   (command "ucs" "x" "")                ;拉伸弹簧
  49.   (command "circle" pt1 (/ d0 2))
  50.   (setq e2(entlast))
  51.   (command "extrude" e2 "" "p" e1)
  52.   (setq e3(entlast))
  53.   (setq pt2(list r (/ d0 4) 0))         ;磨平
  54.   (setq py(+ g1 g2 g3 (- 0 (/ d0 4))))
  55.   (setq pt3(list (- 0 r) py 0))
  56.   (command "slice" e3 "" "zx" pt2 pt3)
  57.   (command "slice" e3 "" "zx" pt3 pt2)
  58.   (command "ucs" "w")
  59.   
  60. )
  61. ;;;---------end----------弹簧程序结束!
复制代码
 楼主| 发表于 2007-1-2 15:38 | 显示全部楼层
谢谢版主!我已按照cad 超级版主的方法做了.
可是在命令行输入spring后,提示
命令: spring
未知命令“SPRING”。按 F1 查看帮助。
是我哪里弄错了吗?
发表于 2007-1-2 20:43 | 显示全部楼层
你要先加载这个程序阿
发表于 2007-1-2 20:59 | 显示全部楼层
原帖由 jammal 于 2007-1-2 15:38 发表
谢谢版主!我已按照cad 超级版主的方法做了.
可是在命令行输入spring后,提示
命令: spring
未知命令“SPRING”。按 F1 查看帮助。
是我哪里弄错了吗?

不好意思,刚才的代码我弄错了,现在更新了代码。你重新来做一次
发表于 2007-1-3 08:28 | 显示全部楼层
 楼主| 发表于 2007-1-3 09:07 | 显示全部楼层
可以做出来了!谢谢版主啊!
我想发上来分享一下!呵呵
怎么贴图呢?请教各位!
 楼主| 发表于 2007-1-3 09:28 | 显示全部楼层

回复 #6 cad 的帖子

按您的方法我做出来了!谢谢!
发表于 2007-1-3 21:26 | 显示全部楼层
原帖由 cad 于 2007-1-2 20:59 发表

不好意思,刚才的代码我弄错了,现在更新了代码。你重新来做一次

是吗版主,以前的程序加载之后输入lxx也可以的是吗?
发表于 2007-1-4 13:17 | 显示全部楼层
如何加载上述内容?
发表于 2007-1-4 13:28 | 显示全部楼层
复制代码,粘贴到记事本里,保存为spring.lsp,将这个文件复制到“C:\Program Files\AutoCAD 2004\Support”(版本不同位置也不同),然后打开你的autocad,工具---AutoLISP----加载。找到你刚才的spring.lsp加载就可以了。
发表于 2007-1-12 18:59 | 显示全部楼层
你可以更改为自己的命令
spring;;;-----------弹簧的程序----------
(defun c:spring(/)
只要把spring更改就可以了,例如更改为tanhuang你只要输入tanhuang就加载了版主的程序了,那样还好记呢
不好意思版主,这样应该可以吧
发表于 2007-1-25 21:40 | 显示全部楼层

麻煩指教一下

我把你上面所說的另存了,那怎麼加載到cad裡面啊,我用的是2006的。是加載到程序文件裡面還是直接從cad界面加載啊?請高人指教。
tks
发表于 2007-1-25 21:59 | 显示全部楼层

感謝

tks very much
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于|免责|隐私|版权|广告|联系|手机版|CAD设计论坛

GMT+8, 2024-11-17 20:35

CAD设计论坛,为工程师增加动力。

© 2005-2024 askcad.com. All rights reserved.

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