<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic iMate limits and ilogic in Inventor Programming - iLogic, Macros, AddIns &amp; Apprentice</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/imate-limits-and-ilogic/m-p/7975670#M83919</link>
    <description>&lt;P&gt;I have a part with iMates. I insert&amp;nbsp;2 of the parts into an assembly using ilogic and&amp;nbsp;create various mates with the iMates within the macro. My issue lies with limits placed in some of the iMates. They work if you connect them manually, however with the program the mate gets created but the limit does not work properly. After the program runs I have to open the two mates with the limits for the limits to register. After i open them once everything works fine. How can i avoid the error in the limit imates?&amp;nbsp;&lt;/P&gt;&lt;P&gt;SyntaxEditor Code Snippet&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Public&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;()
    &lt;SPAN&gt;' Get the component definition of the currently open assembly.&lt;/SPAN&gt;
    &lt;SPAN&gt;' This will fail if an assembly document is not open.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyComponentDefinition&lt;/SPAN&gt;
     &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
   
    &lt;SPAN&gt;' Create a new matrix object.  It will be initialized to an identity matrix.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oMatrix&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Matrix&lt;/SPAN&gt;
     &lt;SPAN&gt;oMatrix&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreateMatrix&lt;/SPAN&gt;   

    &lt;SPAN&gt;' Place the first occurrence.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt;
     &lt;SPAN&gt;oOcc1&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;Occurrences&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;"C:\Vault Workspace\Designs\_Part Library\MSC - Miscellaneous\MSC.000001022.ipt"&lt;/SPAN&gt;, &lt;SPAN&gt;oMatrix&lt;/SPAN&gt;)   

    &lt;SPAN&gt;' Place the second occurrence, but adjust the matrix slightly so they're&lt;/SPAN&gt;
    &lt;SPAN&gt;' not right on top of each other.&lt;/SPAN&gt;
    &lt;SPAN&gt;oMatrix&lt;/SPAN&gt;.&lt;SPAN&gt;Cell&lt;/SPAN&gt;(1, 4) = 10
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt;
     &lt;SPAN&gt;oOcc2&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;Occurrences&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;"C:\Vault Workspace\Designs\_Part Library\MSC - Miscellaneous\MSC.000001022.ipt"&lt;/SPAN&gt;, &lt;SPAN&gt;oMatrix&lt;/SPAN&gt;)
    
    &lt;SPAN&gt;' Look through the iMateDefinitions defined for the first occurrence&lt;/SPAN&gt;
    &lt;SPAN&gt;' and find the one named "iMate:1".  This loop demonstrates using the&lt;/SPAN&gt;
    &lt;SPAN&gt;' Count and Item properties of the iMateDefinitions object.&lt;/SPAN&gt;
	
&lt;SPAN&gt;'Axis constraint&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Long&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;
    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;.&lt;SPAN&gt;Count&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;).&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:1"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
             &lt;SPAN&gt;oiMateDef1&lt;/SPAN&gt; = &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;)
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;  

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef1&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:1"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN&gt;' Look through the iMateDefinitions defined for the second occurrence&lt;/SPAN&gt;
    &lt;SPAN&gt;' and find the one named "iMate:2".  This loop demonstrates using the&lt;/SPAN&gt;
    &lt;SPAN&gt;' For Each method of iterating through a collection.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Boolean&lt;/SPAN&gt;
    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef2&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef2&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:2"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:2"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
	 &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateResult&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateResult&lt;/SPAN&gt;
     &lt;SPAN&gt;oiMateResult&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;iMateResults&lt;/SPAN&gt;.&lt;SPAN&gt;AddByTwoiMates&lt;/SPAN&gt;(&lt;SPAN&gt;oiMateDef1&lt;/SPAN&gt;, &lt;SPAN&gt;oiMateDef2&lt;/SPAN&gt;)
&lt;SPAN&gt;'Movement constraint&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef3&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef3&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef3&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:3"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:3"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN&gt;' Look through the iMateDefinitions defined for the second occurrence&lt;/SPAN&gt;
    &lt;SPAN&gt;' and find the one named "iMate:1".  This loop demonstrates using the&lt;/SPAN&gt;
    &lt;SPAN&gt;' For Each method of iterating through a collection.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef4&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef4&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef4&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:4"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:4"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;' Create an iMate result using the two definitions.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateResult2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateResult&lt;/SPAN&gt;
     &lt;SPAN&gt;oiMateResult2&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;iMateResults&lt;/SPAN&gt;.&lt;SPAN&gt;AddByTwoiMates&lt;/SPAN&gt;(&lt;SPAN&gt;oiMateDef3&lt;/SPAN&gt;, &lt;SPAN&gt;oiMateDef4&lt;/SPAN&gt;)
	 
&lt;SPAN&gt;'Direction of movement constraint	 &lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef5&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef5&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef5&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:5"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:5"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN&gt;' Look through the iMateDefinitions defined for the second occurrence&lt;/SPAN&gt;
    &lt;SPAN&gt;' and find the one named "iMate:1".  This loop demonstrates using the&lt;/SPAN&gt;
    &lt;SPAN&gt;' For Each method of iterating through a collection.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef6&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef6&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef6&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:6"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:7"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;' Create an iMate result using the two definitions.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateResult3&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateResult&lt;/SPAN&gt;
     &lt;SPAN&gt;oiMateResult3&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;iMateResults&lt;/SPAN&gt;.&lt;SPAN&gt;AddByTwoiMates&lt;/SPAN&gt;(&lt;SPAN&gt;oiMateDef5&lt;/SPAN&gt;, &lt;SPAN&gt;oiMateDef6&lt;/SPAN&gt;)	
	 
&lt;SPAN&gt;'Center plane constraint&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef7&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef7&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef7&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iFlush:1"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iFlush:1"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN&gt;' Look through the iMateDefinitions defined for the second occurrence&lt;/SPAN&gt;
    &lt;SPAN&gt;' and find the one named "iMate:1".  This loop demonstrates using the&lt;/SPAN&gt;
    &lt;SPAN&gt;' For Each method of iterating through a collection.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef8&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef8&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef8&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iFlush:1"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iFlush:1"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;' Create an iMate result using the two definitions.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateResult4&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateResult&lt;/SPAN&gt;
     &lt;SPAN&gt;oiMateResult4&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;iMateResults&lt;/SPAN&gt;.&lt;SPAN&gt;AddByTwoiMates&lt;/SPAN&gt;(&lt;SPAN&gt;oiMateDef7&lt;/SPAN&gt;, &lt;SPAN&gt;oiMateDef8&lt;/SPAN&gt;)

&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 02 May 2018 21:11:13 GMT</pubDate>
    <dc:creator>jzcrouse</dc:creator>
    <dc:date>2018-05-02T21:11:13Z</dc:date>
    <item>
      <title>iMate limits and ilogic</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/imate-limits-and-ilogic/m-p/7975670#M83919</link>
      <description>&lt;P&gt;I have a part with iMates. I insert&amp;nbsp;2 of the parts into an assembly using ilogic and&amp;nbsp;create various mates with the iMates within the macro. My issue lies with limits placed in some of the iMates. They work if you connect them manually, however with the program the mate gets created but the limit does not work properly. After the program runs I have to open the two mates with the limits for the limits to register. After i open them once everything works fine. How can i avoid the error in the limit imates?&amp;nbsp;&lt;/P&gt;&lt;P&gt;SyntaxEditor Code Snippet&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;Public&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt; &lt;SPAN&gt;Main&lt;/SPAN&gt;()
    &lt;SPAN&gt;' Get the component definition of the currently open assembly.&lt;/SPAN&gt;
    &lt;SPAN&gt;' This will fail if an assembly document is not open.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyComponentDefinition&lt;/SPAN&gt;
     &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;
   
    &lt;SPAN&gt;' Create a new matrix object.  It will be initialized to an identity matrix.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oMatrix&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Matrix&lt;/SPAN&gt;
     &lt;SPAN&gt;oMatrix&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreateMatrix&lt;/SPAN&gt;   

    &lt;SPAN&gt;' Place the first occurrence.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt;
     &lt;SPAN&gt;oOcc1&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;Occurrences&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;"C:\Vault Workspace\Designs\_Part Library\MSC - Miscellaneous\MSC.000001022.ipt"&lt;/SPAN&gt;, &lt;SPAN&gt;oMatrix&lt;/SPAN&gt;)   

    &lt;SPAN&gt;' Place the second occurrence, but adjust the matrix slightly so they're&lt;/SPAN&gt;
    &lt;SPAN&gt;' not right on top of each other.&lt;/SPAN&gt;
    &lt;SPAN&gt;oMatrix&lt;/SPAN&gt;.&lt;SPAN&gt;Cell&lt;/SPAN&gt;(1, 4) = 10
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt;
     &lt;SPAN&gt;oOcc2&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;Occurrences&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;"C:\Vault Workspace\Designs\_Part Library\MSC - Miscellaneous\MSC.000001022.ipt"&lt;/SPAN&gt;, &lt;SPAN&gt;oMatrix&lt;/SPAN&gt;)
    
    &lt;SPAN&gt;' Look through the iMateDefinitions defined for the first occurrence&lt;/SPAN&gt;
    &lt;SPAN&gt;' and find the one named "iMate:1".  This loop demonstrates using the&lt;/SPAN&gt;
    &lt;SPAN&gt;' Count and Item properties of the iMateDefinitions object.&lt;/SPAN&gt;
	
