<?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 Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop in Inventor Programming Forum</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11457880#M36008</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/11874503"&gt;@florian_wenzel&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for you answer.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes - all planes with holes are flat and parallel to the plane on which it is projecting.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is intended to be a "streamlined" tool for the adaptive projection of holes from different parts onto the one in which these holes are to be formed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Inventor's standard approach to adaptability in large assemblies causes numerous problems with adaptability. For do this I use the "copy object" tool and then project that object onto the sketches and make the appropriate holes. The rule described in this topic allows you to significantly reduce the time required for these operations. However, it would be ideal for me if I could select and project all surfaces "at once".&lt;/P&gt;&lt;P&gt;But I never know how many planes I want to project (sometimes one, sometimes two, sometimes maybe 10 etc.).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Selecting planes seems to be done, but needs help in "joining" them and using them to project onto a selected plane.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I agree with you that it should be easier than with "rounded" surfaces, but I don't know how to do it anyway. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;ralfmja&lt;/P&gt;</description>
    <pubDate>Mon, 03 Oct 2022 09:05:07 GMT</pubDate>
    <dc:creator>ROBOMACH_PL_1</dc:creator>
    <dc:date>2022-10-03T09:05:07Z</dc:date>
    <item>
      <title>FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11231750#M35994</link>
      <description>&lt;P&gt;Hi;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Invnentor 2022&lt;/P&gt;&lt;P&gt;API: VB.NET VisualStudio&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i try to Select a Face in Assembly Enviroment,&lt;/P&gt;&lt;P&gt;then i want to take the Insides EdgeLoop.&lt;/P&gt;&lt;P&gt;And from every Inside EdgeLoop take the CenterPoint, Create WorkAxis, WorkPlane, PlanarSketch and Extrude Negative, CutOperation - Make Holes.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Problem is that this is Face in Other Part in Other Assembly.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="florian_wenzel_0-1655393339073.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1080867iDE5A37AAAF47BAF5/image-size/medium?v=v2&amp;amp;px=400" role="button" title="florian_wenzel_0-1655393339073.png" alt="florian_wenzel_0-1655393339073.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This is my Code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Public Sub CommandFunctionfweButton_07()


		Dim oAsmDoc As AssemblyDocument = g_inventorApplication.ActiveDocument
		Dim oAsmCompDef As AssemblyComponentDefinition = oAsmDoc.ComponentDefinition
		Dim oTO As TransientObjects = g_inventorApplication.TransientObjects
		Dim oTG As TransientGeometry = g_inventorApplication.TransientGeometry

		'Create Matrix
		Dim oMatrix As Matrix
		oMatrix = oTG.CreateMatrix


		'Create New Part in Main Assembly
		Dim oNameFile As String = InputBox("text")
		Dim oPartB As PartDocument = g_inventorApplication.Documents.Add(DocumentTypeEnum.kPartDocumentObject)
		oPartB.SaveAs("C:\InventorAPI\1780-007\Part_B_" &amp;amp; oNameFile &amp;amp; ".ipt", False)


		'Create NewOccurrence, PartComponentDefinition
		Dim oOccPartB As ComponentOccurrence
		oOccPartB = oAsmCompDef.Occurrences.AddByComponentDefinition(oPartB.ComponentDefinition, oMatrix)
		oPartB.Close()

		Dim oPartB_Def As PartComponentDefinition = oOccPartB.Definition


		'Create New Sketch and Profile and Extrude
		Dim oSketchPartB As PlanarSketch = oPartB_Def.Sketches.Add(oPartB_Def.WorkPlanes.Item(3), False)

		Dim oRectangleLines As SketchEntitiesEnumerator
		oRectangleLines = oSketchPartB.SketchLines.AddAsTwoPointRectangle(oTG.CreatePoint2d(0, 0), oTG.CreatePoint2d(40, 40))


		Dim oProfile As Profile
		oProfile = oSketchPartB.Profiles.AddForSolid

		Dim oExtrudeDef As ExtrudeDefinition
		oExtrudeDef = oPartB_Def.Features.ExtrudeFeatures.CreateExtrudeDefinition(oProfile, PartFeatureOperationEnum.kJoinOperation)
		Call oExtrudeDef.SetDistanceExtent(1, PartFeatureExtentDirectionEnum.kPositiveExtentDirection)
		Dim oExtrude1 As ExtrudeFeature
		oExtrude1 = oPartB_Def.Features.ExtrudeFeatures.Add(oExtrudeDef)


		'Select face form Other part in Other Assembly
		Dim oFace As Face = g_inventorApplication.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "Pick a Face")

		Dim oOcc1 As ComponentOccurrence = oFace.Parent.Parent

		'Create faceProxy
		Dim oFaceProxy As FaceProxy
		Call oOcc1.CreateGeometryProxy(oFace, oFaceProxy)




		'Create Loop and Select every InsideEdgeLoop, create a CenterPoint, Axis, Plane, Sketch, Circle and Extrude.
		If oFace IsNot Nothing Then
			For Each oEdgeloop As EdgeLoop In oFace.EdgeLoops
				If Not oEdgeloop.IsOuterEdgeLoop Then
					Dim oEdgeColl As EdgeCollection = oTO.CreateEdgeCollection
					For Each oEdge In oEdgeloop.Edges
						oEdgeColl.Add(oEdge)

					Next

					Dim oWorkpoint As WorkPoint = oPartB_Def.WorkPoints.AddAtCentroid(oEdgeColl)

					Dim oWorkAxis As WorkAxis = oPartB_Def.WorkAxes.AddByNormalToSurface(oFace, oWorkpoint, False)

					Dim oWorkPlane As WorkPlane = oPartB_Def.WorkPlanes.AddByNormalToCurve(oWorkAxis, oWorkpoint, False)

					Dim oWorkSketch As PlanarSketch = oPartB_Def.Sketches.AddWithOrientation(oWorkPlane, oWorkAxis, True, True, oWorkpoint, True)

					Dim oPointCenters As SketchPoint
					oPointCenters = oWorkSketch.SketchPoints.Add(oTG.CreatePoint2d(0, 0), True)

					Dim oCircle As SketchCircle
					oCircle = oWorkSketch.SketchCircles.AddByCenterRadius(oPointCenters, 2)


					Dim oProfile01 As Profile
					oProfile01 = oWorkSketch.Profiles.AddForSolid

					Dim oExtrudeDef02 As ExtrudeDefinition
					oExtrudeDef02 = oPartB_Def.Features.ExtrudeFeatures.CreateExtrudeDefinition(oProfile01, PartFeatureOperationEnum.kCutOperation)
					Call oExtrudeDef02.SetThroughAllExtent(PartFeatureExtentDirectionEnum.kSymmetricExtentDirection)
					Dim oExtrude2 As ExtrudeFeature
					oExtrude2 = oPartB_Def.Features.ExtrudeFeatures.Add(oExtrudeDef02)

				End If
			Next
		End If




	End Sub&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Error:&lt;/P&gt;&lt;P&gt;Unknow Error&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="florian_wenzel_0-1655133436601.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1079241i1A81403FE83903C0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="florian_wenzel_0-1655133436601.png" alt="florian_wenzel_0-1655133436601.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What i need to do with Proxy?&lt;/P&gt;&lt;P&gt;FaceProxy&lt;/P&gt;&lt;P&gt;EdgeLoopProxy&lt;/P&gt;&lt;P&gt;etc..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks For Any Suggestion&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jun 2022 07:15:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11231750#M35994</guid>
      <dc:creator>florian_wenzel</dc:creator>
      <dc:date>2022-06-20T07:15:09Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11233932#M35995</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;i would be very grateful, if Someone could tell me:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;What are the Rules,&lt;/STRONG&gt; when i want to take Geometry (Face) from other Assembly?&lt;/P&gt;&lt;P&gt;and then use for example the Inside EdgeLoop to Create a CenterPoint of Each EdgeLoop.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know, that when i what for Example Project a Curve from One Assembly to other Assembly, then i Create for Each Sketch a Proxy, and The Proxy need to be at the same Level.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But what i need to do with Face or FaceProxy.&lt;/P&gt;&lt;P&gt;How to use the Geometry in other Assembly, in other Part?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is this Possible in API?&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/537534" target="_self"&gt;&lt;SPAN class=""&gt;MjDeck&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/9248770" target="_self"&gt;&lt;SPAN class=""&gt;CGBenner&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/339467" target="_self"&gt;&lt;SPAN class=""&gt;adam.nagy&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/527033" target="_self"&gt;&lt;SPAN class=""&gt;AlexKorzun&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Sun, 19 Jun 2022 22:52:36 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11233932#M35995</guid>
      <dc:creator>florian_wenzel</dc:creator>
      <dc:date>2022-06-19T22:52:36Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11245561#M35996</link>
      <description>&lt;P&gt;Hi Again.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i have still Question about Taking Geometry from Face in Assembly Enviroment.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When i Pick a Face in Assembly Context, than this should be a Face or FaceProxy:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Dim oFace As Face = g_inventorApplication.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "Pick a Face")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;or&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Dim oFace As FaceProxy = g_inventorApplication.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "Pick a Face")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What are the Rules?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then for EdgeLoop, i use the Face or FaceProxy ?&lt;/P&gt;&lt;P&gt;Or Face.NativeObject ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;From a FaceProxy when i want to take the EdgeLoop, i will Create EdgeLoop or EdgeLoopProxy?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In HelpDesk are info, that i Create From FaceProxy a normal EdgeLoop.&lt;/P&gt;&lt;P&gt;&lt;A href="https://help.autodesk.com/view/INVNTOR/2022/ENU/?guid=FaceProxy_EdgeLoops" target="_blank" rel="noopener"&gt;Inventor 2022 Help | FaceProxy.EdgeLoops Property | Autodesk&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Than the Question, when i Create a EdgeLoopProxy ??? when from a FaceProxy i Create a Normal EdgeLoop?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If i want Create in a my PartB:&amp;nbsp; WorkPoint, WorkAxis and so on.&lt;/P&gt;&lt;P&gt;Then i Need to Create Proxy for Everything?&lt;/P&gt;&lt;P&gt;FaceProxy -- EdgeLoopProxy --EdgeProxy etc... ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is this Possible in Inventor API?&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/537534" target="_self"&gt;&lt;SPAN class=""&gt;MjDeck&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/9248770" target="_self"&gt;&lt;SPAN class=""&gt;CGBenner&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/339467" target="_self"&gt;&lt;SPAN class=""&gt;adam.nagy&lt;/SPAN&gt;&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/527033" target="_self"&gt;&lt;SPAN class=""&gt;AlexKorzun&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jun 2022 07:30:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11245561#M35996</guid>
      <dc:creator>florian_wenzel</dc:creator>
      <dc:date>2022-06-20T07:30:27Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11245649#M35997</link>
      <description>&lt;P&gt;Hi &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/11874503"&gt;@florian_wenzel&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I did some experimenting with the files you sent me last week, and my recommendation is to just copy the surface with the holes as a nonparametricbasefeature, then handle everything else within the part.&lt;/P&gt;
