Chuyển đến phần nội dung

Autodesk Inventor: iLogic

iLogic cho phép thiết kế theo quy tắc, cung cấp một cách đơn giản để nắm bắt và sử dụng lại công việc của bạn. Sử dụng iLogic để chuẩn hóa và tự động hóa các quy trình thiết kế cũng như định cấu hình các sản phẩm ảo của bạn.

Các chủ đề trong phần này

  • Giới thiệu về chức năng iLogic
  • Giới thiệu về Quy tắc và Biểu mẫu trong iLogic
  • Giới thiệu về câu lệnh có điều kiện trong iLogic
    iLogic cung cấp các câu lệnh có điều kiện mà bạn có thể sử dụng trong hộp thoại Chỉnh sửa quy tắc.
  • Giới thiệu về các hàm dành cho quy tắc trong iLogic
  • Giới thiệu về các đoạn mã trong iLogic
    Đoạn mã cung cấp các lối tắt cho các đoạn mã được sử dụng thường xuyên.
  • Giới thiệu về Trình kích hoạt sự kiện và iTriggers
    Bạn có thể đặt trình kích hoạt sự kiện để chạy các quy tắc theo các sự kiện cụ thể xảy ra trong tài liệu của Inventor (các bộ phận, cụm lắp ráp hoặc bản vẽ).
  • Giới thiệu về các thành phần iLogic
    Các thành phần iLogic là bản sao duy nhất của các bộ phận hoặc cụm lắp ráp phụ tiêu chuẩn của Inventor mà bạn có thể thay đổi mà không ảnh hưởng đến thành phần ban đầu.
  • Hộp thoại Trình chỉnh sửa biểu mẫu
  • Giới thiệu về việc mở rộng và tùy chỉnh iLogic
    Bạn có thể đặt các quy tắc iLogic trong các tệp bên ngoài thay vì lưu trữ chúng trong mô hình Inventor và nhập hoặc xuất các quy tắc bên ngoài.
  • Giới thiệu về việc sao chép thiết kế bằng quy tắc iLogic
    Sử dụng iLogic Design Copy để sao chép thiết kế có chứa các quy tắc iLogic.
  • Bảo mật iLogic

Giới thiệu về chức năng iLogic

iLogic cho phép thiết kế theo quy tắc, cung cấp một cách đơn giản để nắm bắt và sử dụng lại công việc của bạn. Sử dụng iLogic để chuẩn hóa và tự động hóa các quy trình thiết kế cũng như định cấu hình các sản phẩm ảo của bạn.

Chức năng iLogic

iLogic nhúng các quy tắc dưới dạng đối tượng trực tiếp vào các tài liệu bộ phận (part), lắp ráp (assembly) và bản vẽ (drawing). Các quy tắc xác định và điều khiển các giá trị tham số và thuộc tính cho thiết kế của bạn. Bằng cách kiểm soát các giá trị này, bạn có thể xác định hành vi của các thuộc tính, tính năng và thành phần của mô hình … Kiến thức được lưu giữ và lưu trữ trực tiếp trong tài liệu, giống như cách lưu trữ các yếu tố thiết kế hình học.

Quy tắc iLogic có thể sử dụng các loại tham số tùy chỉnh hiện có sẵn trong Inventor, chẳng hạn như văn bản (text), đúng/sai (true/false) và danh sách nhiều giá trị (multi-value list). Bạn có thể sử dụng các loại tham số này để viết các quy tắc liên quan đến nhiều hơn các giá trị số đầu vào.

Hộp thoại Tham số Inventor hỗ trợ các tham số chuyên biệt này, với các chức năng lọc nâng cao để hỗ trợ định nghĩa, quản lý và chỉnh sửa tham số đầu vào.

Chức năng tự động hóa trong iLogic

Các nhà thiết kế và kỹ sư có thể triển khai các chức năng tự động hóa iLogic mà không cần hoặc có ít hoặc không có kinh nghiệm lập trình.

  • Tự động tìm kiếm và thay đổi cấu hình iPart hoặc iAssembly dựa trên các câu lệnh có điều kiện được xác định trong các quy tắc ở cấp độ lắp ráp.
  • Kích hoạt các tính năng của part và assembly hoặc các thành phần components và các ràng buộc từ các quy tắc bằng cách sử dụng các đối số có điều kiện.
  • Tự động cập nhật và điều khiển các thông số kỹ thuật của ren khi có thay đổi về kích thước lỗ hoặc thanh.
  • Đọc, viết và phản ứng với các khía cạnh vật liệu hoặc bề ngoài của tài liệu thiết kế, khối lượng hoặc thể tích của các bộ phận cũng như các thông số thiết kế (design parameters).
  • Cập nhật thông tin Bill of Material (BOM) khi thay đổi model dẫn đến cấu hình mới.
  • Hạn chế hoặc tự động sửa các giá trị đầu vào của người dùng để đảm bảo rằng kết quả cấu hình là hợp lệ và tuân thủ các thông số kỹ thuật và tiêu chuẩn thiết kế.
  • Đọc và ghi vào tài liệu bảng tính Excel.

Các chức năng dành cho hộp thông báo và hộp nhập liệu cung cấp phản hồi, tùy chọn và thông tin khi các quy tắc đang chạy.

Giao diện tùy chỉnh được tạo bằng quy tắc iLogic

Sử dụng các quy tắc iLogic để kết nối trực tiếp các biểu mẫu tùy chỉnh với các tham số thiết kế part hoặc assembly. Khả năng này cung cấp giao diện người dùng cho mẫu thiết kế dựa trên quy tắc.

Lưu ý: Để tải xuống Visual Basic 2008 Express Edition, hãy truy cập trang web Microsoft®.

Tích hợp VB.NET trong quy tắc iLogic

Bằng cách sử dụng VB.NET trực tiếp trong các quy tắc iLogic của bạn, bạn có thể:

  • Đọc và ghi vào các tệp HTML, tệp văn bản, tài liệu Word và các tệp có định dạng khác.
  • Giao tiếp với các ứng dụng Windows khác.
  • Tự động xuất bản ở định dạng DWF hoặc các định dạng tệp khác.
  • Khởi chạy các ứng dụng bên ngoài và macro VBA hiện có.
  • Kết nối với các ứng dụng cơ sở dữ liệu bên ngoài như Microsoft® Access hoặc SQL Server.
  • Sử dụng trực tiếp các hàm API của Inventor.

Các thông số trong iLogic

Ngoài các tham số tiêu chuẩn, bạn có thể tạo và chỉnh sửa text cũng như các tham số true/false trong mô hình Inventor. Tham số text là các chuỗi bao gồm các ký tự văn bản và tham số true/false bao gồm giá trị Boolean là Đúng hoặc Sai. Cả hai loại trong số các tham số có thể được sử dụng trong các quy tắc để điều khiển các tham số Inventor hoặc bất kỳ thứ gì khác mà quy tắc có thể điều khiển. Trong một quy tắc, các tham số này đại diện cho các kiểu VB.NET tiêu chuẩn là String Boolean.

Trong VB.NET, bạn đặt các giá trị chuỗi trong dấu ngoặc kép, ví dụ:

string1 = "Left Side"

Nhiều hàm iLogic chứa các đối số chuỗi cũng được đặt trong dấu ngoặc kép, chẳng hạn như tên của các thành phần (components) và tính năng (features) trong mô hình Autodesk Inventor.

Như đã đề cập trước đó, tham số Boolean có thể Đúng hoặc Sai, ví dụ:

boolean1 = True
boolean2 = False

Các giá trị Boolean của True và False không sử dụng dấu ngoặc kép xung quanh.

