KetcauSoft


Đăng trả lời 
 
Đánh giá chủ đề:
  • 1 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
AutoCAD .NET - Sử dụng định dạng (layer, block) từ file *.dwg
10-18-2012, 02:00 PM
Bài viết: #1
AutoCAD .NET - Sử dụng định dạng (layer, block) từ file *.dwg
Trong AutoCAD .NET, chúng ta sẽ có nhu cầu sử dụng định dạng sẵn vì một vài lý do:
  • Chúng ta muốn sử dụng hệ thống Layer, Textstyle, Dimstyle
  • Chúng ta muốn chèn các block có sẵn (chẳng hạn block thống kê ...) thay vì xây dựng trong lúc runtime
Một giải pháp cho việc này là lấy chúng từ một file thư viện DWG đi kèm.
Bài viết này sẽ hướng dẫn chúng ta thực hiện điều đó.

Ví dụ đi kèm của bài viết này có thể download tại đây: link download

Phần 1: Chuẩn bị thư viện

Trước hế, chúng ta sẽ xây dựng một file DWG làm thư viện, file này được đặt tên là KC_Form.dwg và sẽ được đặt cùng thư mực với file DLL của chúng ta, vì như thế chúng ta sẽ biết được đường dẫn của nó.
Nội cung của file DWG trong ví dụ này sẽ có:
  • 2 layer, được đặt tên là Layer_Thay và Layer_Thep
  • 1 block SNode chính là block chấm thép sẽ được sử dụng trong ví dụ
  • 1 block KC_Form_Block chứa 2 đường line có 2 layer tương ứng và 1 block SNode

Hãy hình dung cách làm của chúng ta, khi người dùng gọi lệnh, phần mềm của chúng ta sẽ copy block KC_Form_Block từ fiel KC_Form.dwg vào bản vẽ hiện hành (copy vào thư viện block chứ chưa chèn). Khi copy block này, các thuộc tính của các đối tượng chứa trong block cũng sẽ đi theo, ở trường hợp của chúng ta sẽ là 2 layer và 1 block SNode

Công ty TNHH Kết Cấu WEFLY - http://www.wefly-str.com

[Hình: p2015102801.png]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
10-18-2012, 02:09 PM
Bài viết: #2
RE: AutoCAD .NET - Sử dụng định dạng (layer, block) từ file *.dwg
Chúng ta sẽ xây dựng phần mềm bằng Class1.vb có sẵn khi tạo dự án và 1 modul tạo mới có tên là molMain.vb chứa các hàm chính của chúng ta.
Bên cạnh đó chúng ta phải tham chiếu các thư viện dll của AutoCAD (xem tại đây )

Phần 2: Viết các hàm trong molMain

[Hình: 0201PIC1.png]

Đầu tiên là hàm Return_App_Path() để trả về đường dẫn tới thư mục chứa file DLL, cũng chính là đường dẫn của file thư viện DWG của chúng ta.

Hàm Khoi_Tao_Moi_Truong_Do_Hoa() có mục đích copy block KC_Form_Block từ file KC_Form.dwg,


[Hình: 0202PIC2.png]


Hàm Add_Line() và Add_SNode() được sử dụng để tạo một đường LINE và insert block SNode vào bản vẽ, các thông số chính là tọa độ và Layer đều được đặt dưới dạng tham số và sẽ được khai báo cụ thể khi gọi hàm.

Công ty TNHH Kết Cấu WEFLY - http://www.wefly-str.com

[Hình: p2015102801.png]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: Searyidediche
10-18-2012, 02:15 PM (Bài viết đã được chỉnh sửa: 06-19-2013 10:04 PM bởi Ho Viet Hung.)
Bài viết: #3
RE: AutoCAD .NET - Sử dụng định dạng (layer, block) từ file *.dwg
Phần 3. Xây dựng lệnh vidu trong Class1.vd

Chúng ta viết kệnh vidu dùng để gọi trong AutoCAD

[Hình: 0203PIC3.png]


Đầu tiên chúng ta phải Khoi_Tao_Moi_Truong_Do_Hoa() để copy định dạng vào bản vẽ hiện hành. Sau lệnh này, bản vẽ hiện hành đã có các layer và block của chúng ta.
Các lệnh tiếp theo là vẽ đoạn thẳng và insert block với layer mà chúng ta đã có

Kết quả khi gọi lệnh vidu trong AutocAD

[Hình: 0204PIC4.png]

Công ty TNHH Kết Cấu WEFLY - http://www.wefly-str.com

[Hình: p2015102801.png]
Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: rum , Searyidediche
06-19-2013, 09:00 PM
Bài viết: #4
RE: AutoCAD .NET - Sử dụng định dạng (layer, block) từ file *.dwg
(10-18-2012 02:15 PM)Ho Viet Hung Đã viết:  Phần 3. Xây dựng lệnh vidu trong Class1.vd

Chúng ta viết kệnh vidu dùng để gọi trong AutoCAD

[Hình: 0203PIC3.png]


Đầu tiên chúng ra phải Khoi_Tao_Moi_Truong_Do_Hoa() để copy định dạng vào bản vẽ hiện hành. Sau lệnh này, bản vẽ hiện hành đã có các layer và block của chúng ta.
Các lệnh tiếp theo là vẽ đoạn thẳng và insert block với layer mà chúng ta đã có

Kết quả khi gọi lệnh vidu trong AutocAD

[Hình: 0204PIC4.png]
cho mình hỏi sau mình down file này về mở lên thì lại báo lỗi sau


Tệp đính kèm Hình thu nhỏ
   
Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
06-19-2013, 10:08 PM
Bài viết: #5
RE: AutoCAD .NET - Sử dụng định dạng (layer, block) từ file *.dwg
(06-19-2013 09:00 PM)mrphanvantoan Đã viết:  cho mình hỏi sau mình down file này về mở lên thì lại báo lỗi sau

.
Nguyên nhân gây ra lỗi có thể là:
  • Sai địa chỉ các file acdbmgd.dll và acmgd.dll , ví dụ này được viết trên cơ sở máy của mình, do đó khi download xuống máy các bạn, các bạn phải update lại địa chỉ các file này do có thể địa chỉ trên máy mình và trên máy các bạn khác nhau
    Bạn sử dụng phiên bản AutoCAD từ 2013 trở lên. Ví dụ này được viết trên cơ sở AutoCAD từ 2007 đến 2012, nếu sử dụng AutoCAD đời cao hơn thì mình không dám chắc kết quả.

Tham quan website của thành viên này Tìm tất cả bài viết của thành viên này
Trích dẫn bài viết này trong bài trả lời
 Thanks given by: congtybaove , Searyidediche
Đăng trả lời 


Di chuyển nhanh:


Những người đang xem chủ đề này:
1 khách

Trở về đầu trangTrở lên trên