Chuyển đến nội dung
Diễn đàn CADViet
vuhoach

Nhờ viết lisp move block tới point

Các bài được khuyến nghị

31 phút trước, tannguyen291 đã nói:

Của bạn đây nhé!

Vì bạn dùng nhiều loại BLOCK att nên mình bỏ chức năng chọn att. mọi att đều xuất ra. 

 


(defun c:QT (/ ss tag file_name lstbkatt lstpt file_write item ent lstatt pair str)
  (setq 
    ss (acet-ss-to-list (ssget '((0 . "INSERT"))))
    file_name (getfiled "Xuat du lieu" "Thong ke Toa do" "txt" 1)
  )
  (mapcar
    '(lambda (x) 
      (if (assoc 66 (entget x))
        (setq lstbkatt (cons x lstbkatt))
        (setq lstpt (cons (cdr (assoc 10 (entget x))) lstpt))
      )
     )
    ss
  )
  (if (and file_name (= (length lstbkatt) (length lstpt)))
    (progn
      (setq file_write (open file_name "W"))
      (foreach item lstpt
        (setq 
          ent (car (vl-sort lstbkatt '(lambda (a b) (< (distance item (cdr (assoc 10 (ENTGET a)))) (distance item (cdr (assoc 10 (ENTGET b))))))))
          str (strcat (cdr (assoc 2 (entget ent))) "\t" (rtos (Car item) 2 4) "\t" (rtos (Cadr item) 2 4))
          lstatt (vlax-invoke (vlax-ename->vla-object ent) 'getattributes)
        )
        (foreach pair lstatt
          (setq str (strcat str "\t" (vla-get-textstring pair)))
        )
        (write-line str file_write)
      )
      (close file_write)
    )
    (alert "\nNot match data!")
  )
  (princ)
)

 

Cảm ơn bác, lisp này đến đây là đã đủ giải quyết nhanh gọn công việc của em rồi

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
1 giờ} trướ}c, vuhoach đã nói:

Nhìn trên video thì cũng rất tuyệt vời, nhưng máy em cad 2018 chạy báo lỗi. Ngoài ra kết quả xuất ra em muốn dưới dạng txt, csv để em có thể xử lý thêm dữ liệu. Thanks bác.

 

Mình cũng dùng 2018 mà. bạn export là ra file csv nhé. liên hệ Zalo: 0848.998.045 để mình hỗ trợ lỗi cho nhé

  • Like 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay

×