Pièce exclue de la nomenclature

vos questions concernant les API SolidWorks

Pièce exclue de la nomenclature

Messagepar lajproSW » Mar 07 Jan 2014, 16:10

Bonjour,

Je travaille à partir de la mise en plan d'un assemblage, j'arrive à traverser l'assemblage de la 1° vue de la MEP avec "getfirstview". J'aimerais savoir pour chaque pièce de cet assemblage si elles sont exclues ou non de la nomenclature. j'ai trouvé sur le forum un exemple avec la cde ExcludeFromBom mais cela ne donne rien alors que j'ai bien des pièces exclues de la Nomenclature dans l'assemblage.

Merci pour votre aide.


vDrawCompChildArr = swDrawComp.GetChildren 'création d'un tableau avec toutes les pièces enfant

If Not IsEmpty(vDrawCompChildArr) Then
For Each vDrawCompChild In vDrawCompChildArr
Set swDrawCompChild = vDrawCompChild
If swDrawCompChild.Component.ExcludeFromBOM = True Then MsgBox "pièce exclue de la nomenclature"
ProcessDrawingComponent swDrawCompChild 'lancement programme
Next
Else
MsgBox (Cpt & "pièces")
End If
lajproSW
Ewok SolidWorks
 
Messages: 38
Inscription: Mar 16 Mar 2010, 10:32
Localisation: VALENCE

Re: Pièce exclue de la nomenclature

Messagepar lajproSW » Mar 07 Jan 2014, 17:34

J'ai trouvé une solution j'ai modifié le code en faisant :

value = swDrawCompChild.Component.ExcludeFromBOM
et
If value = True Then MsgBox "pièce exclue de la nomenclature"
lajproSW
Ewok SolidWorks
 
Messages: 38
Inscription: Mar 16 Mar 2010, 10:32
Localisation: VALENCE

Re: Pièce exclue de la nomenclature

Messagepar Titifonky » Mer 12 Fév 2014, 9:36

Bonjour,

Attention avec les boolean, comme décrit dans l'aide de l'api SW il faut toujours tester si la valeur de retour est fausse et non si elle est vraie.
Les fonctions de l'api retournent des variant_bool alors que vba utilise des bool.
Différence entre les deux :
variant_bool :
vrai = -1
faux = 0
bool :
vrai = 1
faux = 0

Donc pour qu'il n'y ai pas d'erreur, toujours tester si une valeur est fausse.

Extrait de l'aide :
BOOL and VARIANT_BOOL Are Different Types
This topic describes:

BOOL and VARIANT_BOOL differences

S_OK and S_FALSE values



BOOL and VARIANT BOOL Differences
BOOL and VARIANT_BOOL use different number values for TRUE:

BOOL
FALSE = 0

TRUE = 1

VARIANT_BOOL
VARIANT_FALSE = 0

VARIANT_TRUE = -1

However, many of the SolidWorks COM APIs methods with VARIANT_BOOL return values return False or True (0 or 1). To ensure a correct comparison, always compare the return value to 0. For example:


Dim bRetVal As Boolean

Dim lRetVal As Long



' Invoke method

bRetVal = swSomeObject.SomeMethod



' Inspect the numeric value

lRetVal = bRetVal

Debug.Print "Numeric value = & " lRetVal



' Inspect the logical value

If (Not (bRetVal = False)) Then 'If bRetVal Then will give incorrect results

Debug.Print "Return value is True"

Else

Debug.Print "Return value is False"

End if



' Negate value

bRetVal = (bRetVal = False) ' bRetVal = Not bRetVal will give incorrect results
Titifonky
Padawan SolidWorks
 
Messages: 89
Inscription: Mar 05 Avr 2011, 8:23
Localisation: Lille .............. SW Premium 2013 .......... Seven 64b


Retourner vers Questions générales sur les API

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités

banniere