<?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 Re: How can I tell if an arc curves inwards or outwards? in Inventor Programming - iLogic, Macros, AddIns &amp; Apprentice</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/how-can-i-tell-if-an-arc-curves-inwards-or-outwards/m-p/11208847#M138842</link>
    <description>&lt;P&gt;&lt;FONT size="3"&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/7306887"&gt;@johnPGNFG&lt;/a&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="3"&gt;Here is an iLogic example, based on the &lt;EM&gt;"Is cylindrical face interior or exterior?"&lt;/EM&gt; API Help files Sample&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="3"&gt;I hope this helps.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;Best of luck to you in all of your Inventor pursuits,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;Curtis&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;&lt;A href="http://inventortrenches.blogspot.com" target="_blank" rel="noopener"&gt;http://inventortrenches.blogspot.com&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&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;oDoc&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;oHLSet&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;HighlightSet&lt;/SPAN&gt;
&lt;SPAN&gt;oHLSet&lt;/SPAN&gt; = &lt;SPAN&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN&gt;CreateHighlightSet&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oRed&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Color&lt;/SPAN&gt;
&lt;SPAN&gt;oRed&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN&gt;CreateColor&lt;/SPAN&gt;(255, 0, 0)
&lt;SPAN&gt;oRed&lt;/SPAN&gt;.&lt;SPAN&gt;Opacity&lt;/SPAN&gt; = 0.1
&lt;SPAN&gt;oHLSet&lt;/SPAN&gt;.&lt;SPAN&gt;Color&lt;/SPAN&gt; = &lt;SPAN&gt;oRed&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHLSet2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;HighlightSet&lt;/SPAN&gt;
&lt;SPAN&gt;oHLSet2&lt;/SPAN&gt; = &lt;SPAN&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN&gt;CreateHighlightSet&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oGreen&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Color&lt;/SPAN&gt;
&lt;SPAN&gt;oGreen&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN&gt;CreateColor&lt;/SPAN&gt;(0, 255, 0)
&lt;SPAN&gt;oHLSet2&lt;/SPAN&gt;.&lt;SPAN&gt;Color&lt;/SPAN&gt; = &lt;SPAN&gt;oGreen&lt;/SPAN&gt;

&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oSolid&lt;/SPAN&gt; &lt;SPAN&gt;In&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;Dim&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;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oSolid&lt;/SPAN&gt;.&lt;SPAN&gt;Faces&lt;/SPAN&gt;

		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;SurfaceType&lt;/SPAN&gt; = &lt;SPAN&gt;SurfaceTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kCylinderSurface&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;Continue&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Edges&lt;/SPAN&gt;.&lt;SPAN&gt;Count&lt;/SPAN&gt; = 2 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;Continue&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;'skip holes or full circle cuts&lt;/SPAN&gt;

		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oCylinder&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Cylinder&lt;/SPAN&gt;
		&lt;SPAN&gt;oCylinder&lt;/SPAN&gt; = &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;

		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;params&lt;/SPAN&gt;(1) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;
		&lt;SPAN&gt;params&lt;/SPAN&gt;(0) = 0.5
		&lt;SPAN&gt;params&lt;/SPAN&gt;(1) = 0.5

		&lt;SPAN&gt;' Get point on surface at param .5,.5&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;points&lt;/SPAN&gt;(2) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;
		&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Evaluator&lt;/SPAN&gt;.&lt;SPAN&gt;GetPointAtParam&lt;/SPAN&gt;(&lt;SPAN&gt;params&lt;/SPAN&gt;, &lt;SPAN&gt;points&lt;/SPAN&gt;)

		&lt;SPAN&gt;' Create point object&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oPoint&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Point&lt;/SPAN&gt;
		&lt;SPAN&gt;oPoint&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreatePoint&lt;/SPAN&gt; _
			(&lt;SPAN&gt;points&lt;/SPAN&gt;(0), &lt;SPAN&gt;points&lt;/SPAN&gt;(1), &lt;SPAN&gt;points&lt;/SPAN&gt;(2))

		&lt;SPAN&gt;' Get normal at this point&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;normals&lt;/SPAN&gt;(2) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;
		&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Evaluator&lt;/SPAN&gt;.&lt;SPAN&gt;GetNormal&lt;/SPAN&gt;(&lt;SPAN&gt;params&lt;/SPAN&gt;, &lt;SPAN&gt;normals&lt;/SPAN&gt;)

		&lt;SPAN&gt;' Create normal vector object&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oNormal&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Vector&lt;/SPAN&gt;
		&lt;SPAN&gt;oNormal&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreateVector&lt;/SPAN&gt; _
			(&lt;SPAN&gt;normals&lt;/SPAN&gt;(0), &lt;SPAN&gt;normals&lt;/SPAN&gt;(1), &lt;SPAN&gt;normals&lt;/SPAN&gt;(2))

		&lt;SPAN&gt;' Scale vector by radius of the cylinder&lt;/SPAN&gt;
		&lt;SPAN&gt;oNormal&lt;/SPAN&gt;.&lt;SPAN&gt;ScaleBy&lt;/SPAN&gt;(&lt;SPAN&gt;oCylinder&lt;/SPAN&gt;.&lt;SPAN&gt;Radius&lt;/SPAN&gt;)

		&lt;SPAN&gt;' Find the sampler point on the normal by adding the&lt;/SPAN&gt;
		&lt;SPAN&gt;' scaled normal vector to the point at .5,.5 param.&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSamplePoint&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Point&lt;/SPAN&gt;
		&lt;SPAN&gt;oSamplePoint&lt;/SPAN&gt; = &lt;SPAN&gt;oPoint&lt;/SPAN&gt;

		&lt;SPAN&gt;oSamplePoint&lt;/SPAN&gt;.&lt;SPAN&gt;TranslateBy&lt;/SPAN&gt;(&lt;SPAN&gt;oNormal&lt;/SPAN&gt;)

		&lt;SPAN&gt;' Check if the sample point lies on the cylinder axis.&lt;/SPAN&gt;
		&lt;SPAN&gt;' If it does, we have a hollow face.&lt;/SPAN&gt;

		&lt;SPAN&gt;' Create a line describing the cylinder axis&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAxisLine&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Line&lt;/SPAN&gt;
		&lt;SPAN&gt;oAxisLine&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreateLine&lt;/SPAN&gt; _
		(&lt;SPAN&gt;oCylinder&lt;/SPAN&gt;.&lt;SPAN&gt;BasePoint&lt;/SPAN&gt;, &lt;SPAN&gt;oCylinder&lt;/SPAN&gt;.&lt;SPAN&gt;AxisVector&lt;/SPAN&gt;.&lt;SPAN&gt;AsVector&lt;/SPAN&gt;)

		&lt;SPAN&gt;'Create a line parallel to the axis passing thru the sample point.&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSampleLine&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Line&lt;/SPAN&gt;
		&lt;SPAN&gt;oSampleLine&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreateLine&lt;/SPAN&gt; _
		(&lt;SPAN&gt;oSamplePoint&lt;/SPAN&gt;, &lt;SPAN&gt;oCylinder&lt;/SPAN&gt;.&lt;SPAN&gt;AxisVector&lt;/SPAN&gt;.&lt;SPAN&gt;AsVector&lt;/SPAN&gt;)


		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oSampleLine&lt;/SPAN&gt;.&lt;SPAN&gt;IsColinearTo&lt;/SPAN&gt;(&lt;SPAN&gt;oAxisLine&lt;/SPAN&gt;) &lt;SPAN&gt;Then&lt;/SPAN&gt;
			&lt;SPAN&gt;oHLSet&lt;/SPAN&gt;.&lt;SPAN&gt;AddItem&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;)
			&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Interior face."&lt;/SPAN&gt;, , &lt;SPAN&gt;"iLogic"&lt;/SPAN&gt;)
		&lt;SPAN&gt;Else&lt;/SPAN&gt;
			&lt;SPAN&gt;oHLSet2&lt;/SPAN&gt;.&lt;SPAN&gt;AddItem&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;)
			&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Exterior face."&lt;/SPAN&gt;, , &lt;SPAN&gt;"iLogic"&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;Next&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 01 Jun 2022 20:32:24 GMT</pubDate>
    <dc:creator>Curtis_Waguespack</dc:creator>
    <dc:date>2022-06-01T20:32:24Z</dc:date>
    <item>
      <title>How can I tell if an arc curves inwards or outwards?</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/how-can-i-tell-if-an-arc-curves-inwards-or-outwards/m-p/11206208#M138779</link>
      <description>&lt;P&gt;How can I tell if an arc curves "into" a part or "out of" a part using the edge?&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example, how could I identify the curve on the left (curving in) as -1 and the curve on the right (curving out) as +1?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I extracted the ArcData but can't seem to find a way I can use this to tell which way the arc curves.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Arc3d curve = edge.Geometry;&amp;nbsp;&lt;/P&gt;&lt;P&gt;curve.GetArcData(....);&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="cirinout.png" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1074395iF04785B6259E6557/image-size/large?v=v2&amp;amp;px=999" role="button" title="cirinout.png" alt="cirinout.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 31 May 2022 22:28:55 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/how-can-i-tell-if-an-arc-curves-inwards-or-outwards/m-p/11206208#M138779</guid>
      <dc:creator>johnPGNFG</dc:creator>
      <dc:date>2022-05-31T22:28:55Z</dc:date>
    </item>
    <item>
      <title>Re: How can I tell if an arc curves inwards or outwards?</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/how-can-i-tell-if-an-arc-curves-inwards-or-outwards/m-p/11206838#M138783</link>
      <description>&lt;P&gt;It depends on reason. here is few aproaches&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Check tangential faces of cylinder face: arcEdge.Faces.TangentiallyConnectedFaces.Count &amp;gt; 0&lt;/LI&gt;&lt;LI&gt;Check center point of arc is inside of surface body: &lt;A href="https://help.autodesk.com/view/INVNTOR/2020/ENU/?guid=GUID-5891754F-7223-4998-9892-F900592C6196" target="_blank" rel="noopener"&gt;SurfaceBody.IsPointInside&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;&lt;LI&gt;Check the tangent of arc on one of the endpoint and line direction:&amp;nbsp;&amp;nbsp;&lt;A href="https://help.autodesk.com/view/INVNTOR/2020/ENU/?guid=GUID-54CE77BA-FDE6-420D-BEAB-B029C88B2EBE" target="_blank" rel="noopener"&gt;CurveEvaluator.GetTangent&lt;/A&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;and so on...&lt;/P&gt;</description>
      <pubDate>Wed, 01 Jun 2022 06:33:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/how-can-i-tell-if-an-arc-curves-inwards-or-outwards/m-p/11206838#M138783</guid>
      <dc:creator>Michael.Navara</dc:creator>
      <dc:date>2022-06-01T06:33:44Z</dc:date>
    </item>
    <item>
      <title>Re: How can I tell if an arc curves inwards or outwards?</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/how-can-i-tell-if-an-arc-curves-inwards-or-outwards/m-p/11208504#M138830</link>
      <description>&lt;P&gt;1. I tried this on a part with multiple curves that are in and out and I got the count to be 1 on both the ins and outs.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2.&amp;nbsp; Originally this was the method I was using but then I came across a part that it did not work on. The pic attached is an example. Both the in and out curve have a center point that is not on the face.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3.&amp;nbsp; This works for the part I posted but say if both sides curved outward, the tangent point on the starting point of one curve would point in the opposite direction of the tangent of the starting point on the other curve.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="johnPGNFG_1-1654106591129.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1074898i9AE7D89B4FCFD22D/image-size/medium?v=v2&amp;amp;px=400" role="button" title="johnPGNFG_1-1654106591129.png" alt="johnPGNFG_1-1654106591129.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="johnPGNFG_0-1654106559449.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1074897i91597989FBE444FA/image-size/medium?v=v2&amp;amp;px=400" role="button" title="johnPGNFG_0-1654106559449.png" alt="johnPGNFG_0-1654106559449.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="johnPGNFG_2-1654106682515.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1074899i48E7D47113BBC06A/image-size/medium?v=v2&amp;amp;px=400" role="button" title="johnPGNFG_2-1654106682515.png" alt="johnPGNFG_2-1654106682515.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 Jun 2022 18:06:06 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/how-can-i-tell-if-an-arc-curves-inwards-or-outwards/m-p/11208504#M138830</guid>
      <dc:creator>johnPGNFG</dc:creator>
      <dc:date>2022-06-01T18:06:06Z</dc:date>
    </item>
    <item>
      <title>Re: How can I tell if an arc curves inwards or outwards?</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/how-can-i-tell-if-an-arc-curves-inwards-or-outwards/m-p/11208847#M138842</link>
      <description>&lt;P&gt;&lt;FONT size="3"&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/7306887"&gt;@johnPGNFG&lt;/a&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="3"&gt;Here is an iLogic example, based on the &lt;EM&gt;"Is cylindrical face interior or exterior?"&lt;/EM&gt; API Help files Sample&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT size="3"&gt;I hope this helps.&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;Best of luck to you in all of your Inventor pursuits,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;Curtis&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT size="3"&gt;&lt;A href="http://inventortrenches.blogspot.com" target="_blank" rel="noopener"&gt;http://inventortrenches.blogspot.com&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&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;oDoc&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;oHLSet&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;HighlightSet&lt;/SPAN&gt;
