Đến nội dung


Hình ảnh
5 stars - based on 24598 reviews
- - - - -

Nhờ Viết Lisp Chọn Tất Cả Các Nhóm Text Trùng Nhau


  • Please log in to reply
1 reply to this topic

#1 hieudesign

hieudesign

    biết zoom

  • Members
  • Pip
  • 15 Bài viết
Điểm đánh giá: -2 (bình thường)

Đã gửi 29 May 2017 - 04:17 PM

Mình muốn nhờ mọi người giúp mình viết Lisp như sau:

Vấn đề cần giải quyết: lọc xem có tên nào giống với tên trước đó trong danh sách không, để mình kiểm tra lại bản vẽ của 2 bản giống nhau đó

Mình có 1 bảng thống kê danh sách các tên tủ: AA, A1, A2, A3, B1, B2, A1,  B3, B1,A6, A8, AA, A1

Bước 1 mình quét tất cả bảng thống kê danh sách, trả kết quả là tất cả các nhóm có nội dung giống nhau được chọn (bôi đen) là AA, A1, B1 (vì chúng bị lặp từ 2 lần trở lên)

 

Mình đã tìm trên diễn đàn nhiều lisp chọn đối tượng text giống nhau nhưng vẫn chưa đúng yêu cầu mình cần, mong mọi người giúp!

Mình cảm ơn mọi người trước !


  • 0

#2 cuongtk2

cuongtk2

    biết lệnh mirror

  • Members
  • PipPipPip
  • 150 Bài viết
Điểm đánh giá: 40 (tàm tạm)

Đã gửi 29 May 2017 - 11:17 PM

Đổi sang màu đỏ các text trùng nhau.
(defun c:test ( / ss i n )
(setq ss (ssget '((0 . "text"))))
(defun ss->ob (ss / ls) 
  (foreach n (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss))) (setq ls (cons (vlax-ename->vla-object n) ls))))
(setq ss (ss->ob ss))
(setq ss (vl-sort ss '(lambda (e1 e2) (< (vla-get-TextString e1) (vla-get-TextString e2)))))
(setq i 1 n (length ss))
(while (< i n)
  (if (eq (vla-get-textstring (nth i ss))
 (vla-get-textstring (nth (1- i) ss)))
    (progn (vla-put-color (nth i ss) 1)
           (vla-put-color (nth (1- i) ss) 1)
      ))
    (setq i (1+ i))
    )
)
  • 0