比较简单,希望有所帮助!
(defun C:ss (/ text_1 text_2 v1 v2 vv a)
(setq s1 (ssget '((0 . "TEXT"))))
(setq s2 (ssget '((0 . "TEXT"))))
(setq N1 (sslength s1 ))
(setq N2 (sslength s2 ))
(setq i 0
j 0
text_1 ()
text_2 ())
(while (<= i (1- N1))
(setq name1 (ssname s1 i))
(setq text_0 (assoc 1 (entget name1)))
(setq text_1 (cons text_0 text_1))
(setq i (1+ i))
)
(while (<= j (1- N2))
(setq name1 (ssname s2 j))
(setq text_0 (assoc 1 (entget name1)))
(setq text_2 (cons text_0 text_2))
(setq j (1+ j))
)
(foreach p text_1
(setq v1 (mapcar 'cdr text_1)))
(foreach p text_2
(setq v2 (mapcar 'cdr text_2)))
(setq len1 0)
(while (< len1 (1- (length v1)))
(setq t1 (nth len1 v1))
(setq lst(vl-remove-if '(lambda (x) (= x t1)) (vl-remove t1 v1)))
(setq v1 (cons t1 lst))
(setq len1 (1+ len1))
v1
)
(setq len2 0)
(while (< len2 (1- (length v2)))
(setq t1 (nth len2 v2))
(setq lst(vl-remove-if '(lambda (x) (= x t1)) (vl-remove t1 v2)))
(setq v2 (cons t1 lst))
(setq len2 (1+ len2))
v2
)
(setq v1 (vl-sort v1 '
v2 (vl-sort v2 '
vv 0
a 0)
(while (< vv (length v1))
(if (= (nth vv v1) (nth vv v2))
(setq a (1+ a))
)
;(princ (strcat "\n 第" (rtos(1+ vv)) "项文字" (nth vv v1) "相同!"))
;(princ "\n 所选文字不相同!"))
(setq vv (1+ vv))
)
(if (= a vv)
(princ "\n 所选文字都相同!")
(princ "\n 所选文字不相同!"))
(princ)
)