&lt;SPAN&gt;oHLSet&lt;/SPAN&gt; = &lt;SPAN&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN&gt;CreateHighlightSet&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oRed&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Color&lt;/SPAN&gt;
&lt;SPAN&gt;oRed&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN&gt;CreateColor&lt;/SPAN&gt;(255, 0, 0)
&lt;SPAN&gt;oRed&lt;/SPAN&gt;.&lt;SPAN&gt;Opacity&lt;/SPAN&gt; = 0.1
&lt;SPAN&gt;oHLSet&lt;/SPAN&gt;.&lt;SPAN&gt;Color&lt;/SPAN&gt; = &lt;SPAN&gt;oRed&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oHLSet2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;HighlightSet&lt;/SPAN&gt;
&lt;SPAN&gt;oHLSet2&lt;/SPAN&gt; = &lt;SPAN&gt;oDoc&lt;/SPAN&gt;.&lt;SPAN&gt;CreateHighlightSet&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oGreen&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Color&lt;/SPAN&gt;
&lt;SPAN&gt;oGreen&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN&gt;CreateColor&lt;/SPAN&gt;(0, 255, 0)
&lt;SPAN&gt;oHLSet2&lt;/SPAN&gt;.&lt;SPAN&gt;Color&lt;/SPAN&gt; = &lt;SPAN&gt;oGreen&lt;/SPAN&gt;

