Đến nội dung


Hình ảnh
* * * - - 2 Bình chọn

AutoCAD với Excel


  • Please log in to reply
199 replies to this topic

#141 Phiphi-

Phiphi-

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 434 Bài viết
Điểm đánh giá: 175 (tàm tạm)

Đã gửi 21 January 2010 - 09:27 PM

Sub sau sẽ tự động load những lisp trong Selection vào bản vẽ acad đang mở

Private Sub CommandButton1_Click()
Dim acad As AcadApplication, doc As AcadDocument
Dim s$, cell
Set acad = GetObject(, "AutoCAD.Application")

If Err <> 0 Then
Exit Sub
End If

acad.Visible = True
Set doc = acad.ActiveDocument
For Each cell In Selection.Cells
s = cell.Value & vbCr
doc.SendCommand (s)
Next
End Sub

Nhờ bác ndtnv giúp thêm vào file Excel dưới đây 3 ô lệnh nữa và chỉ định rõ các Cell sẽ được chọn sẳn như sau:
+ Lệnh "Option 1" chọn cell A3:A50
+ Lệnh "Option 2" chọn cell B3:B50
+ Lệnh "Option 3" chọn cell C3:C50
+ Lệnh "Option 4" chọn cell D3:D50
Làm như trên để khỏi phải lập lại thao tác select các Cell nữa.
Trong file này chỉ có 1 ô lệnh Xuat sang ACAD
Cám ơn Bác nhiều.

http://www.cadviet.c...uat_command.zip
  • 0

#142 pdhuyxn2

pdhuyxn2

    biết vẽ circle

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

Đã gửi 22 January 2010 - 08:44 AM

Nhờ bác ndtnv giúp thêm vào file Excel dưới đây 3 ô lệnh nữa và chỉ định rõ các Cell sẽ được chọn sẳn như sau:
+ Lệnh "Option 1" chọn cell A3:A50
+ Lệnh "Option 2" chọn cell B3:B50
+ Lệnh "Option 3" chọn cell C3:C50
+ Lệnh "Option 4" chọn cell D3:D50
Làm như trên để khỏi phải lập lại thao tác select các Cell nữa.
Trong file này chỉ có 1 ô lệnh Xuat sang ACAD
Cám ơn Bác nhiều.

http://www.cadviet.c...uat_command.zip

Vị trí text tại cell chuyển sang cad lần lượt theo điểm pick chứ không phải là toạ độ x,y " Pick mỗi điểm trên mặt bản vẽ và suất text từ hàng cell từ excel sang lần lượt từ ô A1 đến ô A500.
  • 0

#143 Phiphi-

Phiphi-

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 434 Bài viết
Điểm đánh giá: 175 (tàm tạm)

Đã gửi 22 January 2010 - 09:24 AM

Vị trí text tại cell chuyển sang cad lần lượt theo điểm pick chứ không phải là toạ độ x,y " Pick mỗi điểm trên mặt bản vẽ và suất text từ hàng cell từ excel sang lần lượt từ ô A1 đến ô A500.

Bác hơi bị nhầm với vấn đề khác rồi.
Tuy nhiên cũng rất cám ơn Bác đã trả lời. Cheers!
  • 0

#144 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 22 January 2010 - 09:33 PM

Nhờ bác ndtnv giúp thêm vào file Excel dưới đây 3 ô lệnh nữa và chỉ định rõ các Cell sẽ được chọn sẳn như sau:
+ Lệnh "Option 1" chọn cell A3:A50
+ Lệnh "Option 2" chọn cell B3:B50
+ Lệnh "Option 3" chọn cell C3:C50
+ Lệnh "Option 4" chọn cell D3:D50
Làm như trên để khỏi phải lập lại thao tác select các Cell nữa.
Trong file này chỉ có 1 ô lệnh Xuat sang ACAD
Cám ơn Bác nhiều.

http://www.cadviet.c...uat_command.zip

Chào Phiphi
Sáng nay đọc bài của Phiphi rồi nhưng trên Cty không có Office nên đành chịu.

Đây là file Excel có 3 ô lệnh :
- Xuat sang ACAD : xuất sang Acad cel A3:A5
- Xuat sang ACAD B3:B50 : xuất sang Acad cel B3:B5
- Xuat sang ACAD C3:C50 : xuất sang Acad cel C3:C5

