- 积分
- 15346
- 明经币
- 个
- 注册时间
- 2002-2-4
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 2002-2-18 12:53:00
|
显示全部楼层
南子兄:
像你这样一直用SPLINE画200多个顶点就可以了,不用使用LISP。
不如试试这个
思路:先画一条SPLINE(顶点数不限),再用DIVIDE分成200多段,再利用DIVIDE的点用SPLINE重画一次就好了。
但可否说说200个顶点的SPLINE,到底有甚么用???
(defun C:SP_TO_MSP (/ HOLDECHO HOLDBLIP ORIG_OSNAP
AA A A1 BB LL AS74
ENDPT SPT LP A11
)
(command "_.undo" "_group")
(setq HOLDECHO (getvar "cmdecho"))
(setq HOLDBLIP (getvar "blipmode"))
(setq ORIG_OSNAP (getvar "osmode"))
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(setvar "osmode" 0)
(while (/= AA "SPLINE")
(setq A (entsel "\n 选择SPLINE"))
(setq A1 (car A))
(setq AA (cdr (assoc 0 (entget A1))))
)
(setq BB (entget A1))
(setq LL (length BB))
(setq AS74 (cdr (assoc 74 BB)))
(setq ENDPT (cdr (nth (- LL 1) BB)))
(setq SPT (cdr (nth (- LL AS74) BB)))
(setq LP (getint "\n 请设定段数/<60>: "))
(cond ((null LP) (setq LP 60)))
(command "_.divide" A1 (+ LP 1))
(setq A (ssget "p"))
(command "_.SPLINE" ENDPT)
(repeat LP
(setq A11 (cdr (assoc 10 (entget (ssname A (- LP 1))))))
(command A11)
(setq LP (- LP 1))
)
(command SPT "" "" "")
(command "_.erase" A A1 "")
(setvar "blipmode" HOLDBLIP)
(setvar "osmode" ORIG_OSNAP)
(setvar "cmdecho" HOLDECHO)
(command "_.undo" "_end")
) |
|