Macro suppression des traits d'axes MEP

Bonjour

je cherche à faire une macro pour supprimer les traits d'axes de toutes les vues dépliées dans une MEP, de tous les onglets

les tôliers trouvent que c'est plus lisible sans traits d'axe

j'ai trouvé un début avec ces 2 éléments qui sont à supprimés

swSelCENTERMARKSYMS = 100   '  "CENTERMARKSYMS"
swSelCENTERLINES = 103      '  "CENTERLINE"

 

et

https://www.lynkoa.com//forum/solidworks/macro-selectionner-toute-les-ligne-existante-sur-une-vue

mais je ne sais pas comment remettre tout ca dans le bon ordre

 

si quelqu'un à une idée

Merci à vous

HELP

si quelqu'un sait programmer un bout de code au moins

ou a défaut d'une macro tout automatisée, je peux aussi sélectionner une vue de mep et la macro supprime les traits d'axe de centre des perçages

Un exemple d'un mise en plan?

Quel est le burt pour exporter un dxf sans trait d'axe?

Pas possible en changeant le fond de plan ou la norme d'habillage de la MEP? Si oui tu peux peut-être le faire sans grande notion de programmation avec Intégration (outil Visiativ (mycadtools) auquel tu as accès étant abonné Mycadservice. Et pour cela la hotline peut même t'aider.

 

Sinon si il faut programmer il va falloir pour ta macro:

Un boucle qui active chaque feuille 1 par 1

que sur chaque feuille tu recupère la 1ère vue active, que tu vérifie si le nom de configuration de la pièce référencé est bien flat-pattern.

Si c'est le cas tu réalise la modification.

En gros pas simple si tu as aucune notion de programmation et pas quelques choses que quelqu'un va pour voir te réalisé en quelques seconde.

A moins d'avoir un code assez proche.

 

1 « J'aime »

il s'agit de supprimer les traits d'axes des perçages pour les vues dépliées uniquement ou des autre types de trous pour lequel solidworks affiche les traits d'axes par défaut, je ne parle pas des trait d'axe de pliage, je souhaite garder les traits d'axes des trous automatique pour les autres type de vues

ces traits doivent être supprimés avant de lancer la fabrication sur une machine de découpe laser ou autre fabriquation

Pour la boucle sur les feuilles:

https://help.solidworks.com/2021/English/api/sldworksapi/Get_Loaded_Sheets_Example_VB.htm

 

Bonjour,

Essayes avec ce qui suit :

Option Explicit

Sub main()

    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Dim swDrawing As SldWorks.DrawingDoc
    Dim vSheetName As Variant
    Dim swView As SldWorks.View
    Dim swCtrMark As SldWorks.CenterMark
    Dim swCtrLine As SldWorks.Centerline
    Dim swAnn As SldWorks.Annotation
    Dim swSelMgr As SldWorks.SelectionMgr
    Dim swSelData As SldWorks.SelectData
    Dim status As Boolean
    Dim bRet As Boolean
    Dim i As Long
    Dim SearchString As String
    Dim SearchChar As String
    Dim MyPos As Integer

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    Set swSelMgr = swModel.SelectionManager
    Set swSelData = swSelMgr.CreateSelectData
    Set swDrawing = swModel
    
    SearchChar = "SM-FLAT-PATTERN"
    
    vSheetName = swDrawing.GetSheetNames
    
    For i = 0 To UBound(vSheetName)
        bRet = swDrawing.ActivateSheet(vSheetName(i))
        
        Set swView = swDrawing.GetFirstView
        swModel.ClearSelection2 True
        Do While Not swView Is Nothing
            SearchString = swView.ReferencedConfiguration
            MyPos = InStr(1, SearchString, SearchChar)
            If MyPos <> 0 Then
                Set swCtrMark = swView.GetFirstCenterMark
                Do While Not swCtrMark Is Nothing
                    Set swAnn = swCtrMark.GetAnnotation
                    status = swAnn.Select3(True, swSelData)
                    Set swCtrMark = swCtrMark.GetNext
                Loop
            End If
            Set swView = swView.GetNextView
        Loop
        swModel.EditDelete
        
        Set swView = swDrawing.GetFirstView
        swModel.ClearSelection2 True
        Do While Not swView Is Nothing
            SearchString = swView.ReferencedConfiguration
            MyPos = InStr(1, SearchString, SearchChar)
            If MyPos <> 0 Then
                Set swCtrLine = swView.GetFirstCenterLine
                Do While Not swCtrLine Is Nothing
                    Set swAnn = swCtrLine.GetAnnotation
                    status = swAnn.Select3(True, swSelData)
                    Set swCtrLine = swCtrLine.GetNext
                Loop
            End If
            Set swView = swView.GetNextView
        Loop
        swModel.EditDelete
        
    Next i
    
End Sub

Cordialement,

1 « J'aime »

Un grand merci à d.roger qui relève le défi une fois de plus, vu le nombre de fois où une de mes questions a trouvé réponse grâce à toi sur ce forum, je te tire mon chapeau pour tes macros bien écrite et concises

1 « J'aime »