Các tham số chuỗi (text) có thể được gán cho iProperties của Inventor thuộc loại Văn bản. Các tham số Boolean (true/false) có thể được gán cho iProperties của Inventor thuộc loại Yes hoặc No.

Sau đây là một ví dụ về quy tắc cú pháp:

iProperties.Value("Project","Description") = string1
iProperties.Value("Custom","Passed") = boolean1

Ngược lại, bạn cũng có thể đặt giá trị iProperty từ text và tham số true/false:

string1 = iProperties.Value("Project","Description")
boolean1 = iProperties.Value("Custom","Passed")

Tham số đa giá trị (Multi-value parameters) trong iLogic

Tham số đa giá trị là tham số Autodesk Inventor với danh sách được lưu trữ các giá trị có thể. Tuy nhiên, giống như các tham số khác, tham số đa giá trị có một giá trị duy nhất tại một thời điểm. Nó không tự động bị khóa với một trong các giá trị trong danh sách đa giá trị, mặc dù bạn có thể thực hiện điều đó bằng một quy tắc.

Bạn tạo và chỉnh sửa các tham số nhiều giá trị trong hộp thoại Tham số. Nhấp chuột phải vào một tham số trong bất kỳ cột nào và chọn Tạo nhiều giá trị để xác định rằng tham số có thể có nhiều giá trị. Sử dụng hộp thoại hiển thị để nhập danh sách Bạn cũng có thể dán danh sách các giá trị từ trình soạn thảo văn bản hoặc ứng dụng khác như Microsoft® Excel.

Đối với tham số số (numeric), danh sách giá trị có thể bao gồm phân số hoặc phương trình. Ví dụ bao gồm:

  • 3/8
  • 12.5 mm
  • d0 * 0.8

Đối với các tham số multi-value hoặc true/false, ô Phương trình có danh sách thả xuống mà từ đó bạn có thể chọn giá trị hiện tại (hoặc phương trình cho tham số số).

Trong một quy tắc, bạn có thể đọc và ghi danh sách các giá trị cho một tham số bằng cách sử dụng các hàm đa giá trị (multi-value functions).

Giới thiệu về Rules (Quy tắc) và Biểu mẫu trong iLogic

iLogic Browser liệt kê các quy tắc (rules), các biểu mẫu (forms), các biểu mẫu chung (global forms) của iLogic và các quy tắc bên ngoài (external rules).

Giớ thiệu về Rules

Một Rule là một chương trình Visual Basic (VB.NET) nhỏ có thể giám sát và kiểm soát các tham số (parameters), các tính năng (features) hoặc các thành phần (components) của Inventor.

iLogic nhúng các quy tắc dưới dạng đối tượng trực tiếp vào các tài liệu bộ phận, lắp ráp và bản vẽ (part, assembly, drawing documents). Các quy tắc xác định và điều khiển tham số thiết kế và các giá trị thuộc tính. Bằng cách kiểm soát các giá trị này, bạn có thể xác định hành vi của các thuộc tính, tính năng và thành phần mô hình.

Kiến thức được lưu và cất trữ trực tiếp trong tài liệu, giống như cách lưu trữ các yếu tố thiết kế hình học.

Giới thiệu về Forms

Tạo và kết nối tùy chỉnh giao diện người dùng với các tham số, thuộc tính và quy tắc của tài liệu part, assembly hoặc drawing của Inventor.

Sử dụng các phương pháp kéo và thả để thiết kế giao diện người dùng mà không cần lập trình. Sử dụng các điều khiển để thúc đẩy các thay đổi đối với thiết kế hiện có. Định nghĩa biểu mẫu có thể là tài liệu cụ thể và được lưu cùng với tài liệu thiết kế hoặc được lưu trữ để sử dụng trên nhiều tài liệu.

Lưu ý: Không cần thiết phải có quy tắc để tạo biểu mẫu.

Giới thiệu về External Rules

Các quy tắc bên ngoài có thể được sử dụng làm quy tắc iLogic hoặc dưới dạng các chương trình nhỏ mà bạn chạy thủ công (như macro VBA). Chúng được lưu trữ trong tệp văn bản hoặc VB, bên ngoài bất kỳ tài liệu Inventor nào (part, assembly, drawing). Bạn có thể chạy chúng theo cách thủ công hoặc từ các quy tắc khác.

Khi bạn xem danh sách các quy tắc bên ngoài trong iLogic Browser, danh sách này giống nhau đối với bất kỳ tài liệu nào bạn mở và không bị ràng buộc với từng tài liệu riêng lẻ.

Bạn cũng có thể chạy các quy tắc bên ngoài dưới dạng quy tắc hướng sự kiện.

Giới thiệu Wizards

iLogic cung cấp một số trình hướng dẫn mà bạn có thể sử dụng để tạo các quy tắc phức tạp cho một số tác vụ nhất định. Các trình hướng dẫn này có sẵn trên Wizards tab của Edit Rule dialog box:

  • Create Rule for a Dialog – Sử dụng hộp thoại tùy chỉnh để điều chỉnh các giá trị tham số.
  • Capture Current View – Chụp hướng xem và thu phóng các giá trị hiển thị.
  • Message Box – Tạo quy tắc hiển thị hộp thông báo Windows.
  • Parameter Limits – Đặt giá trị tối thiểu và tối đa cho tham số.

The iLogic Browser Environment

Trong iLogic Browser, các quy tắc được sắp xếp theo hai tab:

  • Tab Rules liệt kê tất cả các quy tắc được lưu trữ trong tài liệu.
  • Tab External Rules liệt kê tất cả các quy tắc được lưu trữ bên ngoài Inventor (trên đĩa), bất kể tài liệu nào đang mở.

Forms được sắp xếp theo hai tab:

  • Tab Forms liệt kê tất cả các biểu mẫu và nút để kích hoạt các quy tắc được lưu trữ trong tài liệu hiện tại.
  • Tab Global Forms liệt kê tất cả các biểu mẫu và nút để kích hoạt các quy tắc được lưu trữ bên ngoài Inventor, bất kể tài liệu nào đang mở.

Mẹo: iLogic không tự động tải các thay đổi được thực hiện đối với hệ thống tệp. Bạn có thể tải lại các biểu mẫu chung từ hệ thống tệp bằng cách chọn nhấp chuột phải, Làm mới.

Bạn có thể kiểm soát khả năng hiển thị của iLogic Browser trên ribbon View tab Windows panel User Interface iLogic Browser

Parameters trong Rules

Bạn có thể sử dụng tên tham số Inventor tiêu chuẩn trong quy tắc dưới dạng biến Visual Basic. Khi bạn chạy rule, giá trị của tham số được gán cho biến. Đối với tham số số, giá trị là số thực được biểu thị trong đơn vị tài liệu được chỉ định trong Tools Document Settings. Tham số văn bản trở thành biến Chuỗi (String) trong quy tắc. Tham số đúng/sai trở thành biến Boolean.

Các tham số có thể xuất hiện theo hai cách khác nhau:

  • Các biến VB.NET được liên kết với các tham số số hoặc không phải số, các biến được tô sáng màu xanh lam:

Khi một quy tắc bắt đầu chạy, iLogic sẽ đọc các giá trị cho các tham số này từ mô hình vào quy tắc. Khi quy tắc chạy xong, iLogic sẽ lưu các giá trị đã thay đổi trở lại mô hình.

Để lưu các giá trị trước khi quy tắc chạy xong, hãy sử dụng hàm RuleParametersOutput, hàm này rất hữu ích nếu bạn muốn thay đổi mô hình ngay lập tức.

  • Các tham số được truy cập bằng hàm (function) Parameter . Ví dụ:

Khi bạn gán giá trị bằng phương pháp này, các giá trị sẽ được lưu vào mô hình ngay lập tức, trước khi dòng tiếp theo trong quy tắc chạy. Khi bạn đọc một giá trị bằng hàm Parameter, nó sẽ được đọc ngay lập tức từ mô hình Inventor.

External Rules và Parameters

Các External Rules không tự động chạy để phản hồi những thay đổi của tham số cụ thể. Không giống như các quy tắc nội bộ, tên tham số không tự động có sẵn dưới dạng biến rule.

Ví dụ: câu lệnh quy tắc sau không hoạt động:

d1 = d0 * 0.5

Thay vào đó, sử dụng như sau:

Parameter("d1") = Parameter("d0") * 0.5

Câu lệnh này hoạt động trên bất kỳ part hoặc assembly nào có tham số d0 và d1. Nó có thể được sử dụng để hoạt động trên các bộ phận liên quan có chia sẻ vài thứ chung.

Tên Mặc Định của Thực Thể trong Rules

Trước khi bạn sử dụng một trong các tên thực thể Autodesk Inventor sau đây trong rule, hãy thay đổi tên của nó nếu nó được gán tên mặc định khi được tạo:

  • feature
  • sketch
  • work feature
  • pattern
  • constraint
  • iMate

Sử dụng tên có ý nghĩa. Việc thay đổi tên giúp bạn dễ dàng biết quy tắc đang thực hiện điều gì.

Một lý do khác để thay đổi tên mặc định là làm cho chúng dễ di chuyển hơn. Trong các phiên bản nội địa hóa của Inventor, tên mục mặc định được dịch sang ngôn ngữ của phiên bản đó. Tên được tự động thay đổi trong trình duyệt mô hình, nhưng không phải theo quy tắc iLogic. Do đó, quy tắc có thể không tìm thấy các mục bằng tên mặc định. Nếu người khác sử dụng mô hình trong phiên bản ngôn ngữ khác của Inventor thì tên mặc định phải được thay đổi. Đề xuất này chỉ áp dụng cho các mục được gọi theo tên trong quy tắc. Ví dụ: các hàm Đo (Measure) có thể sử dụng tên work feature. Nếu bạn có các work feature nhưng không sử dụng chúng trong các hàm Đo thì bạn không phải đổi tên chúng. Một ngoại lệ đối với đề xuất này là các bảng tính Excel được nhúng. Không đổi chúng.

Trên các phiên bản Inventor không phải tiếng Anh, hãy sử dụng tên tiếng Anh trong quy tắc. Ví dụ:

"3rd Party:Embedding 1"

Lưu ý: Một số thực thể như iMates cho phép bạn chỉ định tên khi tạo chúng.

Khi các Rule chạy

Các quy tắc thường chạy tự động để phản hồi những thay đổi trong giá trị tham số, nếu tham số được sử dụng trực tiếp làm biến trong quy tắc. Bạn cũng có thể kích hoạt quy tắc theo sự kiện (events).

Một quy tắc sẽ chạy ngay sau khi bạn chỉnh sửa nó, trừ khi nó bị chặn. Khi quy tắc chạy, các thay đổi trong tham số sẽ không cập nhật mô hình cho đến khi quy tắc chạy. Nếu cần, bạn có thể buộc các thay đổi tham số có hiệu lực ngay lập tức bằng cách sử dụng một trong hai cách sau:

  • Parameter function
  • RuleParametersOutput() function trong rule

Cách một Rule được xử lý

Khi bạn tạo hoặc chỉnh sửa một rule, văn bản rule sẽ được chuyển đổi thành mã VB.NET hợp lệ và sau đó được biên dịch. Một số tên tham số Inventor không hợp lệ dưới dạng tên biến VB.NET. Để cho phép có đầy đủ các tên tham số Inventor, iLogic nội bộ thay thế tên biến mới cho tham số Inventor.

Từ khóa được sử dụng làm tên tham số

Mặc dù bạn có thể sử dụng các từ khóa Visual Basic làm tên tham số, nhưng điều này không được khuyến khích cho các tài liệu mới. Tuy nhiên, khi bạn thêm rule vào các tài liệu hiện có, bạn thường không phải thay đổi bất kỳ tên tham số nào. Nếu tên giống với từ khóa, và bạn yêu cầu từ khóa đó trong rule, bạn có thể:

  • Thay đổi tên tham số Inventor nếu có thể (được khuyến nghị).
  • Sử dụng từ khóa trong rule, nhưng viết hoa các chữ cái khác nhau. Ví dụ: sử dụng Class nếu tham số Inventor được đặt tên là class. Tên tham số Inventor có phân biệt chữ hoa chữ thường, nhưng VB thì không. Trong ví dụ của chúng tôi, class được thay thế bằng một tên khác trước đó VB thấy code, nhưng Class còn nguyên.

Đơn vị trong rules

Bạn có thể sử dụng các đơn vị Inventor trong các rules theo cách tương tự như chúng được sử dụng trong các phương trình tham số Inventor tiêu chuẩn.

  • Rules Quy tắc không yêu cầu đơn vị. Ví dụ: giả sử một số được gán cho một tham số không có đơn vị, nhưng không có đơn vị nào được chỉ định trong biểu thức. Trong trường hợp này, iLogic giả định rằng số đó sử dụng các đơn vị tài liệu phù hợp với tham số đó. Loại giả định này cũng áp dụng cho các đơn vị phức hợp, chẳng hạn như mi/hr. Đơn vị tài liệu được đặt trong Tools Document Settings Units trong Inventor.
  • Tên đơn vị chỉ có thể được sử dụng trực tiếp sau các số trong văn bản rule. Chúng không thể được sử dụng sau các tham số, biến hoặc biểu thức.

Ví dụ – đơn vị tài liệu hỗn hợp

Trong ví dụ này, file part sử dụng đơn vị tài liệu là inch. Trong iLogic Parameter Editor:

  • parameter x is set to 1 in
  • parameter y is set to 12.5 mm

Một Rule được viết như sau:

result = x + y
MessageBox.Show(result,“Mixed Units Defined in Parameter Editor”)

Khi thực hiện phép cộng, iLogic chuyển đổi giá trị của tham số y từ 12.5 mm thành .4921 inches. Một hộp thông báo hiển thị giá trị là 1.49212598425197 và chỉ ra các đơn vị hỗn hợp được xác định trong Parameter Editor.

Giới thiệu về câu lệnh có điều kiện trong iLogic

iLogic cung cấp các câu lệnh có điều kiện mà bạn có thể sử dụng trong hộp thoại Chỉnh sửa quy tắc.

Bạn đặt các câu lệnh trong các quy tắc (các chương trình Visual Basic nhỏ) mà bạn xác định cho mô hình của mình. Các câu lệnh có điều kiện như If-Then-Else cho phép các quy tắc của bạn thực hiện các hành động theo các tiêu chí nhất định.

If-Then-Else statement in iLogic

Trong câu lệnh If-Then-Else, một tập hợp hành động sẽ thực thi nếu điều kiện là đúng và một tập hợp hành động khác sẽ thực thi nếu điều kiện đó sai.

Sau khi câu lệnh đúng hoặc sai được thực thi, chương trình sẽ tiếp tục điều khiển với câu lệnh tiếp theo. Trong iLogic, bạn có thể sử dụng dạng khối hoặc nhiều dòng để triển khai cấu trúc If-Then-Else.

Ví dụ:

If size = “small” Then
length = 6.0
Else
length = 12
End If

