Autodesk Inventor: Tạo Một Add-In Inventor

Add-In Inventor là gì?

Chức năng Add-In Inventor là một cách để chương trình kết nối với Inventor và sử dụng API của nó. Các cách phổ biến khác để truy cập API của Inventor là từ VBA của Inventor và từ một exe bên ngoài. Tất cả đều là những cách hợp lệ để sử dụng API của Inventor và mỗi cách đều là có những ưu điểm và nhược điểm riêng. Việc sử dụng cái nào sẽ phụ thuộc vào chương trình của bạn cần làm gì và người dùng cuối sẽ sử dụng nó như thế nào. Các Add-In thường được sử dụng trong trường hợp bạn muốn thêm chức năng mới vào Inventor ở dạng lệnh tùy chỉnh. Add-In có các khả năng sau khiến chúng trở nên lý tưởng cho việc này.

  • Các Add-In được tải tự động khi khởi động Inventor. Hành động đơn giản này cung cấp một số khả năng mạnh mẽ. Đầu tiên, khi một phần bổ trợ đã được cài đặt trên máy tính, người dùng không cần phải làm bất kỳ điều gì đặc biệt hoặc biết bất kỳ điều gì về lập trình để có thể sử dụng có thể truy cập các khả năng mà nó cung cấp. Thứ hai, nó cho phép bổ trợ thêm giao diện người dùng của nó vào Inventor, tức là các ribbon button, tab trình duyệt, v.v. Thứ ba, bổ trợ có thể kết nối với các sự kiện để theo dõi và phản hồi với người dùng. hoạt động trong Inventor.
  • Các Add-In chạy trong quá trình của Inventor, mang lại hiệu suất tốt hơn nhiều so với exe bên ngoài.
  • Add-Ins có thể được viết bằng bất kỳ ngôn ngữ phổ biến nào để bạn không bị giới hạn trong việc sử dụng ngôn ngữ mà bạn không quen thuộc hoặc có thể đã lỗi thời nhưng có thể tận dụng các công nghệ lập trình mới nhất hiện có.

Tạo Một Add-In

Để tạo một add-in, bạn cần sử dụng Visual Studio. Mọi phiên bản đều được hỗ trợ. Có thể tạo add-in bằng bất kỳ ngôn ngữ nào hỗ trợ tạo thành phần dll COM, nhưng tất cả các mẫu và công cụ được cung cấp cùng với SDK. bị giới hạn ở Visual Basic, C# và C++. Có thể tạo các add-in bằng phiên bản Express miễn phí nhưng có một số hạn chế nghiêm trọng, chẳng hạn như không thể gỡ lỗi trong Visual Basic Express 2010. Vì điều này nên sử dụng phiên bản professional. Các phiên bản Express đủ để phát triển các tập tin thực thi độc lập và là một lựa chọn tuyệt vời để bắt đầu với API của Inventor. Nhưng để phát triển add-in, bạn nên dự định sử dụng Visual Studio Professional. Lựa chọn sử dụng một trong các phiên bản khác của Visual Studio với nhiều tính năng hơn phiên bản Professional sẽ hoàn toàn dựa trên nhu cầu của bạn và không phải là một yêu cầu của Inventor.

Đối với bước tiếp theo, hãy sử dụng mẫu Add-In của Inventor trong Visual Studio để tạo add-in của bạn. Để sử dụng mẫu add-in, bạn cần cài đặt SDK và sau đó cài đặt các wizard. Vị trí và hướng dẫn cài đặt cho SDK được mô tả trong bản tóm lược Inventor’s Programming Interface của Inventor.

Sau khi cài đặt các wizard add-in, bạn có thể tạo một dự án mới trong Visual Studio bằng cách chọn mẫu Autodesk Inventor AddIn như được hiển thị dưới đây. Ở phía trái của hộp thoại, bạn có thể cần chọn nút cấp cao nhất trong cây cho ngôn ngữ bạn đang sử dụng để xem tất cả các mẫu có sẵn.

