/

18 tháng 6, 2013

Sử dụng Clipboard trong AutoLISP: Copy và Paste dữ liệu dạng text


Việc sử dụng Clipboard có ý nghĩa hết sức quan trọng đối với những người thường xuyên phải làm các công việc tổng hợp số liệu từ bản vẽ. Tuy nhiên không phải ai cũng nhận ra điều đó và có thể sử dụng ClipBoard theo ý đồ của riêng mình.

Tổng hợp dữ liệu từ AutoCAD sang Excel - Hàm thống kê

 

Đề bài và lời giải thông thường

  1. Bạn cần phải tổng hợp chiều dài của 100 đoạn thẳng Line (không theo một quy luật nhất định nào). Bạn sẽ chọn từng đối tượng, dùng lệnh Length để kiểm tra chiều dài, hoặc Ctrl+1 để xem thuộc tính của nó. Rồi quay sang Excel để gõ độ dài. Công việc đó thực sự nhàm chán.
  2. Bạn cần tổng hợp toạ độ của 20 điểm trong bản vẽ. Bạn có thể sử dụng lệnh ID với từng điểm.

Bạn có thể làm tốt hơn thế!

Dưới đây là 02 hàm xuất và nhập dữ liệu dạng string vào Clipboard:

Hàm GetClipText có tác dụng lấy dữ liệu từ Clipboard:
Hàm SetClipText có tác dụng copy dữ liệu vào Clipboard:

SetClipText sẽ giúp giải quyết vấn đề một cách nhanh chóng

1. Đầu tiên là lệnh TT tính chiều dài tổng cộng của các đoạn thẳng, đa tuyến Polyline. Kết quả được copy vào ClipBoard và có thể paste trực tiếp vào bảng excel, hoặc bất kể chương trình nào khác:
Trong đoạn LISP trên, tổng độ dài được gán vào một biến str kiểu string. Biến str được đưa vào Clipboard bằng hàm SetClipText. Quay sang Excel và công việc còn lại chỉ là tổ hợp phím Ctrl+V.

2. Tiếp đến là lệnh ii, tương tự lệnh ID nguyên bản có tác dụng tra toạ độ (X, Y, Z) của 1 điểm chọn trên màn hình. Chỉ có đôi chút khác biệt khi kết quả của lệnh ii được copy vào trong ClipBoard.
Tải file LISP tại đây

Hy vọng đoạn lisp nhỏ sẽ giúp công việc của bạn nhẹ nhàng hơn đôi chút!