LOVELYAREA 发表于 2006-11-20 11:25

螺旋线程序

下面这个螺旋线程序,只能画一层螺旋线,还需要使用阵列才能实现多层螺旋线!画螺丝的时候每层螺纹接口处都会出现偏差!而且阵列之后不知道为什么这些线不能合并!!
请问可以把程序修改一下,直接就可以画出一条多层的螺旋线!这样就不用出现接口出衔接不上的问题了!
:'(



把下面的程序导入cad ,就可以画螺纹了!(2007以前的版本).画螺纹的命令就是luox
(defun C:luox(/)
(setq b1 (getpoint"请指定螺旋线基点:"))
(setq r (getreal"请指定螺旋线的平均半径:"))
(setq disp ( getreal"请输入螺旋线节距:"))
(setq n (getint"请输入每圈细化段数:"))
(setq delta (/(* 2.0 pi) n))
(setq j (/ disp n))
(setq bb(caddr b1))
(setq ang 0)
(setq k 0)
(command "ucs" "o" b1)
(command "3dpoly" (list r 0 0))
(repeat n
   (setq k(+ k 1))
   (setq ang(+ delta ang))
   (setq pt2(list (* r(cos ang)) (* r(sin ang)) (+ 0 (* j k))))
   (command pt2)
)
(command" ")
)

LOVELYAREA 发表于 2006-11-20 15:55

你快出来啊!我说!

wvvei 发表于 2006-11-20 16:38

下次我碰到他的时候顺便帮你提醒提醒他哦;P

雨天 发表于 2006-11-20 18:41

呵呵,他不在吧

jicheng 发表于 2006-11-20 20:05

如果你的CAD版本是07的话,里面有,无需编程序。

zhouyuhui 发表于 2006-11-20 20:49

这段程序应该可以了.你试一试!命令还是luox
(defun C:luox (/)
(setq b1 (getpoint"请输入基点:"))   
(setq r (getreal"半径:"))
(setq t1 (getreal"节距:"))
(setq k (getint"段数:"))
(setq n (getint"圈数:")) 
(setq ta (/(* 2 3.14159) k))
(setq j1 (/ t1 k))
(setq a 0)
(setq jj 0)
(setq ii 0)
(command "ucs" "o" b1)
(command "3dpoly" (list r 0 0))
(repeat n
(repeat k
(setq jj (+ jj 1))
(setq a (+ ta a))
(setq x (* r (cos a)))
(setq y (* r (sin a)))
(setq z (* j1 jj))
(setq p2 (list x y z))
(command p2)
)
(setq ii (+ ii 1))
(setq z (* t1 ii))
)
(command "" )
)

LOVELYAREA 发表于 2006-11-21 08:02

zhouyuhui太谢谢了!我画出来了!
谢谢大家啊!!!我终于画出来了!:lol :loveliness:
我昨天用了各种方法就是不能画出来!!!
页: [1]
查看完整版本: 螺旋线程序