<?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 Help with iLogic error - Plane.isParallelto/iscoplanarto in Inventor Programming - iLogic, Macros, AddIns &amp; Apprentice</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/help-with-ilogic-error-plane-isparallelto-iscoplanarto/m-p/12747331#M166875</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am writing some automation code in iLogic and am having an issue with using IsCoplanarto and IsParallelto&amp;nbsp;&lt;/P&gt;&lt;P&gt;These methods create an error when used with face or face.geometry ie.:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;oPlane1&lt;/SPAN&gt;.&lt;SPAN&gt;IsParallelTo&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;)  or &lt;SPAN&gt;oPlane1&lt;/SPAN&gt;.&lt;SPAN&gt;IsCoplanarTo&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;P&gt;The code seems to work fine if i use "On Error Resume Next" or "Try Catch" to handle the error, but i will be needing to debug in the future so i would like to find a way that will not generate an error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Attached is a file with 2 rules, one with error handling on to show how it should work, the other with error handling off to show the error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;here is my code&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;'On Error Resume Next&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;PartDocument&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oPlane1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Plane&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oPlane2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Plane&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFaces&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Faces&lt;/SPAN&gt; = &lt;SPAN&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;SurfaceBodies&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(1).&lt;SPAN&gt;Faces&lt;/SPAN&gt; &lt;SPAN&gt;'gets too many results but works, using worksurfaces doesnt give me the correct result&lt;/SPAN&gt;
&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;oFaces&lt;/SPAN&gt;.&lt;SPAN&gt;Count&lt;/SPAN&gt;.&lt;SPAN&gt;ToString&lt;/SPAN&gt;, &lt;SPAN&gt;"Check No. of faces in Surface body"&lt;/SPAN&gt;)

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFace1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;CommandManager&lt;/SPAN&gt;.&lt;SPAN&gt;Pick&lt;/SPAN&gt;(&lt;SPAN&gt;SelectionFilterEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kPartFacePlanarFilter&lt;/SPAN&gt;, &lt;SPAN&gt;"Select a face"&lt;/SPAN&gt;)
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFace2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
&lt;SPAN&gt;oPlane1&lt;/SPAN&gt; = &lt;SPAN&gt;oFace1&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;	

&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oFaces&lt;/SPAN&gt;	
	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oPlane1&lt;/SPAN&gt;.&lt;SPAN&gt;IsCoplanarTo&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;) &lt;SPAN&gt;Then&lt;/SPAN&gt; 
	&lt;SPAN&gt;ElseIf&lt;/SPAN&gt; &lt;SPAN&gt;oPlane1&lt;/SPAN&gt;.&lt;SPAN&gt;IsParallelTo&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;) &lt;SPAN&gt;Then&lt;/SPAN&gt; 
			&lt;SPAN&gt;oFace2&lt;/SPAN&gt; = &lt;SPAN&gt;oFace&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;DistPoints&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;MeasureTools&lt;/SPAN&gt;.&lt;SPAN&gt;GetMinimumDistance&lt;/SPAN&gt;(&lt;SPAN&gt;oFace1&lt;/SPAN&gt;, &lt;SPAN&gt;oFace2&lt;/SPAN&gt;)
