leir520 发表于 2007-6-15 09:52:00

重谢强人!变距螺旋线就是画不出来啊

; draw bjlxx<br/>(defun c:bjlxx()<br/>&nbsp; (setq p0(getpoint"\输入圆心"))<br/>&nbsp; (setq r(getreal"\输入半径"))<br/>&nbsp; (setq h(getreal "\输入导程"))<br/>&nbsp; (setq x0(nth 0 p0))<br/>&nbsp; (setq y0(nth 1 p0))<br/>&nbsp; (setq z0(nth 2 p0))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;分离坐标<br/>&nbsp; (setq w(/ pi 500))<br/>&nbsp; (setq v(/ h 1000))&nbsp;<br/>&nbsp; (setq j 0)<br/>&nbsp; (while (&lt;= j 1)<br/>&nbsp;&nbsp; (setq d 0.001)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;步距<br/>&nbsp;&nbsp; (if (= j 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; (setq x1(* r (cos(* w j))))<br/>&nbsp;&nbsp;&nbsp; (setq y1(* r (cos(* w j))))<br/>&nbsp;&nbsp;&nbsp; (setq z1(* v (-1 (* j j))))<br/>&nbsp;&nbsp;&nbsp; (setq xp1(+ x1 x0 ))<br/>&nbsp;&nbsp;&nbsp; (setq yp1(+ y1 y0 ))<br/>&nbsp;&nbsp;&nbsp; (setq zp1(+ z1 z0 ))<br/>&nbsp;&nbsp;&nbsp; (setq p1(list xp1 yp1 zp1))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;画第一点<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (setq j (+ j d))<br/>&nbsp;&nbsp;&nbsp; (setq x2(* r (cos(* w j))))<br/>&nbsp;&nbsp;&nbsp; (setq y2(* r (cos(* w j))))<br/>&nbsp;&nbsp;&nbsp; (setq z2(* v (-1 (* j j))))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; (setq xp2(+ x2 x0 ))<br/>&nbsp;&nbsp;&nbsp; (setq yp2(+ y2 y0 ))<br/>&nbsp;&nbsp;&nbsp; (setq zp2(+ z2 z0 ))<br/>&nbsp;&nbsp;&nbsp; (setq p2(list xp2 yp2 zp2))<br/>&nbsp;&nbsp;&nbsp; (command&nbsp; pt2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;画到第二点,并循环画到下一点<br/>&nbsp; ) <br/>)

leir520 发表于 2007-6-15 10:33:00

太 简单了????为什么没有人帮我啊! 各位......55555555555555

byghbcx 发表于 2007-6-15 17:47:00

; draw bjlxx
(defun c:bjlxx( / p0 r h x0 y0 z0 w v j x1 y1 z1 xp1 yp1 zp1 p1 n)
(setq p0(getpoint"\输入圆心"))
(setq r(getdist "\输入半径" p0))
(setq h(getdist "\输入螺距高度" p0))
(setq n(getint "\输入螺旋次数"))
(setq x0(nth 0 p0))
(setq y0(nth 1 p0))
(setq z0(nth 2 p0))                        ;分离坐标
(setq w(/ pi 500))
(setq v(/ h 1000))
(setq j 0 ) ;步距
(while (<= j (* n 1000))
    (setq x1(* r (cos (* w j))))
    (setq y1(* r (sin (* w j))))
    (setq z1(* v j))
    (setq xp1(+ x1 x0 ))
    (setq yp1(+ y1 y0 ))
    (setq zp1(+ z1 z0 ))
    (setq p1(list xp1 yp1 zp1))            
    (if (= j 0) (command ".3dpoly" p1) (commandp1));j=0 画第点 j<>0画到第二点,并循环画到下一点
    (setq j (+ j 1))
    )
(command "")
(princ)
)
页: [1]
查看完整版本: 重谢强人!变距螺旋线就是画不出来啊