Macro solidworks (Vba)

Bonjour,

Je viens de créer une macro afin de créer en automatique ma vue déplié puis une 2ème veuille avec les 3 vues et une vue isométrique.

Je souhaiterais que les 3 vues soient avec un style sur "ligne caché apparentes" et la vue isométrique avec arrête image ombré (ok) et surtout avec les "arrêtes tangente visibles" (uniquement pour la vue iso)

Il me manque plus grand chose mais comme je galère un coup de pouce m'aideras forcément.

Voici mon code:

Sub MepPliage()
    Dim SwDraw As SldWorks.DrawingDoc
    Dim swSheet As SldWorks.Sheet
    Dim boolstatus As Boolean
    Dim swView As SldWorks.View
    Set SwDraw = swApp.ActiveDoc
    
    
    bRet = SwDraw.NewSheet4("Feuille2", swDwgPaperA4sizeVertical, swDwgTemplateA4sizeVertical, 1, 1, True, sDrTemplatePliage, 0.297, 0.21, "", 0.5, 0.5, 0.5, 0.5, 0, 0)

    
    
    
    'On rend la feuille2active
    bRet = SwDraw.ActivateSheet("Feuille2")
    
    

    
    'Création des 3 vues
    bRet = SwDraw.Create3rdAngleViews(sOutputFolder + ".sldprt")
    
    
    'Création de la vue Isométrique
    Set swView = SwDraw.CreateDrawViewFromModelView3(sOutputFolder + ".sldprt", "*Isométrique", 0.23, 0.15, 0)
    swView.UseSheetScale = True
    bRet = swView.SetDisplayMode3(False, swSHADED, False, True)
    

    'On change le fond de plan et l'échelle
    bRet = SwDraw.SetupSheet6("Feuille2", swDwgPaperSizes_e.swDwgPapersUserDefined, swDwgTemplates_e.swDwgTemplateCustom, 1, 5, True, sDrTemplatePliage, 0.2794, 0.2159, "Default", True, 0, 0, 0, 0, 0, 0)

End Sub

 

Bonjour

Je n ai pas accès a Solidworks en ce moment,  mais je penses qu il est possible de vous créer dans un model de fond de plan toutes  vos contraintes.

 

Cdlt

 

Compliqué dans cette macro de passer par un modèle de document puisque le code affiché ne représente qu'une petite partie de la macro. (réalisation de la feuille 2)

C'est pourquoi je souhaiterais le faire en vba, mais c'est là que je coince malgré plusieurs pistes.

Je vous suggérais une utilisation sans macro.

Pour ma part,  j utilise plusieurs types de model de fond de plan.

Un spécifique à la tolerie.

Un autre pour usinage .

Un autre pour les plans de pièces du commerce

 

Apres par macro ça doit être possible,  je laisse les spécialistes répondre.

 

1 « J'aime »

Impossible ma 1ère feuille comporte la vue déplié et ce n'est pas possible de la créer directement sans passer par une macro.

Pour les pointillé c'est bon reste plus que les arrêtes tangentes visible.
 

