本帖最后由 Gu_xl 于 2014-11-16 20:56 编辑
易云网络 发表于 2014-11-16 20:39 
炸开后选择圆弧,选择后还原,还原是一定的不需要判断
你都undo了,ss自然为nil了,你需要在undo之前将ss中的arc数据读取保存下来,然后再undo,然后对保存下来的数据进行后续操作!
 - (defun C:css ()
- (setvar "cmdecho" 0)
- (setvar "QAFLAGS" 1)
- (setq ss1 (ssget "x"
- '((-4 . "<OR")
- (0 . "POLYLINE")
- (0 . "LWPOLYLINE")
- (-4 . "OR>")
- )
- )
- )
- (command "_.undo" "be")
- ;;
- (COMMAND ".EXPLODE" ss1 "")
- (setvar "QAFLAGS" 0)
- (setq ss (ssget "x"
- '((-4 . "<and")
- (0 . "ARC")
- (-4 . ">")
- (40 . 1.)
- (-4 . "and>")
- )
- )
- n (sslength ss)
- kk n
- )
- ;;保存圆弧数据
- (setq data nil)
- (repeat n
- (setq data (cons (entget (ssname ss (setq n (1- n)))) data))
- )
- (command "_.undo" "e")
- ;;
- (command ".undo" 1)
- (foreach a data
- (print (entget (entmakex a)))
- ;;创建新的圆弧
- )
- (princ)
- )
|