level 1
柚子茶9002
楼主
将下面万花筒程序改为五角星形式!
;;;;;*********万花筒 程序开始*********
(defun c:wht ()
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(princ "★功能:绘制万花筒.\n")
(while T
(setq i 0
n 122
)
(setvar "cmdecho" 0)
(command "erase" "all" "")
(repeat n
(setq i (1+ i))
(command "color" (itoa (* i 2)))
(command "CIRCLE" '(0 0) (* i 5) "")
(command "delay" "10")
(command "ZOOM" "E")
)
)
;;;
(setvar "osmode" 15359)
(princ)
)
;;;;;*********万花筒 程序结束**********
附加五角星程序!!!
;;正☆;;
(defun C:WJX ( /
#os1 #
p ent i l1 n p1 pt1 ss x)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(vl-load-com) ;;加载vlax扩展函数
(setq #os1 (getvar "osmode"))
(setq pt1 (getpoint "\n请指定五角星中心点"))
(if (/= pt1 nil)
(progn
(setq L1 (getdist "\n请输入五角星外切圆半径"))
(while (<= L1 0) (setq L1 (getdist "\n请输入五角星外切圆半径")) )
(if (/= L1 nil)
(progn
(setvar "osmode" 0)
(command "polygon" 5 pt1 "I" L1);绘制一个正5边形
(setq ent (entlast));取得这个对象
(setq #p (mapcar 'cdr (vl-remove-if '(lambda (X) (/= 10 (car x))) (entget ent))));取得多段线里面的点
(entdel ent);正五边形删除
(setq ss (list 2 4 1 3);多段线取点顺序
i 0
p1 (car #p)
)
(command "PLINE" p1);绘制多段线
(repeat 4
(setq n (nth i ss)
p1 (nth n #p)
)
(command p1)
(setq i (+ i 1))
)
(command "c")
(command "Circle" pt1 L1);如果不绘制外切圆这句话删除
(setvar "osmode" #os1)
)
)
)
)
(prin1)
)
2016年06月28日 08点06分
1
;;;;;*********万花筒 程序开始*********
(defun c:wht ()
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(princ "★功能:绘制万花筒.\n")
(while T
(setq i 0
n 122
)
(setvar "cmdecho" 0)
(command "erase" "all" "")
(repeat n
(setq i (1+ i))
(command "color" (itoa (* i 2)))
(command "CIRCLE" '(0 0) (* i 5) "")
(command "delay" "10")
(command "ZOOM" "E")
)
)
;;;
(setvar "osmode" 15359)
(princ)
)
;;;;;*********万花筒 程序结束**********
附加五角星程序!!!
;;正☆;;
(defun C:WJX ( /
#os1 #
p ent i l1 n p1 pt1 ss x)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(vl-load-com) ;;加载vlax扩展函数
(setq #os1 (getvar "osmode"))
(setq pt1 (getpoint "\n请指定五角星中心点"))
(if (/= pt1 nil)
(progn
(setq L1 (getdist "\n请输入五角星外切圆半径"))
(while (<= L1 0) (setq L1 (getdist "\n请输入五角星外切圆半径")) )
(if (/= L1 nil)
(progn
(setvar "osmode" 0)
(command "polygon" 5 pt1 "I" L1);绘制一个正5边形
(setq ent (entlast));取得这个对象
(setq #p (mapcar 'cdr (vl-remove-if '(lambda (X) (/= 10 (car x))) (entget ent))));取得多段线里面的点
(entdel ent);正五边形删除
(setq ss (list 2 4 1 3);多段线取点顺序
i 0
p1 (car #p)
)
(command "PLINE" p1);绘制多段线
(repeat 4
(setq n (nth i ss)
p1 (nth n #p)
)
(command p1)
(setq i (+ i 1))
)
(command "c")
(command "Circle" pt1 L1);如果不绘制外切圆这句话删除
(setvar "osmode" #os1)
)
)
)
)
(prin1)
)