Đến nội dung


Hình ảnh
- - - - -

(Nhờ vả) Lisp chuyển text từ cad sang excel dạng cột!


  • Please log in to reply
6 replies to this topic

#1 transduc

transduc

    biết zoom

  • Members
  • Pip
  • 11 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 03 December 2013 - 10:35 AM

Em có file cad như đính kèm, bây giờ e muốn dùng lisp để chuyển đổi các text trong bản vẽ sang excel theo dang cột như file excel kèm theo ạ, mong các bác trên diễn đàn giúp đỡ, cám ơn các bác nhiều.

Ps:e có dùng lisp kèm theo nhưng kết quả không được như mong muốn ạ

 

http://www.cadviet.c.../61123_11_2.rar


  • 0

#2 transduc

transduc

    biết zoom

  • Members
  • Pip
  • 11 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 03 December 2013 - 11:54 AM

Mới vào nghề,mong được các cao thủ chỉ giáo ạ :mellow:


  • 0

#3 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 03 December 2013 - 04:22 PM

Em có file cad như đính kèm, bây giờ e muốn dùng lisp để chuyển đổi các text trong bản vẽ sang excel theo dang cột như file excel kèm theo ạ, mong các bác trên diễn đàn giúp đỡ, cám ơn các bác nhiều.

Ps:e có dùng lisp kèm theo nhưng kết quả không được như mong muốn ạ

 

http://www.cadviet.c.../61123_11_2.rar

Thử lisp này xem

(defun c:c2e ( / ss lst fuzz fid sosanh)
  (defun sosanh    (e1 e2 / p1 p2)
    (setq p1 (car e1)      p2 (car e2)    )
    (if    (equal (car p1) (car p2) fuzz)
            (> (cadr p1) (cadr p2))
      (< (car p1) (car p2))
    )  )
 (setq   lst        (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "TEXT"))))))
     fuzz    (* (cdr (assoc 40 (entget (car lst)))) 10.0)   
                    lst    (mapcar '(lambda (e) (cons (cdr (assoc 10 (entget e))) (cdr (assoc 1 (entget e))))) lst)   
        lst (vl-sort lst 'sosanh)  
   fid     (open (getfiled "Chon file de save" "" "csv" 1) "w")  )  
  (foreach e lst
        (princ (strcat (cdr e)"\n") fid)              )    
  (close fid))

  • 0

#4 transduc

transduc

    biết zoom

  • Members
  • Pip
  • 11 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 03 December 2013 - 09:43 PM

Thử lisp này xem

 

(defun c:c2e ( / ss lst fuzz fid sosanh)
  (defun sosanh    (e1 e2 / p1 p2)
    (setq p1 (car e1)      p2 (car e2)    )
    (if    (equal (car p1) (car p2) fuzz)
            (> (cadr p1) (cadr p2))
      (< (car p1) (car p2))
    )  )
 (setq   lst        (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "TEXT"))))))
     fuzz    (* (cdr (assoc 40 (entget (car lst)))) 10.0)   
                    lst    (mapcar '(lambda (e) (cons (cdr (assoc 10 (entget e))) (cdr (assoc 1 (entget e))))) lst)   
        lst (vl-sort lst 'sosanh)  
   fid     (open (getfiled "Chon file de save" "" "csv" 1) "w")  )  
  (foreach e lst
        (princ (strcat (cdr e)"\n") fid)              )    
  (close fid))

lisp bác gửi giống lisp e gửi kèm mà, kết quả không như mong đợi chứ, mãi mà không làm được.chán


  • 0

#5 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 04 December 2013 - 09:59 AM

lisp bác gửi giống lisp e gửi kèm mà, kết quả không như mong đợi chứ, mãi mà không làm được.chán

Bạn nghĩ sao đã thử lisp trên chưa??? 

không giống như bạn nghĩ đâu thử rồi sẽ biết

?

?

?

P/Smình đang lay hoay sửa dùm bạn ai ngờ lisp của bạn transduc đã làm rồi.


  • 0

#6 transduc

transduc

    biết zoom

  • Members
  • Pip
  • 11 Bài viết
Điểm đánh giá: -1 (bình thường)

Đã gửi 05 December 2013 - 09:14 AM

Xem ra không mấy ai quan tâm rồi.


  • -1

#7 huunhantvxdts

huunhantvxdts

    biết dimbaseline

  • Members
  • PipPipPipPipPip
  • 366 Bài viết
Điểm đánh giá: 53 (tàm tạm)

Đã gửi 05 December 2013 - 02:03 PM

Xem ra không mấy ai quan tâm rồi.

Bạn nghỉ sao???

Đã sửa lại cho bạn rồi mà bạn ko dùng a????

 

P/S: Lisp đã sửa rồi nhưng nó giống với lisp ở trên của bạn ndtnv nên mình ko up lên


  • 0