<?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: Ilogic bendcount all sheetmetal part in assembly in Inventor Programming - iLogic, Macros, AddIns &amp; Apprentice</title>
    <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogic-bendcount-all-sheetmetal-part-in-assembly/m-p/9628503#M113102</link>
    <description>&lt;P&gt;This will create flat pattern/iProperty for all sheet metal parts in assembly/subassemblies.&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Class ThisRule

Dim oAsmDoc As Document

Public Sub Main()	
	oAsmDoc = ThisApplication.ActiveDocument
	If oAsmDoc.DocumentType  &amp;lt;&amp;gt; DocumentTypeEnum.kAssemblyDocumentObject Then
		Return
	End If
	Call TraverseAssembly(oAsmDoc.ComponentDefinition.Occurrences)
	
	MessageBox.Show("Bends iProperty added to all sheet metal parts.", "iLogic")
End Sub

Private Sub TraverseAssembly(Occurrences As ComponentOccurrences) 
	
    Dim oOcc As ComponentOccurrence
	For Each oOcc In Occurrences
		oDocType = oOcc.DefinitionDocumentType
		Select Case oDocType
		Case kAssemblyDocumentObject
			Call TraverseAssembly(oOcc.SubOccurrences)
		Case kPartDocumentObject						
			If oOcc.Definition.Type = 83886592 Then 'standard
				'						
			Else If oOcc.Definition.Type = 150995200 Then 'sheet metal part
				Dim oDoc As PartDocument
				oDoc = oOcc.Definition.Document
				
				Dim bFlat As Boolean
				
				Dim oSMDef As SheetMetalComponentDefinition
				oSMDef = oDoc.ComponentDefinition
				
				'Check for Flat Pattern
				If oSMDef.FlatPattern Is Nothing Then					
					'Create Flat Pattern
					Try
						oSMDef.Unfold()
						oSMDef.FlatPattern.ExitEdit()
						oDoc.Close()
						bFlat = True
					Catch ' Failed to unfold part
						MessageBox.Show("Failed to create Flat Pattern")
						bFlat = False
						Return
					End Try
				Else										
					bFlat = True			
				End If
				If bFlat = True
					Dim bends As FlatBendResults
					bends = oSMDef.FlatPattern.FlatBendResults
					
					'Count bends
					Dim count As Integer = 0					
					For Each Bend In oSMDef.Bends
						count += 1
					Next
					
					Dim oCustomPropSet As PropertySet
					oCustomPropSet = oOcc.Definition.Document.PropertySets("Inventor User Defined Properties")
					
					'Check for/create property
					Try
						intTest = oCustomPropSet.Item("Bends").Value
					Catch ex As Exception
						oCustomPropSet.Add(count, "Bends")
					End Try
				End If
			End If
		End Select
	Next
End Sub
End Class&lt;/LI-CODE&gt;</description>
    <pubDate>Fri, 10 Jul 2020 13:06:31 GMT</pubDate>
    <dc:creator>ckeveryga</dc:creator>
    <dc:date>2020-07-10T13:06:31Z</dc:date>
    <item>
      <title>Ilogic bendcount all sheetmetal part in assembly</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogic-bendcount-all-sheetmetal-part-in-assembly/m-p/9628128#M113093</link>
      <description>&lt;P&gt;is there anyone who can help make a rule that counts all bends on my sheetmetal parts in an assembly writes it into iproperties on every part&lt;/P&gt;</description>
      <pubDate>Fri, 10 Jul 2020 09:30:28 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogic-bendcount-all-sheetmetal-part-in-assembly/m-p/9628128#M113093</guid>
      <dc:creator>omEVKG8</dc:creator>
      <dc:date>2020-07-10T09:30:28Z</dc:date>
    </item>
    <item>
      <title>Re: Ilogic bendcount all sheetmetal part in assembly</title>
      <link>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogic-bendcount-all-sheetmetal-part-in-assembly/m-p/9628503#M113102</link>
      <description>&lt;P&gt;This will create flat pattern/iProperty for all sheet metal parts in assembly/subassemblies.&lt;/P&gt;&lt;LI-CODE lang="general"&gt;Class ThisRule

Dim oAsmDoc As Document

Public Sub Main()	
	oAsmDoc = ThisApplication.ActiveDocument
	If oAsmDoc.DocumentType  &amp;lt;&amp;gt; DocumentTypeEnum.kAssemblyDocumentObject Then
		Return
	End If
	Call TraverseAssembly(oAsmDoc.ComponentDefinition.Occurrences)
	
	MessageBox.Show("Bends iProperty added to all sheet metal parts.", "iLogic")
End Sub

Private Sub TraverseAssembly(Occurrences As ComponentOccurrences) 
	
    Dim oOcc As ComponentOccurrence
	For Each oOcc In Occurrences
		oDocType = oOcc.DefinitionDocumentType
		Select Case oDocType
		Case kAssemblyDocumentObject
			Call TraverseAssembly(oOcc.SubOccurrences)
		Case kPartDocumentObject						
			If oOcc.Definition.Type = 83886592 Then 'standard
				'						
			Else If oOcc.Definition.Type = 150995200 Then 'sheet metal part
				Dim oDoc As PartDocument
				oDoc = oOcc.Definition.Document
				
				Dim bFlat As Boolean
				
				Dim oSMDef As SheetMetalComponentDefinition
				oSMDef = oDoc.ComponentDefinition
				
				'Check for Flat Pattern
				If oSMDef.FlatPattern Is Nothing Then					
					'Create Flat Pattern
					Try
						oSMDef.Unfold()
						oSMDef.FlatPattern.ExitEdit()
						oDoc.Close()
						bFlat = True
					Catch ' Failed to unfold part
						MessageBox.Show("Failed to create Flat Pattern")
						bFlat = False
						Return
					End Try
				Else										
					bFlat = True			
				End If
				If bFlat = True
					Dim bends As FlatBendResults
					bends = oSMDef.FlatPattern.FlatBendResults
					
					'Count bends
					Dim count As Integer = 0					
					For Each Bend In oSMDef.Bends
						count += 1
					Next
					
					Dim oCustomPropSet As PropertySet
					oCustomPropSet = oOcc.Definition.Document.PropertySets("Inventor User Defined Properties")
					
					'Check for/create property
					Try
						intTest = oCustomPropSet.Item("Bends").Value
					Catch ex As Exception
						oCustomPropSet.Add(count, "Bends")
					End Try
				End If
			End If
		End Select
	Next
End Sub
End Class&lt;/LI-CODE&gt;</description>
      <pubDate>Fri, 10 Jul 2020 13:06:31 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/inventor-programming-ilogic/ilogic-bendcount-all-sheetmetal-part-in-assembly/m-p/9628503#M113102</guid>
      <dc:creator>ckeveryga</dc:creator>
      <dc:date>2020-07-10T13:06:31Z</dc:date>
    </item>
  </channel>
</rss>