Chú ý : chỉ xuất 3 cell đầu tiên của cột sang CAD.
Bác có thể vào vào Visual Basic Editor sửa lại cho phù hợp với công việc, cũng đơn giản thôi.
"Option 4" tui để dành cho bác "ngâm cứu."
Nguyên tắc trong lập trình là hạn chế sử dụng lệnh "SendCommand".

Link file Excel
  • 1

#145 Phiphi-

Phiphi-

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 434 Bài viết
Điểm đánh giá: 175 (tàm tạm)

Đã gửi 22 January 2010 - 10:23 PM

Chào Phiphi
Sáng nay đọc bài của Phiphi rồi nhưng trên Cty không có Office nên đành chịu.

Đây là file Excel có 3 ô lệnh :
- Xuat sang ACAD : xuất sang Acad cel A3:A5
- Xuat sang ACAD B3:B50 : xuất sang Acad cel B3:B5
- Xuat sang ACAD C3:C50 : xuất sang Acad cel C3:C5

Chú ý : chỉ xuất 3 cell đầu tiên của cột sang CAD.
Bác có thể vào vào Visual Basic Editor sửa lại cho phù hợp với công việc, cũng đơn giản thôi.
"Option 4" tui để dành cho bác "ngâm cứu."
Nguyên tắc trong lập trình là hạn chế sử dụng lệnh "SendCommand".

Link file Excel

Chào Gia_bach. Cũng xài cùng 1 file Excel này trên 1 PC, nhưng khi mở các file CAD khác nhau để thử. Sau khi click vào các nút lệnh thì có bản CAD vẽ ra các Text đọc bình thường nhưng cũng có b/v khác thì Text vẽ ra không đọc được vỉ bị xoay 90 độ hướng đứng. Vậy dùng biến gì để set up b/v CAD luôn xuất ra Text nằm ngang. Thanks you.

http://www.cadviet.c.../2/textxoay.zip
  • 0

#146 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 22 January 2010 - 10:30 PM

Chào Gia_bach. Cũng xài cùng 1 file Excel này trên 1 PC, nhưng khi mở các file CAD khác nhau để thử. Sau khi click vào các nút lệnh thì có bản CAD vẽ ra các Text đọc bình thường nhưng cũng có b/v khác thì Text vẽ ra không đọc được vỉ bị xoay 90 độ hướng đứng. Vậy dùng biến gì để set up lại b/v dể CAD luôn xuất ra Text nằm ngang. Thanks you.
Hình đã gửi

Hình đã gửi

Cái này do trong mã lệnh mà Phiphi post thì Text nó bị xoay 90 độ hướng đứng đó
Ví dụ :
(Command "text" "J" "BL" "254,-460,0" "18" "90" "MEMBER DESCRIPTION")

Còn biến hệ thống để thiết lập Text luôn nằm ngang (0 độ) là biến Angbase. Phiphi thiết lập cho biến này giá trị bằng 0
  • 1

#147 Phiphi-

Phiphi-

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 434 Bài viết
Điểm đánh giá: 175 (tàm tạm)

Đã gửi 22 January 2010 - 10:56 PM

Cái này do trong mã lệnh mà Phiphi post thì Text nó bị xoay 90 độ hướng đứng đó
Ví dụ :
(Command "text" "J" "BL" "254,-460,0" "18" "90" "MEMBER DESCRIPTION")

Còn biến hệ thống để thiết lập Text luôn nằm ngang (0 độ) là biến Angbase. Phiphi thiết lập cho biến này giá trị bằng 0

Dòng lệnh trên PP biết là dùng 90 độ khi viết các command đó.
Trong 2 file CAD đã post ở bài trên. Hình như còn có gì nữa vì để có Text đọc được thì 1 file Text bi xoay phải set 270 độ
Còn file Text OK thì set 90 độ. Bác Tue_NV xem giúp nhé. Thk.
  • 0

#148 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 23 January 2010 - 09:34 AM

Dòng lệnh trên PP biết là dùng 90 độ khi viết các command đó.
Trong 2 file CAD đã post ở bài trên. Hình như còn có gì nữa vì để có Text đọc được thì 1 file Text bi xoay phải set 270 độ
Còn file Text OK thì set 90 độ. Bác Tue_NV xem giúp nhé. Thk.

