切换表中的两项
..... 您使用的是表格对象还是表格由文字和线条组成? 之前我想问是否有这样的功能来移动表行,但我决定自己编写代码,而不是在论坛上询问。很好,很酷!
gr.Rlx 你能分享一下吗? @ryankevin15:
你应该回答李的关键问题。如果您的表不是实际的表对象,Grrr的代码将无法工作。看着你的照片,我怀疑它是一个桌子上的物体。 不,它是AutoCAD中的线对象。看起来更好/更能控制风格。 不错的Grrr
试试这个:
(defun c:Test ( / one two no1 ob1 ls1 no2 ob2 ls2 sr1 sr2 nos a b en1 en2)
;; Tharwat - Date:13.Jun.2017 ;;
(if (and (princ "\nSelect texts in 1st row :")
(setq one (ssget "_:L" '((0 . "*TEXT"))))
(princ "\nSelect texts in 2nd row :")
(setq two (ssget "_:L" '((0 . "*TEXT"))))
)
(progn
(repeat (setq no1 (sslength one))
(setq ob1 (ssname one (setq no1 (1- no1)))
ls1 (cons (list (car (cdr (assoc 10 (entget ob1)))) ob1) ls1)
)
)
(repeat (setq no2 (sslength two))
(setq ob2 (ssname two (setq no2 (1- no2)))
ls2 (cons (list (car (cdr (assoc 10 (entget ob2)))) ob2) ls2)
)
)
(setq sr1 (vl-sort ls1 '(lambda (a b) (< (car a) (car b))))
sr2 (vl-sort ls2 '(lambda (a b) (< (car a) (car b))))
nos 0
)
(while (and (setq a (nth nos sr1))
(setq en1 (entget (cadr a)))
(setq b (nth nos sr2))
(setq en2 (entget (cadr b)))
)
(entmod (subst (assoc 1 en1) (assoc 1 en2) en2))
(entmod (subst (assoc 1 en2) (assoc 1 en1) en1))
(setq nos (1+ nos))
)
)
)
(princ))
哇!这很好用,我们能在哪里得到它吗?在哪里你可以用2-3线交易2-3线?如果选择的行数不匹配,可能会出错?
http://i.imgur.com/rrGjOMq.png
页:
[1]
2