Đến nội dung


Hình ảnh
- - - - -

Xuất dữ liệu Excel qua Acad


  • Please log in to reply
7 replies to this topic

#1 Cuibappro

Cuibappro

    biết pan

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

Đã gửi 29 November 2010 - 03:41 PM

Anh em trên diễn đàn cadviet!
Là người không rành về lisp, nhưng là dân XD, lại luôn tiếp xúc với những yêu cầu về truy xuất dữ liệu thông qua cad. nay e có 1 file excel sau, nhờ a xem và hỗ trợ viết lisp để xuất nó qua cad (với mỗi hàng là 1 điểm-point) với số lượng điểm không giới hạn, có thể chia số thứ tự là 1 layer; x,y,z là 1 layer; ghi chú là 1 layer. Mong a và mọi người hỗ trợ giúp. Rất mong được sự trợ giúp của a và mọi người. file excel sau: http://www.cadviet.c..._lieu_excel.rar
  • 0

#2 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 29 November 2010 - 05:29 PM

Anh em trên diễn đàn cadviet!
Là người không rành về lisp, nhưng là dân XD, lại luôn tiếp xúc với những yêu cầu về truy xuất dữ liệu thông qua cad. nay e có 1 file excel sau, nhờ a xem và hỗ trợ viết lisp để xuất nó qua cad (với mỗi hàng là 1 điểm-point) với số lượng điểm không giới hạn, có thể chia số thứ tự là 1 layer; x,y,z là 1 layer; ghi chú là 1 layer. Mong a và mọi người hỗ trợ giúp. Rất mong được sự trợ giúp của a và mọi người. file excel sau: http://www.cadviet.c..._lieu_excel.rar

Bạn tạo 1 layer tên là Point trước rồi mở bản excel lên. Copy cột point cho vào notepad và lưu dưới dạng đuôi scr. Tương tự với cột text và lưu với đuôi scr tương tự. Vào autocad đánh lệnh scr rồi chọn đường dẫn tới file vừa lưu. mỗi lần fun điểm và fun text bạn tạo 1 layer thì nó tự nhận layer hiện thời làm layer. Chúc bạn thành công
http://www.cadviet.c...ieu_excel_1.rar
  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#3 Cuibappro

Cuibappro

    biết pan

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

Đã gửi 30 November 2010 - 02:00 PM

Bạn tạo 1 layer tên là Point trước rồi mở bản excel lên. Copy cột point cho vào notepad và lưu dưới dạng đuôi scr. Tương tự với cột text và lưu với đuôi scr tương tự. Vào autocad đánh lệnh scr rồi chọn đường dẫn tới file vừa lưu. mỗi lần fun điểm và fun text bạn tạo 1 layer thì nó tự nhận layer hiện thời làm layer. Chúc bạn thành công
http://www.cadviet.c...ieu_excel_1.rar

Trước tiên xin cám ơn bạn nhiều. mình sẽ thử nó thế nào. nhưng ngụ ý của mình ở đây là nếu có 1 đoạn lisp thì hay hơn. cái này dạng như là phun tọa độ của các điểm lên trên cad để vẽ bình đồ (bản đồ địa hình) vậy đó. Nhưng trước hết tui sẽ thử cách của bạn xem thế nào. và đồng thời mình cũng đang tự tìm hiểu lisp. Thanks bạn nhiều. Chúc bạn sức khỏe.
  • 0

#4 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 30 November 2010 - 04:50 PM

Trước tiên xin cám ơn bạn nhiều. mình sẽ thử nó thế nào. nhưng ngụ ý của mình ở đây là nếu có 1 đoạn lisp thì hay hơn. cái này dạng như là phun tọa độ của các điểm lên trên cad để vẽ bình đồ (bản đồ địa hình) vậy đó. Nhưng trước hết tui sẽ thử cách của bạn xem thế nào. và đồng thời mình cũng đang tự tìm hiểu lisp. Thanks bạn nhiều. Chúc bạn sức khỏe.