Dự án được tạo bằng template là một add-in mẫu. Khi Inventor khởi động add-in của bạn, nó bắt đầu bằng cách gọi phương thức Activate, như được hiển thị trong hình dưới đây. Một điều quan trọng xảy ra trong cuộc gọi này, một đối tượng được truyền vào add-in của bạn thông qua đối số addInSite của phương thức Activate. Đối tượng này hỗ trợ một thuộc tính ứng dụng mà add-in của bạn có thể sử dụng để truy cập vào đối tượng Ứng dụng của Inventor và toàn bộ API. Bạn sẽ nhận thấy rằng mẫu đang gán tham chiếu được trả về bởi thuộc tính Application cho một biến thành viên cục bộ để add-in có thể duy trì một tham chiếu đến đối tượng Ứng dụng. Thông thường, trong phương thức Activate là nơi mà add-in của bạn sẽ thêm giao diện người dùng của nó vào giao diện người dùng của Inventor bằng cách sử dụng API của Inventor. Nó cũng sẽ kết nối với bất kỳ sự kiện nào mà nó cần theo dõi. Sau khi đã được tải và đang chạy, add-in không làm gì ngoài việc phản ứng lại các sự kiện khi chúng xảy ra. Ví dụ, nó sẽ phản ứng lại khi người dùng nhấp chuột vào một trong các lệnh tùy chỉnh của nó.

Để nhanh chóng kiểm tra xem việc sử dụng mẫu add-in đã dẫn đến việc tạo ra một add-in hoạt động, bạn có thể biên dịch dự án như hiện tại. Điều này sẽ biên dịch add-in của bạn thành một tập tin dll. Bước tiếp theo là làm cho add-in của bạn được biết đến trong Inventor.

Làm cho Add-In của Bạn Được Biết Đến trong Inventor

Mỗi khi Inventor khởi động, nó tìm kiếm các add-in đã được cài đặt và tải chúng. Trong các phiên bản cũ của Inventor trước năm 2012, nó sử dụng registry để tìm kiếm các add-in. Phương pháp tìm kiếm dựa trên registry này vẫn được hỗ trợ cho các add-in cũ, nhưng một phương pháp mới không cần sử dụng registry để làm cho add-in của bạn được biết đến trong Inventor đã được hỗ trợ và được khuyến nghị sử dụng. Khi một add-in được tạo bằng mẫu add-in, một add-in không cần sử dụng registry được tạo ra.

Để cho phép add-in của bạn được tìm thấy bởi Inventor, bạn cần đặt một tập tin đặc biệt trong một trong vài thư mục khác nhau. Tệp này mô tả add-in của bạn và cũng chỉ ra nơi tập tin dll của add-in của bạn đang nằm trên máy tính. Khi Inventor được khởi động, nó quét các thư mục này và đọc các tập tin này để xác định add-in nào sẽ được tải.

Tập tin mà Inventor tìm kiếm có phần mở rộng .addin. Một tập tin .addin đã được tự động tạo cho bạn khi bạn tạo dự án add-in của mình, như được minh họa dưới đây.

Nội dung của tập tin .addin được hiển thị dưới đây. Như bạn có thể thấy, nó sử dụng xml để định dạng dữ liệu.

<Addin Type="Standard">
<!--Created for Autodesk Inventor Version 17.0--> 
<ClassId>{51e6ad8e-5eaa-42a1-b845-a68802a26bf7}</ClassId>
<ClientId>{51e6ad8e-5eaa-42a1-b845-a68802a26bf7}</ClientId>
<DisplayName>SampleAddIn</DisplayName>
<Description>SampleAddIn</Description> 
<Assembly>SampleAddIn.dll</Assembly>
<OSType>Win64</OSType>
<LoadAutomatically>1</LoadAutomatically> 
<UserUnloadable>1</UserUnloadable>
<Hidden>0</Hidden> 
<SupportedSoftwareVersionGreaterThan>16..</SupportedSoftwareVersionGreaterThan>
<DataVersion>1</DataVersion> 
<LoadBehavior>2</LoadBehavior> 
<UserInterfaceVersion>1</UserInterfaceVersion>
</Addin>