&lt;SPAN&gt;Distmm&lt;/SPAN&gt; = &lt;SPAN&gt;Round&lt;/SPAN&gt;(&lt;SPAN&gt;DistPoints&lt;/SPAN&gt; * 10).&lt;SPAN&gt;ToString&lt;/SPAN&gt;() + &lt;SPAN&gt;"mm Thick"&lt;/SPAN&gt;
&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;Distmm&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)	&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 02 May 2024 03:24:25 GMT</pubDate>
    <dc:creator>xenocatalyst</dc:creator>
    <dc:date>2024-05-02T03:24:25Z</dc:date>
    <item>
      <title>Help with iLogic error - Plane.isParallelto/iscoplanarto</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/help-with-ilogic-error-plane-isparallelto-iscoplanarto/m-p/12747331#M166875</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am writing some automation code in iLogic and am having an issue with using IsCoplanarto and IsParallelto&amp;nbsp;&lt;/P&gt;&lt;P&gt;These methods create an error when used with face or face.geometry ie.:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;oPlane1&lt;/SPAN&gt;.&lt;SPAN&gt;IsParallelTo&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;)  or &lt;SPAN&gt;oPlane1&lt;/SPAN&gt;.&lt;SPAN&gt;IsCoplanarTo&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;)&lt;/PRE&gt;&lt;P&gt;The code seems to work fine if i use "On Error Resume Next" or "Try Catch" to handle the error, but i will be needing to debug in the future so i would like to find a way that will not generate an error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Attached is a file with 2 rules, one with error handling on to show how it should work, the other with error handling off to show the error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;here is my code&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;'On Error Resume Next&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oDoc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;PartDocument&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oPlane1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Plane&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oPlane2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Plane&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFaces&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Faces&lt;/SPAN&gt; = &lt;SPAN&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN&gt;ComponentDefinition&lt;/SPAN&gt;.&lt;SPAN&gt;SurfaceBodies&lt;/SPAN&gt;.&lt;SPAN&gt;Item&lt;/SPAN&gt;(1).&lt;SPAN&gt;Faces&lt;/SPAN&gt; &lt;SPAN&gt;'gets too many results but works, using worksurfaces doesnt give me the correct result&lt;/SPAN&gt;
&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;oFaces&lt;/SPAN&gt;.&lt;SPAN&gt;Count&lt;/SPAN&gt;.&lt;SPAN&gt;ToString&lt;/SPAN&gt;, &lt;SPAN&gt;"Check No. of faces in Surface body"&lt;/SPAN&gt;)

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFace1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;CommandManager&lt;/SPAN&gt;.&lt;SPAN&gt;Pick&lt;/SPAN&gt;(&lt;SPAN&gt;SelectionFilterEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kPartFacePlanarFilter&lt;/SPAN&gt;, &lt;SPAN&gt;"Select a face"&lt;/SPAN&gt;)
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFace2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; = &lt;SPAN&gt;Nothing&lt;/SPAN&gt;
&lt;SPAN&gt;oPlane1&lt;/SPAN&gt; = &lt;SPAN&gt;oFace1&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;	

&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Face&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oFaces&lt;/SPAN&gt;	
	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oPlane1&lt;/SPAN&gt;.&lt;SPAN&gt;IsCoplanarTo&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;) &lt;SPAN&gt;Then&lt;/SPAN&gt; 
	&lt;SPAN&gt;ElseIf&lt;/SPAN&gt; &lt;SPAN&gt;oPlane1&lt;/SPAN&gt;.&lt;SPAN&gt;IsParallelTo&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;) &lt;SPAN&gt;Then&lt;/SPAN&gt; 
			&lt;SPAN&gt;oFace2&lt;/SPAN&gt; = &lt;SPAN&gt;oFace&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;DistPoints&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;MeasureTools&lt;/SPAN&gt;.&lt;SPAN&gt;GetMinimumDistance&lt;/SPAN&gt;(&lt;SPAN&gt;oFace1&lt;/SPAN&gt;, &lt;SPAN&gt;oFace2&lt;/SPAN&gt;)
