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

xin giúp về lisp xuất text và mtext ra excel

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

hmt    11

chào a chị trên 4rum hiện e có 1 vấn đề như sau . e có 1 bảng text và mtext e cần xuất bảng này ra excel nhưng cần đúng theo hàng và cột như trong cad, e có dùng lisp tìm trên diễn đàn  xuất text sang excel như p nhưng toàn bộ số liệu bị dồn vào 1 cột k thể sắp xếp lại đc , mong mọi người giúp đỡ :) thank 

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
quansla    232

Bạn thử dùng cái này xem nào, mình viết lâu rồi , bạn xem nếu có cần thay đổi gì thì cm lại, nhưng cái này chỉ ghi ra file .txt thôi, chưa ghi ra excel đâu nhé, nếu cần bạn phải làm thủ công là copy tiếp vô file Excel

cách sử dụng

  • Gõ tên lệnh "copy_cad_txt" (copy tu Cad sang Txt)
  • Chọn tên cho file txt và nơi lưu file
  • Quét chọn các Text cần lưu trữ
  • Enter kết thúc lệnh

(defun c:copy_cad_txt (/ Tieude TenFile f lst i xau N x y myerr)

  (setq olderr *error*

*error* (defun myerr (msg)

 (if olderr (setq *error* olderr))

 (command "undo" "end")

 (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")

     (princ (strcat "\n** Error: " msg " **")))

 (princ)

 ))

  (command "undo" "begin")

  (vl-load-com)

  (if(and

       (setq TenFile (getfiled "Chon file .txt de ghi DATA tu Cad cua ban:" "" "txt" 5))

       (setq lst (vl-sort (acet-ss-to-list (ssget '(( 0 . "*text"))))

 '(lambda (x y / px py )

    (if (not (equal

(cadr (setq px (cdr(assoc 10 (entget x)))))

(cadr (setq py (cdr(assoc 10 (entget y)))))

1E-3))

      (> (cadr px) (cadr py))

      (< (car px) (car py))

      ))))

       (setq Tieude (strcat (getvar "dwgprefix") (getvar "dwgname") "\n" "\n"))

       (setq xau (strcat Tieude (cdr (assoc 1 (entget (setq m1 (car lst))) )))

    i 0

    N (length lst))

       )

    (progn

      (while (< i (1- N))

(if (equal

     (caddr(assoc 10 (entget (nth i lst)) ))

     (caddr(assoc 10 (entget (nth (1+ i) lst)) ))

     1E-3)

 (setq xau (strcat xau "\t" (cdr (assoc 1 (entget (nth (1+ i) lst))))))

 (setq xau (strcat xau "\n" (cdr (assoc 1 (entget (nth (1+ i) lst)))) ))

 )

(setq i (1+ i))

)

      (progn

(setq f (open TenFile "a"))

(write-line xau f)

(close f)

)

      (prompt (strcat "Da xuat cac Text duoc chon ra: "  TenFile ))

      (alert  (strcat "Da xuat cac Text duoc chon ra: "  TenFile ))

      (if olderr (setq *error* olderr))

      (command "undo" "end")

      (princ)

      )))

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
hmt    11

http://www.cadviet.com/upfiles/3/48377_ccccccc_1.txt <----- kết quả sau khi sử dụng lisp của a, nhưng vẫn bị lẫn e muốn nó đc đúng cột và hàng như thế này. đay là file cad text ạ. 

http://www.cadviet.com/upfiles/3/48377_new_block.dwg

 
Cut/Fill Summary
Name Net
Cut Factor Cut
2d Area
Fill Factor Fill
1.000 1.000
194089.96sq.m 303.47 Cu. M. 204395.40 Cu. M.
khoi luong san lap 204091.93 Cu. M.<Fill>
1.000 1.000
51968.57sq.m 24.27 Cu. M. 47914.44 Cu. M.
khoi luong san lap.1 47890.16 Cu. M.<Fill>
1.000 1.000
0.00sq.m 0.00 Cu. M. 0.00 Cu. M.
khoi luong san lap.2 0.00 Cu. M.<Fill>
1.000 1.000
65009.12sq.m 209.96 Cu. M. 61411.71 Cu. M.
khoi luong san lap.3 61201.75 Cu. M.<Fill>
Totals
311067.66sq.m 537.70 Cu. M. 313721.55 Cu. M.
313183.85 Cu. M.<Fill>

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


×