Đến nội dung


Hình ảnh

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


  • Please log in to reply
4 replies to this topic

#1 midsky81

midsky81

    Chưa sử dụng CAD

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

Đã gửi 22 April 2013 - 03:07 PM

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.c...18868_dothi.rar


  • 0

#2 Acad2013

Acad2013

    biết pan

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

Đã gửi 24 April 2013 - 12:53 AM

Của bạn đây, ứng dụng được viết bằng .Net không biết có đúng ý bạn không, chỉ mới kiểm tra trên Cad2010 và Excel2010 hy vọng không lỗi.

 

http://www.tramx.vn/...od4242013123857


  • 0

Cộng Đồng Xây Dựng.

 

Hỗ trợ và viết ứng dụng miễn phí bằng Lisp và .Net

 

http://www.tramx.vn


#3 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 24 April 2013 - 04:09 PM

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.c...18868_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.c...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))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#4 Acad2013

Acad2013

    biết pan

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

Đã gửi 24 April 2013 - 08:38 PM

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


  • 0

Cộng Đồng Xây Dựng.

 

Hỗ trợ và viết ứng dụng miễn phí bằng Lisp và .Net

 

http://www.tramx.vn


#5 ngotranminhtri9579

ngotranminhtri9579

    Chưa sử dụng CAD

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

Đã gửi 25 September 2016 - 03:11 PM

 

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.c...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!


  • 0