Makro Solidworks (Vba)

Hallo

Ich habe gerade ein Makro erstellt, um automatisch meine aufgefaltete Ansicht zu erstellen, und dann eine 2. mit den 3 Ansichten und einer isometrischen Ansicht.

Ich möchte, dass die 3 Ansichten mit einem Stil auf "sichtbare verdeckte Linien" und die isometrische Ansicht mit schattierter Bildkante (ok) und insbesondere mit den "sichtbaren tangentialen Kanten" (nur für die ISO-Ansicht) sind

Ich verpasse noch viel mehr, aber wenn ich kämpfe, wird mir eine helfende Hand unweigerlich helfen.

Hier ist mein 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

 

Hallo

Ich habe im Moment keinen Zugriff auf Solidworks, aber ich denke, es ist möglich,  alle  Ihre Einschränkungen in einem Hintergrundplanmodell zu erstellen.

 

Cdlt

 

In diesem Makro ist es kompliziert, eine Dokumentvorlage zu durchlaufen, da der angezeigte Code nur einen kleinen Teil des Makros darstellt. (Vervollständigung von Blatt 2)

Deswegen würde ich es gerne in vba machen, aber da komme ich trotz mehrerer Leads nicht weiter.

Ich habe eine Verwendung ohne Makro vorgeschlagen.

Ich für meinen Teil  verwende verschiedene Arten von Hintergrundmodellen.

Eine speziell für Bleche.

Ein weiterer für die Zerspanung.

Ein weiterer für kommerzielle Teilepläne

 

Nachdem es per Makro möglich sein muss,  lasse ich die Spezialisten antworten.

 

1 „Gefällt mir“

Unmöglich, mein 1. Blatt hat die aufgeklappte Ansicht und es ist nicht möglich, sie direkt zu erstellen, ohne ein Makro zu durchlaufen.

Für die gestrichelten Linien ist es gut, mehr als die tangentialen Kanten sichtbar zu machen.
 

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

 

Am Ende habe ich gerade den letzten Teil für Tangentenkanten gefunden, die versteckt, sichtbar oder mit einer Schriftart sichtbar sind.

Hier ist der endgültige 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")
    '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

Trotzdem danke für die Antworten.

1 „Gefällt mir“