&lt;SPAN&gt;'Axis constraint&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Long&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;
    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;i&lt;/SPAN&gt; = 1 &lt;SPAN&gt;To&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;.&lt;SPAN&gt;Count&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;).&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:1"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
             &lt;SPAN&gt;oiMateDef1&lt;/SPAN&gt; = &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(&lt;SPAN&gt;i&lt;/SPAN&gt;)
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;  

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef1&lt;/SPAN&gt; &lt;SPAN&gt;Is&lt;/SPAN&gt; &lt;SPAN&gt;Nothing&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:1"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN&gt;' Look through the iMateDefinitions defined for the second occurrence&lt;/SPAN&gt;
    &lt;SPAN&gt;' and find the one named "iMate:2".  This loop demonstrates using the&lt;/SPAN&gt;
    &lt;SPAN&gt;' For Each method of iterating through a collection.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Boolean&lt;/SPAN&gt;
    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef2&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef2&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:2"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:2"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
	 &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateResult&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateResult&lt;/SPAN&gt;
     &lt;SPAN&gt;oiMateResult&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;iMateResults&lt;/SPAN&gt;.&lt;SPAN&gt;AddByTwoiMates&lt;/SPAN&gt;(&lt;SPAN&gt;oiMateDef1&lt;/SPAN&gt;, &lt;SPAN&gt;oiMateDef2&lt;/SPAN&gt;)
&lt;SPAN&gt;'Movement constraint&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef3&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef3&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef3&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:3"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:3"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN&gt;' Look through the iMateDefinitions defined for the second occurrence&lt;/SPAN&gt;
    &lt;SPAN&gt;' and find the one named "iMate:1".  This loop demonstrates using the&lt;/SPAN&gt;
    &lt;SPAN&gt;' For Each method of iterating through a collection.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef4&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef4&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef4&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:4"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:4"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;' Create an iMate result using the two definitions.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateResult2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateResult&lt;/SPAN&gt;
     &lt;SPAN&gt;oiMateResult2&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;iMateResults&lt;/SPAN&gt;.&lt;SPAN&gt;AddByTwoiMates&lt;/SPAN&gt;(&lt;SPAN&gt;oiMateDef3&lt;/SPAN&gt;, &lt;SPAN&gt;oiMateDef4&lt;/SPAN&gt;)
	 
&lt;SPAN&gt;'Direction of movement constraint	 &lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef5&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef5&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef5&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:5"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:5"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN&gt;' Look through the iMateDefinitions defined for the second occurrence&lt;/SPAN&gt;
    &lt;SPAN&gt;' and find the one named "iMate:1".  This loop demonstrates using the&lt;/SPAN&gt;
    &lt;SPAN&gt;' For Each method of iterating through a collection.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef6&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef6&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef6&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iMate:6"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iMate:7"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;' Create an iMate result using the two definitions.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateResult3&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateResult&lt;/SPAN&gt;
     &lt;SPAN&gt;oiMateResult3&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;iMateResults&lt;/SPAN&gt;.&lt;SPAN&gt;AddByTwoiMates&lt;/SPAN&gt;(&lt;SPAN&gt;oiMateDef5&lt;/SPAN&gt;, &lt;SPAN&gt;oiMateDef6&lt;/SPAN&gt;)	
	 
&lt;SPAN&gt;'Center plane constraint&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef7&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef7&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef7&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iFlush:1"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iFlush:1"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc1&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    
    &lt;SPAN&gt;' Look through the iMateDefinitions defined for the second occurrence&lt;/SPAN&gt;
    &lt;SPAN&gt;' and find the one named "iMate:1".  This loop demonstrates using the&lt;/SPAN&gt;
    &lt;SPAN&gt;' For Each method of iterating through a collection.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef8&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateDefinition&lt;/SPAN&gt;

    &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef8&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;iMateDefinitions&lt;/SPAN&gt;
        &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oiMateDef8&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt; = &lt;SPAN&gt;"iFlush:1"&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
            &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;
            &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
        &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;Next&lt;/SPAN&gt;

    &lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;bFoundDefinition&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt;
        &lt;SPAN&gt;MsgBox&lt;/SPAN&gt; (&lt;SPAN&gt;"An iMate definition named ""iFlush:1"" does not exist in "&lt;/SPAN&gt; &amp;amp; &lt;SPAN&gt;oOcc2&lt;/SPAN&gt;.&lt;SPAN&gt;Name&lt;/SPAN&gt;)
        &lt;SPAN&gt;Exit&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;
    &lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;If&lt;/SPAN&gt;
    &lt;SPAN&gt;' Create an iMate result using the two definitions.&lt;/SPAN&gt;
    &lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oiMateResult4&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;iMateResult&lt;/SPAN&gt;
     &lt;SPAN&gt;oiMateResult4&lt;/SPAN&gt; = &lt;SPAN&gt;oAsmCompDef&lt;/SPAN&gt;.&lt;SPAN&gt;iMateResults&lt;/SPAN&gt;.&lt;SPAN&gt;AddByTwoiMates&lt;/SPAN&gt;(&lt;SPAN&gt;oiMateDef7&lt;/SPAN&gt;, &lt;SPAN&gt;oiMateDef8&lt;/SPAN&gt;)

&lt;SPAN&gt;End&lt;/SPAN&gt; &lt;SPAN&gt;Sub&lt;/SPAN&gt;&amp;nbsp;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 02 May 2018 21:11:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/imate-limits-and-ilogic/m-p/7975670#M83919</guid>
      <dc:creator>jzcrouse</dc:creator>
      <dc:date>2018-05-02T21:11:13Z</dc:date>
    </item>
  </channel>
</rss>

