Opis w menedżerze funkcji

Witam

Właśnie przełączyłem się na SW2023 (dawniej 2020). I mam to makro do wyświetlenia opisu w menedżerze funkcji:

2024-06-28_15h39_05

Chciałbym jednak usunąć drugorzędny opis w tym makrze:

2024-06-28_15h41_20

Masz pomysł, aby ukończyć to makro?

Dziękuję

Witam;
Edytuj swoją linię:
swfeature. ShowComponentDescriptions=Prawda
w
swfeature. ShowComponentDescriptions=Fałsz

Solidworks oferuje taką możliwość (w celu dostosowania typów, które mają być wyświetlane na komponentach (feautreTree):
True => Widoczne
False =>Ukryty

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

1 polubienie

Witam

swfeature. ShowComponentDescriptions jest opisem składnika na poziomie podstawowym. To, co bym chciał, to wyłączyć opis komponentu na poziomie drugorzędnym i pokazać opis na poziomie podstawowym.

Dziękuję.

Witam

Zamiast tego spójrz na tę stronę, aby interweniować w sprawie drugiego identyfikatora: Metoda SetComponentIdentifiers (IFeatureManager) - 2023 - Pomoc SOLIDWORKS API

1 polubienie

Witaj Cyrylu,

Dziękuję, ale nic z tego nie mogę wyciągnąć.

Witam
Cóż, wygląda na to, że ma błąd.
Zasadniczo, gdy parametr zostanie zastosowany za pośrednictwem zestawu, prawie niemożliwe jest przekazanie go do false.
To, co przetestowałem, co może działać w twoim przypadku, to:

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

Oczywiście znany problem w wersji 2022:
https://ww3.cad.de/foren/ubb/Forum2/HTML/034314.shtml
w sw2022SP5 utworzono SPR, tłumaczenie 2. wiadomości:

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 polubienie

Jak zwykle nie spieszymy się :smiley:

SPR zajmuje się tylko tym punktem swFeatMgr.HideComponentSingleConfigurationOrDisplayStateNames = False
Co zauważyłem również w 2023 roku, ale w pozostałej części jest trochę bardziej ogólnie.
Inne opcje również są niemożliwe do zahamowania.

Ale dzięki @Cyril_f rozwiązaniu rzeczywiście można ominąć błąd i zaznaczyć 2 główne pola, odznaczając drugorzędny opis:

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

Po makrze:
image

1 polubienie

Witam

Dziękuję za próby, ale w domu makro zatrzymuje się na tym wierszu z komunikatem " Błąd wykonania 449: Argument nieopcjonalny "

Witam
Nie ma problemu z mojej strony.
Argumentów na ten temat nie brakuje.