Biến angdir = 0 thiết lập góc quay + ngược chiều kim đồng hồ
Biến angdir = 1 thiết lập góc quay + thuận chiều kim đồng hồ

Còn biến hệ thống Angbase = 0 để thiết lập Text luôn nằm ngang 0 độ (song song với trục OX)

file bản vẽ Text OK của Phiphi :
Biến Angdir = 1 => thiết lập góc quay + thuận chiều kim đồng hồ
Biến Angbase = 90 => thiết lập góc (0 độ) của Text hợp với trục Ox 1 góc 90 độ

file bản vẽ Textxxoay của Phiphi :
Biến Angdir = 0 thiết lập góc quay + ngược chiều kim đồng hồ
Biến Angbase = 0 => thiết lập góc (0 độ) của Text hợp với trục Ox 1 góc 0 độ (hay song song với trục Ox)

Phiphi xem lại 2 biến này và ngẫm nghĩ -> sẽ giải thích được vấn đề của phiphi
Chúc thành công :undecided:
  • 1

#149 Phiphi-

Phiphi-

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 434 Bài viết
Điểm đánh giá: 175 (tàm tạm)

Đã gửi 23 January 2010 - 01:01 PM

Thanks Tue_NV.
Vậy thì chỉ cần thêm 2 dòng này sẽ OK:
(command "angdir" "1")
(command "angbase" "0")
Tất cả Text sẽ set ở O độ
  • 0

#150 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 23 January 2010 - 01:49 PM

Thanks Tue_NV.
Vậy thì chỉ cần thêm 2 dòng này sẽ OK:
(command "angdir" "1")
(command "angbase" "0")
Tất cả Text sẽ set ở O độ

Cái này có ý nghĩa tương đối thôi Phi phi. Nó tuỳ thuộc vào ý đồ lập trình của User
Tức là chữ OK của Phiphi mang 1 ý nghĩa tương đối.

Cái chính gốc là bạn phải nắm vững bản chất của nó. OK?

Chúc vui vẻ.
  • 1

#151 Phiphi-

Phiphi-

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 434 Bài viết
Điểm đánh giá: 175 (tàm tạm)

Đã gửi 23 January 2010 - 02:19 PM

...
"Option 4" tui để dành cho bác "ngâm cứu."
Nguyên tắc trong lập trình là hạn chế sử dụng lệnh "SendCommand".

Cám ơn Gia_bach.
Các nút lệnh khác PP vừa mới thực hiện xong theo hướng dẩn sau:

+ Right click any ToolBar and choose Control ToolBox.
+ Click the CommandButton and click and drag in your worksheet to position and size it.
+ Right click the button and choose View Code.
+ Change the code.
+ Press Alt+F11 to return to your workbook.
+ Click the Design icon (top left) in the Control Toolbox to exit design mode, and close the ToolBox.
+ Make some selections and click the button.
Xin Bác nói về "Nguyên tắc trong lập trình là hạn chế sử dụng lệnh "SendCommand". "
  • 0

#152 ndtnv

ndtnv

    biết lệnh minsert

  • Members
  • PipPipPipPipPipPip
  • 437 Bài viết
Điểm đánh giá: 384 (khá)

Đã gửi 01 February 2010 - 08:59 AM

Chào Phiphi
Sáng nay đọc bài của Phiphi rồi nhưng trên Cty không có Office nên đành chịu.

Đây là file Excel có 3 ô lệnh :
- Xuat sang ACAD : xuất sang Acad cel A3:A5
- Xuat sang ACAD B3:B50 : xuất sang Acad cel B3:B5
- Xuat sang ACAD C3:C50 : xuất sang Acad cel C3:C5

Chú ý : chỉ xuất 3 cell đầu tiên của cột sang CAD.
Bác có thể vào vào Visual Basic Editor sửa lại cho phù hợp với công việc, cũng đơn giản thôi.
"Option 4" tui để dành cho bác "ngâm cứu."
Nguyên tắc trong lập trình là hạn chế sử dụng lệnh "SendCommand".

Link file Excel

