Sortir nom configuration courante dans vue de MEP

vos questions concernant les API SolidWorks

Sortir nom configuration courante dans vue de MEP

Messagepar lajproSW » Lun 23 Déc 2013, 18:09

Bonjour,

Ci-dessous un petit code qui me permet de sortir le nom complet de l'assemblage utilisé sur une MEP et dans la première vue trouvée. J'aimerais aussi sortir le nom de la configuration active de cet assemblage dans cette vue et là j'ai besoin de votre aide.

Merci.



Sub main()

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View
Dim retval As Variant
Dim PrtCfg As Variant
Dim Part As Object


Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set Part = swApp.ActiveDoc

'Erreur si aucun document ouvert
If Part Is Nothing Then MsgBox "Veuillez ouvrir une mise en plan!", vbCritical: End

'si on a une mise en plan
If Part.GetType = 3 Then
Set swView = swApp.ActiveDoc.GetFirstView
Set swModel = swView.ReferencedDocument
End If

'si on n'a pas de vues sur la MEP
If swView Is Nothing Then
MsgBox "Pas de vue sur cette mise en plan"
End
End If

Debug.Print "File = " & swModel.GetPathName
'Debug.Print "File = " & swModel.GetActiveConfiguration
Debug.Print " " & swView.Name & " [" & swView.Type & "]"

End Sub
lajproSW
Ewok SolidWorks
 
Messages: 38
Inscription: Mar 16 Mar 2010, 10:32
Localisation: VALENCE

Re: Sortir nom configuration courante dans vue de MEP

Messagepar franck.girard » Ven 07 Fév 2014, 9:15

Bonjour,

Pour le nom de la configuration, il faut passer par le ConfigurationManager.
Ensuite, GetFirstView renvoi vers la feuille (sheet). Il faut utiliser GetNextView pour avoir la première vue.

Voici ton code modifié.
Code: Tout sélectionner
Sub main()

 Dim swApp As SldWorks.SldWorks
 Dim swModel As SldWorks.ModelDoc2
 Dim swDraw As SldWorks.DrawingDoc
 Dim swView As SldWorks.View
 Dim swConfMgr As SldWorks.ConfigurationManager
 Dim swConf As SldWorks.Configuration
 Dim retval As Variant
 Dim PrtCfg As Variant
 Dim Part As Object


 Set swApp = Application.SldWorks
 Set swModel = swApp.ActiveDoc
 Set Part = swApp.ActiveDoc

 'Erreur si aucun document ouvert
If Part Is Nothing Then MsgBox "Veuillez ouvrir une mise en plan!", vbCritical: End

'si on a une mise en plan
If Part.GetType = 3 Then
 Set swDraw = swApp.ActiveDoc
 Set swView = swDraw.GetFirstView
 Set swView = swView.GetNextView
 Set swModel = swView.ReferencedDocument
End If

'si on n'a pas de vues sur la MEP
If swView Is Nothing Then
 MsgBox "Pas de vue sur cette mise en plan"
 End
End If

'récupération de la config active de swModel
Set swConfMgr = swModel.ConfigurationManager
Set swConf = swConfMgr.ActiveConfiguration

'Affichage résultats
 Debug.Print "File = " & swModel.GetPathName
 Debug.Print "Config = " & swConf.Name
 Debug.Print " " & swView.Name & " [" & swView.Type & "]"

End Sub
franck.girard
Ewok SolidWorks
 
Messages: 18
Inscription: Mer 05 Fév 2014, 10:34

Re: Sortir nom configuration courante dans vue de MEP

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

Bonjour,

Pour avoir le nom de la configuration référencée par une vue : View.ReferencedConfiguration
Titifonky
Padawan SolidWorks
 
Messages: 89
Inscription: Mar 05 Avr 2011, 8:23
Localisation: Lille .............. SW Premium 2013 .......... Seven 64b

Re: Sortir nom configuration courante dans vue de MEP

Messagepar franck.girard » Mer 12 Fév 2014, 10:02

Tu as raison Titifonky. C'est plus simple en passant par "View.ReferencedConfiguration"
Après recherche dans l'aide API il y a un exemple qui fait exactement ce que voulais lajproSW
Je post le code en question ci dessous :

Code: Tout sélectionner
Get Configurations Referenced in View Example (VBA)
This example shows how to get the names of the configurations referenced in each drawing view in the drawing sheet.

 

'-------------------------------------

'

' Preconditions: Drawing document is open.

'

' Postconditions: None

'

'--------------------------------------

Option Explicit

Sub main()

    Dim swApp                       As SldWorks.SldWorks

    Dim swModel                     As SldWorks.ModelDoc2

    Dim swDraw                      As SldWorks.DrawingDoc

    Dim swView                      As SldWorks.view

    Dim bRet                        As Boolean

   

    Set swApp = Application.SldWorks

    Set swModel = swApp.ActiveDoc

    Set swDraw = swModel

   

    Debug.Print "File = " & swModel.GetPathName

   

    Set swView = swDraw.GetFirstView

    Do While Not swView Is Nothing

        Debug.Print "  View = " + swView.Name

        Debug.Print "    Model  = " + swView.GetReferencedModelName

        Debug.Print "    Config = " + swView.ReferencedConfiguration

       

        Set swView = swView.GetNextView

    Loop

End Sub

'-------------------------------------

franck.girard
Ewok SolidWorks
 
Messages: 18
Inscription: Mer 05 Fév 2014, 10:34


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

banniere