Đến nội dung


Hình ảnh
- - - - -

Nhờ viết lisp xuất text từ cad sang excel dạng cột theo thứ tự chọn


  • Please log in to reply
4 replies to this topic

#1 hotanphi

hotanphi

    biết vẽ polygon

  • Members
  • PipPip
  • 79 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 14 April 2014 - 09:03 AM

Trên diễn đàn cũng có nhiều lisp xuất text sang excel nhưng vẫn không được như yêu cầu cần làm, nên em mong các bác giúp đỡ:

 

Lisp yêu cầu là nhấp chuột chọn một loạt sau đó lisp sẽ xuất các text vừa chọn ra file excel hoặc CSV theo một cột với tứ tự như thứ tự pick chọn text bên cad.

Ví dụ: chọn các text theo thứ tự pick là: H1,H2,H3,4,5,7,H4.... thì khi xuất ra excel sẽ là dạng cột như sau:

H1

H2

H3

4

5

7

H4

...

...

 

Xin cảm ơn các anh.

PS: Mình đã tìm kiếm trên diễn đàn nhưng ko thấy có lisp như vậy. Ko biết nếu đã có nhờ anh em chon xin link.


  • 0

#2 hochoaivandot

hochoaivandot

    biết dimradius

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

Đã gửi 14 April 2014 - 09:17 AM

Đưa file lên đi bạn. Tôi viết cho. Hình như bạn yêu cầu vấn đề này ở nhiều chủ đề rồi đúng không? Đưa file cad để check đi bạn


  • 0

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#3 hotanphi

hotanphi

    biết vẽ polygon

  • Members
  • PipPip
  • 79 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 14 April 2014 - 09:37 AM

Xin cảm ơn bạn. Mình mới nhờ lần đầu tiên bạn ạh và cũng là chủ đề duy nhất. Đây là file cad

http://www.cadviet.c...3/104866_vd.dwg


  • 0

#4 hochoaivandot

hochoaivandot

    biết dimradius

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

Đã gửi 14 April 2014 - 10:37 AM

Đây bạn. Test thử nếu có gì thì Reply liền nhé

Xin cảm ơn bạn. Mình mới nhờ lần đầu tiên bạn ạh và cũng là chủ đề duy nhất. Đây là file cad
http://www.cadviet.c...3/104866_vd.dwg


(defun LM:writecsv ( lst csv / des sep )
(if (setq des (open csv "w"))
(progn
(setq sep (cond ((vl-registry-read "HKEY_CURRENT_USER\\Control Panel\\International" "sList")) (",")))
(foreach row lst (write-line (LM:lst->csv row sep) des))
(close des)
t
)
)
)
(defun LM:lst->csv ( lst sep )
(if (cdr lst)
(strcat (LM:csv-addquotes (car lst) sep) sep (LM:lst->csv (cdr lst) sep))
(LM:csv-addquotes (car lst) sep)
)
)

(defun LM:csv-addquotes ( str sep / pos )
(cond
( (wcmatch str (strcat "*[`" sep "\"]*"))
(setq pos 0)
(while (setq pos (vl-string-position 34 str pos))
(setq str (vl-string-subst "\"\"" "\"" str pos)
pos (+ pos 2)
)
)
(strcat "\"" str "\"")
)
( str )
)
)

(defun C:ttt(/ lst ss i el x fn)
(setq lst (list) ss (ssget (list (cons 0 "TEXT"))) )
(repeat (setq i (sslength ss))
(setq x (ssname ss (setq i (1- i))))
(setq el (entget x))
(if (= (cdr (assoc 0 el)) "TEXT")
(setq lst (append lst (list (list (cdr (assoc 1 el))))))
)
)
(setq fn (vl-filename-mktemp nil nil ".csv"))
(if (and lst (LM:WriteCSV (reverse lst) fn))
(startapp "explorer" fn)
)
)

  • 2

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#5 hotanphi

hotanphi

    biết vẽ polygon

  • Members
  • PipPip
  • 79 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 14 April 2014 - 10:45 AM

Đây bạn. Test thử nếu có gì thì Reply liền nhé


(defun LM:writecsv ( lst csv / des sep )
(if (setq des (open csv "w"))
(progn
(setq sep (cond ((vl-registry-read "HKEY_CURRENT_USER\\Control Panel\\International" "sList")) (",")))
(foreach row lst (write-line (LM:lst->csv row sep) des))
(close des)
t
)
)
)
(defun LM:lst->csv ( lst sep )
(if (cdr lst)
(strcat (LM:csv-addquotes (car lst) sep) sep (LM:lst->csv (cdr lst) sep))
(LM:csv-addquotes (car lst) sep)
)
)

(defun LM:csv-addquotes ( str sep / pos )
(cond
( (wcmatch str (strcat "*[`" sep "\"]*"))
(setq pos 0)
(while (setq pos (vl-string-position 34 str pos))
(setq str (vl-string-subst "\"\"" "\"" str pos)
pos (+ pos 2)
)
)
(strcat "\"" str "\"")
)
( str )
)
)

(defun C:ttt(/ lst ss i el x fn)
(setq lst (list) ss (ssget (list (cons 0 "TEXT"))) )
(repeat (setq i (sslength ss))
(setq x (ssname ss (setq i (1- i))))
(setq el (entget x))
(if (= (cdr (assoc 0 el)) "TEXT")
(setq lst (append lst (list (list (cdr (assoc 1 el))))))
)
)
(setq fn (vl-filename-mktemp nil nil ".csv"))
(if (and lst (LM:WriteCSV (reverse lst) fn))
(startapp "explorer" fn)
)
)

Xin cảm ơn bạn. Mình thử được rồi. Chúc bạn sức khỏe và thành công


  • 0