&lt;P&gt;To quickly test the code I wrote it as an iLogic rule. In the example you sent me, you can run it after PartA is created and first select the curved surface in Assembly_Elements, then the surface to copy the holes to in PartA &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the example files attached here, just pick the surface with the holes first and then a surface parallel to that surface in your other part.&lt;/P&gt;
&lt;P&gt;I hope this helps! &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAsm&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;ThisDoc&lt;/SPAN&gt;.&lt;SPAN&gt;Document&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oTransaction&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Transaction&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransactionManager&lt;/SPAN&gt;.&lt;SPAN&gt;StartTransaction&lt;/SPAN&gt;(&lt;SPAN&gt;oAsm&lt;/SPAN&gt;, &lt;SPAN&gt;"Create slots"&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;FaceProxy&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;kPartFaceFilter&lt;/SPAN&gt;, &lt;SPAN&gt;"Pick Face with original holes"&lt;/SPAN&gt;)
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFaceOcc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt; = &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;ContainingOccurrence&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;aFace&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;FaceProxy&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;kPartFaceFilter&lt;/SPAN&gt;, &lt;SPAN&gt;"Pick Face to create holes on"&lt;/SPAN&gt;)
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;aFaceRefKey&lt;/SPAN&gt;(-1) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Byte&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;aFaceKeyContext&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Integer&lt;/SPAN&gt; = &lt;SPAN&gt;oAsm&lt;/SPAN&gt;.&lt;SPAN&gt;ReferenceKeyManager&lt;/SPAN&gt;.&lt;SPAN&gt;CreateKeyContext&lt;/SPAN&gt;
&lt;SPAN&gt;aFace&lt;/SPAN&gt;.&lt;SPAN&gt;GetReferenceKey&lt;/SPAN&gt;(&lt;SPAN&gt;aFaceRefKey&lt;/SPAN&gt;, &lt;SPAN&gt;aFaceKeyContext&lt;/SPAN&gt;)
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;aOcc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt; = &lt;SPAN&gt;aFace&lt;/SPAN&gt;.&lt;SPAN&gt;ContainingOccurrence&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;aDef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;PartComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;aOcc&lt;/SPAN&gt;.&lt;SPAN&gt;Definition&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;NPBFdef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;NonParametricBaseFeatureDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;Features&lt;/SPAN&gt;.&lt;SPAN&gt;NonParametricBaseFeatures&lt;/SPAN&gt;.&lt;SPAN&gt;CreateDefinition&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oCol&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ObjectCollection&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN&gt;CreateObjectCollection&lt;/SPAN&gt;
&lt;SPAN&gt;oCol&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;)
&lt;SPAN&gt;NPBFdef&lt;/SPAN&gt;.&lt;SPAN&gt;BRepEntities&lt;/SPAN&gt; = &lt;SPAN&gt;oCol&lt;/SPAN&gt;
&lt;SPAN&gt;NPBFdef&lt;/SPAN&gt;.&lt;SPAN&gt;OutputType&lt;/SPAN&gt; = &lt;SPAN&gt;kSurfaceOutputType&lt;/SPAN&gt;
&lt;SPAN&gt;NPBFdef&lt;/SPAN&gt;.&lt;SPAN&gt;TargetOccurrence&lt;/SPAN&gt; = &lt;SPAN&gt;aOcc&lt;/SPAN&gt;
&lt;SPAN&gt;NPBFdef&lt;/SPAN&gt;.&lt;SPAN&gt;IsAssociative&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;planeInput&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;List&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;KeyValuePair&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;WorkPoint&lt;/SPAN&gt;, &lt;SPAN&gt;WorkAxis&lt;/SPAN&gt;))

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;cpySurf&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;NonParametricBaseFeature&lt;/SPAN&gt;
&lt;SPAN&gt;cpySurf&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;Features&lt;/SPAN&gt;.&lt;SPAN&gt;NonParametricBaseFeatures&lt;/SPAN&gt;.&lt;SPAN&gt;AddByDefinition&lt;/SPAN&gt;(&lt;SPAN&gt;NPBFdef&lt;/SPAN&gt;)
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oLoop&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;EdgeLoop&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;cpySurf&lt;/SPAN&gt;.&lt;SPAN&gt;Faces&lt;/SPAN&gt;(1).&lt;SPAN&gt;EdgeLoops&lt;/SPAN&gt;
	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oLoop&lt;/SPAN&gt;.&lt;SPAN&gt;IsOuterEdgeLoop&lt;/SPAN&gt; = &lt;SPAN&gt;False&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;WorkPoint&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;WorkPoints&lt;/SPAN&gt;.&lt;SPAN&gt;AddAtCentroid&lt;/SPAN&gt;(&lt;SPAN&gt;oLoop&lt;/SPAN&gt;)
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAxis&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;WorkAxis&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;WorkAxes&lt;/SPAN&gt;.&lt;SPAN&gt;AddByNormalToSurface&lt;/SPAN&gt;(&lt;SPAN&gt;oAsm&lt;/SPAN&gt;.&lt;SPAN&gt;ReferenceKeyManager&lt;/SPAN&gt;.&lt;SPAN&gt;BindKeyToObject&lt;/SPAN&gt;(&lt;SPAN&gt;aFaceRefKey&lt;/SPAN&gt;, &lt;SPAN&gt;aFaceKeyContext&lt;/SPAN&gt;).&lt;SPAN&gt;NativeObject&lt;/SPAN&gt;, &lt;SPAN&gt;oPoint&lt;/SPAN&gt;)
		&lt;SPAN&gt;planeInput&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;KeyValuePair&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;WorkPoint&lt;/SPAN&gt;, &lt;SPAN&gt;WorkAxis&lt;/SPAN&gt;)(&lt;SPAN&gt;oPoint&lt;/SPAN&gt;, &lt;SPAN&gt;oAxis&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;cpySurf&lt;/SPAN&gt;.&lt;SPAN&gt;SurfaceBodies&lt;/SPAN&gt;(1).&lt;SPAN&gt;Visible&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oPair&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;KeyValuePair&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;WorkPoint&lt;/SPAN&gt;, &lt;SPAN&gt;WorkAxis&lt;/SPAN&gt;) &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;planeInput&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oPlane&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;WorkPlane&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;WorkPlanes&lt;/SPAN&gt;.&lt;SPAN&gt;AddByNormalToCurve&lt;/SPAN&gt;(&lt;SPAN&gt;oPair&lt;/SPAN&gt;.&lt;SPAN&gt;Value&lt;/SPAN&gt;, &lt;SPAN&gt;oPair&lt;/SPAN&gt;.&lt;SPAN&gt;Key&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSketch&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;PlanarSketch&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;Sketches&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;oPlane&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oCP&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchPoint&lt;/SPAN&gt; = &lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;AddByProjectingEntity&lt;/SPAN&gt;(&lt;SPAN&gt;oPair&lt;/SPAN&gt;.&lt;SPAN&gt;Key&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oEP&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Point2d&lt;/SPAN&gt; = &lt;SPAN&gt;ThisApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreatePoint2d&lt;/SPAN&gt;(&lt;SPAN&gt;oCP&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;.&lt;SPAN&gt;X&lt;/SPAN&gt; + 1.5 / 2, &lt;SPAN&gt;oCP&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;.&lt;SPAN&gt;Y&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSlot&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchEntitiesEnumerator&lt;/SPAN&gt; = &lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;AddStraightSlotBySlotCenter&lt;/SPAN&gt;(&lt;SPAN&gt;oCP&lt;/SPAN&gt;, &lt;SPAN&gt;oEP&lt;/SPAN&gt;, 0.8)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oLine&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt; = &lt;SPAN&gt;oSlot&lt;/SPAN&gt;.&lt;SPAN&gt;OfType&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt;).&lt;SPAN&gt;FirstOrDefault&lt;/SPAN&gt;(&lt;SPAN&gt;Function&lt;/SPAN&gt;(&lt;SPAN&gt;x&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt;) &lt;SPAN&gt;x&lt;/SPAN&gt;.&lt;SPAN&gt;Construction&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;)
	&lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;GeometricConstraints&lt;/SPAN&gt;.&lt;SPAN&gt;AddHorizontal&lt;/SPAN&gt;(&lt;SPAN&gt;oLine&lt;/SPAN&gt;)
	&lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;DimensionConstraints&lt;/SPAN&gt;.&lt;SPAN&gt;AddTwoPointDistance&lt;/SPAN&gt;(&lt;SPAN&gt;oLine&lt;/SPAN&gt;.&lt;SPAN&gt;StartSketchPoint&lt;/SPAN&gt;, &lt;SPAN&gt;oLine&lt;/SPAN&gt;.&lt;SPAN&gt;EndSketchPoint&lt;/SPAN&gt;, &lt;SPAN&gt;DimensionOrientationEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kHorizontalDim&lt;/SPAN&gt;, &lt;SPAN&gt;oCP&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oLines&lt;/SPAN&gt; = &lt;SPAN&gt;oSlot&lt;/SPAN&gt;.&lt;SPAN&gt;OfType&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt;).&lt;SPAN&gt;Where&lt;/SPAN&gt;(&lt;SPAN&gt;Function&lt;/SPAN&gt;(&lt;SPAN&gt;x&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt;) &lt;SPAN&gt;x&lt;/SPAN&gt;.&lt;SPAN&gt;Construction&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oLine1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt; = &lt;SPAN&gt;oLines&lt;/SPAN&gt;(0)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oLine2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt; = &lt;SPAN&gt;oLines&lt;/SPAN&gt;(1)
	&lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;DimensionConstraints&lt;/SPAN&gt;.&lt;SPAN&gt;AddOffset&lt;/SPAN&gt;(&lt;SPAN&gt;oLine1&lt;/SPAN&gt;, &lt;SPAN&gt;oLine2&lt;/SPAN&gt;, &lt;SPAN&gt;oCP&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;, &lt;SPAN&gt;False&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oProfile&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Profile&lt;/SPAN&gt; = &lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;Profiles&lt;/SPAN&gt;.&lt;SPAN&gt;AddForSolid&lt;/SPAN&gt;
	&lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;Features&lt;/SPAN&gt;.&lt;SPAN&gt;EmbossFeatures&lt;/SPAN&gt;.&lt;SPAN&gt;AddEngraveFromFace&lt;/SPAN&gt;(&lt;SPAN&gt;oProfile&lt;/SPAN&gt;, 2, &lt;SPAN&gt;PartFeatureExtentDirectionEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kNegativeExtentDirection&lt;/SPAN&gt;, , &lt;SPAN&gt;oAsm&lt;/SPAN&gt;.&lt;SPAN&gt;ReferenceKeyManager&lt;/SPAN&gt;.&lt;SPAN&gt;BindKeyToObject&lt;/SPAN&gt;(&lt;SPAN&gt;aFaceRefKey&lt;/SPAN&gt;, &lt;SPAN&gt;aFaceKeyContext&lt;/SPAN&gt;).&lt;SPAN&gt;NativeObject&lt;/SPAN&gt;)
	&lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;Visible&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
	&lt;SPAN&gt;oPlane&lt;/SPAN&gt;.&lt;SPAN&gt;Visible&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
	&lt;SPAN&gt;oPair&lt;/SPAN&gt;.&lt;SPAN&gt;Key&lt;/SPAN&gt;.&lt;SPAN&gt;Visible&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
	&lt;SPAN&gt;oPair&lt;/SPAN&gt;.&lt;SPAN&gt;Value&lt;/SPAN&gt;.&lt;SPAN&gt;Visible&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;oAsm&lt;/SPAN&gt;.&lt;SPAN&gt;Update&lt;/SPAN&gt;
&lt;SPAN&gt;oTransaction&lt;/SPAN&gt;.&lt;SPAN&gt;End&lt;/SPAN&gt;
&lt;/PRE&gt;</description>
      <pubDate>Mon, 20 Jun 2022 08:14:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11245649#M35997</guid>
      <dc:creator>JhoelForshav</dc:creator>
      <dc:date>2022-06-20T08:14:49Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11245733#M35998</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5330176"&gt;@JhoelForshav&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;Yes it works with the PartA.&lt;/P&gt;&lt;P&gt;Now i need to Translate this to VB.NET&lt;/P&gt;&lt;P&gt;I think is Possible.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I see this is more complicated than I thought.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;My idea was with FaceProxy and EdgeLoop.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks for the Solution!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jun 2022 09:35:52 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11245733#M35998</guid>
      <dc:creator>florian_wenzel</dc:creator>
      <dc:date>2022-06-20T09:35:52Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246173#M35999</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/11874503"&gt;@florian_wenzel&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It seems like using proxys as the geometry to add workgeometry doesn't work. For example using a proxy as the argument for a method like WorkPoints.AddAtCentroid will give an error.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;iLogic is based on VB.NET so there isn't really anything to translate. Just replace ThisApplication with your Application object (g_inventorApplication) and replace ThisDoc.Document with g_inventorApplication.ActiveDocument and you're all set &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAsm&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;AssemblyDocument&lt;/SPAN&gt; = &lt;SPAN&gt;g_inventorApplication&lt;/SPAN&gt;.&lt;SPAN&gt;ActiveDocument&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oTransaction&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Transaction&lt;/SPAN&gt; = &lt;SPAN&gt;g_inventorApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransactionManager&lt;/SPAN&gt;.&lt;SPAN&gt;StartTransaction&lt;/SPAN&gt;(&lt;SPAN&gt;oAsm&lt;/SPAN&gt;, &lt;SPAN&gt;"Create slots"&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;FaceProxy&lt;/SPAN&gt; = &lt;SPAN&gt;g_inventorApplication&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;kPartFaceFilter&lt;/SPAN&gt;, &lt;SPAN&gt;"Pick Face with original holes"&lt;/SPAN&gt;)
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oFaceOcc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt; = &lt;SPAN&gt;oFace&lt;/SPAN&gt;.&lt;SPAN&gt;ContainingOccurrence&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;aFace&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;FaceProxy&lt;/SPAN&gt; = &lt;SPAN&gt;g_inventorApplication&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;kPartFaceFilter&lt;/SPAN&gt;, &lt;SPAN&gt;"Pick Face to create holes on"&lt;/SPAN&gt;)
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;aFaceRefKey&lt;/SPAN&gt;(-1) &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Byte&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;aFaceKeyContext&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Integer&lt;/SPAN&gt; = &lt;SPAN&gt;oAsm&lt;/SPAN&gt;.&lt;SPAN&gt;ReferenceKeyManager&lt;/SPAN&gt;.&lt;SPAN&gt;CreateKeyContext&lt;/SPAN&gt;
&lt;SPAN&gt;aFace&lt;/SPAN&gt;.&lt;SPAN&gt;GetReferenceKey&lt;/SPAN&gt;(&lt;SPAN&gt;aFaceRefKey&lt;/SPAN&gt;, &lt;SPAN&gt;aFaceKeyContext&lt;/SPAN&gt;)
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;aOcc&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ComponentOccurrence&lt;/SPAN&gt; = &lt;SPAN&gt;aFace&lt;/SPAN&gt;.&lt;SPAN&gt;ContainingOccurrence&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;aDef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;PartComponentDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;aOcc&lt;/SPAN&gt;.&lt;SPAN&gt;Definition&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;NPBFdef&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;NonParametricBaseFeatureDefinition&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;Features&lt;/SPAN&gt;.&lt;SPAN&gt;NonParametricBaseFeatures&lt;/SPAN&gt;.&lt;SPAN&gt;CreateDefinition&lt;/SPAN&gt;
&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oCol&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;ObjectCollection&lt;/SPAN&gt; = &lt;SPAN&gt;g_inventorApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientObjects&lt;/SPAN&gt;.&lt;SPAN&gt;CreateObjectCollection&lt;/SPAN&gt;
&lt;SPAN&gt;oCol&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;oFace&lt;/SPAN&gt;)
&lt;SPAN&gt;NPBFdef&lt;/SPAN&gt;.&lt;SPAN&gt;BRepEntities&lt;/SPAN&gt; = &lt;SPAN&gt;oCol&lt;/SPAN&gt;
&lt;SPAN&gt;NPBFdef&lt;/SPAN&gt;.&lt;SPAN&gt;OutputType&lt;/SPAN&gt; = &lt;SPAN&gt;kSurfaceOutputType&lt;/SPAN&gt;
&lt;SPAN&gt;NPBFdef&lt;/SPAN&gt;.&lt;SPAN&gt;TargetOccurrence&lt;/SPAN&gt; = &lt;SPAN&gt;aOcc&lt;/SPAN&gt;
&lt;SPAN&gt;NPBFdef&lt;/SPAN&gt;.&lt;SPAN&gt;IsAssociative&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;planeInput&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;List&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;KeyValuePair&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;WorkPoint&lt;/SPAN&gt;, &lt;SPAN&gt;WorkAxis&lt;/SPAN&gt;))

