Description dans feature manager

Bonjour,

jJe viens de passer sous SW2023 (Anciennement 2020). Et j’ai cette macro pour afficher la description dans feature manager:

2024-06-28_15h39_05

Mais je voudrais dans cette macro enlever la description secondaire:

2024-06-28_15h41_20

Une idée pour compléter cette macro ?

Merci

Bonjour;
modifiez votre ligne:
swfeature.ShowComponentDescriptions=True
en
swfeature.ShowComponentDescriptions=False

Solidworks propose ceci (pour ajuster les types à afficher sur les composants (feautreTree):
True => Visible
False =>Caché

https://help.solidworks.com/2023/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IFeatureManager_members.html

1 « J'aime »

Bonjour,

swfeature.ShowComponentDescriptions correspond à la description du composant au niveau primaire. Ce que je voudrais , c’est désactiver la description du composant au niveau secondaire et afficher la description au niveau primaire.

Merci.

Bonjour,

Regarder plutôt de ce côté pour intervenir sur le second identifiant: SetComponentIdentifiers Method (IFeatureManager) - 2023 - SOLIDWORKS API Help

1 « J'aime »

Bonjour Cyril,

Merci mais je n’arrive pas à en tirer quelque chose.

Bonjour,
Bon ça semble avoir un bug.
En gros une fois un paramètre appliqué via le set, quasi impossible de le passer à false.
Ce que j’ai testé qui pourrait peut-être fonctionner dans votre cas c’est ceci:

Dim swApp As SldWorks.SldWorks
Dim SelMgr As SldWorks.SelectionMgr
Dim swFeatMgr As SldWorks.FeatureManager
Dim Part As SldWorks.ModelDoc2
Dim compIdentifierRet As Long
 
Sub Main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swFeatMgr = Part.FeatureManager
compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentDescription, 0, 0)  'Bascule la valeur primaire sur Description du composant afin de vider la sélection dans la valeur secondaire
compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, 0, 0)  'Rebascule la valeur primaire sur Nom du composant
End sub

Visiblement problème connu en version 2022:
https://ww3.cad.de/foren/ubb/Forum2/HTML/034314.shtml
un SPR à été créé en sw2022SP5, traduction du 2ème message:

Après un bref test, j'ai remarqué que les options sont activées, mais ne peuvent plus être désactivées par macro.
Il existe aussi un SPR à ce sujet SPR1237147
1 « J'aime »

Comme d’hab, sont pas pressés :smiley:

Le SPR ne porte que sur ce point swFeatMgr.HideComponentSingleConfigurationOrDisplayStateNames = False
Ce que j’ai constaté également sur la 2023 mais c’est un peu plus général sur le reste.
Les autres options, impossible de les inhiber également.

Mais avec ta solution @Cyril.f , il est effectivement possible de contourné le bug et de cocher les 2 cases primaire en décochant la description secondaire:

Dim swApp As SldWorks.SldWorks
Dim SelMgr As SldWorks.SelectionMgr
Dim swFeatMgr As SldWorks.FeatureManager
Dim Part As SldWorks.ModelDoc2
Dim compIdentifierRet As Long
 
Sub Main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set swFeatMgr = Part.FeatureManager
compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentDescription, 0, 0)  'Bascule la valeur primaire sur Description du composant afin de vider la sélection dans la valeur secondaire
compIdentifierRet = swFeatMgr.SetComponentIdentifiers(swComponentIdentifier_ComponentName, 0, 0)  'Rebascule la valeur primaire sur Nom du composant


    ' Show Component Descriptions is set to true
    swFeatMgr.ShowComponentDescriptions = True

    ' Show Component Configuration Names is set to false
    swFeatMgr.ShowComponentConfigurationNames = True
     ' Show Component Configuration Descriptions is set to false
    swFeatMgr.ShowComponentConfigurationDescriptions = False
    ' Show Component Names
    swFeatMgr.ShowComponentNames = True
End Sub

Après la macro:
image

1 « J'aime »

Bonjour,

Merci pour vos essais mais chez moi la macro s’arrête sur cette ligne avec « Erreur d’exécution 449 : Argument non facultatif »

Bonjour,
Aucun problème de mon côté.
Il ne manque aucun argument sur cette ligne.