Hilfslinien automatisieren
#1
Hallo,

leider steige ich im Objekt-Modell von CorelDraw noch nicht richtig durch. Ich möchte nämlich mit geringem Aufwand, also vielleicht mit ein wenig VBA, auf einem Blatt ein regelmäßiges, relativ engmaschiges Gitter von Hilfslinien aufziehen - und dies bei jeder Seite eines Dokumentes (oder besser gesagt: einer Vorlage) mit anderen Maßen.
Lässt sich das mit VBA lösen?

Gruß
Oswald
Zitieren
#2
Hallo Oswald
OsCor schrieb:Lässt sich das mit VBA lösen?
Bestimmt Smile

Aber auch mit Bordmitteln ist das möglich.
-->Bearbeiten-->Vielfach duplizieren, öffnet das Andockfenster "Vielfach Duplizieren"
nun ziehst du eine Hilfslinie auf deine Arbeitsfläche, die Hilfslinie ist dann ja automatisch ausgewählt.
Nun gibst du im Andockfenster den Abstand zwischen den Hilfslinien an und unten die Anzahl der Kopien-->Zuweisen.
Danach sind ja alle erstellten Hilfslinien im Objektmanager ausgewählt und du brauchst diese nur noch auf die Hilfslinienebene der entsprechenden Seite zu verschieben, könntest natürlich auch schon die erste Hilfslinie auf der richtigen Ebene erstellen.

[Bild: attachment.php?attachmentid=10894&stc=1&d=1432378737]

Ein nettes kostenloses Macro für die Arbeit mit Hilfslinien findest du Hier
-
-


Angehängte Dateien Thumbnail(s)
   
Zitieren
#3
Hallo Oswald,

das Layer-Objekt bietet dafür zwei Methoden: CreateGuide und CreateGuideAngle. Bei CreateGuide werden als Parameter vier Koodinaten übergeben, bei CreateGuideAngle Zwei Koordinaten und ein Winkel.

Leider platziert VBA die Hilfslinien immer auf der Master-Ebene, egal auf welchen Layer man sich bezieht. Man kann das nur umgehen wenn man den Hilfslinien-Layer vorher aktiviert oder die Hilfslinie nach dem Erstellen verschiebt.

Beispiel:
Code:
Sub HLGitter1()
    Call HilfslinienGitter(10, ActiveDocument.Pages(2))
End Sub

Sub HilfslinienGitter(Abstand As Double, Seite As Page, Optional Master As Boolean = False)
    Dim HL As Shape
    ActiveDocument.Unit = cdrMillimeter
    x = 0
    'Verikal
    While x <= Seite.SizeWidth
        Set HL = ActiveLayer.CreateGuideAngle(x, 0, 90)
        If Not Master Then HLVerschieben Seite, HL
        x = x + Abstand
    Wend
    'Horizontal
    y = Seite.SizeHeight
    While y >= 0
        Set HL = ActiveLayer.CreateGuideAngle(0, y, 0)
        If Not Master Then HLVerschieben Seite, HL
        y = y - Abstand
    Wend
End Sub

Sub HLVerschieben(Seite As Page, HL As Shape)
    Dim L As Layer, GL As Layer
    For Each L In Seite.Layers
        If L.IsGuidesLayer Then
            Set GL = L
            Exit For
        End If
    Next
    HL.MoveToLayer GL
End Sub

Im Beispiel wird die CreateGuideAngle-Methode verwendet. Die Hilfslinen werden erstellt und dann auf die Hilfslinienebene der angegebenen Seite verschoben. Wenn Du beim Aufruf der Sub HilfslinienGitter den optionalen Parameter „Master“ auf true setzt, bleiben die Hilfslinien auf der Master-Ebene.

Noch eine kleine Anmerkung:
Ich verlasse mich hier darauf, dass die Abbruchbedingungen der While-Schleifen funktionieren (no risk, no fun). Wenn Du Bammel vor ungewollten Endlos-Schleifen hast, musst Du die Anzahl der benötigten Hilfslinien vorher berechnen lassen und For-Schleifen benutzen.

Gruß

Koter
Zitieren
#4
Leute, ich möchte mich gerne vor euch in den Staub werfen. Erlaubt mir, es nicht zu tun; ich komme nämlich aus Altersgründen nicht mehr so leicht hoch…:sei_gepriesen:

Nee, im Ernst, ich bin schon baff. Das Vielfach-Duplizieren habe ich gekannt, wäre aber um nichts in der Welt darauf gekommen, dass man damit auch Hilfslinien bearbeiten kann.
Und auch bei VBA hatte ich höchstens eine leise (aber schon sehr leise) Hoffnung, Hilfslinien könnten Teil des Objektmodells sein.

Ich danke euch sehr
Oswald
Zitieren



Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Hilfslinien auf Objektmittelpunkt fixieren Karthagos 6 776 13.09.2023, 15:01
Letzter Beitrag: Karthagos
  Hilfslinien Boerni 7 881 28.07.2023, 08:19
Letzter Beitrag: Boerni
  Hilfslinien für den druckbaren Bereich Karthagos 6 1.459 15.11.2022, 03:42
Letzter Beitrag: koter
  Hilfslinien bequem setzen Karthagos 13 2.832 11.04.2021, 09:53
Letzter Beitrag: norre
  Hilfslinien automatisch verschieben bei Formatwechsel OsCor 6 2.563 12.12.2018, 23:49
Letzter Beitrag: norre
  Voreingestellte Hilfslinien weschka 3 1.597 08.12.2018, 21:39
Letzter Beitrag: koter
  PhotoPaint Objekt verzerren Hilfslinien stören Karthagos 6 2.009 23.02.2018, 23:30
Letzter Beitrag: Karthagos
  Corel Draw: Collage mit vielen Fotos automatisieren? anorak 9 5.680 09.10.2015, 13:23
Letzter Beitrag: anorak
  Hilfslinien auf zwei Seiten anwenden? Tüfftele 3 1.767 24.02.2015, 20:46
Letzter Beitrag: norre
  Hilfslinien Eichhorn 3 1.578 18.12.2014, 23:39
Letzter Beitrag: norre