ryankevin15 发表于 2022-7-5 16:16:58

切换表中的两项

.....

Lee Mac 发表于 2022-7-5 16:23:02

您使用的是表格对象还是表格由文字和线条组成?

Grrr 发表于 2022-7-5 16:24:05

之前我想问是否有这样的功能来移动表行,但我决定自己编写代码,而不是在论坛上询问。
 

rlx 发表于 2022-7-5 16:28:10

 
很好,很酷!
 
gr.Rlx

ryankevin15 发表于 2022-7-5 16:32:40

你能分享一下吗?

Roy_043 发表于 2022-7-5 16:34:13

@ryankevin15:
你应该回答李的关键问题。如果您的表不是实际的表对象,Grrr的代码将无法工作。看着你的照片,我怀疑它是一个桌子上的物体。

ryankevin15 发表于 2022-7-5 16:37:12

不,它是AutoCAD中的线对象。看起来更好/更能控制风格。

sieu khung khie 发表于 2022-7-5 16:40:40

不错的Grrr

Tharwat 发表于 2022-7-5 16:44:30

 
试试这个:

(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))

ryankevin15 发表于 2022-7-5 16:48:02

哇!这很好用,我们能在哪里得到它吗?在哪里你可以用2-3线交易2-3线?如果选择的行数不匹配,可能会出错?
 
http://i.imgur.com/rrGjOMq.png
页: [1] 2
查看完整版本: 切换表中的两项