求扭转弹簧的二维、三维lisp程序
www.dimcax.com
求扭转弹簧的二维、三维lisp程序
下面是我已经有了的画弹簧的程序,可是怎么才能让它可以画出扭转弹簧的三维程序呢,请高手指点,另外如果可以的话也请帮忙设计一下扭转弹簧的二维lisp程序,非常感谢!!!
(defun c:spring()
(setq bp (getpoint "\n 弹簧中心点"))
(setq dw (getreal "\n 弹簧直径="))
(setq d (getreal "\n 弹簧丝径="))
(setq pitch (getreal "\n 弹簧节距="))
(setq len (getreal "\n 弹簧长度="))
(setq n (getint "\n 段数="))
(setq r (/(- dw d)2))
(setq d1 (- d (* 1.0825 pitch)))
(setq r1 (/ d1 2))
(setq m1 (fix (* n 1.25)))
(setq m0 (fix (*n (/ (- len (* d 2)) pitch))))
(setq delta (/(* 2.0 pi)n))
(setq j0 (/ pitch n ))
(setq j1 (/ d n ))
(setq bz (caddr bp ))
(setq ang 0)
(setq jj 0 )
(command "ucs" "o" bp )
(command "3dpoly" (list r 0 0 ))
(repeat m1
(setq jj (+ jj 1))
(setq ang (+ delta ang ))
(setq pt1 (list (* r (cos ang ))(* r (sin ang ))(+ bz (* j1 jj))))
(command pt1)
)
(setq bz (caddr pt1))
(setq jj 0)
(repeat m0
(setq jj (+ jj 1))
(setq ang (+ delta ang ))
(setq pt0 (list (* r (cos ang ))(* r (sin ang ))(+ bz (* j0 jj))))
(command pt0)
)
(setq bz (caddr pt0))
(setq jj 0)
(repeat m1
(setq jj (+ jj 1))
(setq ang (+ delta ang ))
(setq pt2 (list (* r (cos ang ))(* r (sin ang ))(+ bz (* j1 jj))))
(command pt2)
)
(command "")
)
图片:
下面的程序可画出拄形弹簧和塔形弹簧
将txlxxx.rar考到你的cad下,解压后为txlxxx.lsp是原程序,在命令下用(load"txlxxx")回车就可使用.
在命令下输入dh回车,软件提示螺旋线的中心:
你用鼠标给出螺旋线的中心,软件提示: 螺旋线的上端直径:用键盘输入上端直径,
软件提示:螺旋线的下端直径:用键盘输入下端直径,
软件提示:整个螺旋线的高度:输入高度
软件提示:圈数:输入圈数回车
软件提示:钢丝直径:输入钢丝直径,回车
软件提示:360度的节点数:输入节点数回车
软件画出三维弹簧.
5
gbg
非常感谢!!!