Je souhaiterais récupérer le nom de la configuration de la pièce utilisée en référence dans une mise en plan.
Voici le bout de code que j'ai actuellement :
'on active le doc de travail Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set FileSys = CreateObject("Scripting.FileSystemObject")
'obtient le chemin complet du document actif, y compris le nom du fichier PathName = Part.GetPathName 'obtient le chemin du document actif, sans le nom du fichier : FilePath = Left(PathName, InStrRev(PathName, "\")) 'obtient le nom du fichier : FileName = Right(PathName, Len(PathName) - InStrRev(PathName, "\")) Typedoc = Right(FileName, 3)
Select Case Typedoc Case "drw", "DRW" 'mise en plan
Set swview = Part.GetFirstView 'active/récupère le fond de plan pour les propri perso Set swview = swview.GetNextView 'active/récupère la première vue pour les propri perso Set swRefDoc = swview.ReferencedDocument ' On a maintenant swRefDoc le 3D de la mise en plan
'on récupère les propriétés de la config de la pièce ou assemblage de référence configNames = swRefDoc.GetConfigurationNames vConfigNameArr = swRefDoc.GetConfigurationNames
For Each vConfigName In vConfigNameArr Debug.Print vConfigName vCustInfoNameArr = swRefDoc.GetCustomInfoNames2(vConfigName)
sauf que dans "configNames" je récupère toutes les configs de la pièce alors que je ne voudrais que la config de la pièce utilisée dans la mise en plan et pouvoir ensuite supprimer ma boucle For Each.
Merci pour votre aide, je suis certain que c'est bidon pour vous.
et pour une pièce ou un assemblage, je recherche à avoir la valeur d'une propriété spécifique (par exemple : Engineering PartNumber) uniquement présente dans les "propriétés de la configuration" pour la configuration de la pièce active.
Dim swConfigMgr As SldWorks.ConfigurationManager Dim swConfig As SldWorks.Configuration .... Set swConfig = swConfigMgr.ActiveConfiguration ' configuration Active stnameConfig = swConfig.Name 'Nom de la configuration Active
Dim swCustProp As Variant .... Set swCustProp = swModel.Extension.CustomPropertyManager(swConfig) No_article = swCustProp.Get4("Engineering PartNumber", False, val, valout) No_article = valout 'avec dim No_article as string
Dans la dernière ligne de votre message précédent, la variable swConfig désigne un objet iConfiguration (dans le cas présent swconfig est la config active), et non la chaîne de caractères contenant son nom, d'où l'erreur 13. C'est sans doute swConfig.Name qui est la chaîne à utiliser (également nommée stnameConfig par Maclane).