Đây. Lisp của bạn đây
(defun c:rrr(/ data ten f h line str Code Stt X Y Z ELE Code chon Pnt)
(vl-load-com)
(defun Split(str / i kitu line lst txtPhanbiet)
(setq i 1 txtPhanbiet (strcat(chr 9)(chr 32)(chr 44)))
(while (< i (strlen str))
(setq kitu (substr str i 1))
(if (vl-string-search kitu txtPhanbiet)
(progn
(if (null Lst)
(setq Lst (list (substr Str 1 (- i 1))))
(setq Lst (append Lst (list (read (substr Str 1 (- i 1)))))))
(setq Str (substr Str (+ i 1)) i 1))
(setq i (1+ i)) ) )
(setq Lst (append Lst (list Str))) )
(or *h* (setq *h* 2 ))
(initget 6)
(setq h (getdist (strcat "\nNhap chieu cao Text <" (rtos *h*) "> :")) )
(if h (setq *h* h) (setq h *h*))
(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(setq f (open (findfile ten) "r"))
(while
(setq Line (read-line f))
(if (wcmatch Line (strcat "*"(chr 9)"*,*"(chr 32)"*,*"(chr 44)"*"))
(progn
(setq data (split Line))
(setq Stt (nth 0 data))
(setq X (nth 1 data))
(setq Y (nth 2 data))
(setq Z (nth 3 data))
(setq Code (nth 4 data))
(setq ELE (rtos Z 2 2))
(setq Pnt (list X Y Z))
(Command "layer" "make" "Point" "" )
(command "Point" Pnt)
(Command "layer" "make" "Text" "" )
(command "Text" Pnt h 0 Code)
) ) ) ) )
(command "zoom" "extents")
(princ)
)

  • 2



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#5 hoanthanh2010

hoanthanh2010

    biết pan

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

Đã gửi 30 November 2010 - 05:02 PM

cho mình hỏi,nếu chuyển đổi như vậy có tiện ích gì so vơi mình copy tu exell sang cad bang pass special, khi mình thay đổi các phép tính trong exell thì trong cad có đổi theo không? dùng lips đấy như thế nào vây? cảm ơn cả nhà
  • 0

#6 Cuibappro

Cuibappro

    biết pan

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

Đã gửi 01 December 2010 - 12:28 PM

Đây. Lisp của bạn đây

(defun c:rrr(/ data ten f h line str Code Stt X Y Z ELE Code chon Pnt)
(vl-load-com)
(defun Split(str / i kitu line lst txtPhanbiet)
(setq i 1 txtPhanbiet (strcat(chr 9)(chr 32)(chr 44)))
(while (< i (strlen str))
(setq kitu (substr str i 1))
(if (vl-string-search kitu txtPhanbiet)
(progn
(if (null Lst)
(setq Lst (list (substr Str 1 (- i 1))))
(setq Lst (append Lst (list (read (substr Str 1 (- i 1)))))))
(setq Str (substr Str (+ i 1)) i 1))
(setq i (1+ i)) ) )
(setq Lst (append Lst (list Str))) )
(or *h* (setq *h* 2 ))
(initget 6)
(setq h (getdist (strcat "\nNhap chieu cao Text <" (rtos *h*) "> :")) )
(if h (setq *h* h) (setq h *h*))
(if (setq ten (getfiled "Chon File txt" (getvar "dwgprefix") "txt" 8))
(progn
(setq f (open (findfile ten) "r"))
(while
(setq Line (read-line f))
(if (wcmatch Line (strcat "*"(chr 9)"*,*"(chr 32)"*,*"(chr 44)"*"))
(progn
(setq data (split Line))
(setq Stt (nth 0 data))
(setq X (nth 1 data))
(setq Y (nth 2 data))
(setq Z (nth 3 data))
(setq Code (nth 4 data))
(setq ELE (rtos Z 2 2))
(setq Pnt (list X Y Z))
(Command "layer" "make" "Point" "" )
(command "Point" Pnt)
(Command "layer" "make" "Text" "" )
(command "Text" Pnt h 0 Code)
) ) ) ) )
(command "zoom" "extents")
(princ)
)

Trước tiên mình cám ơn bạn rất nhiều nha! mình sẽ thử, nếu có vấn đề sẽ nhờ bạn kiểm tra lại dùm. sẽ mời 1 kèo cafe nếu bạn ở SG và có thời gian nha! chúc bạn vui và thành công...
  • 0

#7 thanhduan2407

thanhduan2407

    biết lệnh adcenter

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

Đã gửi 01 December 2010 - 12:40 PM

Trước tiên mình cám ơn bạn rất nhiều nha! mình sẽ thử, nếu có vấn đề sẽ nhờ bạn kiểm tra lại dùm. sẽ mời 1 kèo cafe nếu bạn ở SG và có thời gian nha! chúc bạn vui và thành công...

Không vấn đề gì. Vì mình cũng mới học Lisp thôi. Có gì bạn hãy tham gia nhiều nha. Biết thì cùng chia sẻ, không biết thì ta lại hỏi mà.
  • 0



Tôi là con kiến bò trên sa mạc kiến thức bao la. Biển học thật rộng lớn







#8 duanhuudo

duanhuudo

    Chưa sử dụng CAD

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

Đã gửi 16 May 2012 - 05:20 PM

tôi có một lip phun tọa độ sử dụng fie txt cũng được mọi người dùng thửhttp://www.cadviet.c.../98098_dxyh.lsp
  • 0