Unterteilen des mehrblattigen Baugruppen- und Teileplans

Hallo

Im Rahmen einer historischen Planüberarbeitung, die in Windows-Ordnern erstellt und für einige Jahre auf das PDM übertragen wurde, würde ich gerne wissen, ob jemand von Ihnen einen Trick oder ein Makro hätte, um zu "explodieren", um mehrseitige Zeichnungen zu unterteilen

Historisch gesehen bearbeiten die BE eine Zeichnung, in der wir die Baugruppe hatten, und dann auf jedem Blatt die detaillierten Pläne der Teile, die in dieser Baugruppe enthalten sind.

Die Methodik hat sich nach dem Übergang über PDM und automatisierte Aufgaben entwickelt, dann der Wechsel des Lieferanten, dann der Wechsel des Subunternehmers usw. Wenn wir heute eine alte Baugruppe "kopieren", haben wir diese berühmten mehrseitigen Pläne, die nicht dem aktuellen Prozess entsprechen.

War jemand von Ihnen bereits mit dem Problem konfrontiert und hat eine andere Lösung gefunden, als jeden Raumplan neu zu erstellen, indem die Blätter im sogenannten Generalplan nach und nach entfernt werden?

Aktuell verwenden wir Smartdrawing, um die Grundpläne jedes Raumes zu generieren, dann kopieren wir die Blätter des Multiblattes in jede Datei, generieren, archivieren und verarbeiten dann die Grundkarten über Integrationen.

unangemessen = > menschliche Operationen, die manchmal die Zeichnungen durcheinander bringen

 

Hallo

Im beigefügten Beispiel erfahren Sie, wie Sie einen MEP mit mehreren Blättern in mehrere Blätter unterteilen können.

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

Es ist zweifellos möglich, dies per Makro zu automatisieren, wenn Sie über einige Kenntnisse in VBA verfügen.

Für das Makro müssen Sie auch wissen, wie Sie jeden MEP aus jedem Blatt benennen. (Name des Blattes?)

Und mit etwas Glück reicht es aus, ein Makro zu erhalten und es leicht zu ändern, um Ihre Abgeordneten nach Ihren Wünschen umzubenennen.

 

Bearbeiten: Hier ist ein weiterer Link, der im vorherigen Link für ein Makrobeispiel vergessen wurde (aber das zugehörige Makro nicht gefunden)

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

 

1 „Gefällt mir“

Vielen Dank für das Feedback, 

Das YouTube-Video ist das, wonach ich suche

Wie lade ich das Makro "Save Drawing Sheet File.swp" herunter!!  

Ich suche es, wenn ich es finde, poste ich es

 

Nach einigen Recherchen nicht gefunden, aber wenn jemand Zeit hat, sich damit zu beschäftigen, wäre die Lösung, eines der Blätter des Mehrblatts zu kopieren, es dann in ein neues Blatt einzufügen und es mit dem Namen dieses Blattes zu speichern.

 

Andernfalls habe ich dieses Makro von einem Makro für den PDF-Export modifizieren lassen, aber es exportiert alle Blätter (nicht nur das, das Sie möchten) und Sie müssten das Löschen aller unerwünschten Blätter hinzufügen.

'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 „Gefällt mir“

lol Ich hatte die gleiche Idee, ich habe ein mehrseitiges Exportmakro  in einer separaten PDF-Datei geöffnet

Ich werde sehen, ob ich die Code-Klemmen für dieses slddrw-Ding bekommen kann, die das .pdf

1 „Gefällt mir“

Hallo

Da Sie über die myCADtools-Suite verfügen, können Sie das Tool "Integration" verwenden, das Ihren Erwartungen entsprechen sollte.

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

Im Anhang finden Sie ein Beispiel für eine Aktion 

- Bedingung, wenn es sich bei dem Dokument um ein MEP handelt, wenn die Anzahl der Blätter nicht 1 beträgt

 - Dann führen wir den Vorgang durch, bei dem jedes Blatt in einer neuen TGA gespeichert wird

Herzliche Grüße


Beispiel.mcact
3 „Gefällt mir“

Ich habe gerade schnell etwas programmiert, das zu funktionieren scheint.

Geben Sie einfach in der 2. Zeile den Pfad zu Ihrer drwdot-Datei ein.

Dann muss es mit etwas Sicherheit verbessert werden, um es in keiner Weise zu starten.

Im Moment müssen Sie unbedingt die MEP öffnen und dann das Makro starten (öffnen Sie in der Zwischenzeit keine Datei, sonst finden Sie Ihre extrahierten Dateien  an der gleichen Stelle wie Ihre geöffnete Datei)

'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

 

Jetzt bin ich also erfüllt

zwischen Makro und Integration!

Sorry Jm Savoyat, ich habe sbadenis als beste Antwort "für diejenigen, die die mycad suite nicht haben" angegeben

Aber ich liebe es, mit Integration zu arbeiten, und ich kann sie natürlich nach Prüfung in eine automatisierte PDM-Aufgabe integrieren.

2 „Gefällt mir“

@g.Casters keine Sorge! wink

1 „Gefällt mir“

@JMSAVOYAT

Beispieldatei einer höheren Version .... Ich dachte, ich hätte das letzte Update in 2021 SP2!  (Ich möchte die Beta)

@g.Rollen 

Ein wenig Geduld, die Version myCADtools 2022 SP0 sollte nächste Woche verfügbar sein. Wir feilen an den letzten Details! smiley

Hier ist ein Screenshot des Beispiels.

1 „Gefällt mir“

das einzige Tool, bei dem ich das SP0 von Anfang an installiere, um meine Geduld zu sagen.....

laugh Tatsächlich!

Aber diese Funktion in dem Beispiel, das ich versucht habe, Ihnen zu posten, ist bereits seit langem verfügbar!

1 „Gefällt mir“