Nếu biểu thức điều kiện là đúng, các câu lệnh giữa từ khóa Then và Else sẽ được thực thi. Các câu lệnh giữa từ khóa Else và End If bị bỏ qua. Nếu biểu thức điều kiện là sai, các câu lệnh giữa từ khóa Else và End If sẽ được thực thi, giữa các từ khóa Then và Else được bỏ qua. Trong mọi trường hợp, điều khiển chương trình sẽ tiếp tục với câu lệnh theo sau câu lệnh End If.

If-Then statement in iLogic

Trong câu lệnh If-Then-Else, hành động được thực hiện bất kể điều kiện đúng hay sai. Tuy nhiên, đôi khi bạn chỉ thực hiện một hành động hoặc tập hợp hành động nếu điều kiện đúng, nhưng không thực hiện hành động nào nếu điều kiện sai.

Bạn có thể bỏ qua phần Else của cấu trúc khối If, ví dụ:

If size = “small” Then
length = 6.0
End If

Tập hợp hành động rỗng hoặc trống (Null or empty) trong iLogic

Bạn cũng có thể sử dụng tập hợp hành động rỗng hoặc trống ở dạng khối của câu lệnh If. Ví dụ: bạn có thể nêu “nếu một điều kiện là đúng thì không làm gì cả – nếu không thì hãy làm gì đó” như trong khối sau:

If length  > 20 Then
Else MessageBox.Show(" Invalid Size.Length must be at least 20 in. ", "Title")
End If

Khi sử dụng một tập hợp hành động trống, hãy cải thiện khả năng đọc bằng cách đưa vào nhận xét trong câu lệnh đúng:

If length  > 20 Then ’do nothing
Else MessageBox.Show(" Invalid Size.Length must be at least 20 in ", "Title")
End If

Sử dụng câu lệnh If dưới dạng câu lệnh một dòng

Mặc dù dạng khối của câu lệnh If giúp dễ đọc hơn nhưng bạn cũng có thể viết câu lệnh If dưới dạng một dòng. Ở định dạng này, câu lệnh End If không được sử dụng.

Các ví dụ:

If length < 20 Then MessageBox.Show("Length is Too Short", "Title")
If mass < 1000 Then length =20 Else length =40

Sử dụng biến Boolean trong biểu thức điều kiện

Biến Boolean, có thể giữ giá trị Đúng hoặc Sai, có thể được sử dụng ở bất kỳ nơi nào có thể sử dụng biểu thức quan hệ.

Ví dụ: hai câu lệnh sau là tương đương:

If Feature.IsActive("Fillet1") = true Then . . .
If Feature.IsActive("Fillet1") Then . . .

Trong câu lệnh thứ hai, giá trị True được ngụ ý.

Tương tự, hai câu lệnh sau có thể được sử dụng thay thế cho nhau để kiểm tra xem một biến Boolean có sai hay không:

If Feature.IsActive("Fillet1") = false Then . . .
If Not Feature.IsActive("Fillet1") Then . . 

Các ví dụ này hiển thị kết quả của một hàm. Các ví dụ khác bao gồm việc sử dụng tên tham số làm biến Boolean hoặc sử dụng biến cục bộ để giữ giá trị Boolean.

Cấu trúc Case trong câu lệnh điều kiện trong iLogic

Cấu trúc trường hợp cho phép bạn chọn giữa nhiều hơn hai lựa chọn thay thế.

Cấu trúc Case có thể được triển khai bằng cách sử dụng cấu trúc khối If mở rộng hoặc cấu trúc câu lệnh Select Case.

Câu lệnh If khối mở rộng (If-Then-ElseIf) trong iLogic

Câu lệnh If khối mở rộng sử dụng một hoặc nhiều mệnh đề ElseIf được lồng giữa mệnh đề If đầu tiên và mệnh đề Else cuối cùng. Từ khóa ElseIf là một từ.

Ví dụ:

If material = "Steel" Then
density = 0.284
ElseIf material = "Copper" Then
density = 0.323
ElseIf material = "Aluminum" Then
density = 0.098
End If

Ở định dạng này, chương trình thực thi các câu lệnh liên quan đến biểu thức điều kiện đúng đầu tiên được tìm thấy. Sau đó, chương trình thoát ra câu lệnh sau câu lệnh End If. Sử dụng câu lệnh Else cuối cùng để bẫy các lỗi xảy ra khi gặp phải các điều kiện không mong muốn mà không xảy ra khớp với các điều kiện If hoặc ElseIf trước đó.

Việc sử dụng ElseIf giúp loại bỏ nhu cầu mã hóa nhiều câu lệnh End If trong cấu trúc If lồng nhau. Để so sánh, ví dụ trước cũng có thể được viết dưới dạng:

If material = "Steel" Then
density = 0.284
Else
If material = "Copper" Then
density = 0.323
Else
If material = "Aluminum" Then
density = 0.098
End If
End If
End If

Câu lệnh Select Case trong iLogic

Select Case là một câu lệnh mạnh mẽ với nhiều tùy chọn. Ví dụ:

Select Case material
Case “Steel”
density =0.284
Case “ Copper”
density = 0.323
Case “Aluminum”
density = 0.098
Case Else
density = 0
MessageBox.Show("not a valid material" , "Warning")
End Select

Ở định dạng này, câu lệnh Select Case chỉ định một biểu thức cần kiểm tra. Mỗi mệnh đề Case tiếp theo chỉ định một hoặc nhiều biểu thức để so sánh với biểu thức kiểm tra. Mệnh đề Case đầu tiên chứa một biểu thức khớp với biểu thức kiểm tra sẽ thực hiện các hành động liên quan của nó. sau đó phân nhánh đến câu lệnh sau câu lệnh End Select. Mệnh đề Case Else cuối cùng sẽ bẫy các lỗi xảy ra khi một giá trị không mong muốn của biểu thức kiểm tra không khớp với danh sách biểu thức trong bất kỳ mệnh đề Case nào trước đó.

Biểu thức kiểm tra Select Case có thể là một biểu thức phức tạp hơn, chẳng hạn như:

Select Case radius +1
Select Case  MinOfMany(x,y,z)

Danh sách biểu thức trong mệnh đề Case có thể tuân theo bất kỳ định dạng nào sau đây:

FormatExamples
<expression>[,expression,…]Case 1, 10, 100 Case “Y”, “y”
<expression> To <expression>Case 1 To 9 Case “A” To “C”
Is<relational operator expression>Case Is >= 21
(combination of any of the previous)Case Is <= 5, 20 To 29, 43

Ví dụ:

Select Case width
Case 1,2,3,4,5
MessageBox.Show("Small Plate", "Size")
Case 6 to 15
MessageBox.Show("Medium Plate", "Size") 
Case Is > 15
MessageBox.Show("Large Plate", "Size")
End Select

Câu lệnh Select Case không yêu cầu liên kết với một biến hoặc biểu thức cụ thể. Nó có thể được sử dụng để đánh giá bất kỳ số lượng điều kiện nào, sử dụng định dạng sau:

Select Case True
Case length >= 10
width = length -1
thickness = length/5
Case length < 10
width = length - .75
thickness = length/6
End Select

Viết quy tắc có điều kiện

Bạn có thể chèn các câu lệnh có điều kiện vào các quy tắc bằng cách sử dụng danh sách thả xuống trong hộp thoại Chỉnh sửa Quy tắc iLogic (Bạn cũng có thể nhập văn bản theo cách thủ công.)

Khi nhập các hành động cần thực hiện, bạn có thể sử dụng các lựa chọn trong vùng Snippets của hộp thoại Chỉnh sửa quy tắc để chèn một hàm, sau đó bạn có thể thêm các đối số thích hợp cho hàm.

