Hallo,
ich bin auf der Suche nach einem Beispiel zum auslesen und setzen der Konfigurationen einer selektierten Komponente in einer Oberbaugruppe, und zwar ohne die einzelnen Konfigurationen der Oberbaugruppe zu aktivieren.
Mit Rechtsklick auf eine Komponente und Komponente konfigurieren bekomme ich ein Fenster wie im Bild zu sehen.
Hier könnte ich jetzt beliebig modifizieren.
Diese Informationen möchte ich zunächst in ein Array schreiben.
Code:
Dim ConfigCountOBgr As Long 'Anzahl der Konfigurationen
Dim ConfigNamesOBgr As Variant 'Namen der Konfigurationen
Dim i As Integer 'Zähler
ConfigNamesOBgr = swModel.GetConfigurationNames 'Namen der Konfigurationen
ConfigCountOBgr = UBound(ConfigNamesOBgr) 'Anzahl der Konfigurationen
ReDim Preserve referencedKonfig(ConfigCountOBgr) 'Array erweiternFor i = 0 To ConfigCountOBgr
referencedKonfig(i).Config = Config 'Konfiguration der Oberbaugruppe
referencedKonfig(i).RefConfig = selModelConfig 'Konfiguration der selektierten Komponente
If Not CBool(CInt(swComp.IsSuppressed)) Then 'Wenn Komponente nicht unterdrückt ist
referencedKonfig(i).IsSuppressed = False
Else
referencedKonfig(i).IsSuppressed = True
End If
Next i
Auf die Konfiguration der Oberbaugruppe greife ich wie üblich zu.
Code:
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc 'aktive Baugruppe
Set Configuration = swModel.GetActiveConfiguration
Config = Configuration.Name
Auf die Konfiguration der selektierten Komponente greife ich so zu.
Code:
Dim swComp As SldWorks.Component2
Dim selModelConfig As String
Set swComp = SelMgr.GetSelectedObjectsComponent(i)
selModelConfig = swComp.ReferencedConfiguration 'Konfigurationsname der selektierten Komponente
Nun müsste ich jede Konfiguration in der Oberbaugruppe aufrufen und dort jeweils die gesuchten Informationen abfragen.
Dies möchte ich aber vermeiden und ohne Konfigwechsel auslesen.
Der Makrorecorder nimmt hier leider nichts passendes auf.
Hat mir jemand den passenden Befehl zu dieser Abfrage?
Im nächsten Schritt wird die Komponente durch eine Unterbaugruppe ersetzt und nun möchte ich dieses Array wieder auslesen und die Konfigurationen wie gehabt einstellen, natürlich auch ohne Konfigwechsel der Oberbaugruppe.
Die Konfiguration der Unterbaugruppe wähle ich momentan mit diesem Befehl aus.
Code:
boolstatus = selModelASM.ReplaceComponents2(uBgrModelPathName, uBgrModelConfig, False, 1, True)
Bei diesem Befehl fehlt auch die Option, die Konfiguration der Oberbaugruppe zu definieren.
Hoffentlich gibt es dazu passende Befehle.
Wer kann weiterhelfen?
Grüße, Andi
------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP