本帖最后由 自贡黄明儒 于 2013-12-21 08:45 编辑
;;是不是这样的
 - (defun c:et ()
- (vl-load-com)
- (or *DOC*
- (setq *DOC* (vla-get-ActiveDocument (vlax-get-acad-object)))
- )
- (vla-StartUndoMark *DOC*)
- (setvar "cmdecho" 0)
- (setq ptlist1 nil)
- (setq ss (ssget '((0 . "INSERT"))))
- (setq ss0 (sort-se (sort-se ss 10 1 50 nil) 10 0 2 nil))
- (setq sct (sslength ss))
- (setq x1 0
- x2 0
- )
- (setq ss1 ss0
- ss2 ss0
- )
- (repeat sct
- (setq sent (entget (ssname ss1 x1)))
- (setq ascd10 (assoc 10 sent))
- (setq ptlist1 (cons ascd10 ptlist1))
- (setq x1 (1+ x1))
- )
- (etmove)
- (vla-EndUndoMark *DOC*)
- (princ)
- )
- (defun etmove ()
- (setvar "cmdecho" 0)
- (setq ptlist2 ptlist1)
- (repeat sct
- (setq acx10 (cdr (car ptlist2)))
- (setq ptlist2 (cdr ptlist2))
- (setq sn (ssname ss2 x2))
- (setq sent2 (entget sn))
- (setq acy10 (cdr (assoc 10 sent2)))
- (command "_move" sn "" acy10 acx10)
- (setq x2 (1+ x2))
- )
- (setvar "cmdecho" 1)
- )
|