CorelDraw teilautomatiseren / nur keine Angst

  • Moin zusammen,


    nachdem ich mich hier


    (Vorstellung)


    bereits vorgestellt hatte, und indirekt das Thema CorelDraw und VBA angeschnitten hatte, möchte ich hier mal konkreter werden.


    CorelDraw nutze ich als Modellbahner sowohl für Lasercut- und 3D-Vorlagen, wie auch (ja, ja, Verrückte gibt es immer wieder) für Zeichnungen von Güterwagen.


    Dabei ist schon in Corel die Ausrichtung und Platzierung teilweise mühsam.

    Gerade die exakte Ausrichtung, die mehrfache Wiederholung von Kopie und Platzierung können nerven.

    Im Zuge der Zeichnungserstellung für ein Güterwagenbuch, bei denen ich ein paar Zeichnungen beigesteuert habe wurde mir bewusst, welche Dinge extrem lästig sind.

    - Die permanente Umrechnung auf den Zeichnungsmaßstab (1:40 in diesem Fall)

    - Das Versetzen mehrfach vorhandener Objekte um ein Vorbild- oder Absolutmaß

    - Das Duplizieren eines Objektes mit exakter Verschiebung ohne lästige Bezugslinien oder Ähnliches


    Da ich des Programmierens in unterschiedlichsten Sprachen mächtig bin, kenne ich auch VBA, speziell aus dem Bereich Excel.

    Das ist insofern ganz hilfreich, da meine Kunden oft gar nicht merken, dass sehr umfangreiche Arbeiten über den Umweg Excel mit Makros rasend schnell gehen ;)

    Aber egal, zurück zum Thema.


    CorelDraw, zumindest die aktuelleren Versionen, verfügt über einen VBA (Visual Basic for Applications) Teil.

    Die oben erwähnte Thematik wollte ich dann über eben ein solches Makro erschlagen.


    Wie das dann in der Praxis geschieht, das ganz am Ende.

    Wie bekomme ich aber den VBA Teil in CorelDraw?


    Wenn man die Schritte weiß, ist es eigentlich schnell erledigt.


    1. VBA in die Menüleiste bringen


    Mit einem rechten Mausklick lässt sich der Makroteil in der Menüleiste verankern.


    01.jpg

    2. Öffnen des GlobalMakro Teiles


    Der GlobalMakro Teil von Corel lässt sich über den Editor öffnen.

    Hier sollte das kleine Makro, entsprechend des Bildes hinterlegt werden.


    02.jpg


    Public Sub MoveAndCopy()

    FrmMoveAndCopy.Show

    End Sub


    03.jpg


    3. Eingabe-Form importieren


    Da die ganze Mimik auch eine Oberfläche braucht, wird diese "Form" zunächst importiert.


    Die ZIP-Datei findet ihr als ZIP weiter unten.


    05.jpg


    4. Shortcut zum Öffnen des Eingabefensters


    Da mir Menü immer zu lästig ist, habe ich eine Tastenkombination für die Beabeitung [Strg]+[m].

    Die weise ich über den Skriptmanager zu.


    06.jpg


    Mit rechtem Mausklick auf das Makro.


    07.jpg


    Danach "Tastaturbefehl zuweisen" wählen.


    08.jpg


    Dann, wie gezeigt, Strg und m definieren.


    09.jpg


    Das wars.


    Und nun zur Bedienung.

    Im Beispiel habe ich ein Rechteck 20x20mm gezeichnet und markiert.


    10.jpg


    Mit [Strg]+[m] wird nun das Eingabefenster geöffnet.


    11.jpg


    Hier wird gewählt:

    - Absolut. Nicht der Maßstab wird umgerechnet, sondern das eingegebene Maß entspricht 1:1 dem auf der Zeichnung.

    - Links/Rechts/Oben/Unten. In welche Richtung soll verschoben oder kopiert werden.

    - Kopieren. Das Objekt wird nicht versetzt sondern kopiert.

    - Wiederholen. Wie oft soll die Kopie erfolgen


    12.jpg


    Danach [Ausführen] wählen, und fettich...


    13.jpg


    Die Datei mit der Maske findet ihr hier.


    FrmMoveAndCopy.zip


    Viele Grüße


    Hans-Dieter


    PS: Das ist natürlich nicht das Ende der Fahnenstange. Schräge Anordnungen etc. das ist bei mir noch auf der Agenda.

  • Hallo Hans-Dieter,


    auch von mir vielen Dank.

    Ich arbeite auch hier und da gerne mit Makros, muss mir diese aber (Schande über mich:pein:), von jemandem erstellen lassen, der es einfach kann^^.


    Dazu bin ich auch im Corel-Forum unterwegs.


    ABER: gerade zu deinem obigen Beispiel gibt es doch Funktionen in Corel...

    Da kann ich meinen Maßstab auf 1:40 einstellen und ich rechne nichts um, sondern arbeite mit den Originalmaßen.

    Die Funktion "ändern" gibt die Möglichkeit Objekte (kopiert) zu versetzen, verdrehen, spiegeln, skalieren, neigen....


    Unbenannt.JPG


    Unbenannt_2.JPG


    Unbenannt_3.JPG


    Unbenannt_4.JPG


    Grüße,
    Piet


    Hat es geholfen oder auch nicht.........ein Feedback wäre toll
    ________________________________________________________
    Ich bin weg, um mich selbst zu finden. Sollte ich zurückkommen,
    bevor ich wieder da bin, sagt mir bitte, ich soll hier auf mich warten
    :D
    ________________________________________________________

    Einmal editiert, zuletzt von Piet () aus folgendem Grund: Tippfehler ausgemerzt :)

  • Moin Piet,


    Asche über mein kahles Haupt. Das Änderungsfenster kannte ich noch gar nicht in der Form.

    Ich habe ewig mit CorelDraw 12 gearbeitet und habe die aktuelle Version erst kürzlich erworben.


    Zwei Dinge beinhaltet mein Makro allerdings, die die Corel Funktion so nicht hat.

    Ich kann sehr schnell zwischen Skalierung und absoluter Größe umschalten.

    Eine weitere Funktion, die hier noch nicht zu sehen ist, ist die Positionierung an Objekten und die automatische Namensvergebung.


    Aber dazu bei Gelegenheit mehr.


    In jedem Falle vielen Dank für die erhellenden Bemerkungen !!


    Viele Grüße


    Hans-Dieter

  • Schönes Beispiel für ein Macro.

    Würde ich jetzt zwar auch mit den Corel-Boardmitteln lösen, aber um in das Thema reinzukommen wirklich gut.

    Ich hätte das Objekte gegriffen, dann rechte Maustaste für Duplizieren und mit der Maus am nächsten Rand gefangen.

    Dann StrgR so oft geklickt, wie ich es brauche.

    Oder über das Ändern-Modul.


    Viele Wege, wobei der Macro-Weg sicherlich das größte Potential hat.

  • Zwei Dinge beinhaltet mein Makro allerdings, die die Corel Funktion so nicht hat.

    Ich kann sehr schnell zwischen Skalierung und absoluter Größe umschalten.

    Eine weitere Funktion, die hier noch nicht zu sehen ist, ist die Positionierung an Objekten und die automatische Namensvergebung.

    ;) hey, sollte auch keine Kritik sein, ich finde dein(e) Makro(s) SEHR gut!


    Grüße,
    Piet


    Hat es geholfen oder auch nicht.........ein Feedback wäre toll
    ________________________________________________________
    Ich bin weg, um mich selbst zu finden. Sollte ich zurückkommen,
    bevor ich wieder da bin, sagt mir bitte, ich soll hier auf mich warten
    :D
    ________________________________________________________

  • Hallo Hans-Dieter,


    hast du evtl. eine vernünftige Dokumentation zu VBA?


    Ich habe auch einige Makros zum "automatischen" File-Konvertieren, Kombinieren, Exportieren und Lasermarkieren erstellt, finde aber keine komplette Übersicht der Befehle und muß sie mir mühsam aus vorher aufgezeichneten Makros raussuchen, wobei einige in VBA nicht so funktionieren, wie im Makro selber - da fehlt mir dann noch die eigentlich Befehls-Syntax bzw. Parameter-Übergabe-Optionen :/


    Viktor

  • Hallo Piet,


    ich bin, was konstruktive Kritik anlangt, tiefenentspannt 😊

    Und der Hinweis auf die Standardfunktion war ja goldrichtig.


    Der Ton macht die Musik, und der scheint hier bei euch zu stimmen.


    Viele Grüße


    Hans-Dieter