Ik wil graag de naam opvragen van de configuratie van het onderdeel dat als referentie in een tekening wordt gebruikt.
Hier is het codefragment dat ik momenteel heb:
We activeren het werkdocument Stel swApp = Toepassing.SldWorks in Deel instellen = swApp.ActiveDoc Set FileSys = CreateObject("Scripting.FileSystemObject")
Hiermee haalt u het volledige pad van het huidige document op, inclusief de bestandsnaam PathName = Deel.GetPathName Hiermee haalt u het pad naar het huidige document op, zonder de bestandsnaam: FilePath = Links(PathName, InStrRev(PathName, "\")) Haalt de bestandsnaam op: FileName = Right(PathName, Len(PathName) - InStrRev(PathName, "\")) Typedoc = Rechts(Bestandsnaam, 3)
Selecteer Case Typedoc Doos "drw", "DRW"
Stel swview in = Deel.GetFirstView Stel swview = swview in. GetNextView 'activeert/haalt de eerste weergave voor aangepaste eigenschappen in Stel swRefDoc = swview in. ReferencedDocument ' We hebben nu swRefDoc de 3D van de tekening
We halen de eigenschappen van de configuratie van het referentieonderdeel of de assemblage op configNames = swRefDoc.GetConfigurationNames vConfigNameArr = swRefDoc.GetConfigurationNames
Voor elke vConfigName in vConfigNameArr Foutopsporing.Print vConfigName vCustInfoNameArr = swRefDoc.GetCustomInfoNames2(vConfigName)
behalve dat ik in "configNames" alle configuraties van het onderdeel krijg, terwijl ik alleen de configuratie van het onderdeel zou willen dat in de tekening wordt gebruikt en dan in staat zou zijn om mijn For Each lus te verwijderen.
Bedankt voor je hulp, ik weet zeker dat het nep voor je is.
en voor een onderdeel of assemblage ben ik op zoek naar de waarde van een specifieke eigenschap (bijv. Engineering PartNumber) die alleen aanwezig is in de "configuratie-eigenschappen" voor de configuratie van het actieve onderdeel.
Dim swConfigMgr As SldWorks.ConfigurationManager Dim swConfig als SldWorks.Configuration .... Set swConfig = swConfigMgr.ActiveConfiguration ' configuratie Actief stnameConfig = swConfig.Name 'Actieve configuratienaam
Dim swCustProp als variant .... Stel swCustProp in = swModel.Extension.CustomPropertyManager(swConfig) No_article = swCustProp.Get4("Engineering PartNumber", Onwaar, val, valout) No_article = valout 'met dim No_article als string
In de laatste regel van uw vorige bericht verwijst de variabele swConfig naar een iConfiguration-object (in dit geval is swconfig de huidige configuratie), niet naar de tekenreeks die de naam bevat, vandaar fout 13. Dit is waarschijnlijk swConfig.Name is de string die je moet gebruiken (ook wel stnameConfig genoemd door Maclane).