Macro solidworks (Vba)

Hallo

Ik heb zojuist een macro gemaakt om automatisch mijn uitgevouwen weergave te maken en vervolgens een 2e met de 3 weergaven en een isometrische weergave.

Ik zou graag willen dat de 3 weergaven met een stijl op "zichtbare verborgen lijnen" en de isometrische weergave met gearceerde afbeeldingsrand (ok) en vooral met de "zichtbare raakranden" (alleen voor de iso-weergave)

Ik mis nog veel meer, maar als ik worstel, zal een helpende hand me onvermijdelijk helpen.

Hier is mijn 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

Ik heb op dit moment geen toegang tot Solidworks,  maar ik denk dat het mogelijk is om al  je beperkingen in een achtergrondplanmodel te maken.

 

Cdlt

 

Het is in deze macro ingewikkeld om een documentsjabloon, aangezien de weergegeven code slechts een klein deel van de macro vertegenwoordigt. (Voltooiing van blad 2)

Daarom zou ik het graag in vba willen doen, maar daar loop ik ondanks meerdere leads vast.

Ik stelde een gebruik zonder macro voor.

Van mijn kant  gebruik ik verschillende soorten achtergrondmodellen.

Een specifiek voor plaatwerk.

Een andere voor verspaning.

Een andere voor commerciële onderdelenplannen

 

Nadat het per macro moet kunnen,  laat ik de specialisten antwoorden.

 

1 like

Onmogelijk, mijn 1e blad heeft de uitgevouwen weergave en het is niet mogelijk om het direct te maken zonder een macro te doorlopen.

Voor de stippellijnen is het meer goed dan de raakranden zichtbaar.
 

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

 

Ik heb net het laatste deel voor raakranden verborgen, zichtbaar of zichtbaar met een lettertype gevonden.

Hier is de definitieve 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

In ieder geval bedankt voor de antwoorden.

1 like