Dưới đây mô tả các phần tử khác nhau của tập tin .addin:

  • Addin – (Bắt buộc) Phần tử ngoài cùng để bao gồm tất cả các phần tử khác. Thuộc tính Type xác định loại addin, các giá trị hợp lệ là “Standard” và “Translator”.
  • ClassId – (Bắt buộc) Xác định GUID ClassId liên kết với một Add-in. Điều này có thể thay đổi hoặc không từ một phiên bản sang phiên bản khác. Nếu bạn xem mã add-in của mình, bạn sẽ thấy điều này được chỉ định là một GuidAttribute cho lớp add-in của bạn. Trong hầu hết các trường hợp, bạn không cần phải làm gì ngoài việc sử dụng cái được cung cấp.
  • ClientId – (Bắt buộc) Xác định GUID được sử dụng như là định danh của add-in. Giá trị này nên được giữ nguyên không đổi qua các phiên bản và các phiên bản khác nhau của add-in. Giá trị này được sử dụng để xác định chủ sở hữu của các đối tượng được tạo bằng API như ribbon, thanh công cụ, v.v. Trong hầu hết các trường hợp, điều này sẽ giống như ClassId.
  • DisplayName – (Bắt buộc) Xác định tên hiển thị của add-in như nó sẽ xuất hiện trong trình quản lý Add-in. Thuộc tính Language có thể được chỉ định cho các ngôn ngữ địa phương, nếu không được chỉ định, nó mặc định thành tiếng Anh.
  • Description – (Bắt buộc) Đây là mô tả của add-in của bạn và được hiển thị ở dưới cùng của hộp thoại Trình quản lý Add-In khi add-in được chọn từ danh sách. Thuộc tính Language có thể được chỉ định cho các ngôn ngữ địa phương, nếu không được chỉ định, nó mặc định thành tiếng Anh.
  • Assembly – Đây là đường dẫn đến tập tin dll của add-in của bạn. Đây có thể là một đường dẫn đầy đủ hoặc một đường dẫn tương đối liên quan đến vị trí của tập tin .addin của bạn. Nó cũng có thể là tương đối với thư mục Inventor\bin, tuy nhiên vì bạn không được phép cài đặt vào thư mục đó với quyền quản trị viên, nên không khuyến khích sử dụng thư mục đó.
  • OSType – (Tùy chọn) Xác định nếu add-in của bạn chỉ hoạt động với hệ điều hành 64 hoặc 32 bit. Các giá trị hợp lệ cho điều này là “Win32” hoặc “Win64”. Nếu giá trị này không được chỉ định, nó được giả định rằng add-in là hợp lệ cho cả hai.
  • LoadAutomatically – (Tùy chọn) Xác định xem add-in có được phép tải tự động theo các hành vi tải được xác định bởi add-in không. Giá trị có thể là 0 hoặc 1. Nếu không được chỉ định, giả định là true (1). Nếu được đặt thành false (0), add-in cần phải được tải thủ công bằng cách sử dụng trình quản lý Add-in.
  • LoadBehavior – (Tùy chọn) Xác định khi nào add-in sẽ được tải trong Inventor. Điều này quan trọng để có hiệu suất khởi động tốt hơn. Tùy chọn này có thể được chỉ định bằng một trong các giá trị sau:

0 – Tải ngay khi khởi động (không khuyến khích)
1 – Tải khi bất kỳ document nào được mở
1 – Tải khi một part document được mở (giống như trước đó)
2 – Tải khi một assembly document được mở
3 – Tải khi một presentation document được mở
4 – Tải khi một drawing document được mở
10 – Chỉ tải khi được yêu cầu, thông qua API hoặc sử dụng Trình quản lý Add-In.

Giả định là 0 nếu giá trị này không được chỉ định.

UserUnloadable – (Tùy chọn) Xác định liệu add-in có được phép tải tự động theo các hành vi tải được xác định bởi add-in hay không. Giá trị có thể là 0 hoặc 1. Giả định là đúng (1) nếu giá trị này không được chỉ định. Nếu đặt thành sai (0), add-in cần được tải thủ công bằng cách sử dụng trình quản lý add-in.