Bạn có thể dùng
Range("A3", Range("A65536").End(xlUp)).Cells
để xuất các ô từ A3 đến ô có data cuối cùng trong cột A
Hoặc
Range("A3", Range("A50").End(xlUp)).Cells
để xuất các ô từ A3 đến ô có data cuối cùng trong cột A từ A50 trở lên
1 VD minh họa cho "Nguyên tắc trong lập trình là hạn chế sử dụng lệnh "SendCommand".
Nếu bạn sử dụng code trên cho file excel từ xuat_command__autocad_20072008_1.rar
thì vì ô B373 là ô có data cuối trong cột B nên các ô từ B6-B373 sẽ gây ra lỗi vì trong đó không phải là các lệnh đúng của CAD
  • 1

#153 ducboss

ducboss

    biết vẽ line

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

Đã gửi 23 February 2010 - 05:30 PM

Lisp chỉ có thể làm việc (read và write) với text file, không xâm nhập được vào cấu trúc của *.xls (nếu được, chắc bác Bill Gate đã phá sản rồi!).
Có 2 dạng file mà Lisp và Excel cùng hiểu và xử lý được là *.txt và *.csv. Mình xin phân tích kỹ hơn:
Text file là... file dạng text, nội dung gồm tập hợp các ký tự ASCII, thường là *.txt. Cho dù bạn có đổi nó thành *.abc, *.def, *.doc... thậm chí là *.xls cũng được(!) nhưng bản chất của nó vẫn là text file (cốt khỉ vẫn là... cốt khỉ!).
Một bảng dữ liệu bao gồm các số liệu được tổ chức theo hàng (row - record) và cột (column - field). Excel hiểu bảng dữ liệu của text file như sau:
1) Đối với file *.txt:
- Field: căn cứ vào ký tự TAB ("\t")
- Record: căn cứ vào ký tự xuống dòng ("\n")
2) Đối với file *.csv (Comma Separated Value File):
- Field: phân biệt bằng dấu phẩy (,)
- Record: theo ký tự xuống dòng như trên
Bạn có thể mở 2 kiểu file trên bằng Excel để xem, sửa, bổ sung; có thể dùng được các công cụ của Excel (ngay cả gán function) rất thuận tiện cho biên tập. Nhưng khi save, bạn phải giữ nguyên định dạng cũ (Excel sẽ hiện cảnh báo đối với các trường hợp này). Nếu bạn save theo dạng *.xls, toàn bộ cấu trúc file sẽ thay đổi (theo đúng kiểu của MicroSoft), và sau đó chương trình lisp của bạn sẽ không thể nào đọc nó được nữa!
Nếu bạn muốn làm việc trực tiếp với *.xls thì phải dùng VBA (MicroSoft Visual Basic for Application) thay cho Lisp. VBA trong Acad là sản phẩm hợp tác của Autodesk và MicroSoft nên việc hiểu và xử lý *.xls là "chuyện nhỏ".
Nếu bạn có hứng thú với VBA, chúng ta có thể đề nghị Admin lập thêm một box mới cho mục này.

PS:
Khi bạn dùng Excel để open 3 kiểu file *.txt, *.csv, *.xls, chúng hiển thị giống nhau nhưng bản chất khác nhau một trời một vực:
- *.txt và *.csv: chỉ chứa giá trị (value)
- *.xls: ngoài value, mỗi cell của nó còn chứa rất nhiều thông tin khác: định dạng (format), công thức (function), tham chiếu (reference), liên kết (link).... và nhiều thứ khác nữa!

Thông tin hữu ích. Thanks!
  • 0

#154 ducboss

ducboss

    biết vẽ line

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

Đã gửi 25 February 2010 - 06:02 PM

Bạn thử lisp này xem thế nào cho ý kiến (XLD)
Đây bạn

mình test thử rồi, cad2004 nó báo lỗi Select objects: ; error: bad argument type: stringp nil
không chạy được
  • 0

#155 ducboss

ducboss

    biết vẽ line

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

Đã gửi 25 February 2010 - 06:10 PM

Tôi đã viết mã đọc files Excel trực tiếp từ AutoCad bằng ngôn ngữ AutoLISP . Chương trình chạy tốt trên Excel200, 2002,2003 còn Excel 2007 tôi chưa thử . Còn AutoCad đã chạy trên Cad 2000,2002,2004,các bản khác chưa dùng.
Tôi đã sử dụng đối tượng ActiveX trong AutoLISP để đọc dữ liệu trong files Excel (đối tượng ActiveCell)

sao không chạy được bạn ạ!
  • 0

#156 langtuht86

