查看单个帖子
旧 2009-04-28, 03:52 PM   #1
yang686526
高级会员
 
注册日期: 06-11
帖子: 14579
精华: 1
现金: 224494 标准币
资产: 234494 标准币
yang686526 向着好的方向发展
默认 【转帖】绘制螺旋线的lisp程序

绘制螺旋线的lisp程序
www.dimcax.com
绘制螺旋线的lisp程序
管理提醒: 本帖被 tandongchi 从 autodesk技术、教程、资料交流区 移动到本区(2007-09-17) 图片:

defun c:luoxc (/)
(setq bl (getpoint"请指定螺旋线基点:"))
(setq rl (getreal"请指定初始螺旋线半径:"))
(setq disp ( getreal"请输入螺旋线节距:"))
(setq angtg (getreal"请输入螺旋线锥形角度:"))
(setq m (getint"请输入螺旋线圈数:"))
(setq n (getint"请输入每圈细化段数:"))
(setq delta (/(* 2.0 pi) n))
(setq j (/ disp n))
(setq bb (caddr b1))
(setq tg (* (/ angtg 180) pi))
(setq ang 0)
(setq k 0)
(command "ucs" "o"bl)
(command "3dpoly" (list rl 0 0))
(repeat (* m n)
(setq k(+ k 1))
(setq ang(+ delta ang))
(setq r(- rl (* (+ 0 (* j k)) (/(sin tg) (cos tg)) )))
(setq pt2(list (* r(cos ang)) (* r(sin ang)) (+ 0 (* j k))))
(command pt2)
)
(command"")
)
上面是绘制锥型螺旋线的程序
(defun c:luox(/)
(setq bl (getpoint"请指定螺旋线基点:")) //setq函数用于给变量赋值
(setq r (getreal"请指定螺旋线平均半径:"))
(setq disp ( getreal"请输入螺旋线节距:"))
(setq n (getint"请输入每圈细化段数:"))
(setq delta (/(* 2.0 pi) n))
(setq j (/ disp n))
(setq bb(caddr bl))
(setq ang 0)
(setq k 0)
(command "ucs" "o" bl) //将坐标原点移到指定的螺旋线基点
(command "3dpoly" (list r 0 0)) //以(r、0、0)为起点绘制多段线
(repeat n //循环操作语句,n为循环次数
(setq k(+ k 1))
(setq ang(+ delta ang))
(setq pt2(list (* r(cos ang)) (* r(sin ang)) (+ 0 (* j k))))
(command pt2)
)
(command "")
)
锥型螺旋线的操作命令是luoxc
普通螺旋线的命令是luox

07已有螺旋线命令了.

谢谢楼主了,我是2006的总是画不了弹簧,装2007以上版本的机子又运行不了,这下可好了。

用后要提意见

好东西,谢谢了,我用了,很好,就是给的数还没有数,哈哈

装2007以上版本的机子又运行不了,

很好·~·

谢谢楼主!
yang686526离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)