Đến nội dung


Hình ảnh

Các cao thủ giúp em. (Nhập dữ liệu từ excel, vẽ hình bên cad)


  • Please log in to reply
1 reply to this topic

#1 hailongkhanh

hailongkhanh

    Chưa sử dụng CAD

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

Đã gửi 09 March 2013 - 07:57 AM

Xin các cao thủ giúp em với.

 

Em đang pha cắt vật tư là thép tấm cho dự án. Mà vẽ từng hình bên cad thì rất lâu (mỗi hình 1 file)..

Nay em muốn nhập thông số : tên tấm mã, kích thước dài và rộng.

Ví dụ : Bên excel em nhập thông số sau.

P1 200 300

P2 400 500

P3 200 300

{P1 là tên tấm mã. 200 300 là kích thước bao}

 

Sau đó khi xuất qua cad thì có file P1.dxf hoặc P1.dwg có hình chữ nhật kích thước 200x300 (không cần ghi kích thước); tương tự vậy xuất ra file P2.dxf và P3.dxf

 

Rất mong các cao thủ quan tâm.


  • 0

#2 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 09 March 2013 - 11:54 AM

Xin các cao thủ giúp em với.

 

Em đang pha cắt vật tư là thép tấm cho dự án. Mà vẽ từng hình bên cad thì rất lâu (mỗi hình 1 file)..

Nay em muốn nhập thông số : tên tấm mã, kích thước dài và rộng.

Ví dụ : Bên excel em nhập thông số sau.

P1 200 300

P2 400 500

P3 200 300

{P1 là tên tấm mã. 200 300 là kích thước bao}

 

Sau đó khi xuất qua cad thì có file P1.dxf hoặc P1.dwg có hình chữ nhật kích thước 200x300 (không cần ghi kích thước); tương tự vậy xuất ra file P2.dxf và P3.dxf

 

Rất mong các cao thủ quan tâm.

Hề hề hề,

Bạn dùng thử cái này coi sao với lưu ý sau:

1/- File dữ liệu excel bạn chuyển về file *.txt

2/- Các file được tạo thành thực chất là các block file lưu tại thư mục mặc định của CAD khi lưu file. Nếu muốn bạn có thể chỉ định thư mục để lisp lưu file vào đó.

3/- Trong trường hợp bạn muôn sử dụng với file excel thì bạn phải chuyển file này về file *.csv và thay đổi một chút trong code như sau:

+ Tại dòng code :(setq fn (getfiled "Select Data File" "" "txt" 0)  thay csv vào vị trí txt

+ Tại dòng code:  (setq txl (separate str "\t"))  thay "," vào vị trí "\t"

4/- Nếu vẫn muốn giữ nguyên file excel gốc thì vấn đề sẽ phức tạp hơn, code sẽ rắc rốii hơn nhiều và công dụng cũng chả khác là bao nên bạn hãy sử dụng tạm một trong hai phương án trên cho nó đỡ nhức đầu. Khi nào rảnh rỗi mình sẽ viết cho excel sau.

 

http://www.cadviet.c...hinhfromexl.lsp

 

 

(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))
)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
(defun c:vh ( / oldos fn f k txl p1)
(setq oldos (getvar "osmode"))
(setvar "osmode" 0)
(setq fn (getfiled "Select Data File" "" "txt" 0)
            f (open fn "r")
            k 1)
(while (and (/= (setq str (read-line f)) nil) 
                   (= (strcase (setq ans (getstring (strcat "\n Ban dang o dong du lieu thu " (rtos k 2 0) ".  Ban muon tiep tuc <y or n>: ")))) "Y") )
           (command "undo" "be")
           (setq txl (separate str "\t"))
           (command "rectangle" (setq p1 (getpoint "\n Chon diem bat dau ve")) (list (+ (car p1) (atof (nth 1 txl))) (+ (cadr p1) (atof (nth 2 txl)))) )
           (command "wblock" (nth 0 txl) "" p1 (entlast) "" )
           (setq k (1+ k))
           (command "undo" "e")
)
(close f)
(setvar "osmode" oldos)
(princ)
)
Chúc bạn vui.

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