langtuht86

    biết pan

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

Đã gửi 25 February 2010 - 06:46 PM

Cái này có vẽ hay lỗi lắm các bạn ạ
  • 0

#157 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 16 March 2010 - 04:48 PM

Góp ý: với các code khá dài, bạn nên cho nó vào hộp codebox để bài viết gọn gàng (mình đã làm giúp bạn như trên)

Chương trình này rất hay, tập hợp một loạt functions để làm việc với excel bằng lisp.
Công dụng các functions:
- getexcel: 3 đối số là file_name, sheet_name và max_range. Return: list dữ liệu từ cell A1 đến cell ứng với max_range
- getcell: lấy dữ liệu tại 1 cell, được chỉ định bằng địa chỉ cell
- openexcel: mở file *.xls có trên đĩa
- putcell: gán giá trị cho cell
- closeexcel: đóng file *xls đã open ở trên
Để hiểu rõ hơn, bạn ghép thêm vào code có sẵn của bạn đoạn sau:

;;;Vi du ap dung cac function tren
;;;---------------------------------------------------------------------
(defun C:VD1()
(vl-load-com)
(setq fn (getfiled "Select Excel File" "" "xls" 0))
(getexcel fn "sheet1" "D5")
)
;;;---------------------------------------------------------------------
(defun C:VD2() (alert (strcat "B3 = " (getcell "B3"))))
;;;---------------------------------------------------------------------
(defun C:VD3() (openexcel fn "sheet4" T))
;;;---------------------------------------------------------------------
(defun C:VD4() (putcell "B10" (list "How" "are you?")))
;;;---------------------------------------------------------------------
(defun C:VD5() (closeExcel fn))

Tạo 1 file *.xls, ghi ở sheet1 các số liệu tuỳ ý, khoảng chừng 4 cột, 6 hàng. Save và thoát hẳn excel
lần lượt các lệnh từ VD1 đến VD5:
- VD1: lấy dữ liệu trong sheet1, từ cell A1 đến cell D5 của file mà bạn chỉ định và chuyển thành list. Bạn bấm F2 sau khi chạy xong sẽ thấy
- VD2: lấy dữ liệu ở cell B3
- VD3: mở file, tạo sheet mới có tên sheet4
- Vẫn để Excel hiện hành, quay lại Acad gõ VD4 -> Cell B10 sẽ được gán nội dung "How" và cell C10 là "are you?"
- VD5: save và thoát Excel

Thông suốt được những cái trên đây thì những functions còn lại không thành vấn đề. Chúng chỉ là những tiện ích hỗ trợ thêm (bạn đọc comments và examples của họ sẽ hiểu)
Khi đã nắm được toàn bộ, bạn sẽ giải quyết được vấn đề đã nêu ở topic "Ghi dữ liệu từ Cad sang file Excel đã có".

Chào bác SSG,
Lâu lắm rồi, bây giờ mình mới dám sờ mó một chút tới cái thằng Excel to Cad này. Sau khi đọc cái lisp của bác mình thấy có một vấn đề là trong lệnh VD1, khi mình thay (getexcel fn "sheet1" "D5") bằng (getexcel fn "sheet2" "D5") thì kết quả nó vẫn y chang nhau, nghĩa là lisp chỉ lấy dữ liệu trên file được mở ở đúng cái sheet đang hiện hành, bất chấp việc thay tham số "sheet1" bằng "sheet2" bác ạ.
Điều này theo mình đoán là nó do cái hàm (getexcel ....) mà ra. Thế nhưng do cái lisp này hơi rậm rì rắc rối mà mình thì chưa thạo về mấy cái hàm (vlax- .....) nên chưa dám mò mẫm vào.
Về các hàm (vlax- .....) này bác có thể chỉ giùm cách để mình tham khảo được không chứ mình mò hoài trong Help cũng như help Developer mà chưa vỡ ra được bác ạ.
Chúc bác khỏe và luôn thành công.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#158 gia_bach

gia_bach

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 1435 Bài viết
Điểm đánh giá: 1426 (rất tốt)

Đã gửi 24 March 2010 - 03:15 PM

Gửi các bác hàm ghi 1 danh sách (list) ra file Excel.
Yêu cầu : phải có MS Excel đã cài đặt trên hệ thống.