&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;cpySurf&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;NonParametricBaseFeature&lt;/SPAN&gt;
&lt;SPAN&gt;cpySurf&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;Features&lt;/SPAN&gt;.&lt;SPAN&gt;NonParametricBaseFeatures&lt;/SPAN&gt;.&lt;SPAN&gt;AddByDefinition&lt;/SPAN&gt;(&lt;SPAN&gt;NPBFdef&lt;/SPAN&gt;)
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oLoop&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;EdgeLoop&lt;/SPAN&gt; &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;cpySurf&lt;/SPAN&gt;.&lt;SPAN&gt;Faces&lt;/SPAN&gt;(1).&lt;SPAN&gt;EdgeLoops&lt;/SPAN&gt;
	&lt;SPAN&gt;If&lt;/SPAN&gt; &lt;SPAN&gt;oLoop&lt;/SPAN&gt;.&lt;SPAN&gt;IsOuterEdgeLoop&lt;/SPAN&gt; = &lt;SPAN&gt;False&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;WorkPoint&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;WorkPoints&lt;/SPAN&gt;.&lt;SPAN&gt;AddAtCentroid&lt;/SPAN&gt;(&lt;SPAN&gt;oLoop&lt;/SPAN&gt;)
		&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oAxis&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;WorkAxis&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;WorkAxes&lt;/SPAN&gt;.&lt;SPAN&gt;AddByNormalToSurface&lt;/SPAN&gt;(&lt;SPAN&gt;oAsm&lt;/SPAN&gt;.&lt;SPAN&gt;ReferenceKeyManager&lt;/SPAN&gt;.&lt;SPAN&gt;BindKeyToObject&lt;/SPAN&gt;(&lt;SPAN&gt;aFaceRefKey&lt;/SPAN&gt;, &lt;SPAN&gt;aFaceKeyContext&lt;/SPAN&gt;).&lt;SPAN&gt;NativeObject&lt;/SPAN&gt;, &lt;SPAN&gt;oPoint&lt;/SPAN&gt;)
		&lt;SPAN&gt;planeInput&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;New&lt;/SPAN&gt; &lt;SPAN&gt;KeyValuePair&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;WorkPoint&lt;/SPAN&gt;, &lt;SPAN&gt;WorkAxis&lt;/SPAN&gt;)(&lt;SPAN&gt;oPoint&lt;/SPAN&gt;, &lt;SPAN&gt;oAxis&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;cpySurf&lt;/SPAN&gt;.&lt;SPAN&gt;SurfaceBodies&lt;/SPAN&gt;(1).&lt;SPAN&gt;Visible&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
&lt;SPAN&gt;For&lt;/SPAN&gt; &lt;SPAN&gt;Each&lt;/SPAN&gt; &lt;SPAN&gt;oPair&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;KeyValuePair&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;WorkPoint&lt;/SPAN&gt;, &lt;SPAN&gt;WorkAxis&lt;/SPAN&gt;) &lt;SPAN&gt;In&lt;/SPAN&gt; &lt;SPAN&gt;planeInput&lt;/SPAN&gt;
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oPlane&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;WorkPlane&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;WorkPlanes&lt;/SPAN&gt;.&lt;SPAN&gt;AddByNormalToCurve&lt;/SPAN&gt;(&lt;SPAN&gt;oPair&lt;/SPAN&gt;.&lt;SPAN&gt;Value&lt;/SPAN&gt;, &lt;SPAN&gt;oPair&lt;/SPAN&gt;.&lt;SPAN&gt;Key&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSketch&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;PlanarSketch&lt;/SPAN&gt; = &lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;Sketches&lt;/SPAN&gt;.&lt;SPAN&gt;Add&lt;/SPAN&gt;(&lt;SPAN&gt;oPlane&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oCP&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchPoint&lt;/SPAN&gt; = &lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;AddByProjectingEntity&lt;/SPAN&gt;(&lt;SPAN&gt;oPair&lt;/SPAN&gt;.&lt;SPAN&gt;Key&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oEP&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Point2d&lt;/SPAN&gt; = &lt;SPAN&gt;g_inventorApplication&lt;/SPAN&gt;.&lt;SPAN&gt;TransientGeometry&lt;/SPAN&gt;.&lt;SPAN&gt;CreatePoint2d&lt;/SPAN&gt;(&lt;SPAN&gt;oCP&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;.&lt;SPAN&gt;X&lt;/SPAN&gt; + 1.5 / 2, &lt;SPAN&gt;oCP&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;.&lt;SPAN&gt;Y&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oSlot&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchEntitiesEnumerator&lt;/SPAN&gt; = &lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;AddStraightSlotBySlotCenter&lt;/SPAN&gt;(&lt;SPAN&gt;oCP&lt;/SPAN&gt;, &lt;SPAN&gt;oEP&lt;/SPAN&gt;, 0.8)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oLine&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt; = &lt;SPAN&gt;oSlot&lt;/SPAN&gt;.&lt;SPAN&gt;OfType&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt;).&lt;SPAN&gt;FirstOrDefault&lt;/SPAN&gt;(&lt;SPAN&gt;Function&lt;/SPAN&gt;(&lt;SPAN&gt;x&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt;) &lt;SPAN&gt;x&lt;/SPAN&gt;.&lt;SPAN&gt;Construction&lt;/SPAN&gt; = &lt;SPAN&gt;True&lt;/SPAN&gt;)
	&lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;GeometricConstraints&lt;/SPAN&gt;.&lt;SPAN&gt;AddHorizontal&lt;/SPAN&gt;(&lt;SPAN&gt;oLine&lt;/SPAN&gt;)
	&lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;DimensionConstraints&lt;/SPAN&gt;.&lt;SPAN&gt;AddTwoPointDistance&lt;/SPAN&gt;(&lt;SPAN&gt;oLine&lt;/SPAN&gt;.&lt;SPAN&gt;StartSketchPoint&lt;/SPAN&gt;, &lt;SPAN&gt;oLine&lt;/SPAN&gt;.&lt;SPAN&gt;EndSketchPoint&lt;/SPAN&gt;, &lt;SPAN&gt;DimensionOrientationEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kHorizontalDim&lt;/SPAN&gt;, &lt;SPAN&gt;oCP&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oLines&lt;/SPAN&gt; = &lt;SPAN&gt;oSlot&lt;/SPAN&gt;.&lt;SPAN&gt;OfType&lt;/SPAN&gt;(&lt;SPAN&gt;Of&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt;).&lt;SPAN&gt;Where&lt;/SPAN&gt;(&lt;SPAN&gt;Function&lt;/SPAN&gt;(&lt;SPAN&gt;x&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt;) &lt;SPAN&gt;x&lt;/SPAN&gt;.&lt;SPAN&gt;Construction&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oLine1&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt; = &lt;SPAN&gt;oLines&lt;/SPAN&gt;(0)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oLine2&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;SketchLine&lt;/SPAN&gt; = &lt;SPAN&gt;oLines&lt;/SPAN&gt;(1)
	&lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;DimensionConstraints&lt;/SPAN&gt;.&lt;SPAN&gt;AddOffset&lt;/SPAN&gt;(&lt;SPAN&gt;oLine1&lt;/SPAN&gt;, &lt;SPAN&gt;oLine2&lt;/SPAN&gt;, &lt;SPAN&gt;oCP&lt;/SPAN&gt;.&lt;SPAN&gt;Geometry&lt;/SPAN&gt;, &lt;SPAN&gt;False&lt;/SPAN&gt;)
	&lt;SPAN&gt;Dim&lt;/SPAN&gt; &lt;SPAN&gt;oProfile&lt;/SPAN&gt; &lt;SPAN&gt;As&lt;/SPAN&gt; &lt;SPAN&gt;Profile&lt;/SPAN&gt; = &lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;Profiles&lt;/SPAN&gt;.&lt;SPAN&gt;AddForSolid&lt;/SPAN&gt;
	&lt;SPAN&gt;aDef&lt;/SPAN&gt;.&lt;SPAN&gt;Features&lt;/SPAN&gt;.&lt;SPAN&gt;EmbossFeatures&lt;/SPAN&gt;.&lt;SPAN&gt;AddEngraveFromFace&lt;/SPAN&gt;(&lt;SPAN&gt;oProfile&lt;/SPAN&gt;, 2, &lt;SPAN&gt;PartFeatureExtentDirectionEnum&lt;/SPAN&gt;.&lt;SPAN&gt;kNegativeExtentDirection&lt;/SPAN&gt;, , &lt;SPAN&gt;oAsm&lt;/SPAN&gt;.&lt;SPAN&gt;ReferenceKeyManager&lt;/SPAN&gt;.&lt;SPAN&gt;BindKeyToObject&lt;/SPAN&gt;(&lt;SPAN&gt;aFaceRefKey&lt;/SPAN&gt;, &lt;SPAN&gt;aFaceKeyContext&lt;/SPAN&gt;).&lt;SPAN&gt;NativeObject&lt;/SPAN&gt;)
	&lt;SPAN&gt;oSketch&lt;/SPAN&gt;.&lt;SPAN&gt;Visible&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
	&lt;SPAN&gt;oPlane&lt;/SPAN&gt;.&lt;SPAN&gt;Visible&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
	&lt;SPAN&gt;oPair&lt;/SPAN&gt;.&lt;SPAN&gt;Key&lt;/SPAN&gt;.&lt;SPAN&gt;Visible&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
	&lt;SPAN&gt;oPair&lt;/SPAN&gt;.&lt;SPAN&gt;Value&lt;/SPAN&gt;.&lt;SPAN&gt;Visible&lt;/SPAN&gt; = &lt;SPAN&gt;False&lt;/SPAN&gt;
&lt;SPAN&gt;Next&lt;/SPAN&gt;
&lt;SPAN&gt;oAsm&lt;/SPAN&gt;.&lt;SPAN&gt;Update&lt;/SPAN&gt;
&lt;SPAN&gt;oTransaction&lt;/SPAN&gt;.&lt;SPAN&gt;End&lt;/SPAN&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jun 2022 12:48:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246173#M35999</guid>
      <dc:creator>JhoelForshav</dc:creator>
      <dc:date>2022-06-20T12:48:07Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246231#M36000</link>
      <description>&lt;P&gt;Thanks&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5330176"&gt;@JhoelForshav&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;dont know with:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;153&amp;nbsp; &amp;nbsp;kSurfaceOutputType&amp;nbsp; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Error:&amp;nbsp;kSurfaceOutputType&amp;nbsp; not Declare&lt;/P&gt;&lt;P&gt;NPBFdef.OutputType = kSurfaceOutputType = Nothing ?? - Not Working also&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;158&amp;nbsp;&amp;nbsp;Dim planeInput As New List(Of KeyValuePair(Of WorkPoint, WorkAxis))&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Error: not define Variable and List&lt;/P&gt;&lt;P&gt;I need to write:&amp;nbsp;Dim KeyValuePair As String ?&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="florian_wenzel_1-1655730411984.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1081886i342E3D88D12984BD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="florian_wenzel_1-1655730411984.png" alt="florian_wenzel_1-1655730411984.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jun 2022 13:12:12 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246231#M36000</guid>
      <dc:creator>florian_wenzel</dc:creator>
      <dc:date>2022-06-20T13:12:12Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246326#M36001</link>
      <description>&lt;P&gt;Hi &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/11874503"&gt;@florian_wenzel&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;When it comes to kSurfaceOutputType, change it to BaseFeatureOutputTypeEnum.kSurfaceOutputType.&lt;/P&gt;
&lt;P&gt;I think you should have the reference already in your project, but maybe you need to add the namespace System.Collections.Generic for your List and KeyValuePair. So either add Imports System.Collections.Generic at the top of your class or just add the namespace to your declarations:&lt;/P&gt;
&lt;P&gt;Ex: Dim planeInput As New System.Collections.Generic.List(Of System.Collections.Generic.KeyValuePair(Of WorkPoint, WorkAxis))&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;See if this code works for you:&lt;/P&gt;
&lt;LI-CODE lang="csharp"&gt;Dim oAsm As AssemblyDocument = g_inventorApplication.ActiveDocument
		Dim oTransaction As Transaction = g_inventorApplication.TransactionManager.StartTransaction(oAsm, "Create slots")
		Dim oFace As FaceProxy = g_inventorApplication.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "Pick Face with original holes")
		Dim oFaceOcc As ComponentOccurrence = oFace.ContainingOccurrence
		Dim aFace As FaceProxy = g_inventorApplication.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "Pick Face to create holes on")
		Dim aFaceRefKey(-1) As Byte
		Dim aFaceKeyContext As Integer = oAsm.ReferenceKeyManager.CreateKeyContext
		aFace.GetReferenceKey(aFaceRefKey, aFaceKeyContext)
		Dim aOcc As ComponentOccurrence = aFace.ContainingOccurrence
		Dim aDef As PartComponentDefinition = aOcc.Definition
		Dim NPBFdef As NonParametricBaseFeatureDefinition = aDef.Features.NonParametricBaseFeatures.CreateDefinition
		Dim oCol As ObjectCollection = g_inventorApplication.TransientObjects.CreateObjectCollection
		oCol.Add(oFace)
		NPBFdef.BRepEntities = oCol
		NPBFdef.OutputType = BaseFeatureOutputTypeEnum.kSurfaceOutputType
		NPBFdef.TargetOccurrence = aOcc
		NPBFdef.IsAssociative = True

		Dim planeInput As New System.Collections.Generic.List(Of System.Collections.Generic.KeyValuePair(Of WorkPoint, WorkAxis))



		Dim cpySurf As NonParametricBaseFeature
		cpySurf = aDef.Features.NonParametricBaseFeatures.AddByDefinition(NPBFdef)
		For Each oLoop As EdgeLoop In cpySurf.Faces(1).EdgeLoops
			If oLoop.IsOuterEdgeLoop = False Then
				Dim oPoint As WorkPoint = aDef.WorkPoints.AddAtCentroid(oLoop)
				Dim oAxis As WorkAxis = aDef.WorkAxes.AddByNormalToSurface(oAsm.ReferenceKeyManager.BindKeyToObject(aFaceRefKey, aFaceKeyContext).NativeObject, oPoint)
				planeInput.Add(New System.Collections.Generic.KeyValuePair(Of WorkPoint, WorkAxis)(oPoint, oAxis))
			End If
		Next
		cpySurf.SurfaceBodies(1).Visible = False
		For Each oPair As System.Collections.Generic.KeyValuePair(Of WorkPoint, WorkAxis) In planeInput
			Dim oPlane As WorkPlane = aDef.WorkPlanes.AddByNormalToCurve(oPair.Value, oPair.Key)
			Dim oSketch As PlanarSketch = aDef.Sketches.Add(oPlane)
			Dim oCP As SketchPoint = oSketch.AddByProjectingEntity(oPair.Key)
			Dim oEP As Point2d = g_inventorApplication.TransientGeometry.CreatePoint2d(oCP.Geometry.X + 1.5 / 2, oCP.Geometry.Y)
			Dim oSlot As SketchEntitiesEnumerator = oSketch.AddStraightSlotBySlotCenter(oCP, oEP, 0.8)
			Dim oLine As SketchLine = oSlot.OfType(Of SketchLine).FirstOrDefault(Function(x As SketchLine) x.Construction = True)
			oSketch.GeometricConstraints.AddHorizontal(oLine)
			oSketch.DimensionConstraints.AddTwoPointDistance(oLine.StartSketchPoint, oLine.EndSketchPoint, DimensionOrientationEnum.kHorizontalDim, oCP.Geometry)
			Dim oLines = oSlot.OfType(Of SketchLine).Where(Function(x As SketchLine) x.Construction = False)
			Dim oLine1 As SketchLine = oLines(0)
			Dim oLine2 As SketchLine = oLines(1)
			oSketch.DimensionConstraints.AddOffset(oLine1, oLine2, oCP.Geometry, False)
			Dim oProfile As Profile = oSketch.Profiles.AddForSolid
			aDef.Features.EmbossFeatures.AddEngraveFromFace(oProfile, 2, PartFeatureExtentDirectionEnum.kNegativeExtentDirection, , oAsm.ReferenceKeyManager.BindKeyToObject(aFaceRefKey, aFaceKeyContext).NativeObject)
			oSketch.Visible = False
			oPlane.Visible = False
			oPair.Key.Visible = False
			oPair.Value.Visible = False
		Next
		oAsm.Update()
		oTransaction.End()&lt;/LI-CODE&gt;</description>
      <pubDate>Mon, 20 Jun 2022 13:47:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246326#M36001</guid>
      <dc:creator>JhoelForshav</dc:creator>
      <dc:date>2022-06-20T13:47:44Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246376#M36002</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5330176"&gt;@JhoelForshav&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Still Error:&lt;/P&gt;&lt;P&gt;System.MissingMemberException: "Der öffentliche Member OfType für den Typ SketchEntitiesEnumerator wurde nicht gefunden."&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;System.MissingMemberException: "The public member OfType for the SketchEntitiesEnumerator type was not found."&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="florian_wenzel_0-1655733908478.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1081907iEFF478FA60463EFA/image-size/medium?v=v2&amp;amp;px=400" role="button" title="florian_wenzel_0-1655733908478.png" alt="florian_wenzel_0-1655733908478.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jun 2022 14:06:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246376#M36002</guid>
      <dc:creator>florian_wenzel</dc:creator>
      <dc:date>2022-06-20T14:06:13Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246512#M36003</link>
      <description>&lt;P&gt;Hi &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/11874503"&gt;@florian_wenzel&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Okay, so we'll probably need to import the System.Linq namespace aswell.&lt;/P&gt;
&lt;P&gt;Add the line Imports System.Linq to the top of your class and see if that works &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="SystemLinq.png" style="width: 325px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1081931i6868B7B3EBE62B94/image-size/large?v=v2&amp;amp;px=999" role="button" title="SystemLinq.png" alt="SystemLinq.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jun 2022 15:08:09 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246512#M36003</guid>
      <dc:creator>JhoelForshav</dc:creator>
      <dc:date>2022-06-20T15:08:09Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246534#M36004</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5330176"&gt;@JhoelForshav&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It Works !&lt;/P&gt;&lt;P&gt;Thanks For help&lt;/P&gt;&lt;P&gt;Thanks for Solution!&lt;/P&gt;</description>
      <pubDate>Mon, 20 Jun 2022 15:17:19 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11246534#M36004</guid>
      <dc:creator>florian_wenzel</dc:creator>
      <dc:date>2022-06-20T15:17:19Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11441181#M36005</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5330176"&gt;@JhoelForshav&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to modify your rule but I have a problem with that.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My point is exactly that:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1. I would like to be able to copy (pick) any number of surfaces with holes on one base surface.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;2. I would like the result of this operation to be one sketch (now each projected hole is a new sketch and a new cut) with all the slots as it is now.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="ralfmja_0-1663936325395.png" style="width: 600px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1119780i6E061A09EB12CC56/image-size/medium?v=v2&amp;amp;px=400" role="button" title="ralfmja_0-1663936325395.png" alt="ralfmja_0-1663936325395.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It seems to me that for a skilled programmer it is a small matter, but unfortunately I am a complete amateur. If point 1 would be a problem, I would be completely satisfied with solving the problem from point 2.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Would you be able to help me ??&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;ralfmja&lt;/P&gt;</description>
      <pubDate>Fri, 23 Sep 2022 12:42:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11441181#M36005</guid>
      <dc:creator>ROBOMACH_PL_1</dc:creator>
      <dc:date>2022-09-23T12:42:02Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11450200#M36006</link>
      <description>&lt;P&gt;Hello All, hello&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/5330176"&gt;@JhoelForshav&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I did a few tries and dealt with point 2 from my previous post.&amp;nbsp;Now the code is as follows (probably not perfect, but it works):&lt;/P&gt;&lt;LI-CODE lang="general"&gt;sprawdzanie czy jesteśmy w złożeniu
If ThisDoc.Document.DocumentType &amp;lt;&amp;gt; DocumentTypeEnum.kAssemblyDocumentObject Then
		MsgBox("REGULA DZIAŁA TYLKO W ZESPOLE", vbCritical, "OSTRZEŻENIE")
		Exit Sub
End If

Dim oAsm As AssemblyDocument = ThisDoc.Document
Dim oTransaction As Transaction = ThisApplication.TransactionManager.StartTransaction(oAsm, "RZUTOWANIE OTWORÓW")
Dim oFace As FaceProxy
'obsluga bledu jezeli ktoś sie rozmysli przy wybieraniu plaszczyzny z otworami
While True
   oFace = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "WSKAŻ PŁASZCZYZNE Z OTWORAMI")
	
	' jesli nic nie wybrane to	
	If IsNothing(oFace) Then Exit Sub Else
		Exit While
End While

Dim oFaceOcc As ComponentOccurrence = oFace.ContainingOccurrence

Dim aFace As FaceProxy

'obsluga bledu jezeli ktoś sie rozmysli przy wybieraniu plaszczyzny rzutowania
While True
   aFace = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "WSKAŻ PŁASZCZYZNE RZUTOWANIA")
	
	' jesli nic nie wybrane to 	
	If IsNothing(aFace) Then Exit Sub Else
		Exit While
End While

Dim aFaceRefKey(-1) As Byte
Dim aFaceKeyContext As Integer = oAsm.ReferenceKeyManager.CreateKeyContext
aFace.GetReferenceKey(aFaceRefKey, aFaceKeyContext)
Dim aOcc As ComponentOccurrence = aFace.ContainingOccurrence
Dim aDef As PartComponentDefinition = aOcc.Definition
Dim NPBFdef As NonParametricBaseFeatureDefinition = aDef.Features.NonParametricBaseFeatures.CreateDefinition
Dim oCol As ObjectCollection = ThisApplication.TransientObjects.CreateObjectCollection
oCol.Add(oFace)
NPBFdef.BRepEntities = oCol
NPBFdef.OutputType = kSurfaceOutputType
NPBFdef.TargetOccurrence = aOcc
NPBFdef.IsAssociative = True

Dim planeInput As New List(Of KeyValuePair(Of WorkPoint, WorkAxis))

Dim cpySurf As NonParametricBaseFeature
cpySurf = aDef.Features.NonParametricBaseFeatures.AddByDefinition(NPBFdef)
For Each oLoop As EdgeLoop In cpySurf.Faces(1).EdgeLoops
	If oLoop.IsOuterEdgeLoop = False
		Dim oPoint As WorkPoint = aDef.WorkPoints.AddAtCentroid(oLoop)
		Dim oAxis As WorkAxis = aDef.WorkAxes.AddByNormalToSurface(oAsm.ReferenceKeyManager.BindKeyToObject(aFaceRefKey, aFaceKeyContext).NativeObject, oPoint)
		planeInput.Add(New KeyValuePair(Of WorkPoint, WorkAxis)(oPoint, oAxis))
	End If
Next
cpySurf.SurfaceBodies(1).Visible = False


    Dim oPlaszczyzna As WorkPlane = aDef.WorkPlanes.AddByPlaneAndOffset(oAsm.ReferenceKeyManager.BindKeyToObject(aFaceRefKey, aFaceKeyContext).NativeObject, 0)
	oPlaszczyzna.Visible = False
	Dim oSketch As PlanarSketch = aDef.Sketches.Add(oPlaszczyzna)
	oSketch.Visible = True
	
For Each oPair As KeyValuePair(Of WorkPoint, WorkAxis) In planeInput
	Dim oCP As SketchPoint = oSketch.AddByProjectingEntity(oPair.Key)
	Dim oEP As Point2d = ThisApplication.TransientGeometry.CreatePoint2d(oCP.Geometry.X + 1 / 2, oCP.Geometry.Y)
	Dim oSlot As SketchEntitiesEnumerator = oSketch.AddStraightSlotBySlotCenter(oCP, oEP, 0.9)
	Dim oLine As SketchLine = oSlot.OfType(Of SketchLine).FirstOrDefault(Function(x As SketchLine) x.Construction = True)
'	oSketch.GeometricConstraints.AddHorizontal(oLine)
	oSketch.DimensionConstraints.AddTwoPointDistance(oLine.StartSketchPoint, oLine.EndSketchPoint, DimensionOrientationEnum.kHorizontalDim, oCP.Geometry)
	Dim oLines = oSlot.OfType(Of SketchLine).Where(Function(x As SketchLine) x.Construction = False)
	Dim oLine1 As SketchLine = oLines(0)
	Dim oLine2 As SketchLine = oLines(1)
	oSketch.DimensionConstraints.AddOffset(oLine1, oLine2, oCP.Geometry, False)
'	Dim oProfile As Profile = oSketch.Profiles.AddForSolid
'	aDef.Features.EmbossFeatures.AddEngraveFromFace(oProfile, 2, PartFeatureExtentDirectionEnum.kNegativeExtentDirection, , oAsm.ReferenceKeyManager.BindKeyToObject(aFaceRefKey, aFaceKeyContext).NativeObject)
	
	oSketch.DimensionsVisible=False
	oPair.Key.Visible = False
	oPair.Value.Visible = False
Next
oAsm.Update
oTransaction.End
InventorVb.DocumentUpdate() 

'Wyłaczenie adaptacyjnosci
iLogicVb.Automation.RunExternalRule(oAsm, "ADAPTACJA_OFF")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;However, I am intrigued by point 1, i.e. how to add the possibility to choose several planes ??&lt;/P&gt;&lt;P&gt;I think I know what to do but I don't know how &lt;span class="lia-unicode-emoji" title=":grinning_face_with_smiling_eyes:"&gt;😄&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would select several planes using the code:&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Dim oSurfaces As ObjectCollection = ThisApplication.TransientObjects.CreateObjectCollection
While True
   oFace = ThisApplication.CommandManager.Pick(SelectionFilterEnum.kPartFaceFilter, "WSKAŻ PŁASZCZYZNE Z OTWORAMI")
	
	' jesli nic nie wybrane to	
	If IsNothing(oFace) Then GoTo wybor2 Else
	oSurfaces.Add(oFace)
End While&lt;/LI-CODE&gt;&lt;P&gt;but I have no idea how to "stitch" these planes together so that the rest of the rule would be based on this stitching ??&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Would anyone be able to help on this topic ??&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;Best regard,&amp;nbsp;&lt;/P&gt;&lt;P&gt;ralfmja&lt;/P&gt;</description>
      <pubDate>Wed, 28 Sep 2022 14:19:22 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11450200#M36006</guid>
      <dc:creator>ROBOMACH_PL_1</dc:creator>
      <dc:date>2022-09-28T14:19:22Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11450626#M36007</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;dont know exactly what you need.&lt;/P&gt;&lt;P&gt;Dont understand me wrong, it is very good to try other code or example, but it will not always working how you want &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Origin Code, was made for Curved Surface, that why i needed the all Axis etc...&lt;/P&gt;&lt;P&gt;The Picture on the Begining was only a Simple Example.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;On your Picture i see, you have a Planar Plane, so should be relative more simply, i think so.&lt;/P&gt;&lt;P&gt;Are all Parts with Planar Planes, Faces?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Try to describe more what you want, or show the Assembly tree, which Part in which assembly etc..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Suggestion:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;&lt;P&gt;When all Parts has Planar Faces, then my spotanic Suggestion is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You need to have a Occurence from Part A and Part B&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In Part A&lt;/P&gt;&lt;P&gt;Select a Face, or Select a Entity, than simply Create in Part A a PlanarSketch and SketchProxy&lt;/P&gt;&lt;P&gt;AddEntity to The Sketch in Part A.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In Part B&lt;/P&gt;&lt;P&gt;Create Sketch and SketchProxy&lt;/P&gt;&lt;P&gt;and simply Copy Content From Part A to PartB, for this you need Proxy.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I think this should work, when your Parts has PlanarFaces.&lt;/P&gt;&lt;P&gt;In my Case it was Curved Surfaces, that why was a little bit Tricky.&lt;/P&gt;</description>
      <pubDate>Wed, 28 Sep 2022 18:13:26 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11450626#M36007</guid>
      <dc:creator>florian_wenzel</dc:creator>
      <dc:date>2022-09-28T18:13:26Z</dc:date>
    </item>
    <item>
      <title>Betreff: FaceProxy - Select Face from Assembly and Take the EdgeLoop</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11457880#M36008</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/11874503"&gt;@florian_wenzel&lt;/a&gt;&amp;nbsp;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks for you answer.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yes - all planes with holes are flat and parallel to the plane on which it is projecting.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It is intended to be a "streamlined" tool for the adaptive projection of holes from different parts onto the one in which these holes are to be formed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Inventor's standard approach to adaptability in large assemblies causes numerous problems with adaptability. For do this I use the "copy object" tool and then project that object onto the sketches and make the appropriate holes. The rule described in this topic allows you to significantly reduce the time required for these operations. However, it would be ideal for me if I could select and project all surfaces "at once".&lt;/P&gt;&lt;P&gt;But I never know how many planes I want to project (sometimes one, sometimes two, sometimes maybe 10 etc.).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Selecting planes seems to be done, but needs help in "joining" them and using them to project onto a selected plane.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I agree with you that it should be easier than with "rounded" surfaces, but I don't know how to do it anyway. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;ralfmja&lt;/P&gt;</description>
      <pubDate>Mon, 03 Oct 2022 09:05:07 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-forum/faceproxy-select-face-from-assembly-and-take-the-edgeloop/m-p/11457880#M36008</guid>
      <dc:creator>ROBOMACH_PL_1</dc:creator>
      <dc:date>2022-10-03T09:05:07Z</dc:date>
    </item>
  </channel>
</rss>

