Announcements
Attention for Customers without Multi-Factor Authentication or Single Sign-On - OTP Verification rolls out April 2025. Read all about it here.
JKunHN5NJ
221 Views, 2 Replies

Class Not Registered Error

I keep receiving a "Class Not Registered" error every time I try to run this code. I have searched around the forums, but have not been able to find any solutions.

 

' Initialize Inventor application
Dim inventorApp As Inventor.Application
inventorApp = ThisApplication

' Check if an assembly document is active
If inventorApp.ActiveDocument.DocumentType <> kAssemblyDocumentObject Then
    MsgBox("Please open an assembly document first.")
    Exit Sub
End If

' Get the active assembly document
Dim originalAssembly As AssemblyDocument
originalAssembly = inventorApp.ActiveDocument

' Prompt the user for a new file name for the copied assembly
Dim newFileName As String
newFileName = InputBox("Enter a new file name for the copied assembly:", "Copy Assembly")

' Check if the user canceled the input
If newFileName = "" Then
    Exit Sub
End If

' List of components to be reused (replace with your own file names)
Dim componentsToReuse As New List(Of String)
componentsToReuse.Add("UHDL13.50CollarPhantom.iam")
componentsToReuse.Add("907926.ipt")

' Save a copy of the assembly with the new file name
originalAssembly.SaveAs(newFileName, True)

' Close the original assembly
originalAssembly.Close(True)

' Open the copied assembly
Dim copiedAssembly As AssemblyDocument
copiedAssembly = inventorApp.Documents.Open(newFileName)

' Iterate through the components in the copied assembly and remove suppressed components
For Each component As ComponentOccurrence In copiedAssembly.ComponentDefinition.Occurrences
    If Component.Suppressed Then
        Component.Delete2(True) ' Delete the suppressed component
    End If
Next

' Iterate through the components in the copied assembly
For Each component As ComponentOccurrence In copiedAssembly.ComponentDefinition.Occurrences
    Dim componentName As String
    componentName = Component.Name

    ' Check if the component should be reused or copied
    If componentsToReuse.Contains(componentName) Then
        ' Component should be reused
        ' You can add code here to update the position or configuration if needed
    Else
        ' Component should be copied
        ' You can add code here to copy the component or replace it with a new version
        ' For example, you can replace it with a different IPT file using the File.Copy function.
    End If
Next

' Inform the user
MsgBox("Assembly copied successfully with a new file name: " & newFileName)

 in line 30