Retourner le type de corps (solid, tôle, profilé,...)

vos questions concernant les API SolidWorks

Retourner le type de corps (solid, tôle, profilé,...)

Messagepar HeliCoid » Mer 11 Juil 2012, 13:56

Bonjour,

Je suis à la recherche un code retournant chaque type de corps dans une pièce.

J'ai ça comme base :
Code: Tout sélectionner
Sub Piece(Model As SldWorks.ModelDoc2)

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swPart As SldWorks.PartDoc
Dim vBody As Variant
Dim swBody As SldWorks.Body2
Dim vFonction As Variant
Dim swFonction As SldWorks.Feature
Dim j As Integer
Dim NomCorps As String
Dim k As Integer
Dim NomFonction As String
Dim TypeFonction As String

Set swPart = Model

vBody = swPart.GetBodies2(swSolidBody, False)


If swPart.Body Is Nothing Then
Else
    Debug.Print "   nbre de corps volumique :"; UBound(vBody) + 1
End If

Dim Body_Type As Integer
For j = 0 To UBound(vBody)
    Set swBody = vBody(j)
    NomCorps = swBody.GetSelectionId
    vFonction = swBody.GetFeatures
    ***
    Debug.Print "       Nom du corps : " & NomCorps
    Debug.Print "       Type de corps : " & Body_Type
   
    Call Csv.Dispatcher_Comp(Comp_Name)
   
Next j


End Sub


J'ai testé "swBody.Gettype" à l'endroit des *** dans le code mais il me retourne toujours la valeur "0". Je l'ai peut-être mal utilisé..

Comment faire pour avoir le type de corps?

Merci d'avance!
HeliCoid
Ewok SolidWorks
 
Messages: 39
Inscription: Mar 22 Mar 2011, 10:40

Messagepar Annwn » Ven 13 Juil 2012, 12:04

C'est normal puisque les types de corps sont les suivants :
Code: Tout sélectionner
Public Enum swBodyType_e
    swAllBodies = -1
    [b]swSolidBody = 0[/b]
    swSheetBody = 1
    swWireBody = 2
    swMinimumBody = 3
    swGeneralBody = 4
    swEmptyBody = 5
End Enum


donc si tu n'as que du volumique la retval est 0
Programmer, c'est bien; programmer utile, c'est mieux........
Venez faire un tour ici !
Annwn
Site Admin
 
Messages: 4938
Inscription: Lun 18 Déc 2006, 22:35

Messagepar HeliCoid » Mer 29 Aoû 2012, 9:16

J'airemplacé
vBody = swPart.GetBodies2(swSolidBody, False)
par
vBody = swPart.GetBodies2(swAllBodies, False)

Il me renvoie toujours la valeur "0" alors que j'ai de la tôlerie et du mécano-soudé.

Que dois-je faire?
HeliCoid
Ewok SolidWorks
 
Messages: 39
Inscription: Mar 22 Mar 2011, 10:40


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 5 invités

banniere

cron