Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.
MechMachineMan
in reply to: Anonymous

 

I think your issue was that you weren't returning FORM from your function to a variable.

 

Sub Main ()

	Dim oDoc As Document = ThisApplication.ActiveDocument
	If oDoc.DocumentType <> DocumentTypeEnum.kAssemblyDocumentObject Then Exit Sub
	 
	Dim oADO As Inventor.ComponentOccurrences = oDoc.ComponentDefinition.Occurrences	 
	iProperties.Value("Custom", "FORM") = 0
	iProperties.Value("Custom", "PUNCH") = 0
	iProperties.Value("Custom", "WELD") = 0
	
	For Each aDoc As Document In oDoc.AllReferencedDocuments
		
	 	Form = 0
		
		If aDoc.DocumentType = DocumentTypeEnum.kAssemblyDocumentObject Then
			Dim oAssmDoc As AssemblyDocument = aDoc
			oDef = oAssmDoc.ComponentDefinition
		ElseIf aDoc.DocumentType = DocumentTypeEnum.kPartDocumentObject Then
			Dim oPartDoc As PartDocument = aDoc
			oDef = oPartDoc.ComponentDefinition
		End If

	' MyOperations = New String(){"FORM", "PUNCH", "WELD"}
	'
	' For Each op in MyOperations
	' MsgBox(op)
	' Next

		If oDef.BOMStructure <> BOMStructureEnum.kPhantomBOMStructure 
	      Dim Amount As Integer = oADO.AllReferencedOccurrences(aDoc).Count
	      Form = collectQuantity(aDoc,Amount,oLibraryPath)
		End If
		
		FORM_QTY = FORM_QTY + Form
	Next
	
	iProperties.Value("Custom", "FORM") = FORM_QTY
 
End Sub
 
Function collectQuantity (aDoc As Document, Amount As Integer,oLibraryPath As String) As Double

	Dim oPropsets As PropertySets = aDoc.PropertySets
	Dim oCustomPropSet As PropertySet = oPropsets.Item("User Defined Properties")
	Dim FORM As Double

	Try
		FORM =  oCustomPropSet("FORM").Value * Amount
		'MsgBox(FORM)
	Catch
		FORM = 0
	End Try

	Return FORM

End Function

--------------------------------------
Did you find this reply helpful ? If so please use the 'Accept as Solution' or 'Like' button below.

Justin K
Inventor 2018.2.3, Build 227 | Excel 2013+ VBA
ERP/CAD Communication | Custom Scripting
Machine Design | Process Optimization


iLogic/Inventor API: Autodesk Online Help | API Shortcut In Google Chrome | iLogic API Documentation
Vb.Net/VBA Programming: MSDN | Stackoverflow | Excel Object Model
Inventor API/VBA/Vb.Net Learning Resources: Forum Thread

Sample Solutions:Debugging in iLogic ( and Batch PDF Export Sample ) | API HasSaveCopyAs Issues |
BOM Export & Column Reorder | Reorient Skewed Part | Add Internal Profile Dogbones |
Run iLogic From VBA | Batch File Renaming| Continuous Pick/Rename Objects

Local Help: %PUBLIC%\Documents\Autodesk\Inventor 2018\Local Help

Ideas: Dockable/Customizable Property Browser | Section Line API/Thread Feature in Assembly/PartsList API Static Cells | Fourth BOM Type