Verdeel het assemblage- en onderdelenplan voor meerdere vellen

Hallo

Als onderdeel van een historische plan herwerking gemaakt in Windows-mappen, en overgebracht naar de pdm voor een paar jaar, zou ik willen weten of iemand van jullie zou een truc of een macro om te "exploderen" om multi-sheet tekeningen te verdelen

historisch gezien heeft de BE een tekening bewerkt waarin we de assemblage hadden en vervolgens op elk blad de gedetailleerde plannen van de onderdelen die in deze assemblage zijn opgenomen.

De methodologie is geëvolueerd na de overgang via PDM en geautomatiseerde taken, vervolgens de verandering van leverancier, vervolgens de verandering van onderaannemer, enz .... Tegenwoordig, wanneer we een oude assemblage "kopiëren", hebben we deze beroemde plannen met meerdere vellen die niet overeenkomen met het huidige proces.

Is iemand van jullie al met het probleem geconfronteerd en heeft hij een andere oplossing gevonden dan elke kamerplattegrond opnieuw te maken door de lakens in het zogenaamde algemene plan gaandeweg te verwijderen?

Momenteel gebruiken we smartdrawing om de basiskaarten van elke kamer te genereren, vervolgens kopiëren we de vellen van de multi-sheet in elk bestand, genereren, archiveren en verwerken we de basiskaarten vervolgens via integraties.

ongepast = > menselijke handelingen die de tekeningen soms door elkaar halen

 

Hallo

Zie bijgevoegd voorbeeld om een MEP met meerdere vellen te scheiden in meerdere vellen.

https://www.javelin-tech.com/blog/2014/03/save-multi-sheet-as-its-own-drawing-or-combine-multiple-drawings/

Het is ongetwijfeld mogelijk om dit via macro te automatiseren als je enige kennis hebt van VBA.

Voor de macro moet je ook weten hoe je elke Europarlementariër van elk blad een naam geeft. (naam van het blad?)

En met een beetje geluk is het voldoende om een macro te krijgen en deze enigszins aan te passen om uw Europarlementariërs naar wens te hernoemen.

 

Edit: hier is nog een link vergeten in de vorige voor macro voorbeeld (maar niet gevonden de macro die erbij hoort)

https://www.youtube.com/watch?v=lkU1acf2PNg

 

1 like

Bedankt voor de feedback, 

De YouTube-video is wat ik zoek

Hoe download ik de macro "Save Drawing Sheet File.swp"!!  

Ik zoek het, als ik het vind, plaats ik het

 

Na wat onderzoek niet gevonden, maar als iemand tijd heeft om eraan te besteden, zou de oplossing zijn om een van de vellen van het multi-vel te kopiëren, deze vervolgens in een nieuw blad te plakken en op te slaan met de naam van dit blad.

 

Anders had ik deze macro wijzigen van een macro voor pdf-export, maar het exporteert alle bladen (niet alleen degene die je wilt) en je zou de verwijdering van alle ongewenste bladen moeten toevoegen.

'Description: Macro to export Drawing Sheets As PDF with sheet name as file name.

'Precondition: Any active drawing file

'Postconditions: PDF file in the same location as drawing file.


' Please back up your data before use and USE AT OWN RISK

' This macro is provided as is.  No claims, support, refund, safety net, or
' warranties are expressed or implied.  By using this macro and/or its code in
' any way whatsoever, the user and any entities which the user represents,
' agree to hold the authors free of any and all liability.  Free distribution
' and use of this code in other free works is welcome.  If any portion of
' this code is used in other works, credit to the authors must be placed in
' that work within a user viewable location (e.g., macro header).  All other
' forms of distribution (i.e., not free, fee for delivery, etc) are prohibited
' without the expressed written consent by the authors.  Use at your own risk!
' ------------------------------------------------------------------------------
' Written by: Deepak Gupta (http://gupta9665.wordpress.com/)
' -----------------------------------------------------------------------------

Sub main()

Dim swApp                   As SldWorks.SldWorks
Dim swModel                 As SldWorks.ModelDoc2
Dim swDraw                  As SldWorks.DrawingDoc
Dim swSheet                 As SldWorks.Sheet
Dim vSheetNameArr           As Variant
Dim vSheetName              As Variant
Dim bRet                    As Boolean
Dim swExportPDFData         As SldWorks.ExportPdfData
Dim lErrors                 As Long
Dim lWarnings               As Long

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

' Is document active?

If swModel Is Nothing Then

    swApp.SendMsgToUser2 "A Drawing document must be active.", swMbWarning, swMbOk

    Exit Sub

End If
 

' Is it a Drawing document?

If swModel.GetType <> swDocDRAWING Then

    swApp.SendMsgToUser2 "A Drawing document must be active.", swMbWarning, swMbOk

    Exit Sub

End If


Set swDraw = swModel
Set swSheet = swDraw.GetCurrentSheet

vSheetNameArr = swDraw.GetSheetNames
For Each vSheetName In vSheetNameArr

bRet = swDraw.ActivateSheet(vSheetName): Debug.Assert bRet

swDraw.ViewZoomtofit2

Set swExportPDFData = swApp.GetExportFileData(1)
swExportPDFData.SetSheets swExportData_ExportSpecifiedSheets, Nothing
'swModel.Extension.SaveAs vSheetName + ".pdf", 0, 0, swExportPDFData, lErrors, lWarnings
swModel.Extension.SaveAs Path & "\" & vSheetName & ".slddrw", 0, 0, Nothing, lErrors, lWarnings
Next vSheetName