&lt;SPAN&gt;Distmm&lt;/SPAN&gt; = &lt;SPAN&gt;Round&lt;/SPAN&gt;(&lt;SPAN&gt;DistPoints&lt;/SPAN&gt; * 10).&lt;SPAN&gt;ToString&lt;/SPAN&gt;() + &lt;SPAN&gt;"mm Thick"&lt;/SPAN&gt;
&lt;SPAN&gt;MessageBox&lt;/SPAN&gt;.&lt;SPAN&gt;Show&lt;/SPAN&gt;(&lt;SPAN&gt;Distmm&lt;/SPAN&gt;, &lt;SPAN&gt;"Title"&lt;/SPAN&gt;)	&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 02 May 2024 03:24:25 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/help-with-ilogic-error-plane-isparallelto-iscoplanarto/m-p/12747331#M166875</guid>
      <dc:creator>xenocatalyst</dc:creator>
      <dc:date>2024-05-02T03:24:25Z</dc:date>
    </item>
    <item>
      <title>Re: Help with iLogic error - Plane.isParallelto/iscoplanarto</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/help-with-ilogic-error-plane-isparallelto-iscoplanarto/m-p/12747408#M166877</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1953423"&gt;@xenocatalyst&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you check the face surface type to ensure it's a plane surface then you should be home and dry. &lt;A href="https://help.autodesk.com/view/INVNTOR/2022/ENU/?guid=Line_IsColinearTo_Sample" target="_blank" rel="noopener"&gt;The sample API help page shown here in face.geometry&lt;/A&gt; gave me the hint for this&lt;/P&gt;&lt;LI-CODE lang="visual-basic"&gt;Dim oDoc As PartDocument = ThisApplication.ActiveDocument
Dim oPlane1 As Plane = Nothing
Dim oPlane2 As Plane = Nothing

Dim oFaces As Faces = oDoc.ComponentDefinition.SurfaceBodies.Item(1).Faces 'gets too many results but works, using worksurfaces doesnt give me the correct result
MessageBox.Show(oFaces.Count.ToString, "Check No. of faces in Surface body")

Dim oFace1 As Face = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kPartFacePlanarFilter, "Select a face")
Dim oFace2 As Face = Nothing
oPlane1 = oFace1.Geometry	

For Each oFace As Face In oFaces

	 If oFace.SurfaceType = SurfaceTypeEnum.kPlaneSurface Then
		If oPlane1.IsCoplanarTo(oFace.Geometry) Then 
		ElseIf oPlane1.IsParallelTo(oFace.Geometry) Then 
				oFace2 = oFace
		End If
    End If
	
Next

DistPoints = ThisApplication.MeasureTools.GetMinimumDistance(oFace1, oFace2)
Distmm = Round(DistPoints * 10).ToString() + "mm Thick"
MessageBox.Show(Distmm, "Title")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 02 May 2024 04:54:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/help-with-ilogic-error-plane-isparallelto-iscoplanarto/m-p/12747408#M166877</guid>
      <dc:creator>A.Acheson</dc:creator>
      <dc:date>2024-05-02T04:54:29Z</dc:date>
    </item>
    <item>
      <title>Re: Help with iLogic error - Plane.isParallelto/iscoplanarto</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/help-with-ilogic-error-plane-isparallelto-iscoplanarto/m-p/12747441#M166879</link>
      <description>&lt;P&gt;Thanks for that Alan,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That is exactly what I needed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What i take away from this is I was attempting to compare&lt;SPAN&gt;&amp;nbsp;a planar object using a property that was not present in a non planar object, sort of.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 02 May 2024 05:30:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/help-with-ilogic-error-plane-isparallelto-iscoplanarto/m-p/12747441#M166879</guid>
      <dc:creator>xenocatalyst</dc:creator>
      <dc:date>2024-05-02T05:30:11Z</dc:date>
    </item>
    <item>
      <title>Re: Help with iLogic error - Plane.isParallelto/iscoplanarto</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/help-with-ilogic-error-plane-isparallelto-iscoplanarto/m-p/12747483#M166882</link>
      <description>&lt;P&gt;Well those methods can only accept plane objects for comparison so if you offered anything else then your error occurs. In&amp;nbsp;my test case it was a simple pipe and it was either plane or cylinder surface types.&amp;nbsp; When the filter is applied then you only have one type.&amp;nbsp;&lt;/P&gt;&lt;P&gt;You were right to question using on error resume or just a try catch. It gives more understanding to your methods the longer way.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 02 May 2024 05:58:00 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/help-with-ilogic-error-plane-isparallelto-iscoplanarto/m-p/12747483#M166882</guid>
      <dc:creator>A.Acheson</dc:creator>
      <dc:date>2024-05-02T05:58:00Z</dc:date>
    </item>
  </channel>
</rss>

