易云网络 发表于 2014-11-16 20:39 static/image/common/back.gif
炸开后选择圆弧,选择后还原,还原是一定的不需要判断
你都undo了,ss自然为nil了,你需要在undo之前将ss中的arc数据读取保存下来,然后再undo,然后对保存下来的数据进行后续操作!
(defun C:css ()
(setvar "cmdecho" 0)
(setvar "QAFLAGS" 1)
(setqss1 (ssget "x"
'((-4 . "<OR")
(0 . "POLYLINE")
(0 . "LWPOLYLINE")
(-4 . "OR>")
)
)
)
(command "_.undo" "be")
;;
(COMMAND ".EXPLODE" ss1 "")
(setvar "QAFLAGS" 0)
(setqss (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)
) Gu_xl 发表于 2014-11-16 20:50 static/image/common/back.gif
你都undo了,ss自然为nil了,你需要在undo之前将ss中的arc数据读取保存下来,然后再undo,然后对保存下来的 ...
今天能让两个超级版主来回答我的疑惑,真的太感动了。
顺变给个数据保存函数吧 易云网络 发表于 2014-11-16 20:31 static/image/common/back.gif
搞不定啊,搞了一天了
不知道是我说的不明确,还是你看不明白。(defun C:css()
(setvar "CMDECHO" 0)
(setq ss1 (ssget "x" '((0 . "*POLYLINE"))))
(command "QAFLAGS" 1 ".EXPLODE" ss1 "" "QAFLAGS" 0)
(setq ss (ssget"x"'((0 . "ARC") (-4 . ">") (40 . 1.)))
datlst (list))
(repeat (setq i (sslength ss))
(setq datlst (cons (entget(ssname ss (setq i (1- i)))) datlst))
)
(command "u")
;...处理表datlst中的内容。
(setvar "CMDECHO" 1)
(princ)
)
ZZXXQQ 发表于 2014-11-17 08:21 static/image/common/back.gif
不知道是我说的不明确,还是你看不明白。
不是你说得不明白,主要是我不会保存,谢谢你,现在会了
页:
1
[2]