重谢强人!变距螺旋线就是画不出来啊
; draw bjlxx<br/>(defun c:bjlxx()<br/> (setq p0(getpoint"\输入圆心"))<br/> (setq r(getreal"\输入半径"))<br/> (setq h(getreal "\输入导程"))<br/> (setq x0(nth 0 p0))<br/> (setq y0(nth 1 p0))<br/> (setq z0(nth 2 p0)) ;分离坐标<br/> (setq w(/ pi 500))<br/> (setq v(/ h 1000)) <br/> (setq j 0)<br/> (while (<= j 1)<br/> (setq d 0.001) ;步距<br/> (if (= j 0) <br/> (setq x1(* r (cos(* w j))))<br/> (setq y1(* r (cos(* w j))))<br/> (setq z1(* v (-1 (* j j))))<br/> (setq xp1(+ x1 x0 ))<br/> (setq yp1(+ y1 y0 ))<br/> (setq zp1(+ z1 z0 ))<br/> (setq p1(list xp1 yp1 zp1)) ;画第一点<br/> )<br/> (setq j (+ j d))<br/> (setq x2(* r (cos(* w j))))<br/> (setq y2(* r (cos(* w j))))<br/> (setq z2(* v (-1 (* j j)))) <br/> (setq xp2(+ x2 x0 ))<br/> (setq yp2(+ y2 y0 ))<br/> (setq zp2(+ z2 z0 ))<br/> (setq p2(list xp2 yp2 zp2))<br/> (command pt2) ;画到第二点,并循环画到下一点<br/> ) <br/>) 太 简单了????为什么没有人帮我啊! 各位......55555555555555 ; 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]