Makro solidworks (Vba)

Witam

Właśnie utworzyłem makro, aby automatycznie utworzyć widok rozłożony, a następnie drugi z 3 widokami i widokiem izometrycznym.

Chciałbym, aby 3 widoki były w stylu "widoczne ukryte linie" i widok izometryczny z cieniowaną krawędzią obrazu (ok), a zwłaszcza z "widocznymi krawędziami stycznymi" (tylko dla widoku iso)

Brakuje mi o wiele więcej, ale ponieważ walczę, pomocna dłoń nieuchronnie mi pomoże.

Oto mój kod:

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

 

Witam

W tej chwili nie mam dostępu do Solidworks, ale myślę,  że możliwe jest utworzenie wszystkich  ograniczeń w modelu planu w tle.

 

Cdlt powiedział:

 

W tym makrze przechodzenie przez szablon dokumentu jest skomplikowane, ponieważ wyświetlany kod reprezentuje tylko niewielką część makra. (Wypełnienie arkusza 2)

Dlatego chciałbym to zrobić w vba, ale tam utknęłem mimo kilku tropów.

Zasugerowałem użycie bez makra.

Ze swojej strony  używam kilku rodzajów modeli tła.

Jeden specyficzny dla blachy.

Kolejny do obróbki skrawaniem.

Inny dla komercyjnych planów części zamiennych

 

Po makro musi to być możliwe,  niech odpowie specjalistom.

 

1 polubienie

Niemożliwe, mój 1. arkusz ma rozwinięty widok i nie można go utworzyć bezpośrednio bez przechodzenia przez makro.

W przypadku linii przerywanych jest to lepsze niż widoczne styczne krawędzie.
 

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

 

Właśnie znalazłem ostatnią część dla stycznych krawędzi ukrytych, widocznych lub widocznych za pomocą czcionki.

Oto ostateczny kod:

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

W każdym razie dzięki za odpowiedzi.

1 polubienie