Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
xdman

[Yêu Cầu] Lisp Copy Text, Dimension, Block Attribute Sang Clipboard

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

Vì mình thường xuyên phải tính toán khối lượng thép từ bản vẽ cad rồi nhập vào excel, đây là công việc khá vất vả do phải nhập từng con số trong cad vào exel sau khi tham khảo tất cả các lisp thống kê và lisp copy từ cad sang exel thì mình chưa thấy công cụ nào thực sự phù hợp. Mình mong muốn 1 lisp như này, rất mong các bạn giúp đỡ.


1.    Cho phép lọc 1 dãy số liệu thành một hàng gồm chữ và số bằng cách click chuột vào các đối tượng Text, Mtext, Dimension, block attribute.


2.    Cho phép xuống dòng để chọn lựa các đối tượng tiếp theo như bước 1.


3.    Có thể chọn lựa xuống dòng bao nhiêu tùy ý.


4.    Các số liệu này được lưu trong clipboard và khi paste sang excel thì được 1 ma trận.


Các số liệu khi nhập trên, kết hợp với thao tác trên excel sẽ giúp mình có được bảng thống kê thép hoàn chỉnh, sẽ ko phải ngồi nhập từng con số vào bảng thống kê.


Rất mong các bạn giúp đỡ.


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

Ko có cao thủ nào giúp được mình à, mình thấy đây là lisp rất cần thiết với những người bóc tách khối lượng, mình đang làm việc đó hàng ngày mà chưa có cách nào nhanh hơn được.

  • Vote giảm 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

Ko có cao thủ nào giúp được mình à, mình thấy đây là lisp rất cần thiết với những người bóc tách khối lượng, mình đang làm việc đó hàng ngày mà chưa có cách nào nhanh hơn được

Bác chẳng có file, không có hướng dấn thì ai dám giúp bác

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

(defun C:xt (/ lst str txt 2ClipB)

 

(vl-load-com)

 

(princ "\nChon cac Text/Mtext/Dimension can copy..."

)

 

(setq lst (acet-ss-to-list (ssget '((0 . "*TEXT,DIMENSION,insert")))))

 

(setq str "")

 

(while lst

 

 

(foreach n lst

 

(cond

 

((= (cdr (assoc 0 (entget n))) "TEXT")

(setq txt (cdr (assoc 1 (entget n))))

)

 

((= (cdr (assoc 0 (entget n))) "MTEXT")

(setq txt (cdr (assoc 1 (entget n))))

)

 

 

((= (cdr (assoc 0 (entget n))) "attribute")

(setq txt (cdr (assoc 1 (entget n))))

)

 

 

((= (cdr (assoc 0 (entget n))) "DIMENSION")

 

(if (= (cdr (assoc 1 (entget n))) "")

 

(setq txt (rtos (cdr (assoc 42 (entget n))) 2 0))

 

(setq txt (cdr (assoc 1 (entget n))))

)

)

)

 

(setq str (strcat str txt "\t"))

 

 

)

(setq str (strcat str "\n"))

 

 

 

(setq lst (acet-ss-to-list (ssget '((0 . "*TEXT,DIMENSION,insert")))))

 

 

 

)

 

(vlax-invoke

(vlax-get

(vlax-get (setq 2ClipB (vlax-create-object "htmlfile"))

'ParentWindow

)

'ClipBoardData

)

'SetData

"Text"

str

)

(vlax-release-object 2ClipB)

)

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

Sau khi nghiên cứu, chỉnh sửa những lisp có sẵn, mình đã cho ra được lisp như trên, tuy mới đáp ứng được 80% nhưng như thế là quá tuyệt vời rồi. Mình mong các bạn cao thủ bổ sung thêm tính năng này nữa.

- Bỏ được ký tự "\t" và "\n" cuối cùng nằm trong chuỗi, để khi paste ra excel ko còn hàng, cột bị trống nữa ( để tránh khi paste bị ảnh hưởng đến dữ liệu của cột và hàng khác).

- Bổ sung tính năng copy được nội dung trong block attribute khi pick vào vị trí cần copy.

- Cho phép gõ thêm text trong quá trình chọn đối tượng để thay vì chọn đối tượng ta gõ text để được ngay nội dung mình mong muốn.

Cám ơn các bạn đã theo dõi.

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


×