iLogic без страху. Частина 2: Типи даних, змінні та умовні оператори

fy25-inventor-campaign-06-1300-420.jpg

Дана стаття є продовженням першої частин серії "iLogic без страху". 

  1. Типи даних

    Впевнений, що якщо вас цікавить, як працює iLogic та ви хочете додати його до свого озброєння, вам постійно траплялись різні типи даних у параметрах та властивостях документів. Наприклад:

    У параметрах є 3 типи даних:

    • Numeric (Числовий)
    • Text (Текстовий)
    • True/False (Вірно/Не вірно)
    Andrii_Humeniuk_0-1749987714456.png

    У властивостя є 4 типи даних:

    • Text (Текстовий)
    • Date (Дата та час)
    • Number (Числовий)
    • Yes Or No (Вірно/Не вірно)
    Andrii_Humeniuk_2-1749987864509.png
    iLogic, як середовище програмування значно багатший в сенсі різних даних. Зазвичай для написання скриптів буде достатньо наступних:

    Типові типи даних у iLogic:

    • Boolean (Вірно/Не вірно) - 2 bytes
    • Integer (Тільки цілі числа) - 4 bytes
    • Double (Числовий) - 8 bytes
    • String (Текстовий) - 4 bytes
    • Date (Дата та час) - 8 bytes
    • Object (Об'єкт) - 4 bytes
    Andrii_Humeniuk_4-1749988540049.png
    Повний перелік типів даних для iLogic можна побачити за посиланням.
    Серед типових типів є такий, як Object. Він особливий тим, що є ніби похідною для всіх інших типів. Таким чином, якщо ви не знаєте, який насправді ви отримуєте тип даних, ви завжди можете скористатись Object типом.
  2. Що таке змінні в iLogic

    У програмуванні змінні — це “контейнери” для збереження даних. Вони дозволяють зберігати числа, тексти, логічні значення тощо, і працювати з ними в коді: порівнювати, обчислювати, змінювати.

    У iLogic змінні створюються за допомогою ключового слова Dim, після якого йде ім’я змінної та її тип. Наприклад:
    Dim width As Double
    width = 1000

    У цьому прикладі ми створили змінну з ім’ям width, яка зберігає число з плаваючою комою (тип Double) і присвоїли їй значення 1000.
    Наступний приклад демонструє типовий стиль найменування переміних для iLogic (префікс з маленької букви, що демонструє тип даних), стиль найменування важливий для розуміння вашого коду іншими користувачами.

    Dim bParam As Boolean = True
    Dim iParam As Integer = 123
    Dim dParam As Double = 123.123
    Dim sParam As String = "Hello WORLD!"
    Dim dateParam As Date = Date.Now
    Dim oParam As Object = dParam

    Змінні особливо корисні, коли:

    • потрібно кілька разів використовувати одне й те саме значення;

    • робити обчислення;

    • зберігати значення параметрів моделі для подальшого аналізу або умов.

  3. Оператори та умовні конструкції

    Щоб створити справді «розумну» модель, потрібно вміти задавати логіку: “якщо параметр більший за 100 — зробити одне, інакше — інше”. Для цього в iLogic використовуються умовні конструкції та оператори — фундамент будь-якої автоматизації.

    Оператор If...Then
    Dim dWidth As Double = 100
    Dim sMaterial As String
    
    If dWidth > 1000 Then
        sMaterial = "Steel"
    Else
        sMaterial = "Aluminum"
    End If
    Маємо переміну зі значенням 100, та використовуємо оператор If...Then для призначення типу матеріалу в залежності від ширини деталі. Зверніть увагу на діляну між If та Then, ця ділянка де виконується перевірка нашого значення та результат перевірки конвертується до True/False.
    Умовна конструкція ElseIf
    Dim dWidth As Double = 100
    Dim sMaterial As String
    
    If dWidth > 1000 Then
        sMaterial = "Steel"
    ElseIf dWidth = 1000 Then
    	sMaterial = "Glass"
    Else
        sMaterial = "Aluminum"
    End If
    ElseIf - це додаткова перевірка у випадку не успішності попередньої. Під оператором If...Then можна встановлювати безліч додаткових перевірок, але майте на увазі, що всі пеервірки виконуються послідовно та якощо у вас їх багато це впливає на швидкість роботи, тому у випадку великої кількості варіації застосовують наступний оператор.
    Оператор SelectCase
    Dim dWidth As Double = 100
    Dim sMaterial As String
    
    Select Case dWidth
        Case 100
            sMaterial = "Steel"
        Case 500
            sMaterial = "Glass"
        Case Else
            sMaterial = "Aluminum"
    End Select
    SelectCase оператор застосовують у випадку, якщо у вас є чітки варіації якогось параметра (проміжні значення не можна реалізувати). У пам'ять RAM завантажуються всі варіації та коли код працює значення обираєтсья відразу в порівнняні з If...Then.
    Оператори порівняння
    = дорівнює If (x=10) Then
    <> не дорівнює If (x<>0) Then
    > більше If (x>100) Then
    < менше If (x<5) Then
    >= більше або дорівнює If (x>=50) Then
    <= менше або дорівнює If (x<=20) Then
     
    Логічні оператори Or
    If material = "Steel" Or material = "Aluminum" Then
    Слово Or у операторі If...Then дає можливість виконати 2 перевірик і при успішності однієї з них ви отримаєте True
    Логічні оператори Not
    If Not bVisible Then
    В даному прикладі ми маємо переміну bVisible, якщо у цій переміній буде значення False, ви отримаєте True, томущо False+False=True.
    Логічні оператори And
    If length > 1000 And height < 500 Then
    Слово And схоже на Or, але з різницею, що має бути дві перевірки успішні.
  4. Практичний приклад

    Давайте для початку створемо просту деталь у вигляді праямокутної пластини 200х100х10:

    Andrii_Humeniuk_0-1749998108310.png

    Далі створюмо внутрішнє правило у якому створемо 3 перемінні типу Double: dLength, dWidth та dThikness.
    Тепер нам потрібно помістити у наші контейнери відповідну інформацію про габарит нашої деталі. На цьому етапі ми, як користувачі iLogic-у отримуємо велику перевагу, тому що ми можемо дуже легко отримати доступ до парамтерів деталі.
    Натискаємо на Model Parameters у вікні побудови деталі -> ставимо знак рівності після контейнера та тиснемо двічі на потрібному параметрі:

    Andrii_Humeniuk_1-1749998796853.png

    Щож на даному етапі при запуску правила, ми лише запакуємо інформацію про габарит у контейнери, але ціль програмування у побудови логіки. Тому далі виконуємо наступні дії:

    • Створемо залежність довжини деталі та його коліру. Для йього додаму наступні рядки коду:
      Dim dLength As Double = d0
      Dim dWidth As Double = d1
      Dim dThikness As Double = d2
      Dim sColor As String
      
      If dLength < 100 Then
      	sColor = "Red"
      ElseIf dLength >= 100 And dLength < 200 Then
      	sColor = "Blue"
      Else
      	sColor = "Yellow"
      End If
    • Далі додамо сніпет для зміни кольору деталі - PartColor, що розміщений у папці iProperties:
      Dim dLength As Double = d0
      Dim dWidth As Double = d1
      Dim dThikness As Double = d2
      Dim sColor As String
      
      If dLength < 100 Then
      	sColor = "Red"
      ElseIf dLength >= 100 And dLength < 200 Then
      	sColor = "Blue"
      Else
      	sColor = "Yellow"
      End If
      
      iProperties.PartColor = sColor​

Вітаю! Сьогодні ми вивчили базові речі програмування: типи даних та оператори. На базі знань з перших блогів ми зможимо зробити наступний крок у створенні скриптів iLogic для вашох моделей та креслень. 😉

 

Продовження: "iLogic без страху. Частина 3: Коротко і ясно".