Inventorの部屋

iLogicでは操作の自動化などを設定して作業効率化を図ります。

iLogic - パーツ情報

iLogicの目次

パーツ情報

iLogicでパーツの重量とXYZ寸法を設定してipropertyのカスタムに表示出来るようにします。

  • 1.パーツのテンプレート(既定では%PUBLICDOCUMENTS%\Autodesk\Inventor %RELEASE%\Templatesフォルダの[Standard.ipt])を開いて[管理][iLogic][ルールを追加]をクリックし、任意の名前をつけて[OK]をクリック。
    iLogic - パーツ情報
  • 2.右下部分に下記コード(重量を表示するコード)を入力して保存して閉じる。
    InventorVb.DocumentUpdate()
    mass = iProperties.Mass
    iProperties.Value("Custom", "重量") = mass
    Dim oUom As UnitsOfMeasure = ThisApplication.UnitsOfMeasure
    iProperties.Value("Custom", "重量") = CStr(Round(iProperties.Mass, 2)) + "Kg"
    
    iLogic - パーツ情報
  • 3.[管理][iLogic][イベントトリガ]をクリック。
    iLogic - パーツ情報
  • 4.左側の[このドキュメント内のルール]から作成した[重量]を右側の[イベントのルール]にドラッグ&ドロップしてこのプログラムを実行するタイミングを設定。
    iLogic - パーツ情報
  • 5.同様に下記コード(当サイト掲示板のINVENTORINGさんのコードを引用)でパーツのXYZの最長距離を設定するiLogicを追加する。
    'パーツのXYZの最長距離を測定して格納する
    Dim oPartDoc As PartDocument
    oPartDoc = ThisDoc.Document
    If oPartDoc.ComponentDefinition.SurfaceBodies.Count >1 Then
    BBox_X=0
    BBox_Y=0
    BBox_Z=0
    Exit Sub
    End If
    Dim oBox As Box
    Try
    oBox = oPartDoc.ComponentDefinition.SurfaceBodies.Item(1).RangeBox
    Catch
    BBox_X=0
    BBox_Y=0
    BBox_Z=0
    Exit Sub
    End Try
    BBox_X= FormatNumber( oBox.MaxPoint.X-oBox.MinPoint.X,5)
    BBox_Y= FormatNumber( oBox.MaxPoint.Y-oBox.MinPoint.Y,5)
    BBox_Z= FormatNumber( oBox.MaxPoint.Z-oBox.MinPoint.Z,5)
    
    Parameter.Quiet = True
    '格納したデータの桁数をそろえる
    BBox_X=BBox_X*10
    BBox_Y=BBox_Y*10
    BBox_Z=BBox_Z*10
    Dim a As Double
    Dim b As Double
    Dim c As Double
    '格納した寸法を小さい順に並び替えipropertyに出力
    If BBox_X>=BBox_Y Then
    If BBox_Y>=BBox_Z Then
    c=BBox_X
    b=BBox_Y
    a=BBox_Z
    Else
    If BBox_Z>=BBox_X Then
    c=BBox_Z
    b=BBox_X
    a=BBox_Y
    Else
    c=BBox_X
    b=BBox_Z
    a=BBox_Y
    End If
    End If
    Else
    If BBox_X>=BBox_Z Then
    c=BBox_Y
    b=BBox_X
    a=BBox_Z
    Else
    If BBox_Y>=BBox_Z Then
    c=BBox_Y
    b=BBox_Z
    a=BBox_X
    Else
    c=BBox_Z
    b=BBox_Y
    a=BBox_X
    End If
    End If
    End If
    '小数点をそろえる
    a=Round(a, 1)
    b=Round(b, 1)
    c=Round(c, 1)
    'テキスト形式にしてカスタムプロパティに出力(数値のままだと10が10.0という表示になるため
    iProperties.Value("Custom", "a")=CStr(a)
    iProperties.Value("Custom", "b")=CStr(b)
    iProperties.Value("Custom", "c")=CStr(c)
    iProperties.Value("Project", "Description")="=<a>x<b>x<c>"
    

  • 6.イベントトリガも追加してファイル(Standard.ipt)を閉じる。
    iLogic - パーツ情報
  • 7.パーツファイルを新規作成して保存するとiPropertyのカスタムに重量とXYZ寸法が表示されます。
    iLogic - パーツ情報