Hiển thị hộp thoại chỉnh sửa quy tắc

  1. Trên ribbon, click Manage tab iLogic panel iLogic Browser nếu browser hiện không hiển thị.
  2. Trong iLogic Browser, thực hiện một trong các bước sau:
    • Click phải vào vùng trống và chọn Add Rule.
    • Click vào Rules tab hoặc External Rules tab, click phải vào một rule, và chọn Edit Rule.

Thực hiện các hành động thay thế cho điều kiện đúng hoặc sai

  1. Định vị con trỏ tại vị trí mong muốn trong vùng văn bản quy tắc của hộp thoại Edit Rule dialog.
  2. Chọn If…Then…EndIf từ danh sách drop-down trong toolbar.
  3. Thay thế My_expression bằng biểu thức cần đánh giá.
  4. Nhập hành động để thực hiện nếu điều kiện đúng, trên dòng giữa câu lệnh If-Then và câu lệnh EndIf.
  5. Để con trỏ ở cuối hành động bạn vừa nhập và chọn Else từ danh sách thả xuống.
  6. Nhập hành động để thực hiện nếu điều kiện sai, trên dòng giữa câu lệnh Else và câu lệnh EndIf.

Chỉ thực hiện hành động nếu một điều kiện là đúng

  1. PositĐịnh vị con trỏ tại vị trí mong muốn trong vùng văn bản quy tắc của hộp thoại Edit Rule.
  2. Chọn If…Then…EndIf từ drop-down trong toolbar.
  3. Thay thế My_expression bằng biểu thức cần đánh giá.
  4. Nhập hành động để thực hiện nếu điều kiện đúng, trên dòng giữa câu lệnh If-Then và câu lệnh EndIf.

Không thực hiện hành động nào cho điều kiện

  1. Định vị con trỏ tại vị trí mong muốn trong vùng văn bản quy tắc của hộp thoại Edit Rule.
  2. Chọn If…Then…EndIf từ danh sách drop-down trong toolbar.
  3. Đặt con trỏ giữa hai dòng, và chọn Else từ danh sách drop-down.
  4. Thay thế My_expression bằng biểu thức cần đánh giá.
  5. <được khuyến nghị> Nhập một nhận xét, chẳng hạn như ‘do nothing, để thay thế những gì thường là một hành động trong câu lệnh.
    • Nhập nhận xét ở cuối câu lệnh If-Then để không thực hiện hành động nào nếu điều kiện là đúng.
    • Nhập nhận xét sau câu lệnh Else để không thực hiện hành động nào nếu điều kiện sai.
  6. Nhập hành động cần thực hiện cho điều kiện đúng hoặc sai, tùy thuộc vào điều kiện nào sẽ bao gồm hành động đó.

Thực hiện các hành động thay thế cho nhiều hơn hai điều kiện

  1. Định vị con trỏ tại vị trí mong muốn trong vùng văn bản quy tắc của hộp thoại Edit Rule.
  2. Chọn If…Then…EndIf từ danh sách drop-down trong toolbar.
  3. Thay thế My_expression bằng biểu thức cần đánh giá.
  4. Nhập hành động cần thực hiện cho điều kiện, giữa hai dòng.
  5. Đặt con trỏ ở cuối hành động bạn vừa nhập, chọn ElseIf…Then từ danh sách drop-down, và thay thế My_expression bằng biểu thức tiếp theo cần đánh giá.
  6. Nhập hành động cần thực hiện cho điều kiện này vào dòng trống bên dưới điều kiện.
  7. Lặp lại hai bước trước đó nhiều lần nếu cần để đáp ứng các điều kiện còn lại.

Thực hiện các hành động thay thế dựa trên so sánh với Test Case

Select Case <test expression>
Case <expression list 1>
<statement list 1>
Case <expression list 2>
<statement list 2>
Case Else
<statement list n>
End Select
  1. Định vị con trỏ tại vị trí mong muốn trong vùng văn bản quy tắc của hộp thoại Edit Rule.
  2. Chọn Select Case từ danh sách Keywords drop-down trong toolbar.
  3. Thêm khoảng trắng vào cuối câu lệnh bạn đã chèn, rồi nhập biểu thức kiểm tra.
  4. Nhấn Enter, và chọn Case từ danh sách Keywords drop-down trong toolbar.
  5. Thêm dấu cách vào cuối câu lệnh bạn đã chèn, sau đó nhập biểu thức đầu tiên để so sánh với biểu thức kiểm tra.
  6. Nhập hành động cần thực hiện cho điều kiện này vào dòng trống bên dưới biểu thức.
  7. Lặp lại hai bước trước đó nhiều lần nếu cần thiết để phù hợp với từng biểu thức.
  8. Định vị con trỏ trên một dòng trống bên dưới biểu thức cuối cùng và chọn Case Else từ menu Keywords.
  9. On the blank line below the statement you inserted, enter Trên dòng trống bên dưới câu lệnh bạn đã chèn, hãy nhập mệnh đề Case cuối cùng để bẫy các kết quả không mong muốn và nhấn Enter.
  10. Định vị con trỏ trên một dòng trống bên dưới biểu thức cuối cùng và chọn End Select từ menu Keywords.

Tham khảo định dạng câu lệnh có điều kiện

If-Then-Else Format

If <conditional expression> Then
<one or more statements to be executed if condition is true>
Else
<one or more statements to be executed if condition is false>
End If

If-Then Format

If <conditional expression> Then
<one or more statements to be executed if condition is true>
End If

Null Format

If <conditional expression> Then ‘do nothing
Else <one or more statements to be executed if condition is false>
End If

If Statement as Single Line

If <conditional expression> Then <true statement> [Else <false statement>]

Extended Block If (If-Then-ElseIf) Format

If <conditional expression 1> Then
<one or more statements to be executed if condition 1 is true>
ElseIf <conditional expression 2> Then
<one or more statements to be executed if condition 2 is true>
...
ElseIf <conditional expression n> Then
<one or more statements to be executed if condition n is true>
Else
<one or more statements to be executed if none of the above conditions is true>
End If

Select Case Format

Select Case <test expression>
Case <expression list 1>
<statement list 1>
Case <expression list 2>
<statement list 2>
Case Else
<statement list n>
End Select

Giới thiệu về việc mở rộng và tùy chỉnh iLogic

Bạn có thể đặt các quy tắc iLogic trong các tệp bên ngoài thay vì lưu trữ chúng trong mô hình Inventor và nhập hoặc xuất các quy tắc bên ngoài.

Lưu trữ các quy tắc (rules) trong các tập tin bên ngoài

Phương pháp lưu trữ này cho phép bạn sử dụng cùng một quy tắc ở nhiều nơi khác nhau. Các quy tắc iLogic có thể sử dụng mã trong các NET assembly khác. Bạn có thể chỉ định thư mục chứa các NET assembly này. Bạn phát triển một NET assembly bằng các công cụ lập trình như Visual Studio để biết thêm thông tin về cách sử dụng các NET assembly trong các quy tắc.

Nhập/Xuất cấu hình quy tắc bên ngoài

Nhập/xuất cài đặt cấu hình iLogic dưới dạng tệp XML để chia sẻ giữa những người dùng và máy khác nhau. Sau khi được định cấu hình, các thư mục được ánh xạ bên ngoài sẽ xuất hiện bên dưới cây Thư mục Chuẩn sẽ cập nhật hoặc làm mới ngay lập tức khi nội dung thay đổi (thư mục con và quy tắc).

Cài đặt cấu hình quy tắc bên ngoài được tận dụng và ánh xạ trong quá trình tạo triển khai.