Cú pháp : (WriteToExcel pt_lst)
trong đó : pt_lst là 1 danh sách (list) .
Giá trị trả về (nếu thành công) là toàn bộ danh sách đuợc ghi ra file Excel.

Data bắt đầu ghi tại Sheet1, cell C3, hai dòng-cột đầu dành cho các bác tùy nghi xử lí.
Lisp sẽ tạo 1 file Excel mới, các bác tùy nghi save với tên file mong muốn.

Ví dụ minh họa : Xuất tọa độ PLINE ra file Excel.
(defun c:p2E(/ ent pt_lst ss); Polyline Vertex to Excel
(vl-load-com)
(defun poly-pts (pl / n p l)
(setq n (fix (vlax-curve-getEndParam pl)))
(or (vlax-curve-IsClosed pl) (setq n (1+ n)))
(while (setq p (vlax-curve-getPointAtParam pl (setq n (1- n))))
(setq l (cons p l)) ))

(if (setq ss (ssget "+.:S:E" (list (cons 0 "*POLYLINE"))))
(progn
(setq ent (ssname ss 0)
pt_lst (poly-pts ent))
(if (vlax-get-or-create-object "Excel.Application")
(WriteToExcel pt_lst))))
(princ))

(defun WriteToExcel (lst_data / col row x xlApp xlCells)
(setq xlApp (vlax-get-or-create-object "Excel.Application")
xlCells (vlax-get-property
(vlax-get-property
(vlax-get-property
(vlax-invoke-method
(vlax-get-property xlApp "Workbooks")
"Add")
"Sheets")
"Item" 1)
"Cells"))
(setq row 3)
(foreach pt lst_data
(setq col 3)
(foreach coor pt
(vlax-put-property xlCells 'Item row col coor)
(setq col (1+ col)))
(setq row (1+ row)) )
(vla-put-visible xlApp :vlax-true)
(mapcar
(function (lambda (x)
(vl-catch-all-apply
(function (lambda ()(if x (vlax-release-object x)))))))
(list xlCells xlApp))
(gc) (gc) )

  • 4

#159 svba1608

svba1608

    Tưởng Thị Tú Khuyên

  • Moderator
  • PipPipPipPipPipPipPip
  • 601 Bài viết
Điểm đánh giá: 620 (tốt)

Đã gửi 04 April 2010 - 04:57 PM

Chào các anh chị!
Hôm nay em muốn nhờ các anh chị giúp em về liên kết giữa Autocad với Excel với mục đích như sau:
Em có 1 file Autocad vẽ sẵn các đường ống (được đánh số nút tại 2 đầu)
http://www.4shared.c...0f46/cad_3.html
Và 1 file Excel mà phần số liệu cần quan tâm được tô màu:
http://www.cadviet.c...les/2/excel.rar
Em muốn các số liệu ở excel được viết vào cad (một cách nhanh nhất) sao cho mỗi đoạn ống được viết 6 số liệu: chiều dài, lưu lượng, đường kính, vận tốc, độ dốc, tổn thất.
3 số liệu ở phía trên ống, gồm: chiều dài, lưu lượng, đường kính.
3 số liệu ở phía dưới ống, gồm: vận tốc, độ dốc, tổn thất.
Nếu ống nằm thẳng đứng thì (chiều dài, lưu lượng, đường kính) nằm bên trái ống, (vận tốc, độ dốc, tổn thất) nằm bên phải ống.

Em xin chân thành cảm ơn!
  • 0
http://khuyen.space

#160 hoa35ktxd

hoa35ktxd

    biết lệnh move

  • Members
  • PipPipPip
  • 125 Bài viết
Điểm đánh giá: 38 (tàm tạm)

Đã gửi 04 April 2010 - 10:26 PM

Tôi không mở được file excel, lỗi khi giải nén.
Xem qua file dwg thấy việc tạo các đối tượng của bạn không có mối liên hệ gì với nhau giữa đoạn ống và ký hiệu hai đầu, tuy nhiên để điền được các số liệu dọc 2 bên tuyến ống ta có thể căn cứ vào vị trí của 2 thông số đầu mút, chỉ đẹp khi tuyến ống là không bị cong.
Vì chưa mở được file Excel nên chưa biết dữ liệu của bạn được tổ chức nthees nào do đó cũng chưa đưa ra được giải pháp cụ thể.
  • 1