End Sub

 

1 like

lol Ik had hetzelfde idee dat ik opende een multi-sheet export  macro in aparte pdf

Ik zal kijken of ik de code klemmen voor dit slddrw ding ter vervanging van de .pdf

1 like

Hallo

Aangezien u de myCADtools-suite heeft, kunt u de tool "Integratie" gebruiken die aan uw verwachtingen moet voldoen.

https://help.visiativ.com/mycadtools/2021/fr/Integration129.html

Bijgevoegd is een voorbeeld van een actie 

- Voorwaarde als het document een lid van het Europees Parlement is, als het aantal vellen niet 1 is

 - Vervolgens doen we de bewerking van het opslaan van elk blad in een nieuw MEP

Vriendelijke groeten


voorbeeld.mcact
3 likes

Ik heb gewoon snel iets gecodeerd dat lijkt te werken.

Zet gewoon in de 2e regel het pad naar je drwdot-bestand.

Dan zal het moeten worden verbeterd met enige beveiliging om het op geen enkele manier te lanceren.

Op dit moment moet u absoluut de MEP openen en vervolgens de macro starten (open in de tussentijd geen bestand, anders vindt u uw uitgepakte bestanden  op dezelfde plaats als uw geopende bestand)

'Mettre ci-dessous le chemin vers le modèle de Fond de plan
Const sDrTemplateLaser As String = "U:\Modèle de documents\Mise en plan - Fonds de plan\A4-DECOUPE-b.DRWDOT"

Sub main()

Dim swApp                   As SldWorks.SldWorks
Dim swModel                 As SldWorks.ModelDoc2
Dim swModel2                 As SldWorks.ModelDoc2
Dim swDraw                  As SldWorks.DrawingDoc
Dim swDraw2                 As SldWorks.DrawingDoc
Dim swSheet                 As SldWorks.Sheet
Dim vSheetNameArr           As Variant
Dim vSheetName              As Variant
Dim bRet                    As Boolean
Dim swExportPDFData         As SldWorks.ExportPdfData
Dim lErrors                 As Long
Dim lWarnings               As Long

Dim vSheetName2              As Variant
Dim i                       As Integer

Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc

' Is document active?

If swModel Is Nothing Then

    swApp.SendMsgToUser2 "A Drawing document must be active.", swMbWarning, swMbOk

    Exit Sub

End If
 

' Is it a Drawing document?

If swModel.GetType <> swDocDRAWING Then

    swApp.SendMsgToUser2 "A Drawing document must be active.", swMbWarning, swMbOk

    Exit Sub

End If


Set swDraw = swModel
Set swSheet = swDraw.GetCurrentSheet

vSheetNameArr = swDraw.GetSheetNames
For Each vSheetName In vSheetNameArr

bRet = swDraw.ActivateSheet(vSheetName): Debug.Assert bRet

swDraw.ViewZoomtofit2


            swDraw.ActivateSheet vSheetName
            'Debug.Print "Feuille active:" & sheetName
            bRet = swDraw.Extension.SelectByID2(vSheetName, "SHEET", 0, 0, 0, False, 0, Nothing, 0)
            swModel.EditCopy
            Set swDraw2 = swApp.NewDocument(sDrTemplateLaser, 0, 0, 0)
            'On supprime la 1ère feuille existantes
            vSheetName2 = swDraw.GetSheetNames
            Set swModel2 = swApp.ActiveDoc
            Set swExt = swModel2.Extension
            
            
            bRet = swDraw2.PasteSheet(swInsertOption_MoveToEnd, swRenameOption_No)
            swDraw2.GetCurrentSheet.SetName vSheetName
            Set swModel2 = swApp.ActiveDoc
            
            '*********************************
            
            'On supprime la 1ère feuille existantes
            For i = 0 To UBound(vSheetName2) 'Boucle sur toutes les feuilles
            Debug.Print vSheetName2(i)
                If i = 0 Then
                    bRet = swExt.SelectByID2(vSheetName2(i), "SHEET", 0, 0, 0, False, 0, Nothing, 0)
                    'Supprimer la sélection
                    bRet = swExt.DeleteSelection2(0)
                End If
            Next
            
            '********************************
            swModel2.Extension.SaveAs Path & "\" & vSheetName & ".slddrw", 0, 0, Nothing, lErrors, lWarnings
Next vSheetName

End Sub

 

Dus nu ben ik vervuld

tussen macro en integratie!

Sorry Jm Savoyat ik zet sbadenis als het beste antwoord "voor degenen die niet over de mycad suite" 

Maar ik werk graag met integratie, en ik kan het na controle natuurlijk opnemen in een geautomatiseerde PDM-taak.

2 likes

@g.casters geen zorgen! wink

1 like

@JMSAVOYAT

voorbeeldbestand van een hogere versie .... Ik dacht dat ik de laatste update in 2021 SP2 had!  (Ik wil de bèta)

@g.zwenkwielen 

Een beetje geduld, de myCADtools 2022 SP0-versie zou volgende week beschikbaar moeten zijn. We zijn de laatste details aan het finetunen! smiley

Hier is een screenshot van het voorbeeld.

1 like

de enige tool waar ik de SP0 sinds het begin installeer om mijn niveau van geduld te zeggen.....

laugh feitelijk!

Maar deze functie in het voorbeeld dat ik je probeerde te posten, is al heel lang beschikbaar!

1 like