Hidden – (Tùy chọn) Xác định liệu add-in có nên được ẩn trong danh sách add-in của Trình quản lý Add-in hay không. Giả định là sai nếu giá trị này không được chỉ định (tức là add-in có thể nhìn thấy). Giá trị có thể là 0 hoặc 1.

SupportedSoftwareVersionEqualTo

SupportedSoftwareVersionGreaterThan

SupportedSoftwareVersionLessThan

SupportedSoftwareVersionNotEqualTo – (Tùy chọn) Xác định phiên bản(s) của Inventor mà add-in này nên có sẵn. Có thể sử dụng các kết hợp của chúng. Các giá trị này sẽ bị bỏ qua nếu tập tin manifest được đặt trong một thư mục cụ thể cho phiên bản. Các phiên bản được khai báo theo định dạng Major#.Minor#.ServicePack# / hoặc BuildIdentifier#. SupportedSoftwareVersionEqualTo và SupportedSoftwareVersionNotEqualTo hỗ trợ nhiều mục nhập phiên bản được phân tách bằng dấu chấm phẩy (;).

DataVersion – (Tùy chọn) Xác định phiên bản của dữ liệu add-in được chứa trong tài liệu Inventor mà phiên bản này của add-in hỗ trợ. Điều này được sử dụng bởi các add-in lưu trữ dữ liệu di động trong tài liệu Inventor, được chỉ ra bằng cách “DocumentInterests” được đặt trên tài liệu.

UserInterfaceVersion – (Tùy chọn) Xác định phiên bản của giao diện người dùng của add-in. Thay đổi phiên bản này sẽ làm cho tất cả giao diện người dùng của add-in được dọn dẹp trong quá trình khởi động Inventor.

Các yếu tố dưới đây đặc biệt dành cho các add-in translator.

FileExtensions – (Tùy chọn) Xác định các phần mở rộng tập tin mà add-in dịch có thể nhập từ hoặc xuất đến. Nếu có nhiều phần mở rộng tập tin được chỉ định, dấu phân cách chấm phẩy có thể được sử dụng giữa chúng. Dưới đây là mẫu để chỉ định FileExtensions:

<FileExtensions>.CATPart;.CATProduct;.cgr</FileExtensions>

FilterText – (Tùy chọn) Xác định văn bản bộ lọc cho add-in translator. Thuộc tính Ngôn ngữ có thể được chỉ định cho các ngôn ngữ địa phương, nếu không được chỉ định, nó mặc định thành tiếng Anh, ví dụ dưới đây thiết lập FilterText cho tiếng Pháp:

<FilterText Language=”1036″>Fichiers CATIA V5 (.CATPart;.CATProduct;*.cgr)</FilterText>

SupportsSaveCopyAs – (Tùy chọn) Xác định liệu add-in translator có hỗ trợ Lưu Bản Sao không. Giá trị có thể là 0 hoặc 1. Giả định là sai (0) nếu giá trị này không được chỉ định. Nếu đặt thành đúng (1), FilterText sẽ có sẵn trong hộp thoại Lưu Bản Sao.

SupportsSaveCopyAsFrom – (Tùy chọn) Xác định tài liệu nào add-in translator hỗ trợ xuất. Các giá trị hợp lệ là các phần mở rộng tài liệu Inventor với dấu chấm phẩy làm dấu phân cách. Dưới đây là mẫu để chỉ định SupportsSaveCopyAsFrom:

<SupportsSaveCopyAsFrom>.ipt;.iam</SupportsSaveCopyAsFrom>

SupportsOpen – (Tùy chọn) Xác định liệu add-in translator có hỗ trợ mở dữ liệu ngoại lai không. Giá trị có thể là 0 hoặc 1. Giả định là sai (0) nếu giá trị này không được chỉ định.

SupportsOpenInto – (Tùy chọn) Xác định tài liệu nào add-in translator hỗ trợ mở vào. Các giá trị hợp lệ là các phần mở rộng tài liệu Inventor với dấu chấm phẩy làm dấu phân cách. Dưới đây là mẫu để chỉ định SupportsOpenInto:

