Ich möchte den Namen der Konfiguration des Teils abrufen, das als Referenz in einer Zeichnung verwendet wird.
Hier ist der Codeausschnitt, den ich derzeit habe:
Wir aktivieren das Arbeitsdokument Legen Sie swApp = Application.SldWorks fest Set Part = swApp.ActiveDoc Set FileSys = CreateObject("Scripting.FileSystemObject")
Ruft den vollständigen Pfad des aktuellen Dokuments ab, einschließlich des Dateinamens. Pfadname = Teil.GetPfadName Ruft den Pfad zum aktuellen Dokument ohne den Dateinamen ab: FilePath = Links(Pfadname, InStrRev(Pfadname, "\")) Ruft den Dateinamen ab: Dateiname = Rechts(Pfadname, Len(Pfadname) - InStrRev(Pfadname, "\")) typedoc = Recht(Dateiname, 3)
Case Typedoc auswählen Feld "drw", "DRW"
Set swview = Part.GetFirstView Setze swview = swview. GetNextView 'aktiviert/ruft die erste Ansicht für benutzerdefinierte Eigenschaften ab Legen Sie swRefDoc = swview fest. ReferencedDocument ' Wir haben jetzt swRefDoc das 3D der Zeichnung
Wir rufen die Eigenschaften der Konfiguration des Referenzteils oder der Baugruppe ab configNames = swRefDoc.GetConfigurationNames vConfigNameArr = swRefDoc.GetConfigurationNames
Für jeden vConfigName in vConfigNameArr Debug.Print vConfigName vCustInfoNameArr = swRefDoc.GetCustomInfoNames2(vConfigName)
außer dass ich in "configNames" alle Konfigurationen des Teils bekomme, während ich nur die Konfiguration des Teils in der Zeichnung verwenden möchte und dann in der Lage wäre, meine For Each-Schleife zu löschen.
Vielen Dank für Ihre Hilfe, ich bin sicher, dass es für Sie falsch ist.
und für ein Teil oder eine Baugruppe möchte ich, dass der Wert einer bestimmten Eigenschaft (z. B. Engineering PartNumber) nur in den "Konfigurationseigenschaften" für die Konfiguration des aktiven Teils vorhanden ist.
Dim swConfigMgr As SldWorks.ConfigurationManager Dim swConfig als SldWorks.Configuration .... Set swConfig = swConfigMgr.ActiveConfiguration ' Konfiguration Aktiv stnameConfig = swConfig.Name 'Name der aktiven Konfiguration
Dim swCustProp als Variante .... Festlegen von swCustProp = swModel.Extension.CustomPropertyManager(swConfig) No_article = swCustProp.Get4("Engineering PartNumber", False, valout) No_article = valout 'mit dim No_article als Zeichenkette
In der letzten Zeile Ihrer vorherigen Nachricht verweist die Variable swConfig auf ein iConfiguration-Objekt (in diesem Fall ist swconfig die aktuelle Konfiguration), nicht auf die Zeichenfolge, die den Namen enthält, daher Fehler 13. Dies ist wahrscheinlich swConfig.Name ist die zu verwendende Zeichenkette (von Maclane auch stnameConfig genannt).