problème longueur flanc de tôle (valeur retournée fausse)

vos questions concernant les API SolidWorks

problème longueur flanc de tôle (valeur retournée fausse)

Messagepar HeliCoid » Mar 25 Sep 2012, 14:25

Bonjour,

Je suis en train de faire une macro qui récupère les dimensions d'une pièces de tôlerie dépliée (en passant par les propriétés de corps).

voici le code (trouvé dans l'aide API) :

Code: Tout sélectionner
    Dim custPropMgr As SldWorks.CustomPropertyManager
    Dim propNames As Variant
    Dim vName As Variant
    Dim propName As String
    Dim Value As String
    Dim resolvedValue As String
   
    Set custPropMgr = docFeat.CustomPropertyManager
    If Not custPropMgr Is Nothing Then
        propNames = custPropMgr.GetNames
        If Not IsEmpty(propNames) Then
            Debug.Print docFeat.Name, docFeat.GetTypeName
               
                Tab_QUANTITE = "1"
               
                For Each vName In propNames
                propName = vName
                Call custPropMgr.Get2(propName, Value, resolvedValue)
                Debug.Print "       ", propName, Value, resolvedValue,
               
                Select Case propName
               
                        'Général
                    Case "Description"
                        Tab_DESCRIPTION = resolvedValue

                        'Pour une tôle
                    Case "Longueur du flanc de tôle"
                        Tab_LONGUEUR = resolvedValue
                        Tab_DEBIT = False
                        Tab_POINCONNAGE = True
                    Case "Largeur du flanc de tôle"
                        Tab_LARGEUR = resolvedValue
                        Tab_DEBIT = False
                        Tab_POINCONNAGE = True
                    Case "Epaisseur de tôlerie"
                        Tab_EPAISSEUR = resolvedValue
                        Tab_DEBIT = False
                        Tab_POINCONNAGE = True
                    Case "Plis"
                        Tab_PLIAGE = resolvedValue
                       
                        'pour un profilé
                       
                End Select

            Next vName
        End If
    End If


la longueur et la largeur du flanc de tôle renvoyées sont "0" alors que la valeur inscrite dans les propriétés du corps sont différentes de 0.
Mais quand, avant de lancer la macro, j'ouvre les propriétés du corps dans la pièce et que je referme la boîte de dialogue (sans rien changer du tout), les valeurs renvoyées par la macro deviennent bonnes.

Comment faire pour ne pas avoir à ouvrir la fenêtre de propriétés du corps pour avoir les bonnes valeurs retournées par la macro?

Merci.
HeliCoid
Ewok SolidWorks
 
Messages: 39
Inscription: Mar 22 Mar 2011, 10:40

Messagepar MarcS » Mar 25 Sep 2012, 15:54

Je suis avec Sw2012 SP2
et les valeur sont bonne a l'aide de ton programme et sans ouvrir la boite de dialogue

Va tu rechecher la bonne Feature ?

Set Feat_Obj = SwPart.FirstFeature
Do While Not Feat_Obj Is Nothing
Set SubFeat_Obj = Feat_Obj.GetFirstSubFeature
Do While Not SubFeat_Obj Is Nothing
If SubFeat_Obj.GetTypeName = "CutListFolder" Then
Set cutFolder = SubFeat_Obj.GetSpecificFeature2
End If
If Not cutFolder Is Nothing Then
If cutFolder.GetBodyCount > 0 Then
Call ICI_JE_LANCE_TON_PROG(SubFeat_Obj)
Set SubFeat_Obj = Nothing
Set Feat_Obj = Nothing
GoTo Fin_Loop
End If
End If
Set SubFeat_Obj = SubFeat_Obj.GetNextSubFeature
Loop
Set Feat_Obj = Feat_Obj.GetNextFeature
Fin_Loop:
Loop


MarcS
Avatar de l’utilisateur
MarcS
Chevalier Jedi SolidWorks
 
Messages: 311
Inscription: Mar 06 Jan 2009, 20:10
Localisation: Quebec, Quebec SolidWorks 2017 SP 1.0 & SolidWorks 2014 SP 2.0


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