<SupportsOpenInto>.ipt;.iam</SupportsOpenInto>

SupportsImport – (Tùy chọn) Xác định liệu add-in translator có hỗ trợ nhập dữ liệu không. Giá trị có thể là 0 hoặc 1. Giả định là sai (0) nếu giá trị này không được chỉ định. Nếu đặt thành đúng (1), FilterText sẽ có sẵn trong hộp thoại Mở.

SupportsImportInto – (Tùy chọn) Xác định tài liệu nào add-in translator hỗ trợ nhập vào. Các giá trị hợp lệ là các phần mở rộng tài liệu Inventor với dấu chấm phẩy làm dấu phân cách. Dưới đây là mẫu để chỉ định SupportsImportInto:

<SupportsImportInto>.ipt;.iam</SupportsImportInto>

Nơi Đặt Các File Của Bạn

Bây giờ bạn đã có tập tin dll của add-in và đã tạo tập tin .addin, bạn cần biết nơi đặt những tập tin đó để Inventor có thể tìm và tải add-in của bạn.

Có bốn vị trí sau được hỗ trợ. Bạn có thể chọn bất kỳ một trong bốn tùy thuộc vào nhu cầu của add-in của bạn. Tập tin .addin của bạn có thể tồn tại trong bất kỳ một trong bốn vị trí sau đây hoặc trong bất kỳ thư mục con nào. Phần “%XXXX%” của mỗi đường dẫn là một biến được xác định bởi hệ điều hành. Khi sử dụng Explorer, bạn có thể nhập nó vào là một phần của đường dẫn và Explorer sẽ đánh giá nó để sử dụng đường dẫn thực tế được xác định bởi biến.

  1. All Users, Không phụ thuộc Version
    Windows 7/8.1/10 – %ALLUSERSPROFILE%\Autodesk\Inventor Addins\
  2. All Users, Phụ thuộc Version
    Windows 7/8.1/10 – %ALLUSERSPROFILE%\Autodesk\Inventor 20xx\Addins\
  3. Mỗi User, Phụ thuộc Version
    In Window 7/8.1/10 – %APPDATA%\Autodesk\Inventor 20xx\Addins\
  4. Mỗi User, Không phụ thuộc Version
    In Window 7/8.1/10 – %APPDATA%\Autodesk\ApplicationPlugins

Có một số điều cần xem xét khi xác định nơi đặt add-in của bạn. Nếu bạn chọn một vị trí có sẵn cho tất cả người dùng, nó sẽ yêu cầu quyền quản trị viên để cài đặt add-in của bạn. Trong hầu hết các trường hợp, máy tính hiếm khi được chia sẻ giữa nhiều người dùng nên cài đặt theo từng người dùng thường là đủ.

Nếu bạn có kế hoạch cập nhật thường xuyên cho add-in của mình cho mỗi phiên bản mới của Inventor thì việc làm cho nó phụ thuộc vào phiên bản có thể là lựa chọn tốt để người dùng chỉ có quyền truy cập vào add-in được viết cho và được kiểm tra với phiên bản của Inventor họ đang sử dụng. Bởi vì nỗ lực đáng kể được thực hiện để cho phép API tương thích với các phiên bản mới hơn, bạn nên có thể chạy các add-in cũ với các phiên bản mới hơn của Inventor. Do đó, bạn có thể cung cấp một add-in và không ràng buộc nó với một phiên bản cụ thể giả sử rằng nó sẽ tiếp tục hoạt động khi các phiên bản Inventor mới được phát hành.

Ngoài ra, vì bạn có thể chỉ định các phiên bản mà add-in của bạn tương thích trong tập tin .addin, bạn vẫn có thể sử dụng một vị trí .addin không phụ thuộc vào phiên bản và kiểm soát phiên bản thông qua tập tin .addin.

Triển khai Add-In bằng Cách Kéo và Thả

