Macro-verwijdering van MEP-aslijnen

Hallo

Ik ben op zoek naar een macro om de aslijnen te verwijderen uit alle uitgevouwen weergaven in een MEP, van alle tabbladen

Plaatwerkers vinden dat het beter leesbaar is zonder aslijnen

Ik heb een begin gevonden met deze 2 elementen die moeten worden verwijderd

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

 

en

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

maar ik weet niet hoe ik het allemaal weer in de juiste volgorde moet zetten

 

Als iemand een idee heeft

Bedankt

HELP

Als iemand weet hoe hij moet programmeren, is er op zijn minst een stukje code

Of bij gebrek aan een volledig geautomatiseerde macro kan ik ook een MEP-weergave selecteren en de macro verwijdert de middellijnen van de gaten

Een voorbeeld van een tekening?

Wat is de burt om een dxf te exporteren zonder een aslijn?

Is het niet mogelijk door het achtergrondplan of de kledingstandaard van het Europarlementariër te wijzigen? Als dat zo is, kunt u dit misschien doen zonder veel te programmeren met Integratie (Visiativ tool (mycadtools) waartoe u als Mycadservice-abonnee toegang heeft. En hiervoor kan de hotline u zelfs helpen.

 

Anders, als je moet programmeren, zul je moeten voor je macro:

Een lus die elk vel 1 voor 1 activeert

dat je op elk blad de 1e actieve weergave krijgt, dat je controleert of de configuratienaam van het gerefereerde onderdeel inderdaad flat-pattern is.

Zo ja, dan voert u de wijziging door.

In principe niet gemakkelijk als je geen notie hebt van programmeren en niet een paar dingen die iemand je binnen een paar seconden zal zien beseffen.

Tenzij je een code hebt die dichtbij genoeg is.

 

1 like

Het is een kwestie van het verwijderen van de hartlijnen van de gaten voor alleen uitgevouwen aanzichten of van de andere soorten gaten waarvoor Solidworks de middellijnen standaard weergeeft, ik heb het niet over de buigmiddellijnen, ik wil de middellijnen van de gaten automatisch houden voor de andere soorten aanzichten

Deze lijnen moeten worden verwijderd voordat met de productie op een lasersnijmachine of andere productie wordt begonnen

Voor de lus op de lakens:

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

 

Hallo

Probeer het volgende:

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

Vriendelijke groeten

1 like

Een grote dank aan d.roger die de uitdaging opnieuw aangaat, gezien het aantal keren dat een van mijn vragen is beantwoord dankzij jou op dit forum, neem ik mijn petje af voor je goed geschreven en beknopte macro's

1 like