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

nguyenanh93

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

    28
  • Đã tham gia

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

  • Ngày trúng

    3

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


  1. [Câu trả lời muộn màng]

    Giống nhau: 2 cách này đều trỏ đến active database với Autocad-based application.


    Khác nhau:

    Cách thứ nhất có thể được sử dụng khi chương trình đó là non-autocad-based, tức là 1 chương trình thao tác được trên file .dwg mà ko phải autocad. Có rất nhiều chương trình như vậy. Nếu code bằng C++ hoặc C# thì hoàn toàn có thể tạo ra các chương trình như vậy.

     

    MDI = multiple Document Interface
    Autocad có thể mở nhiều bản vẽ cùng lúc, mỗi bản vẽ là 1 document. Đối tượng DocumentManager là đối tượng quản lý các document đó. Nên muốn thao tác trên nhiều bản vẽ (hay chính xác hơn là nhiều database) thì cần dùng cách thứ hai. Lưu ý là chỉ thao tác trên các bản vẽ đang mở. DocumentManager có nhiều function khác để quản lý các bản vẽ (đang được mở).
     

    • Like 1
    • Vote tăng 1

  2. 8 giờ trước, ksxdTVC đã nói:

    Theo như mình hiểu thì chương trình bác ấy viết là chương trình ngoài AutoCAD, kết nối với CAD thông qua COM API.
    Như vậy có thể bắt được sự kiện của bản vẽ không?

    Sorry vì đọc ko kĩ :D

    Về vấn đề này thì phải xây dựng một Inter-process Communication giữa 2 chương trình. Cái này khá khó và không biết VB.NET có hỗ trợ không. Một cách đơn giản hơn thì xây dựng chương trình đọc dữ liệu từ port. Khi AutoCAD trigger sự kiện đóng bản vẽ hoặc đóng AutoCAD thì send 1 tín hiệu đến cổng bất kì (1002 chẳng hạn). Chương trình .exe lấy thông tin từ cổng đó để xử lý. Về cơ bản thì cả 2 cách đều tốn công cả. C# hoặc C++ hỗ trợ tốt hơn VB.NET


  3. 1 giờ trước, KangKung đã nói:

    Vấn đề là như này bác ơi:

    1. Chạy một App được viết bằng VB.net ( .exe )

    2. Link App với AutoCAD (CAD đã mở từ trước) thì toàn bộ bản vẽ đang mở trong AutoCAD sẽ được list trong combobox như hình dưới:

     

    Untitled.png.37e0c792f2eca7aeef4d48b2f1433347.png

    3. Nếu người dùng đóng 1 file bất kì trong CAD (ví dụ đóng file "Drawing5.dwg" bằng phần mềm AutoCAD) thì làm sao để combobox tự động update như hình dưới. (App tự động update ngay khi có sự kiện nào ở AutoCAD như đóng file hoặc đóng phần mềm AutoCAD)

     222.png.c058c8895e526a88e1f2f29537fd694b.png

    https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2017/ENU/AutoCAD-NET/files/GUID-F432E285-8B94-4ACD-A186-89E1218DEC07-htm.html

     

    Bạn thực hiện bắt event BeginDocumentClose. Khi event này được trigger thì loại bỏ tên file đó trong dropdownlist của bạn.

    • Vote tăng 1

  4. Bạn dùng tạm cái này đến khi nào có ai đó làm giúp lisp nhé :D

    Dùng lệnh netload để load dll của mình vào.

    SetupDeltaY để thay đổi thông số delta Y. Mặc định mình để là 1.0

    JoinText để join các text như yêu cầu của bạn.

    Mình chạy ok trên autocad 2018.

     

    Cái này chạy ít thì còn ok. Mình chạy với 3200 text thì mất 1 phút. Nếu bạn làm việc với tầm này dữ liệu thì liên hệ mình để mình cải tiến thêm.

    skype vuonganh1993, email: gdt.anv@gmail.com.

    JoinText.rar


  5. 12 phút trước, Danh Cong đã nói:

    Hình như đã có bài viết so sánh về tấc độ chạy giữa các phương pháp lập trình như Lisp, Arx, Vba ...vv.... rồi thì phải.

    Tấc độ xử lý của Arx được đánh giá là mạnh nhất, nhưng cũng đi kèm theo độ khó tương đương, cũng như ít người học nữa  :)))

     Mình rất hoan nghênh bạn chia sẻ cho mọi người trên diễn đàn. Vote luôn ! 

    https://www.cadviet.com/forum/topic/46842-hỏi-về-objectarx/

     

    Cái objectarx thì mình master rồi :) Có điều đang ko biết phương pháp làm đúng không để cải thiện performance giúp mọi người thôi :)


  6. Hôm trước mình có đọc topic này và thấy tốc độ chạy của lisp như vậy là khá chậm. Nên có tìm hiểu về việc vẽ đường đồng mức và làm tool để vẽ. Tool arx của mình chạy <30s cho tất cả các bước. Mình đã test với 1m, 0.5m, 0.4m và 0.1m.

    Do không phải là người trong ngành nên mình nói qua cách làm, nếu ok thì mình sẽ public tool cho ai cần.

    Mình chia các điểm thành tam giác theo tính chất Delauney Triangulation. Sau đó nội suy cao độ trên từng cạnh và nối lại các cạnh cùng độ cao.

    File đính kèm là file mình chạy được với bước 0.4m.

     

    Specs: i7 6700HQ, 8Gb RAM, AutoCAD 2018.


  7. Hi all,

     

    Mình chuyên lập trình với Objectarx (C# và C++). Gần đây có làm một số project nhỏ dạng sample về Objectarx C#. Share lên đây cho ai có nhu cầu. Mình share cả thử mục vì mình vẫn chưa hoàn thành hết các sample. Sẽ tiếp tục up thêm code trong thời gian tới.

    Phần sample code của mình chỉ là những ví dụ đơn giản để làm quen với lập trình Objectarx C#. Mọi người gặp khó khăn với chức năng nào của AutoCAD thì có thể liên hệ trực tiếp với mình để được giúp đỡ. Email: gdt.anv@gmail.com.

     

    Mình đang có kế hoạch tìm hiểu lập trình cho Revit nữa. Bạn nào nghiên cứu cùng thì liên hệ nhé.

     

    https://drive.google.com/drive/folders/1Qwj8jBua5MkmJMuVoeuA9obWzdG9FwLp?usp=sharing

    • Like 2
    • Vote tăng 2

  8. 20 giờ trước, tinya1225 đã nói:

    Hix, có bác nào giúp em với ạ.

    Có gì các bác ới em tiếng cho em đỡ đợi chờ trong vô vọng ạ :(

     

    Nếu vấn đề của em có cách giải quyết đơn giản hơn thì bác chỉ giúp em với, em xin chân thành cảm ơn :(

    Nếu bạn cần thì mình viết cho bạn 1 file .arx để sử dụng.

    • Vote tăng 1
×