- ; 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) (command p1));j=0 画第点 j<>0画到第二点,并循环画到下一点
- (setq j (+ j 1))
- )
- (command "")
- (princ)
- )
|