Juergens-Workshops.de Forum
CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... - Druckversion

+- Juergens-Workshops.de Forum (https://forum.juergens-workshops.de)
+-- Forum: Corel Grafik Forum (https://forum.juergens-workshops.de/forumdisplay.php?fid=65)
+--- Forum: Corel Draw (https://forum.juergens-workshops.de/forumdisplay.php?fid=93)
+--- Thema: CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... (/showthread.php?tid=37371)

Seiten: 1 2 3


CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... - Drommer - 15.05.2017

Hallo zusammen,

ich bin Quer-Einsteiger in Sachen CorelDraw und muss sagen, dank diesem Forum komme ich schon jetzt (nach 2-wöchentlicher Anwendung) recht gut klar. Kräftiges Lob hierfür. :daumen:
Für meine Zwecke / Vorhaben ist das Programm eigentlich viel zu speziell...

Der Gedanke ist über CorelDraw Etiketten, Schilder zu gravieren/Lasern. Ursprünglich wurde für das Vorhaben eine Software von Phoenix verwendet „CMS Mark-Win“. Diese soll jetzt nach und nach Corel weichen.

Verwendete Version: CorelDraw Graphics Suite X7 – Special Edition –
Zusätzlich verwendetes Makro: eCut 6

Fragen:

1. Datensatz von Excel: Mit Seriendruckfunktion ausprobiert, alle Ronden werden auf Einzelblättern angelegt. Leider für mich ungünstig da ich erst auf der Druckvorschau erkennen kann ob der Text auf die Alu-Ronde passt. Und dort habe ich nicht die Möglichkeit den Text zu verkleinern/vergrößern oder Umbrüche einzufügen.
Sehe ich das richtig oder gibt es da doch eine Möglichkeit?

2. Alternativ über Makro eCut6: Hier zeichne ich meine Ronde, füge einen Mengentext ein und lasse diesen über das Makro füllen. Jetzt jedoch bildet Corel Gruppierungen – für jeden Datensatz 1 Gruppe. Wenn ich jetzt bspw. alle Texte größer gestalten will muss ich zuerst die Gruppen auflösen?! Muss das sein?

3. Etiketten: Die bei Corel hinterlegten Etiketten wären eine echte Bereicherung wenn auch hier alle Etiketten auf einem Blatt dargestellt würden. Zudem müssten Etiketten noch Löcher etc. erhalten wo kein Druckbereich stattfinden darf. So etwas möglich?

4. Mengentext schnell bearbeiten: Ist es möglich zwischen verschiedenen Mengentexten zu springen wie man es bspw. bei anderen Programmen gewohnt ist via TAB etc.? Empfinde es leider etwas lästig immer über klicken die Textfelder zu erreichen.

Vielleicht hat ja einer Zeit und Lust seine Erfahrungen mit mir auszutauschen. Vielen Dank im Voraus ...

Gruß


CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... - norre - 15.05.2017

Hallo Drommer,
willkommen, nun auch schreibend, im ForumSmile

zu 1)
ich hoffe ich verstehe dich richtig.
Du hast also diese Kreise die du mit dem Seriendruck beschriftest.
Wenn du also beim Seriendruck deine Seitengröße in der Größe (oder ein bisserl größer) des Kreises anlegst und den Kreis auf eine neue Masterebene legst (damit dieser auf allen Seiten erscheint) solltest du doch sehen ob der Text zu groß ist.
[ATTACH=CONFIG]12714[/ATTACH]


Du könntest das Anpassen des Textes auch automatisch erledigen lassen.
Unser DR. mak. Koter hat dazu einige Macros erstellt.
Lies dir mal diesen Thread durch.
https://juergens-workshops.de/board/showthread.php?19595-Corel-Draw-X6-X7-Seriendruckausgabe-Text-automatisch-anpassen

Jetzt wäre noch die Frage wie du deinen "Drucker" ansprichst. Sollte das auch über das Druckmenü möglich sein könntes du direkt in Corel mehrere einzelne Seiten automatisch auf ein Blatt zusammenfassen in dem du unter Drucken in der Vorschau, dann Umbruchlayout dort die entsprechenden Zeilen und Spalten angibst.
https://juergens-workshops.de/board/showthread.php?18463-Typenschilder-Serienschilder-Mitgliedsausweise&p=160054&viewfull=1#post160054


CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... - koter - 15.05.2017

Hallo Drommer,

wilkommen im Forum!

Drommer schrieb:1. Datensatz von Excel: Mit Seriendruckfunktion ausprobiert, alle Ronden werden auf Einzelblättern angelegt...

CorelDraw kann mit Excel über VBA Daten austauschen. Damit kann man den Seriendruck umgehen.
Wenn es, wie in der Beispielgrafik nur um Nummerierung geht, kann VBA das auch ohne Excel.

Drommer schrieb:2. ...muss ich zuerst die Gruppen auflösen?! Muss das sein?

Nein, Du kannst mit gedrückter Strg-Taste auf ein Element der Gruppe klicken, und es dann bearbeiten, ohne die Gruppe aufzulösen.


Drommer schrieb:4. ...Ist es möglich zwischen verschiedenen Mengentexten zu springen wie man es bspw. bei anderen Programmen gewohnt ist via TAB etc.? ...

Wenn Du die Texte auf eine eigene Ebene legst, kannst Du zwischen ihnen mit der Tab-Taste wechseln.

Ich habe das mit VBA probiert:

[Bild: rondenfck1l.gif]

Ich habe eine cdr und eine xlsx in einem Zip Archiv bei Filehorst hochgeladen, die als Beispiel für eine Makro-Lösung dienen können:
Datei von filehorst.de laden

Du kannst den Code aber auch selbst einfügen, dann musst Du die Dateien nicht herunterladen:

Code:
Sub RondenBeschriften()
    Dim Ronden As New ShapeRange
    Dim Rondentext As Shape, s As Shape
    Dim TextEbene As New Layer
    Dim Z As Integer
    
    For Each s In ActiveLayer.Shapes.All
        If s.Name = "Ronde" Then
            Ronden.Add s
        End If
    Next
    
    Ronden.Sort " @shape1.Top * 100 - @shape1.Left > @shape2.Top * 100 - @shape2.Left"
    Z = 25789
    
    ActiveDocument.BeginCommandGroup "Nummern"
    Set TextEbene = ActivePage.CreateLayer("TextEbene")
    For Each s In Ronden.Shapes
        Set Rondentext = TextEbene.CreateArtisticText(s.CenterX, s.CenterY, "H+" & Z)
        With Rondentext
            .Text.Story.Size = 12
            .Text.Story.Alignment = cdrCenterAlignment
            .CenterX = s.CenterX
            .CenterY = s.CenterY
        End With
        Z = Z + 1
    Next
    
    ActiveDocument.EndCommandGroup
End Sub

Sub RondenBeschriftenXL()
    Dim xl As Object
    Dim wb As Object
    Dim Zellen As Object
    
    Dim Ronden As New ShapeRange
    Dim Rondentext As Shape, s As Shape
    Dim TextEbene As New Layer
    Dim Z As Integer
    
    Set xl = GetObject(, "Excel.Application")
    Set wb = xl.ActiveWorkbook
    Set Zellen = wb.ActiveSheet.Cells
    
    For Each s In ActiveLayer.Shapes.All
        If s.Name = "Ronde" Then
            Ronden.Add s
        End If
    Next
    
    Ronden.Sort " @shape1.Top * 100 - @shape1.Left > @shape2.Top * 100 - @shape2.Left"
    Z = 1
    
    ActiveDocument.BeginCommandGroup "Nummern"
    Set TextEbene = ActivePage.CreateLayer("TextEbene")
    For Each s In Ronden.Shapes
        Set Rondentext = TextEbene.CreateArtisticText(s.CenterX, s.CenterY, Zellen(Z, 1))
        With Rondentext
            .Text.Story.Size = 12
            .Text.Story.Alignment = cdrCenterAlignment
            .CenterX = s.CenterX
            .CenterY = s.CenterY
        End With
        Z = Z + 1
    Next
    
    ActiveDocument.EndCommandGroup
End Sub

Die SUB „RondenBeschriften“ nummeriert selbst.
Die SUB „RondenBeschriftenXL“ holt sich die Daten von Excel.
Das Excel-Arbeitsblatt muss dazu aktiv sein.
Damit das Makro die Ronden identifizieren kann, müssen sie mit „Ronde“ im Objektmanager benannt sein.

Gruß

Koter


CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... - Drommer - 26.05.2017

Hallo zusammen,

erstmals vielen Dank für die positiven Vorschläge. Mit dem Thema Makro musste ich mich zuerst mal etwas befassen, kannte es zuvor nur vom hören sagen.
Habe auch versucht etwas am Makro hinzuzufügen bzw. zu verändern, jedoch bislang ohne Erfolg. Hätte da noch Wunschvorstellungen:

1. Falls die vorgegebene Seite voll beschriftet wurde aber laut Excel noch Daten vorhanden sind, automatisch die nächste Seite anbricht. Da es öffters vorkommt, das eine Seite aufgrund der Datenmenge nicht ausreicht.

2. "#“ Zeichen = autom Zeilenumbruch ?! Das wäre super hilfreich…

3. Komischerweise springe ich mit der TAB Taste tatsächlich von Textfeld zu Textfeld, allerdings von unten beginnend – warum nicht von der ersten Ronde? Gibt es da auch ne Einstellung in Corel? Zudem komme ich zwar indas Textfeld, jedoch kann ich nicht sofort überschreiben etc. gibt es dazu auch etwas?

Allgemein stört die Bearbeitungszeit des Makro etwas, da gibt es aber keine Möglichkeit der Beschleunigung oder? Bei 500 Datensätzen, dauert das dann doch ne ganze Weile.

Gruß
Drommer


CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... - norre - 26.05.2017

Hallo
Drommer schrieb:3. Komischerweise springe ich mit der TAB Taste tatsächlich von Textfeld zu Textfeld, allerdings von unten beginnend – warum nicht von der ersten Ronde?
das liegt an der Reihenfolge wie die Texte im Objektmanager angeordnet sind.
Der zuerst erstellte Text (Objekt) steht zum Schuss ganz unten, du bewegst dich aber im Objektmanger mit der Tab-Taste oben oben nach unten.
Um Reihenfolge im Objektmanager umzudrehen gibt es, natürlich wieder von Dr. mak Koter, ein Macro.
Schau mal hier https://juergens-workshops.de/board/showthread.php?17361-Macro-Text-im-Objektmanager-anordnen&highlight=text+reihenfolge

Gruß
Norre


CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... - koter - 28.05.2017

Hallo Drommer,

Drommer schrieb:1. Falls die vorgegebene Seite voll beschriftet wurde aber laut Excel noch Daten vorhanden sind, automatisch die nächste Seite anbricht. Da es öffters vorkommt, das eine Seite aufgrund der Datenmenge nicht ausreicht.

Der folgende Code erstellt ein neues Dokument mit den nötigen Seiten.
Das Ausgangsdokument wird nicht verändert.
Die Ebene mit den Ronden muss im Ausgangsdokument den Namen „Ronden“ tragen.

Drommer schrieb:3. Komischerweise springe ich mit der TAB Taste tatsächlich von Textfeld zu Textfeld, allerdings von unten beginnend – warum nicht von der ersten Ronde? Gibt es da auch ne Einstellung in Corel? Zudem komme ich zwar indas Textfeld, jedoch kann ich nicht sofort überschreiben etc. gibt es dazu auch etwas?

Die Reihenfolge der Texte sollte jetzt so sein, wie Du es wünscht.
Sofort überschreiben kann ja nicht gehen. Die TAB-Taste hat ja beim Auswahlwerkzeug eine andere Funktion als beim Textwerkzeug. Beim Auswahlwerkzeug wird zum nächsten Objekt gesprungen, beim Textwerkzeug wird ein Tabulator eingefügt.

Du kannst aber die F8-Taste drücken, wenn das richtige Objekt ausgewählt ist, und dann den Text ändern. Ist die Änderung abgeschlossen kannst Du mit Strg-Leertaste zurück zum Auswahlwerkzeug wechseln.

Drommer schrieb:Allgemein stört die Bearbeitungszeit des Makro etwas, da gibt es aber keine Möglichkeit der Beschleunigung oder? Bei 500 Datensätzen, dauert das dann doch ne ganze Weile.

Ich habe versucht das Makro zu beschleunigen. Auf meiner alten Kiste braucht es für 500 Datensätze allerdings immer noch 14 bis 15 Sekunden.

Code:
Sub RondenBeschriftenXL()

    Dim xl As Object
    Dim wb As Object
    Dim Zellen As Object
    Dim xlr As Object
    
    Dim ND As Document, AD As Document
    Dim p As Page
    Dim Ronden As New ShapeRange
    Dim Rondentext As Shape, s As Shape
    Dim TextEbene As New Layer
    Dim RondenEbene As Layer
    Dim TN As TreeNode
    
    Dim Z As Integer, DSZ As Integer, i As Integer
    Dim t1 As Single, t2 As Single
    Dim yZugabe As Double
    
    yZugabe = 0
    
    t1 = Timer()
    
    Set xl = GetObject(, "Excel.Application")
    Set wb = xl.ActiveWorkbook
    Set Zellen = wb.ActiveSheet.Cells
    
    ActiveDocument.Unit = cdrMillimeter
    
    For Each s In ActiveLayer.Shapes.All
        If s.Name = "Ronde" Then
            Ronden.Add s
        End If
    Next
    
    Set xlr = wb.ActiveSheet.Range("A:A")
    DSZ = xl.WorksheetFunction.CountA(xlr)
    
    Ronden.Sort " @shape1.Top * 100 - @shape1.Left > @shape2.Top * 100 - @shape2.Left"
    
    Set AD = ActiveDocument
    Set ND = Ronden.CreateDocumentFrom
    ND.Name = Replace(Replace("Ronden-" & Date, ".", "-") & "-" & Time, ":", "-")
    ND.Unit = cdrMillimeter
    
    Set TextEbene = ND.ActivePage.CreateLayer("TextEbene")
    
    CorelScriptTools.BeginWaitCursor
    Application.Optimization = True

    Z = 1
    For i = 1 To DSZ
        Set Rondentext = TextEbene.CreateArtisticText(0, 0, Replace(Zellen(i, 1), "#", vbCrLf))
        With Rondentext
            .Text.Story.Size = 12
            .Text.Story.Alignment = cdrCenterAlignment
            .CenterX = Ronden(Z).CenterX
            .CenterY = Ronden(Z).CenterY - yZugabe
            .OrderToBack
        End With
        If Z < Ronden.Shapes.Count Then
            Z = Z + 1
        Else
            Z = 1
            Set p = ND.AddPages(1)
            p.Activate
            Set RondenEbene = p.Layers("Ronden")
            Set TextEbene = p.Layers("TextEbene")
            Set Ronden = ND.Pages(1).Layers("Ronden").Shapes.All.CopyToLayer(p.Layers("Ronden"))
        End If
    Next i
    
    If Z < Ronden.Count Then
        For i = Z To Ronden.Count
            Ronden(i).Delete
        Next i
    End If
    
    ActiveSelection.Shapes.All.RemoveFromSelection
    Application.Optimization = False
    ActiveWindow.Refresh
      
    t2 = Timer
    CorelScriptTools.EndWaitCursor
    AD.Activate
    MsgBox "fertig!" & vbCrLf & t2 - t1 & " Sekunden"
    
End Sub

Gruß

Koter


CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... - norre - 28.05.2017

Hallo
Drommer schrieb:Zudem komme ich zwar in das Textfeld, jedoch kann ich nicht sofort überschreiben etc. gibt es dazu auch etwas?r
es gibt auch noch das "Text bearbeiten Fenster" ob das für dich praktikabel ist musst du ausprobieren.
Bei ausgewähltem Text Strg+Umschalt+T drücken.

Gruß
Norre


CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... - Drommer - 03.06.2017

Hallo zusammen,

bin erst jetzt dazu gekommen eure Tipps mal zu testen - und ich muss sagen, einfach genial.
Wahnsinn was mit einem Makro alles so machbar ist.

Jedoch muss ich schon wieder kötteln, weil es mir leider an Know-How in Sachen Makro fehlt.
Einfache Änderungen wie Schriftgröße od. anderes Sonderzeichen für Zeilenumbruch traue ich mir mittlerweile zu.

Jodoch ist die Sortierung ab der zweiten Seite wieder nicht nach meinen Vorstellungen. Hier beginnt die Seitenvervollständigung unten rechts und geht spaltenweise von unten nach oben vor. Auf der ersten Seite hingegen funzt alles von links nach rechts, wie gewohnt.

Was muss hier im Makro verändert werden?

Gruß
Drommer


CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... - koter - 03.06.2017

Hallo Drommer,

Drommer schrieb:...Jedoch muss ich schon wieder kötteln...

Nur zu, keine Scheu! Dafür ist das Forum ja da!

Drommer schrieb:...Jodoch ist die Sortierung ab der zweiten Seite wieder nicht nach meinen Vorstellungen. Hier beginnt die Seitenvervollständigung unten rechts und geht spaltenweise von unten nach oben vor. Auf der ersten Seite hingegen funzt alles von links nach rechts, wie gewohnt...

Was muss hier im Makro verändert werden?

Zwischen den Texten sollte von links oben nach rechts unten mit der Tab-Taste zu wechseln sein (so funktioniert das Makro bei mir). Willst Du die Ronden auch so sortiert haben, kannst du in Zeile 61 folgenden Code hinzufügen:

Code:
If Z < Ronden.Shapes.Count Then
           [color=#FF0000] Ronden(Z).OrderToBack[/color]
            Z = Z + 1
        Else
(Die neue Zeile ist rot markiert, die Zeilennummer kann bei Dir anders sein)

Ich hoffe, ich habe kapiert was Du meinst.

Gruß

Koter


CorelDraw für Schilder, Etiketten zu Lasern verwenden - Möglichkeiten.... - Drommer - 10.06.2017

Guten Morgen Koter,

vielen Dank für die weitere Hilfestellung. Habe immer noch einen kleinen Fehler drin.
Hab den Befehl auch schon an anderen Stellen eingebracht, jedoch bislang ohne Erfolg.
Die anhängenden Bilder erläutern mein Problem bestimmt besser als Worte.

- Auf Seite 1 ist alles so wie es sein soll !
- Auf Seite 2 fast - jedoch landet der erste Import auf dem Schild an der rechten unteren Ecke.
- Die letzte Seite verdeutlicht das Problem

Wie muss ich hier vorgehen?

Zudem habe ich versucht das Makro so zu verändern, das ich im Objektmanager nichts mehr umbenennen muss. Heißt: Wenn ich ein neues Dokument beginne zeichne ich meine Schilderkontur.
Konvertiere alles zu Kurve und kombiniere die Elemente.
Somit habe ich immer folgende Namensgebungen (von Corel aus)
- Ebene 1
Kurve

Habe nun versucht die Begriffe im Makro durch Ebene1 (Ronden) und Kurve (Ronde) zu ersetzen, jedoch hakt das Makro an folgender Stelle (siehe Bild Anhang) oder bin ich hier komplett blind unterwegs...?

Gruß
Drommer
[ATTACH=CONFIG]12748[/ATTACH] [ATTACH=CONFIG]12749[/ATTACH] [ATTACH=CONFIG]12750[/ATTACH] [ATTACH=CONFIG]12751[/ATTACH]