&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oSolid&lt;/SPAN&gt; &lt;SPAN&gt;In&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;Dim&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;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;oSolid&lt;/SPAN&gt;.&lt;SPAN&gt;Faces&lt;/SPAN&gt;

		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;Not&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;SurfaceType&lt;/SPAN&gt; = &lt;SPAN&gt;SurfaceTypeEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kCylinderSurface&lt;/SPAN&gt; &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;Continue&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt;
		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Edges&lt;/SPAN&gt;.&lt;SPAN&gt;Count&lt;/SPAN&gt; = 2 &lt;SPAN&gt;Then&lt;/SPAN&gt; &lt;SPAN&gt;Continue&lt;/SPAN&gt; &lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;'skip holes or full circle cuts&lt;/SPAN&gt;

		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oCylinder&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Cylinder&lt;/SPAN&gt;
		&lt;SPAN&gt;oCylinder&lt;/SPAN&gt; = &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;

		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;params&lt;/SPAN&gt;(1) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;
		&lt;SPAN&gt;params&lt;/SPAN&gt;(0) = 0.5
		&lt;SPAN&gt;params&lt;/SPAN&gt;(1) = 0.5

		&lt;SPAN&gt;' Get point on surface at param .5,.5&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;points&lt;/SPAN&gt;(2) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;
		&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Evaluator&lt;/SPAN&gt;.&lt;SPAN&gt;GetPointAtParam&lt;/SPAN&gt;(&lt;SPAN&gt;params&lt;/SPAN&gt;, &lt;SPAN&gt;points&lt;/SPAN&gt;)

		&lt;SPAN&gt;' Create point object&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oPoint&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Point&lt;/SPAN&gt;
		&lt;SPAN&gt;oPoint&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreatePoint&lt;/SPAN&gt; _
			(&lt;SPAN&gt;points&lt;/SPAN&gt;(0), &lt;SPAN&gt;points&lt;/SPAN&gt;(1), &lt;SPAN&gt;points&lt;/SPAN&gt;(2))

		&lt;SPAN&gt;' Get normal at this point&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;normals&lt;/SPAN&gt;(2) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Double&lt;/SPAN&gt;
		&lt;SPAN&gt;Call&lt;/SPAN&gt; &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;Evaluator&lt;/SPAN&gt;.&lt;SPAN&gt;GetNormal&lt;/SPAN&gt;(&lt;SPAN&gt;params&lt;/SPAN&gt;, &lt;SPAN&gt;normals&lt;/SPAN&gt;)

		&lt;SPAN&gt;' Create normal vector object&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oNormal&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Vector&lt;/SPAN&gt;
		&lt;SPAN&gt;oNormal&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreateVector&lt;/SPAN&gt; _
			(&lt;SPAN&gt;normals&lt;/SPAN&gt;(0), &lt;SPAN&gt;normals&lt;/SPAN&gt;(1), &lt;SPAN&gt;normals&lt;/SPAN&gt;(2))

		&lt;SPAN&gt;' Scale vector by radius of the cylinder&lt;/SPAN&gt;
		&lt;SPAN&gt;oNormal&lt;/SPAN&gt;.&lt;SPAN&gt;ScaleBy&lt;/SPAN&gt;(&lt;SPAN&gt;oCylinder&lt;/SPAN&gt;.&lt;SPAN&gt;Radius&lt;/SPAN&gt;)

		&lt;SPAN&gt;' Find the sampler point on the normal by adding the&lt;/SPAN&gt;
		&lt;SPAN&gt;' scaled normal vector to the point at .5,.5 param.&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSamplePoint&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Point&lt;/SPAN&gt;
		&lt;SPAN&gt;oSamplePoint&lt;/SPAN&gt; = &lt;SPAN&gt;oPoint&lt;/SPAN&gt;

		&lt;SPAN&gt;oSamplePoint&lt;/SPAN&gt;.&lt;SPAN&gt;TranslateBy&lt;/SPAN&gt;(&lt;SPAN&gt;oNormal&lt;/SPAN&gt;)

		&lt;SPAN&gt;' Check if the sample point lies on the cylinder axis.&lt;/SPAN&gt;
		&lt;SPAN&gt;' If it does, we have a hollow face.&lt;/SPAN&gt;

		&lt;SPAN&gt;' Create a line describing the cylinder axis&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAxisLine&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Line&lt;/SPAN&gt;
		&lt;SPAN&gt;oAxisLine&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreateLine&lt;/SPAN&gt; _
		(&lt;SPAN&gt;oCylinder&lt;/SPAN&gt;.&lt;SPAN&gt;BasePoint&lt;/SPAN&gt;, &lt;SPAN&gt;oCylinder&lt;/SPAN&gt;.&lt;SPAN&gt;AxisVector&lt;/SPAN&gt;.&lt;SPAN&gt;AsVector&lt;/SPAN&gt;)

		&lt;SPAN&gt;'Create a line parallel to the axis passing thru the sample point.&lt;/SPAN&gt;
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSampleLine&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Line&lt;/SPAN&gt;
		&lt;SPAN&gt;oSampleLine&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreateLine&lt;/SPAN&gt; _
		(&lt;SPAN&gt;oSamplePoint&lt;/SPAN&gt;, &lt;SPAN&gt;oCylinder&lt;/SPAN&gt;.&lt;SPAN&gt;AxisVector&lt;/SPAN&gt;.&lt;SPAN&gt;AsVector&lt;/SPAN&gt;)


		&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oSampleLine&lt;/SPAN&gt;.&lt;SPAN&gt;IsColinearTo&lt;/SPAN&gt;(&lt;SPAN&gt;oAxisLine&lt;/SPAN&gt;) &lt;SPAN&gt;Then&lt;/SPAN&gt;
			&lt;SPAN&gt;oHLSet&lt;/SPAN&gt;.&lt;SPAN&gt;AddItem&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;)
			&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Interior face."&lt;/SPAN&gt;, , &lt;SPAN&gt;"iLogic"&lt;/SPAN&gt;)
		&lt;SPAN&gt;Else&lt;/SPAN&gt;
			&lt;SPAN&gt;oHLSet2&lt;/SPAN&gt;.&lt;SPAN&gt;AddItem&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;)
			&lt;SPAN&gt;MsgBox&lt;/SPAN&gt;(&lt;SPAN&gt;"Exterior face."&lt;/SPAN&gt;, , &lt;SPAN&gt;"iLogic"&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;Next&lt;/SPAN&gt;
&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 Jun 2022 20:32:24 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/how-can-i-tell-if-an-arc-curves-inwards-or-outwards/m-p/11208847#M138842</guid>
      <dc:creator>Curtis_Waguespack</dc:creator>
      <dc:date>2022-06-01T20:32:24Z</dc:date>
    </item>
  </channel>
</rss>

