Đến nội dung


Hình ảnh
- - - - -

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


  • Please log in to reply
2 replies to this topic

#1 hmt

hmt

    biết lệnh scale

  • Members
  • PipPipPip
  • 146 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 29 August 2013 - 05:06 PM

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 


  • 0

#2 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 641 Bài viết
Điểm đánh giá: 223 (khá)

Đã gửi 29 August 2013 - 06:32 PM

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)
      )))

  • 0

#3 hmt

hmt

    biết lệnh scale

  • Members
  • PipPipPip
  • 146 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 29 August 2013 - 09:15 PM

http://www.cadviet.c...7_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.c...7_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>

  • 0