Purger un assemblage Inventor (Niveau de détail)
Vous souhaitez exporter un modèle allégé depuis un niveau de détail d'un assemblage.
Le problème c’est que le prêt a emporter prend tout les composants masqués en plus des composants actifs et l'enregistrer sous aussi
Seul l’export au format Step fonctionne mais vous perdez l’intelligence des pièces c'est à dire l'arbre de conception et les contraintes ou liaisons.
Ci dessous une règle iLogic qui va supprimer de l'assemblage principal ainsi que des sous ensembles les composants masqués du niveau de détail actif.
Sub Main()
'Check if suppressed parts should be removed. Stop if not yes If Delete_Suppressed_Parts = "No" Then Exit Sub 'ask user to confirm deletion Dim question As Object question = MessageBox.Show("Etes vous sûr de vouloir effacer les composants masqués ? " & vbCrLf _ & "Ceci est irréversible.", "Attention",MessageBoxButtons.YesNo,MessageBoxIcon.Question)
'user doesn't want to delete If question <> vbYes Then Delete_Suppressed_Parts = "No" Exit Sub End If 'Reference active document Dim doc As AssemblyDocument doc = ThisApplication.ActiveDocument 'Put parts into array Dim acd As AssemblyComponentDefinition acd = doc.ComponentDefinition 'do removal Call DeleteSuppressedComponent(acd.Occurrences) 'feedback MessageBox.Show("Effacer !", "C'est fini !") End Sub
Sub DeleteSuppressedComponent(occs As ComponentOccurrences) 'define component instance Dim occ As ComponentOccurrence 'loop through all components For Each occ In occs If occ.Suppressed Then If occ.IsPatternElement Then Dim oPattern As RectangularOccurrencePattern oPattern = occ.PatternElement.Parent oPattern.Delete Else occ.Delete 'delete suppressed components End If Else If occ.SubOccurrences.Count > 0 Then 'recursive loop into current component to check for deeper suppressed components DeleteSuppressedComponent(occ.SubOccurrences) End If End If Next
End Sub
Attention avant d'exécuter la règle assurez vous d'avoir une copie de ce Prêt à emporter
Ces articles peuvent vous intéresser :