Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
midsky81

Chuyển tọa độ điểm từ file excel sang cad

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

Chào cả nhà. Mình có một file 2 cột ( tương ứng tọa độ X,Y) trên excel. Mình muốn chuyển nó thành các tọa độ điểm trong autocad( dạng chấm để có thể nhìn thấy hình dáng của đồ thị). Nhờ các bạn hướng dẫn giúp mình. File upload bên dưới( tọa độ X, Y có được từ thí nghiệm, mình muốn các tọa độ điểm này hiển thị trong autocard dưới dạng điểm(chấm))

Cảm ơn mọi người rất nhiều.http://www.cadviet.com/upfiles/3/118868_dothi.rar

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

 

Chào cả nhà. Mình có một file 2 cột ( tương ứng tọa độ X,Y) trên excel. Mình muốn chuyển nó thành các tọa độ điểm trong autocad( dạng chấm để có thể nhìn thấy hình dáng của đồ thị). Nhờ các bạn hướng dẫn giúp mình. File upload bên dưới( tọa độ X, Y có được từ thí nghiệm, mình muốn các tọa độ điểm này hiển thị trong autocard dưới dạng điểm(chấm))

Cảm ơn mọi người rất nhiều.http://www.cadviet.com/upfiles/3/118868_dothi.rar

Hề hề hề,

Khỏi chấm mút chi cả, mình viết lisp vẽ luôn đồ thị cho bạn bằng đường pline nè. không khoái dùng thì quẳng nó vô sọt rác cũng không sao.

Hề hề hề.

http://www.cadviet.com/upfiles/3/5194_vedothidiem.lsp

 

 

(defun c:vdtd ( / oldos fn f plst str p lst n)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(command "undo" "be")
(setq  fn (getfiled "Select Data File" "" "csv" 0)
            f (open fn "r")  ) 
(setq plst (list))
(while (/= (setq str (read-line f)) nil) 
          (setq lst (separate str (chr 44)))
          (setq p (list (atof (cadr lst)) (atof (car lst))))
          (setq plst (append plst (list p)))        
)
(setq plst (cdr plst))
(setq n (length plst))
(command "pline"
      (foreach p plst
            (command p)
      )
       "")
(command "undo" "e")
(setvar "osmode" oldos)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun Separate (S sym / i L ch)
(setq i 0 L nil)
(while (< i (strlen S))
      (setq i (1+ i) ch (substr S i 1))
      (if (= ch sym) (progn
(setq
     L (append L (list (substr S 1 (- i 1))))
     S (substr S (1+ i) (- (strlen S) i))
     i 0
)
      ))
)
(append L (list S))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

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

Nếu không quen dùng *.dll bạn có thể dùng Lisp này...

Gõ lệnh: e2p xuất hiện hộp thoại, sau đó bạn chọn file excel có chứa các tập hợp điểm của bạn.

 

(defun Add_point(ExcelFile / xlapp ex-wb CurReg sheet MaxRow cell ri mspace xx yy)
(VL-LOAD-COM)
(setq xlapp (vlax-create-object "Excel.Application"))
;(setq ex (vlax-put-property xlapp "Visible" nil))
(setq ex-wb (vlax-invoke-method (vlax-get-property xlapp 'WorkBooks) 'Open ExcelFile))
(setq CurReg (vlax-get-property (vlax-get-property
(vlax-get-property xlapp "ActiveSheet") "Range" "A1") "CurrentRegion")
)
(setq MaxRow (vlax-get-property (vlax-get-property CurReg "Rows") "Count"))
(setq sheet (vlax-get-property ex-wb "ActiveSheet"))
(setq cell (vlax-get-property sheet "Cells"))
(setq ri 2)
(setq mspace (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object))))
(while (<= ri MaxRow)
(setq xx (vlax-variant-value (vlax-get-property (vlax-variant-value (vlax-get-property cell "item" ri 1)) 'Value2)))
(setq yy (vlax-variant-value (vlax-get-property (vlax-variant-value (vlax-get-property cell "item" ri 2)) 'Value2)))
(vla-AddPoint mspace (vlax-3d-point xx yy))
(setq ri (1+ ri))
)
(vlax-invoke-method (vlax-get-property xlapp "ActiveWorkbook") 'Close :vlax-False)
(vlax-invoke-method xlapp 'Quit)
(vlax-release-object xlapp)(gc)
(setq xlapp nil)
(princ)
(princ)
)
(defun c:e2p(/ ExcelFile)
(setq ExcelFile (getfiled "Ch\U+1ECDn File Excel" (getvar "DWGPREFIX") "Xlsx;Xls" 8))
(if ExcelFile (Add_point ExcelFile))
)

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

 

Hề hề hề,

Khỏi chấm mút chi cả, mình viết lisp vẽ luôn đồ thị cho bạn bằng đường pline nè. không khoái dùng thì quẳng nó vô sọt rác cũng không sao.

Hề hề hề.

http://www.cadviet.com/upfiles/3/5194_vedothidiem.lsp

 


 

(defun c:vdtd ( / oldos fn f plst str p lst n)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(command "undo" "be")
(setq  fn (getfiled "Select Data File" "" "csv" 0)
            f (open fn "r")  ) 
(setq plst (list))
(while (/= (setq str (read-line f)) nil) 
          (setq lst (separate str (chr 44)))
          (setq p (list (atof (cadr lst)) (atof (car lst))))
          (setq plst (append plst (list p)))        
)
(setq plst (cdr plst))
(setq n (length plst))
(command "pline"
      (foreach p plst
            (command p)
      )
       "")
(command "undo" "e")
(setvar "osmode" oldos)
(princ)
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun Separate (S sym / i L ch)
(setq i 0 L nil)
(while (< i (strlen S))
      (setq i (1+ i) ch (substr S i 1))
      (if (= ch sym) (progn
(setq
     L (append L (list (substr S 1 (- i 1))))
     S (substr S (1+ i) (- (strlen S) i))
     i 0
)
      ))
)
(append L (list S))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Rất cảm ơn lisp của anh và chủ topic, xin lỗi vì em đã đào mộ nhưng em load lisp của anh về mà không dùng được, nó đòi file dữ liệu là csv, em dùng excell chuyển sang csv mà load vào cad thì báo lỗi, anh có thể giúp em được không ạ? Em đang rất cần lisp này, em cảm ơn anh nhiều!

  • Like 1

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
Đăng nhập để thực hiện theo  

×