Biểu mẫu chung được làm mới thông qua tùy chọn ngữ cảnh nhấp chuột phải để phản ánh biểu mẫu cập nhật nhất.

Giao diện tự động hóa (Automation interface) để truy cập các thông số và quy tắc

iLogic cung cấp giao diện tự động hóa. Bạn có thể sử dụng giao diện này từ mã Inventor VBA hoặc mã VB6 hoặc NET để truy cập các tham số và quy tắc. Lớp iLogicAutomation cho phép khả năng này. Trong dự án VBA hoặc VB, bạn sử dụng nó làm loại giới hạn muộn (late-bound type) (được khai báo là Đối tượng) mà không cần thêm tham chiếu. Vì nó không phải là đối tượng COM đầy đủ nên bạn không thể duyệt các phương thức của nó.

Kiểu dữ liệu DoubleForEquals

iLogic sử dụng kiểu dữ liệu tùy chỉnh có tên DoubleForEquals để lưu trữ các giá trị tham số. DoubleForEquals hỗ trợ so sánh các số dễ dàng. Tham số này giống như kiểu DoubleForEquals tiêu chuẩn của VB.NET. Ngoại trừ việc các giá trị DoubleForEquals được so sánh như thể chúng là các giá trị Đơn (7 chữ số thập phân thay vì 15). Theo mặc định, các tham số trong quy tắc được khai báo là DoubleForEquals. DoubleForEquals giúp dễ dàng bỏ qua lỗi làm tròn trong so sánh. Ví dụ: giả sử phần của bạn sử dụng inch làm đơn vị tài liệu và bạn có tham số có giá trị 13/16 inch. Phần đó không chính xác bằng 13/16 inch trong một quy tắc, vì giá trị tham số được lưu trữ bằng cm trong mô hình. Sau đó, giá trị này được chuyển đổi thành inch để sử dụng trong quy tắc.

if d0 = 13/16 then ... 

Trong ví dụ này, so sánh không thành công nếu d0 thuộc loại Double. Tuy nhiên, nếu d0 thuộc loại DoubleForEquals thì so sánh thành công. DoubleForEquals lưu trữ giá trị dưới dạng loại Kép và thực hiện tất cả các phép tính dưới dạng giá trị Kép. Chỉ so sánh được thực hiện dưới dạng Đơn. Bạn có thể chuyển đổi một giá trị tham số thành Double bằng hàm CDbl, nếu cần. DoubleForEquals là một Cấu trúc (một loại giá trị) trong VB.NET.

DoubleForEquals so sánh giá trị với 0

DoubleForEquals coi phép so sánh với 0 là trường hợp đặc biệt Khi một trong các số được kiểm tra bằng 0, phép thử sẽ thành công khi số còn lại nhỏ hơn 0,0000001 (trong giá trị tuyệt đối). Sự so sánh này giúp dễ dàng bỏ qua các lỗi làm tròn có giá trị gần bằng 0. Ví dụ: phép so sánh sau đây xác định rằng x = 0:

angle = PI/2
x = cos(angle)
If (x = 0) Then
...
End If

Khi nào nên tắt DoubleForEquals

DoubleForEquals là loại mặc định cho tất cả tham số Inventor được sử dụng trong quy tắc. Bạn có thể tắt cài đặt này vì những lý do sau:

  • Bạn sử dụng các hàm thư viện hoặc mã tùy chỉnh yêu cầu kiểu Double. Tất cả các nỗ lực đã được thực hiện để cho phép chuyển đổi mờ đến kiểu Double. Tuy nhiên, nếu một hàm mong đợi một đối số kiểu Object, không có chuyển đổi nào được thực hiện. Nếu một đối tượng DoubleForEquals được truyền, hàm có thể mong đợi một kiểu Double. Bạn có thể sử dụng CDbl hoặc vô hiệu hóa DoubleForEquals.
  • Bạn cần kiểm soát nhiều hơn đối với các kiểm tra bằng nhau hoặc so sánh trong quy tắc. Ví dụ, bạn muốn chỉ định độ nhạy của riêng bạn.
  • Quy tắc của bạn không bao gồm bất kỳ kiểm tra bằng nhau nào, và bạn muốn tránh chi phí của DoubleForEquals bằng cách sử dụng Double trực tiếp.
  • Quy tắc của bạn bao gồm một số kiểm tra bằng nhau, nhưng các tham số nằm ngoài phạm vi động của một giá trị Single (khoảng từ 1.4e-45 đến 3.4e38). Mặc dù tình huống này ít có khả năng xảy ra trong một mô hình Inventor, nhưng nó có thể xảy ra với các đơn vị không phải là đơn vị độ dài.

Tài nguyên học VB bổ sung

Tìm kiếm hướng dẫn và thông tin VB trực tuyến bằng trình duyệt web của bạn.

Thêm cấu hình iLogic để triển khai

Bạn có thể triển khai các tùy chọn cấu hình iLogic như một phần của quá trình triển khai Inventor:

  1. Trong hộp thoại Cấu hình iLogic nâng cao, chọn Xuất. Các tùy chọn được xuất sang C:\Users[your user name]\AppData\Local\Autodesk\Inventor [version]\iLogicPreferences\ iLogicOptions.xml
  2. Trong trình hướng dẫn triển khai Inventor, hãy thêm tệp vào quá trình triển khai bằng Tệp bổ sung:
    1. Nhấp vào Thêm thư mục và tạo thư mục mới có tên iLogicPreferences.
    2. Nhấp vào Duyệt và duyệt đến C:\Users[your user name]\AppData\Local\Autodesk\Inventor [version]\iLogicPreferences\ iLogicOptions.xml để thêm file.

Để định cấu hình tùy chọn iLogic

Bạn có thể định cấu hình vị trí cho các quy tắc bên ngoài và tệp DLL, truy cập đối tượng tự động hóa, tắt DoubleForEquals và hiển thị chi tiết phiên bản iLogic.

Định cấu hình vị trí cho các quy tắc bên ngoài và tệp DLL

  1. Trên ribbon, click Tools tab Options panel iLogic Configuration.
  2. Click kế bên External Rule Directories để thêm thư mục vào danh sách và sử dụng mũi tên lên và xuống để xác định thứ tự tìm kiếm.
  3. Chọn một file extension trong trường Default Extension cho External Rule Files.
    • .vb files có thể chỉnh sửa trong Visual Studio.
    • .txt files có thể chỉnh sửa sử dụng text editor như là Microsoft Notepad.
    • .iLogicVb Chỉ định rằng tệp chứa mã luật iLogic tiêu chuẩn để được tiền xử lý bởi iLogic..
  4. Chọn thư mục chứa mã từ các .NET asseblies khác trong trường Thư mục Addin DLL iLogic.
  5. Để xuất một iLogic configuration: Export Chọn tên file hoặc chọn một file đã tồn tại để thay thế Save.
  6. Để nhập iLogic configuration: Import Xác định file để nhập Open.
  7. Click OK.

Truy cập automation object

Dùng thuộc tính iLogicVb.Automation để truy cập đối tượng tự động hóa từ một luật iLogic.

Đối tượng tự động hóa thực hiện giao diện Autodesk.iLogic.Interfaces.iLogicAutomation. Tài liệu cho giao diện này được cung cấp trong tệp Autodesk.iLogic.Interfaces.xml.

Vô hiệu hóa DoubleForEquals

DoubleForEquals là loại mặc định cho tất cả các tham số số học trong Inventor được sử dụng trong các quy tắc.

Sử dụng câu lệnh sau ở đầu của một quy tắc để vô hiệu hóa cài đặt này:

iLogicOption DoubleForEquals Off

Câu lệnh này tương đương câu lệnh Option tiêu chuẩn trong Visual Basic.

Log Level

Sử dụng cài đặt Log Level để thiết lập mức độ ghi nhật ký sử dụng cho iLogic Logging và theo dõi quy tắc trong Trình soạn thảo Quy tắc.

Security

Nhấp vào nút Security Options để truy cập hộp thoại Bảo mật iLogic. Sử dụng các cài đặt này để kích hoạt các kiểm tra bảo mật để xác định các quy tắc không an toàn. .

Tham Khảo Các Kỹ Thuật iLogic Nâng Cao

Bạn có thể viết các quy tắc iLogic chỉ bằng cách sử dụng các câu lệnh gán tham số Inventor, các hàm iLogic được định nghĩa sẵn và mã VB.NET đơn giản.

Tuy nhiên, bạn không bị giới hạn bởi những kỹ thuật này. Bạn có thể sử dụng các tính năng nâng cao hơn của VB.NET trong một quy tắc. Sử dụng Visual Basic 2005 hoặc 2008 để tạo các tệp DLL ngoài mà bạn có thể gọi từ các quy tắc. Bạn cũng có thể gọi các tệp DLL được viết bằng C# hoặc C++.

Cú pháp Visual Basic 2012 (VB 11.0) được hỗ trợ trong mã quy tắc.

Headers

Headers là các câu lệnh cần phải nhập trước mã quy tắc trong hộp thoại Chỉnh sửa Quy tắc. Bạn có thể nhập các câu lệnh header trực tiếp vào trình chỉnh sửa head, hoặc nhập chúng vào trình chỉnh sửa chính và iLogic sẽ di chuyển chúng vào trình chỉnh sửa header.

Ghi chú: Hầu hết các quy tắc không yêu cầu một header.

Để truy cập trình chỉnh sửa header, thực hiện một trong các hành động sau:

  • Click Header.
  • Nhập một câu lệnh tiêu đề hợp lệ (như Imports) vào cửa sổ chỉnh sửa quy tắc: Trình chỉnh sửa header sẽ tự động mở làm trình chỉnh sửa hoạt động.

Các câu lệnh sau được hỗ trợ trong trình chỉnh sửa header:

Option Explicit On

Option Strict On

Option Infer Off

AddReference “filename.dll”

Imports …

AddVbRule “Other Rule”

AddVbFile “filename.vb”

AddResources “filename.resources”

OptionImports là các câu lệnh tiêu chuẩn VB.NET.

Option Explicit Off là mặc định. Nó cho phép bạn sử dụng các biến cục bộ mà không cần khai báo chúng.

Option Strict Off là mặc định. Option Strict On cũng hoạt động cho hầu hết các quy tắc.

Option Infer On là mặc định.

Mã quy tắc chính là một subroutine “ngầm định”. Để thêm các subroutine, function, property, hoặc Classes, khai báo một Sub Main() như sau:

Sub Main()
' your main rule code here
End Sub

Sub Main() có thể được sử dụng trong bất kỳ quy tắc nào, bất kể quy tắc đó có mã bổ sung hay không. Để biết thông tin chi tiết về cách khai báo rõ ràng lớp quy tắc của bạn, xem “How is a rule processed?”

AddReference

Sử dụng cú pháp iLogic đặc biệt. Việc thêm tên DLL vào một câu lệnh AddReference tương tự như việc sử dụng lệnh AddReference và duyệt tìm một DLL trong Visual Studio hoặc Visual Basic Express.

Chỉ có các .NET assemblies được hỗ trợ. DLL có thể là một assembly chuẩn của Microsoft, như trong thư mục Microsoft.NET\Framework.

Ví dụ, hãy xem xét câu lệnh sau:

AddReference "System.Drawing.dll"

Trong câu lệnh này, phần mở rộng .dll là tùy chọn.

Bạn cũng có thể chỉ định một thư viện lớp do người dùng tạo ra hoặc của bên thứ ba như một tham chiếu. Các DLL do người dùng tạo ra hoặc của bên thứ ba phải nằm trong cùng một thư mục. Theo mặc định, các DLL này được đặt trong thư mục cài đặt của Inventor, trong một thư mục con iLogicAdd, ví dụ:

C:\Program Files\Autodesk\Inventor [Version]\Bin\iLogicAdd

Bạn có thể thay đổi vị trí này bằng cách sử dụng lệnh Cấu hình iLogic. Bạn cũng có thể thêm các tham chiếu vào các DLL trong thư mục Bin chính của Inventor (ví dụ, C:\Program Files\Autodesk\Inventor [Version]\Bin).

Câu lệnh AddReference không hỗ trợ chỉ định đường dẫn đầy đủ. Bạn chỉ có thể chỉ định tên tệp. Thêm các tham chiếu vào các bộ assemblies trong Global Assembly Cache (GAC), bằng cách sử dụng một tên được quan tâm như:

AddReference "VsWebSite.Interop, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”

Bạn cũng có thể tạo hoặc truy cập các đối tượng COM đã đăng ký trong một quy tắc bằng cách sử dụng CreateObject hoặc GetActiveObject. Không cần phải sử dụng AddReference cho một DLL COM.

AddVbRule

Bao gồm mã từ quy tắc đã chỉ định dưới dạng mã VB, được biên dịch cùng với quy tắc chính. Quy tắc cụ thể không thể là một quy tắc tiêu chuẩn. Nó phải có tùy chọn mã VB trực tiếp (Straight VB code) được bật trong bảng tùy chọn của hộp thoại Chỉnh sửa Quy tắc. iLogic không tiền xử lý mã trong một quy tắc như vậy. Quy tắc chứa Classes hoặc Modules có thể được gọi từ các quy tắc khác. Sử dụng câu lệnh này để chia sẻ mã giữa các quy tắc, hoặc để giữ mã modular.

Ví dụ

AddVbRule "Other Rule"

AddVbFile

Hoạt động tương tự như AddVbRule, ngoại trừ mã VB được lưu trong một tệp bên ngoài thay vì một quy tắc. Tương tự như AddVbRule, mã phải được bật tùy chọn Straight VB code. Câu lệnh này hữu ích để chia sẻ mã chung giữa các models. Đặc tả tệp phải là một tên đường dẫn tương đối. iLogic tìm kiếm trong thư mục của tài liệu Inventor hiện tại, và trong các thư mục khác, sử dụng cùng thứ tự tìm kiếm được sử dụng cho các quy tắc bên ngoài.

Ví dụ

AddVbFile "fileName.vb"

AddResources

Thêm các tài nguyên như chuỗi hoặc hình ảnh bitmap. Các tài nguyên phải được biên dịch bằng Visual Studio.

Ví dụ

AddResources "fileName.resources"

Imports

Không được phép có các câu lệnh Imports trùng lặp. Các câu lệnh Imports mặc định sau đây được sử dụng ngầm định trong tất cả các quy tắc:

  • Imports System
  • Imports System.Math
  • Imports System.Collections
  • Imports Microsoft.VisualBasic
  • Imports Autodesk.iLogic.Interfaces
  • Imports Autodesk.iLogic.Runtime

Nếu bạn sử dụng MessageBox trong một quy tắc, thì iLogic tự động thêm câu lệnh sau:

Imports System.Windows.Forms

Nếu bạn sử dụng ThisApplication hoặc các đối tượng Inventor khác, thì iLogic tự động thêm câu lệnh sau:

Imports Inventor

Rule Arguments