Sub MepPliage()
    Dim SwDraw As SldWorks.DrawingDoc
    Dim swSheet As SldWorks.Sheet
    Dim boolstatus As Boolean
    Dim swView As SldWorks.View
    Set SwDraw = swApp.ActiveDoc
      
    bRet = SwDraw.NewSheet4("Feuille2", swDwgPaperA4sizeVertical, swDwgTemplateA4sizeVertical, 1, 1, True, sDrTemplatePliage, 0.297, 0.21, "", 0.5, 0.5, 0.5, 0.5, 0, 0)

        
    'On rend la feuille2active
    bRet = SwDraw.ActivateSheet("Feuille2")
    
    
    'Création des 3 vues
    bRet = SwDraw.Create3rdAngleViews(sOutputFolder + ".sldprt")
    'On sélectionne la 1èer vue (vue parente)
    Set SwDraw = swApp.ActiveDoc
    Set swView = SwDraw.GetFirstView.GetNextView
        Debug.Print "View = " + swView.Name
    Debug.Print "  Current mode = " + Str(swView.GetDisplayMode2)
    
    'On affiche les arrêtes caché
    swView.SetDisplayMode3 False, swHIDDEN_GREYED, False, True
    Debug.Print "  New mode = " + Str(swView.GetDisplayMode2)
    
    
    'Création de la vue Isométrique
    Set swView = SwDraw.CreateDrawViewFromModelView3(sOutputFolder + ".sldprt", "*Isométrique", 0.23, 0.15, 0)
    swView.UseSheetScale = True

  'ici code pour arrêtes tangentes visibles

    bRet = swView.SetDisplayMode3(False, swSHADED, False, True)
    

    'On change le fond de plan et l'échelle
    bRet = SwDraw.SetupSheet6("Feuille2", swDwgPaperSizes_e.swDwgPapersUserDefined, swDwgTemplates_e.swDwgTemplateCustom, 1, 5, True, sDrTemplatePliage, 0.2794, 0.2159, "Default", True, 0, 0, 0, 0, 0, 0)
End Sub

 

Je viens de finir par trouver la dernière partie pour les arrêtes tangentes caché, visible, ou visible avec une police.

Voici le code final:

Sub MepPliage()
    Dim SwDraw As SldWorks.DrawingDoc
    Dim swSheet As SldWorks.Sheet
    Dim boolstatus As Boolean
    Dim swView As SldWorks.View
    Set SwDraw = swApp.ActiveDoc
    
    bRet = SwDraw.NewSheet4("Feuille2", swDwgPaperA4sizeVertical, swDwgTemplateA4sizeVertical, 1, 1, True, sDrTemplatePliage, 0.297, 0.21, "", 0.5, 0.5, 0.5, 0.5, 0, 0)

    'On rend la feuille2active
    bRet = SwDraw.ActivateSheet("Feuille2")
    
    'Création des 3 vues
    bRet = SwDraw.Create3rdAngleViews(sOutputFolder + ".sldprt")
    'On sélectionne la 1èer vue (vue parente)
    Set SwDraw = swApp.ActiveDoc
    Set swView = SwDraw.GetFirstView.GetNextView
        Debug.Print "View = " + swView.Name
    Debug.Print "  Current mode = " + Str(swView.GetDisplayMode2)
    
    'On affiche les arrêtes caché
    swView.SetDisplayMode3 False, swHIDDEN_GREYED, False, True
    Debug.Print "  New mode = " + Str(swView.GetDisplayMode2)
    
    
    'Création de la vue Isométrique
    Set swView = SwDraw.CreateDrawViewFromModelView3(sOutputFolder + ".sldprt", "*Isométrique", 0.23, 0.15, 0)
    swView.UseSheetScale = True
    bRet = swView.SetDisplayMode3(False, swSHADED, False, True)
    
    
    'Afficher (cacher ou montrer avec une police) les arrêtes tangentes sur la vue ISO
    Dim iDisplayIn As Integer
    'iDisplayIn = swDisplayTangentEdges_e.swTangentEdgesHidden
    'iDisplayIn = swDisplayTangentEdges_e.swTangentEdgesVisible
    iDisplayIn = swDisplayTangentEdges_e.swTangentEdgesVisibleAndFonted
    swView.SetDisplayTangentEdges2 (iDisplayIn)


    'On change le fond de plan et l'échelle
    bRet = SwDraw.SetupSheet6("Feuille2", swDwgPaperSizes_e.swDwgPapersUserDefined, swDwgTemplates_e.swDwgTemplateCustom, 1, 5, True, sDrTemplatePliage, 0.2794, 0.2159, "Default", True, 0, 0, 0, 0, 0, 0)

End Sub

Merci quand même pour les réponses.

1 « J'aime »