Chuyển đến nội dung
Diễn đàn CADViet

ledungtdc

Thành viên
  • Số lượng nội dung

    4
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi ledungtdc


  1. Thực ra theo mình hiểu bạn trình bày thế này có vẻ làm người đọc khó hiểu hoặc hiểu lầm. Bạn nói thao tác trên autocad thì truyền dữ liệu qua giao diện vb, qua visual studio mình nghĩ nói thế ko đúng. VB, Visual studio là ngôn ngữ, là IDE lập trình còn cái bạn cần ở đây là truyền vào form hay chính xác hơn là bạn thao tác trên autocad thì dữ liệu sẽ được lấy và truyền lên form của một ứng dụng còn ứng dụng đó được bạn lập trình có thể là Out-of-process và In-process  bằng ngôn ngữ VB, bằng IDE visual studio.

    Nếu mình hiểu như vậy là đúng thì xin trả lời thắc mắc của bạn thế này

    Hoàn toàn có thể làm được việc giao tiếp giữa autocad và ứng dụng của bạn. Tuy nhiên lập trình với kiểu Out of process thì khó hơn, mệt hơn vì khi đó cad và ứng dụng của bạn chạy độc lập nhau đồng nghĩa với việc bạn phải sử dụng các API hệ thống để sau khi gọi chương trình và gọi form lên thì bắt đúng vào cái form đó và các textbox, input box... trên form để truyền giá trị vào.

    Với inprocess thì đơn giản hơn nhiều vì bạn lập trình tạo component có nhúng thư viện .net của CAD vào, sau khi biên dịch bạn có file .dll thực chất là add in của cad rồi. Bạn chạy dll này bằng lệnh netload. Lúc lập trình kiểu in process bạn cũng đã phải tạo các lệnh tương ứng với nhu cầu của bạn và khi đó hoàn toàn có thể sử dụng lệnh đó trong command của cad, còn việc chọn đối tượng, lấy thuộc tính, dữ liệu... sau đó truyền lên form thì bạn hoàn toàn lập trình bằng vb.net hoặc c# thôi.

    Bạn có thể tham khảo tài liệu đính kèm hoặc vào trang blog sau để tham khảo thêm nhé:

    http://through-the-interface.typepad.com/through_the_interface/autocad_net/


  2. Lưới tam giác không quy chuẩn delaunay được tạo trên cơ sở tập điểm. Bạn dùng lwpolyline thì mình hiểu là tập điểm 2D. Theo như những gì mình đã làm thì bạn hãy bắt đầu từ việc tạo file text chứa các điểm gồm tên và tọa độ các điểm. Dùng vba đọc nó lên mảng sau đó sử dụng thuật toán delaunay với đầu vào là mảng điểm, đầu ra là thứ tự các đỉnh tương ứng với các tam giác không quy chuẩn đã được tính toán. Cuối cùng là dựa vào mảng đỉnh đầu ra này add các lwpolyline lên Modelspace của cad.

    Về thuật toán delaunay bằng VB, bạn có thể tìm trên mạng

    http://www.codeproject.com/Articles/492435/Delaunay-Triangulation-For-Fast-Mesh-Generation

    là một ví dụ, tất nhiên bạn phải cải tiến theo nhu cầu và trình độ của bạn.

    Đấy là trường hợp bạn làm delaunay bằng code thuần

     

    Bạn có thể ứng dụng công cụ qdelaunay ở trang qhull: http://www.qhull.org/

    Theo mình thấy thì đây là chương trình rất mạnh, tạo delaunay cực nhanh, (nhanh nhất mình từng biết) có thể làm với hàng triệu điểm

    Để sử dụng chương trình này, bạn tạo file đầu vào theo đúng chuẩn, dùng vba truyền các tham số theo đúng chương trình qdelaunay yêu cầu (đọc help), chương trình sẽ tạo cho bạn file tẽt mới là file các tam giác không quy chuẩn được tạo từ tập điểm file đầu vào. Nhiệm vụ tiếp theo của bạn là đọc file tam giác này và add lwpolyline tương ứng với các đỉnh tam giác vào Modelspace thôi.

    Nếu bạn cần chi tiết hơn mình có thể hướng dẫn nhưng vì 3,4 năm nay ko làm vba cad nên hơi chậm

×