iLogic cung cấp các chức năng nâng cao cho phép bạn truyền thông tin ngữ cảnh như đối số quy tắc vào các quy tắc bạn chạy. Thông tin này có thể được sử dụng để sửa đổi hành vi của một quy tắc mà không cần tạo một bản sao của quy tắc.

Bạn truyền các đối số quy tắc bằng cách sử dụng các hàm có sẵn trong giao diện IiLogicAutomation (cho các khách hàng bên ngoài), và trong iLogicVB (cho mã quy tắc khác và các khách hàng nội bộ). Những đối số này có sẵn trong một quy tắc thông qua thuộc tính RuleArguments.

Đối với IiLogicAutomation, các hàm có sẵn bao gồm:

Function RunRuleWithArguments(ByVal doc As Inventor.Document, ByVal ruleName As String, ByVal ruleArguments As Inventor.NameValueMap) As Integer

Function RunExternalRuleWithArguments(ByVal doc As Inventor.Document, ByVal ruleName As String, ByVal ruleArguments As Inventor.NameValueMap) As Integer

Function RunRuleDirectWithArguments(ByVal rule As iLogicRule, ByVal ruleArguments As Inventor.NameValueMap) As Integer

Đối với iLogicVB, các hàm có sẵn bao gồm:

Function RunRule(ByVal ruleName As String, ByVal ruleArguments As Inventor.NameValueMap) As Integer

Function RunRule(ByVal compoOrDocName As Object, ByVal ruleName As String, ByVal ruleArguments As Inventor.NameValueMap) As Integer

Function RunExternalRule(ByVal ruleName As String, ByVal ruleArguments As Inventor.NameValueMap) As Integer

Tạo các rule arguments

Để tạo các đối số quy tắc, sử dụng API của Inventor để tạo một đối tượng NameValueMap mới. Sau đó, nó được truyền vào một trong các hàm khi chạy quy tắc.

Truy cập một đối số được truyền vào quy tắc

x = RuleArguments(“myArg”)

Xác định xem một đối số đã được truyền vào quy tắc hay chưa

If RuleArguments.Exists(“myArg”) Then...

Truyền tập hợp các đối số cho một quy tắc khác bằng cách sử dụng hàm RunRule

iLogicVB.RunRule(“someOtherRule”, RuleArguments.Arguments)

Các câu lệnh bổ sung

Nếu bạn sử dụng Sub Main(), quy tắc sẽ tuân theo định dạng chuẩn của VB.NET cho một lớp, ngoại trừ các câu lệnh Class… và End Class không hiển thị, và các câu lệnh trước Sub Main() nằm bên ngoài lớp. Do đó, đặt tất cả các câu lệnh gán vào trong một Sub, Function, hoặc Property. Bạn có thể bao gồm các câu lệnh khai báo cho các biến thành viên lớp như Private temp As Double = 4.5 bên ngoài một subroutine hoặc function.

Bạn có thể thêm định nghĩa Sub, Function, Property và Class sau Sub Main()… End Sub. Bất kỳ Class bạn thêm vào đều được lồng vào Class quy tắc chính cho quy tắc đó và không thể sử dụng từ một quy tắc khác. Để thêm một Class hoặc Module độc lập, hãy khai báo rõ ràng lớp quy tắc bằng cách sử dụng câu lệnh sau:

Class ThisRule ' ...
Sub Main
End Sub
' ...
End Class

Sau đó, bạn có thể thêm một lớp hoặc Module khác (hoặc nhiều hơn) bên ngoài mã này. Lớp ThisRule trở thành lớp quy tắc chính của bạn, và iLogic gọi Sub Main (bên trong nó) để chạy quy tắc của bạn.

Để bao gồm một Module hoặc Class mà có thể nhìn thấy từ nhiều quy tắc, đặt nó trong một tập hợp ngoài (DLL). Bạn có thể đặt nhiều hơn một trong cùng một DLL. Bạn cũng có thể sử dụng AddVbRule để đặt chúng trong một quy tắc được xác định là “mã VB trực tiếp” trong tài liệu Inventor (). Hoặc, sử dụng AddVbFile để đặt chúng trong một tệp VB bên ngoài.

Khi bạn phát triển mã VB.NET nâng cao, hãy sử dụng Visual Studio hoặc Visual Basic Express thay vì viết mã trực tiếp trong một quy tắc. Sau đó, bạn có thể cắt và dán các đoạn mã tương đối nhỏ từ Visual Studio vào một quy tắc. Bạn có thể thậm chí dán một lớp hộp thoại hoàn chỉnh (mặc dù việc sử dụng tài nguyên không được hỗ trợ dễ dàng). Đối với các đơn vị mã lớn hơn, hoặc khi cần thiết, hãy tạo một bộ assembly và sử dụng nó như là một DLL bên ngoài từ một quy tắc.

Bạn có thể lưu trữ các đối tượng là các thể hiện của một Class được xác định bởi người dùng bằng cách sử dụng các hàm Biến chia sẻ của quy tắc iLogic. Để lưu trữ các đối tượng này, serialize lớp hoặc nó phải được phái sinh từ MarshalByRefObject.

External DLLs

Bạn có thể viết các DLL bên ngoài của riêng mình trong .NET và gọi chúng từ một quy tắc. Để gỡ lỗi một DLL, đặt đường dẫn build output trong Cài đặt Dự án -> Biên dịch thành iLogicAdd (dưới thư mục Bin của Inventor). Sau đó, chọn Inventor.exe cho Start external program trong cài đặt dự án của bạn trong Visual Studio. Phương pháp này cho phép bạn tận hưởng tất cả các lợi ích của môi trường gỡ lỗi, bao gồm Sửa đổi và Tiếp tục.

Các DLL bên ngoài rất hữu ích khi sử dụng một quy tắc để hiển thị hộp thoại cho đầu vào của người dùng.

Inventor API

Để truy cập API của Inventor từ một quy tắc, sử dụng thuộc tính ThisApplication để truy cập ứng dụng Inventor. Sử dụng ThisDoc.Document để truy cập tài liệu chứa quy tắc hiện tại. Bạn có thể tạo và sửa đổi các tính năng. Sử dụng Parameter.Param để truy cập trực tiếp vào một Inventor.Parameter.

Để sử dụng API của Inventor từ DLL của riêng bạn, thêm một tham chiếu vào Autodesk.Inventor.Interop.dll trong dự án Visual Basic của bạn. Nó sẽ hiển thị trong hộp thoại Thêm Tham chiếu trên tab .NET. Đối với Inventor 2011, phiên bản là 15.0.0.0.

Sử dụng Giao diện iLogic trong các DLL bên ngoài

Tất cả các hàm iLogic được nhóm dưới các đối tượng giao diện như Parameter, iProperties, iPart, và vân vân. Bạn có thể truyền các đối tượng giao diện iLogic như đối số cho các hàm trong các DLL bên ngoài. Để sử dụng các đối tượng này trong dự án của bạn, thêm một tham chiếu vào Autodesk.iLogic.Interfaces.dll. Chọn tab Duyệt trong hộp thoại Thêm Tham chiếu, và duyệt đến thư mục iLogicBin, trong thư mục bin của Inventor (thường nằm trong C:\Program Files\Autodesk\Inventor [Version]\Bin\iLogicBin).

Tài liệu cho các giao diện iLogic được cung cấp trong Autodesk.iLogic.Interfaces.xml. Bạn có thể sử dụng Trình duyệt Đối tượng trong Visual Studio để đọc mô tả giao diện. Các mô tả này bao gồm tên của các đối tượng mà thực hiện các giao diện trong các quy tắc. Ví dụ, đối tượng Feature trong một quy tắc thực hiện giao diện ICadFeature.

Lên trên