Một tính năng mới được thêm vào trong Inventor 2013 là khả năng tạo và triển khai một add-in chỉ bằng cách sao chép một thư mục vào một vị trí cụ thể trên máy tính của người dùng. Thay đổi được thực hiện để kích hoạt tính năng này là Inventor tìm kiếm các file .addin trong bốn thư mục ở trên và hiện giờ cũng tìm kiếm trong bất kỳ thư mục con nào trong bốn thư mục đó. Nếu bạn tạo một thư mục chứa file .addin và file dll của addin của bạn và thiết lập phần Assembly của file .addin của bạn để chỉ chứa tên của file dll của bạn mà không có bất kỳ đường dẫn nào, bạn có thể sao chép thư mục đó vào bất kỳ một trong bốn thư mục ở trên và Inventor sẽ tìm và tải addin của bạn. Dưới đây là một ví dụ về các thư mục và file cho một add-in có tên “MyAddin”. Đây là đường dẫn đầy đủ cho vị trí “%APPDATA%\Autodesk\ApplicationPlugins”.

Cũng có thể tạo cấu hình phức tạp hơn cho một loại add-in có thể kéo và thả. Ví dụ, bạn có thể có một add-in trong đó bạn có một file dll cho 32-bit và một file khác cho 64-bit. Bạn cũng có thể có một file dll dành cho một phiên bản cụ thể của Inventor và một file dll khác cho một phiên bản Inventor khác. Cấu trúc thư mục có thể hỗ trợ điều này được hiển thị dưới đây. Để hỗ trợ nhiều phiên bản của Inventor, bạn phải đặt thư mục trong một trong hai thư mục không phụ thuộc vào phiên bản. Một ví dụ về cách các thư mục có thể trông như cho một add-in như thế này được minh họa trong hình dưới đây. Điều đang xảy ra ở đây là bạn đang cung cấp bản add-in khác nhau bốn bản, mỗi bản có file .addin và dll riêng của nó. Phiên bản nào và hệ điều hành nào mà các add-in tải được kiểm soát bởi nội dung của file .addin cho mỗi add-in.

Debugging Add-In của Bạn

Sau khi bạn đã biên dịch add-in của mình và có một file dll, bạn sẽ cần tuân theo các bước dưới đây để kích hoạt chế độ gỡ lỗi. Với các add-in không yêu cầu đăng ký, không có sự khác biệt nào giữa việc gỡ lỗi với Inventor 32 hoặc 64-bit.

  1. Bạn cần sao chép file .addin của bạn và file dll của add-in vào một trong những vị trí mà Inventor tìm kiếm các file .addin, như mô tả ở trên. Điều này cho phép Inventor tìm thấy add-in của bạn.
  2. Bạn cần thay đổi cài đặt trong dự án của mình để khi bạn biên dịch dự án của mình, file dll được xuất ra thư mục ở trên. Điều này để Visual Studio và Inventor sử dụng cùng một file dll. Cài đặt dự án cần thay đổi được hiển thị dưới đây.

3. Bạn cần thiết lập cài đặt gỡ lỗi sao cho khi bạn bắt đầu dự án của mình từ Visual Studio, nó sẽ tự động khởi động Inventor. Cài đặt dự án cần thay đổi được hiển thị dưới đây.

Bây giờ bạn có thể thêm các điểm dừng vào add-in của mình và bắt đầu gỡ lỗi (F5) từ Visual Studio. Inventor sẽ bắt đầu chạy và các điểm dừng của bạn sẽ được kích hoạt khi những dòng đó được thực thi.

Viết Code Add-In của Bạn

Mã thực tế của add-in của bạn không có gì cụ thể cho một add-in mà sử dụng API của Inventor để tương tác với Inventor. Điều duy nhất hơi đặc biệt đối với một add-in là một số cuộc gọi API có một đối số cho ClientId. Đây là ClientID của add-in của bạn như được xác định trong file .addin của bạn. Điều này thường được sử dụng khi bạn đang tạo các thành phần giao diện người dùng trong Inventor. Inventor sử dụng điều này để nhớ rằng add-in nào đã tạo ra cái gì.

Một bình luận trong “Autodesk Inventor: Tạo Một Add-In Inventor

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *