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.
vetgo

[yêu cầu] Lisp chọn Text nằm rời rạc trong bản vẽ xuất sang Excel

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

vetgo    17

Em tìm mãi trên diễn đàn nhưng chỉ thấy Lisp xuất Text sang excel khi mà các Text được sắp xếp có quy luật. H e gặp vấn đề này mong các bác giúp đỡ

- Có 1 loạt các ký tự không theo quy luật nào cả, ví dụ t2, 1v, nam, ... nằm rải rác trong bản vẽ;

- H e muốn chọn các text đó (lần lượt từng text 1) sau đó xuất sang file excel theo thứ tự text vừa được chọn.

Thank's các bác trướ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
thanhduan2407    226

Em tìm mãi trên diễn đàn nhưng chỉ thấy Lisp xuất Text sang excel khi mà các Text được sắp xếp có quy luật. H e gặp vấn đề này mong các bác giúp đỡ

- Có 1 loạt các ký tự không theo quy luật nào cả, ví dụ t2, 1v, nam, ... nằm rải rác trong bản vẽ;

- H e muốn chọn các text đó (lần lượt từng text 1) sau đó xuất sang file excel theo thứ tự text vừa được chọn.

Thank's các bác trước!

Của bạn đây. Không biết đúng ý bạn không?

(defun c:xtrr( / ss i fn fh item Pnt TEXT)
(vl-load-com)
(setq ss (acet-ss-to-list (ssget (list (cons 0 "TEXT")))))
(setq i 1)
(setq fn (getfiled "Text Export File"  "" "csv" 1))
 (setq fh (open fn "w"))
 (write-line (strcat "STT" "," "X" "," "Y""," "Z" "," "TEXT") fh)
 (foreach item  ss
(setq temp  (entget item)
      Pnt (cdr (assoc 10 temp))
      TEXT   (cdr (assoc 1 temp))
)
(write-line (strcat (rtos i 2 0) "," (rtos (car Pnt) 2 3) "," (rtos (cadr Pnt) 2 3)"," (rtos (caddr Pnt) 2 3) "," TEXT) fh)
(setq i (1+ i))
 )
(close fh)
(princ)
)

  • Vote tăng 3

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
BuiHuuNghia    1

Ai giúp mình sửa lisp xtrr.lsp này lại thành xtrr1.lsp với nội dung cần sửa nằm ở 2 hình bên dưới.
 
Hình 1: Sau khi dùng lisp xtrr.lsp, quét 1 lần hết tất cả các giá trị trong màn hình thì nhận được kết quả như hình 1 (theo như mình thấy thì xtrr.lsp nhận giá trị trong cad theo thứ tự từ phải qua trái, nhận hết giá trị hàng bên dưới rồi mới nhận giá trị từ phải qua trái của hàng trên, rồi xuất ra excel theo thứ tự từ trên xuống dưới).

  - Nhờ các cao thủ trên diễn đàn sửa thành xtrr1.lsp với 3 thay đổi sau:

     +Khi quét tất cả thì nhận giá trị trong cad theo thứ tự từ trái qua phải, nhận hết giá trị hàng bên dưới rồi mới nhận giá trị từ trái qua phải 

       của hàng trên rồi xuất ra excel theo thứ tự từ trên xuống dưới như hình 2.

     +Sau khi có file excel thì tự động mở file excel đó lên luôn.

     +Các dữ liệu số trong excel (VD: 1 hay -9690.54 là dữ liệu số, UNIT 106 là dữ liệu chữ) phải ở dạng number chứ không phải general, dữ

       liệu chữ ở dạng general (cái này mình nghĩ lisp không làm được đâu, nhưng vẫn đề xuất thử, không được thì để tất cả ở dạng general  

       cũng được).              127110_xtrr2__copy.jpg
 
 
 
Hình 2: Lisp xtrr.lsp cũng có thể làm được như hình 2 nhưng phải chọn từng giá trị, mà một lần mình làm rất nhiều giá trị nên không thể làm vậy được. Cũng có cách khá nhanh là dùng xtrr.lsp, rồi vào excel chọn 6 row 2->7 sort theo cột A giảm dần, tương tự với 6 row 8->13, xong sửa cột STT lại từ 1->12 là từ hình 1 trở thành hình 2. Tuy nhiên do làm nhiều bản vẽ nên có lsp sẽ nhanh hơn nhiều. Mong các bạn giúp.127110_xtrr2__copy__copy_4.jpg

 

Hi, tự dưng mình quên up file. File cad, excel đã dùng sort và lisp (chính là lisp xtrr.lsp ở trên, mình chỉ copy xuống thôi):

http://www.cadviet.c...127110_vdcl.dwg

http://www.cadviet.com/upfiles/3/127110_excel_ã_dùng_sort_1.rar

 

 

(

defun c:xtrr( / ss i fn fh item Pnt TEXT) (vl-load-com) (setq ss (acet-ss-to-list (ssget (list (cons 0 "TEXT"))))) (setqi 1) (setq fn (getfiled "Text Export File" "" "csv" 1)) (setq fh (open fn "w")) (write-line (strcat "STT" "," "X" ",""Y"" "" "" "") fh) (foreach item ss (setq temp (entget item) Pnt (cdr (assoc 10 temp)) TEXT (cdr (assoc 1 temp)) ) (write-line (strcat (rtos i 2 0) "" (rtos (car Pnt) 2 3) "" (rtos (cadr Pnt) 2 3)"" (rtos (caddr Pnt) 2 3) "" TEXT) fh) (setq i (1+ i)) ) (close fh) (princ) )

Chỉnh sửa theo BuiHuuNghia

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
phamthanhbinh    3.123

Ai giúp mình sửa lisp này lại thành xtrr1.lsp với nội dung cần sửa nằm ở 2 hình bên dưới.

 

Hình 1: Sau khi dùng lisp xtrr.lsp, quét 1 lần hết tất cả các giá trị trong màn hình thì nhận được kết quả như hình 1 (theo như mình thấy thì xtrr.lsp nhận giá trị trong cad theo thứ tự từ phải qua trái rồi xuất ra excel theo thứ tự từ trên xuống dưới. Nhờ các cao thủ trên diễn đàn sửa thành xtrr1.lsp, khi quét tất cả thì nhận giá trị trong cad theo thứ tự từ trái qua phải, rồi xuất ra excel theo thứ tự từ trên xuống dưới như hình 2.

 

 

 

Hình 2. Lisp xtrr.lsp cũng có thể làm được như hình 2 nhưng phải chọn từng giá trị, mà một lần mình làm rất nhiều giá trị nên không thể làm vậy được. Cũng có cách khá nhanh là dùng xtrr.lsp, rồi vào excel chọn 6 row 2->7 sort theo cột A giảm dần, tương tự với 6 row 8->13, xong sửa cột STT lại từ 1->12 là từ hình 1 trở thành hình 2. Tuy nhiên do làm nhiều bản vẽ nên có lsp sẽ nhanh hơn nhiều. Mong các bạn giúp.

Hề hề hề,

Cái "lisp này" nó ở đâu vầy cà??? Chả nhòm thấy nó thì mần răng mà sửa hè???

Muốn viết lisp mới thì phải gửi cái bản vẽ lên chớ.

Bạn không phải là ngưới lần đầu vô diễn đàn này. Bởi vậy hãy chịu khó đọc kỹ các quy định của diễn đàn và thực hiện đúng bạn nhé. Hãy tôn trọng diễn đàn và chung sức để diễn đàn ngày một tốt hơn.

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
hiepttr    523

Ai giúp mình sửa lisp này lại thành xtrr1.lsp với nội dung cần sửa nằm ở 2 hình bên dưới.

 

Hình 1: Sau khi dùng lisp xtrr.lsp, quét 1 lần hết tất cả các giá trị trong màn hình thì nhận được kết quả như hình 1 (theo như mình thấy thì xtrr.lsp nhận giá trị trong cad theo thứ tự từ phải qua trái rồi xuất ra excel theo thứ tự từ trên xuống dưới. Nhờ các cao thủ trên diễn đàn sửa thành xtrr1.lsp, khi quét tất cả thì nhận giá trị trong cad theo thứ tự từ trái qua phải, rồi xuất ra excel theo thứ tự từ trên xuống dưới như hình 2.127110_xtrr2__copy.jpg

 

 

 

Hình 2. Lisp xtrr.lsp cũng có thể làm được như hình 2 nhưng phải chọn từng giá trị, mà một lần mình làm rất nhiều giá trị nên không thể làm vậy được. Cũng có cách khá nhanh là dùng xtrr.lsp, rồi vào excel chọn 6 row 2->7 sort theo cột A giảm dần, tương tự với 6 row 8->13, xong sửa cột STT lại từ 1->12 là từ hình 1 trở thành hình 2. Tuy nhiên do làm nhiều bản vẽ nên có lsp sẽ nhanh hơn nhiều. Mong các bạn giúp.127110_xtrr2__copy__copy_2.jpg

S­ữ dụng chức năng sort của excel đi bạn, đừng lạm quá lạm dụng lisp mà lãng phí thứ gì ta đang 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

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


×