Hallo zusammen.
1.) Ich bin auf der Suche nach einem Makro, das alle Baugruppenabhängigkeiten unterdrückt und danach alle Bauteile fixiert.
Anscheinend kann ich mit diesem Makro alle Bauteile fixieren.
==============================================================
Code.
Public Sub KomponentenFixieren()
If ThisApplication.Documents.Count = 0 Then
MsgBox "Die Baugruppe öffnen.", vbExclamation, "Keine Baugruppe"
Exit Sub
End If
If ThisApplication.ActiveDocumentType <> kAssemblyDocumentObject Then
MsgBox "Die Baugruppe öffnen.", vbExclamation, "Keine Baugruppe"
Exit Sub
End If
Dim oAsm As AssemblyDocument
Set oAsm = ThisApplication.ActiveDocument
ForAllComponents oAsm.ComponentDefinition.Occurrences
End Sub
Public Sub KomponentenFixierungAufheben()
If ThisApplication.Documents.Count = 0 Then
MsgBox "Die Baugruppe öffnen.", vbExclamation, "Keine Baugruppe"
Exit Sub
End If
If ThisApplication.ActiveDocumentType <> kAssemblyDocumentObject Then
MsgBox "Die Baugruppe öffnen.", vbExclamation, "Keine Baugruppe"
Exit Sub
End If
Dim oAsm As AssemblyDocument
Set oAsm = ThisApplication.ActiveDocument
ForAllComponentsFree oAsm.ComponentDefinition.Occurrences
End Sub
' Hilfsfunktionen ----------------------------------------------------------------------------------------------------
Sub ForAllComponents(oOccs As ComponentOccurrences)
Dim oOcc As ComponentOccurrence
For Each oOcc In oOccs
On Error Resume Next
oOcc.Grounded = True
If oOcc.Constraints.Count > 0 Then
For Each oConstraint In oOcc.Constraints
oConstraint.Suppressed = True
Next
End If
ThisApplication.StatusBarText = oOcc.Name
If Err.Number <> 0 Then
Err.Number = 0
GoTo NEXTCOMP
End If
NEXTCOMP:
ForAllComponents oOcc.SubOccurrences
Next
End Sub
Sub ForAllComponentsFree(oOccs As ComponentOccurrences)
Dim oOcc As ComponentOccurrence
For Each oOcc In oOccs
On Error Resume Next
oOcc.Grounded = False
If oOcc.Constraints.Count > 0 Then
For Each oConstraint In oOcc.Constraints
oConstraint.Suppressed = False
Next
End If
ThisApplication.StatusBarText = oOcc.Name
If Err.Number <> 0 Then
Err.Number = 0
GoTo NEXTCOMP
End If
NEXTCOMP:
ForAllComponentsFree oOcc.SubOccurrences
Next
End Sub
==============================================================
Und mit diesem Befehl kann ich die Abhängigkeiten unterdrücken.
AssemblyConstraint.Suppressed = True bzw. AssemblyConstraint.Suppressed = False
Wie kann ich das in einem Makro miteinander verbinden?
2.) Natürlich sollte es ein Makro geben, das genau das Gegenteil bewirkt...
Also Abhängigkeiten wieder aktivieren und die Fixierungen aufheben. Nur das "erste" Bauteil sollte weiterhin fixiert bleiben.
Danke und viele Güße
mb-ing
------------------
Wissen ist Macht. Nichts wissen macht auch nichts
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP