Ausrichten von Kurvenobjekten
#1
Big Grin Ich schon wieder....

Szenario: Habe mir aus einem Schriftfont Kurven gebastelt, die für einen Schneidplotter elegant die Ecken umrunden kann. (Scharfe Ecken verrundet; ermöglicht besseres Entgittern von Folien).
Jetzt könnte ich mir aus meinem "ABC" die gewünschten Texte zusammenstellen.
Was ist die beste Lösung diese Texte an Objekten auszurichten

Gruss aus der Schweiz


Angehängte Dateien Thumbnail(s)
   

.cdr   Plotter ABC.cdr (Größe: 49,72 KB / Downloads: 3)

Betriebssystem / Grafik-Software: Windows 11 / COREL X6
Zitieren
#2
Hallo, 
am besten funktioniert das natürlich mit einer "echten" Schriftart. Aber evtl. hilft dir dieses Video hier weiter:

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

Gruß
Gerrie
[-] 1 Benutzer bedankt sich bei Gerrie25 für diesen Beitrag:
  • Boerni
Zitieren
#3
Hallo Boerni,

Du kannst es mit einem Makro versuchen:

Das Makro lässt horizontal angeordnete Objekte
in eine darunter liegende Strecke fallen,
ohne den Abstand zu ändern.

Die Streckenrichtung muss von links nach rechts zeigen,
sonst werden Die Objekte falsch herum angeordnet.

Das Makro richtet am Zentrum des Objekts aus.
Mit Text funktioniert das wegen der Schriftlinie nicht.

Du musst deshalb gleich hohe Rechtecke um Deine Objekte (Buchstaben) legen.

Dazu kannst Du das Makro HilfsrechteckeErstellen nutzen.
Die Rechtecke haben keinen Umriss und sind deshalb unsichtbar.

Mit dem Makro HilfsrechteckeEntfernen kannst Du diese später löschen.

[Bild: In-Strecke-Fallen.gif]

Code:
Sub InStreckeFallen()
    Dim Objekte As ShapeRange
    Dim Strecke As Shape, objAR As Shape, HLM As New Shape, HLM2 As New Shape, E As New Shape
    Dim seg As Segment
    Dim Pfad As SubPath
    Dim x As Double, y As Double, p As Double, t As Double
    Dim cps As CrossPoints, cp As CrossPoint
    On Error GoTo fehler
    ActiveDocument.Unit = cdrMillimeter
    Set Objekte = ActiveSelectionRange
    Objekte.Sort "@shape1.Left < @shape2.Left"
    Objekte.Sort "@shape1.Top > @shape2.Top"
    Set Strecke = Objekte.Shapes.Last
    If Strecke.Type <> cdrCurveShape Then
        MsgBox "Strecke muss eine Kurve sein!", vbCritical, "Fehler"
        Exit Sub
    End If
    Objekte.Remove Objekte.Shapes.Count
    Set Pfad = Strecke.Curve.SubPaths.First
    ActiveDocument.BeginCommandGroup "auf Strecke"
    Optimization = True
    For Each objAR In Objekte
        Set HLM = ActiveLayer.CreateLineSegment(objAR.CenterX, objAR.CenterY, objAR.CenterX, Strecke.BottomY - 2)
        Set cps = Pfad.GetIntersections(HLM.Curve.SubPaths.First, cdrAbsoluteSegmentOffset)
        HLM.Delete
        Pfad.GetPointPositionAt x, y, cps(1).Offset, cdrAbsoluteSegmentOffset
        Set E = ActiveLayer.CreateEllipse2(x, y, objAR.SizeWidth / 2)
        E.ConvertToCurves
        Set cps = Pfad.GetIntersections(E.Curve.SubPaths.First, cdrAbsoluteSegmentOffset)
        Set HLM2 = ActiveLayer.CreateLineSegment(cps(1).PositionX, cps(1).PositionY, cps(2).PositionX, cps(2).PositionY)
        Set seg = HLM2.Curve.SubPaths.First.Segments.First
        objAR.CenterX = x
        objAR.CenterY = y
        objAR.RotationAngle = seg.StartingControlPointAngle
        E.Delete
        HLM2.Delete
    Next
fehler:
    Optimization = False
    ActiveDocument.EndCommandGroup
    Refresh
End Sub

Sub HilfsrechteckeErstellen()
    Dim Objekte As ShapeRange, RGruppe As New ShapeRange
    Dim RoB As Shape, obj As Shape, RG As Shape
    Dim z As Integer
    ActiveDocument.Unit = cdrMillimeter
    Set Objekte = ActiveSelectionRange
    Debug.Print Objekte.SizeHeight
    ActiveDocument.BeginCommandGroup "Rechtecke erstellen"
    For Each obj In Objekte
        Set RoB = ActiveLayer.CreateRectangle(obj.LeftX, Objekte.TopY, obj.RightX, Objekte.BottomY)
        RoB.Outline.Width = 0
        RoB.Name = "Ausrichtungshilfsrechteck"
        RGruppe.Add RoB
        RGruppe.Add obj
        Set RG = RGruppe.Group
        Set RGruppe = Nothing
    Next
    ActiveDocument.EndCommandGroup
End Sub

Sub HilfsrechteckeEntfernen()
    Dim ARH As ShapeRange
    Dim R As Shape
    Set ARH = ActivePage.FindShapes("Ausrichtungshilfsrechteck")
    For Each R In ARH
         R.ParentGroup.Ungroup
    Next
    ARH.Delete
End Sub

Die von Gerrie vorgeschlagene Funktion gibt es ja in X6 noch nicht.
Sie würde Dir aber wegen der gleichmäßigen Abstände auch die Typografie versauen.

Gruß

Koter

P.S. Sehr akkurate Arbeit hast Du geleistet! Alles in Ebenen und jedes Objekt benannt. Respekt!
[-] 1 Benutzer bedankt sich bei koter für diesen Beitrag:
  • Boerni
Zitieren
#4
Big Grin Hallo Koter

Suuuper!!! Das währe eine elegante Lösung!
Ich habe versucht, mich in die Makros einzulesen (Kaum verstanden ;-)   )
Ich denke, das dass das erstellen von Hilfsumrandungen dazu führen würden, das bei Kleinbuchstaben die Mitte nach oben verlagert würde und somit einige Kleinbuchstaben nach oben gerissen werden.
Ich würde damit auf die Erstellung von Hilfsumrandungen gerne verzichten.
Ich habe das einmal überarbeitet damit alle Mittelpunkte auf einer Linie sind.
Seite 1. Auf Seite 2 habe ich alle Buchstaben für mich als Unbedarften so eingerichtet, dass sie von Hand ausgerichtet werden können.
Und jetzt der Hammer: Ich habe überhaupt keine Ahnung wie man Makros einsetzt.
Da bist du wohl der Platzhirsch und kannst mir weiterhelfen....oder?
Ziel ist ja Dateien für einen Schneidplotter zu erstellen. (Siehe Foto)
Wenn wir da gemeinsam weiterkommen, schicke ich dir einen Satz Untersetzer nach deinen Vorstellungen als kleines Dankeschön.

Gruss aus der Schweiz


Angehängte Dateien Thumbnail(s)
           

.cdr   Plotter ABC Überarbeitet.cdr (Größe: 89,79 KB / Downloads: 2)

Betriebssystem / Grafik-Software: Windows 11 / COREL X6
Zitieren
#5
Rainbow 
Hallo Boerni,

Um Makros zu erstellen kannst Du den Makro-Manager benutzen (Alt+Shift+F11).
  1. Lege ein Neues Makroprojekt an (auf Neu klicken) und benenne es sinnvoll (z.B inStrecke).
  2. Lege im neuen Makroprojekt ein Modul an (Rechtsklick auf das Projekt) und benenne es sinnvoll (z.B inStrecke1).
  3. Wähle „Bearbeiten“ (Rechtsklick auf das Modul) dann öffnet sich der VBA-Editor.
  4. Füge im VBA-Editor den Quellcode ein (mit Copy and Paste oder abtippen Wink )
    danach kannst Du den Editor wieder schließen.
  5. Du findest dann die Makros im Makro-Manager und kannst sie mit einen Rechtsklick ausführen.

[Bild: Makroerstellung1.jpg]

Du kannst auch in Extras/Optionen/Anpassung/Befehle/Makros Tastenkombinationen vergeben
oder Symbole für die Makros auf eine Symbolleiste ziehen.

Ob und wie Du Hilfsrechtecke einsetzt, musst Du selbst entscheiden.
Du musst Die Hilfsrechtecke aber mit den Buchstaben gruppieren wenn sie einen Effekt haben sollen.

Versprich Dir nicht zu viel von diesen Makros, Du wirst bestimmt nacharbeiten müssen.

Gerrie hat Recht wen er sagt, dass eine echte Schrift besser wäre.
Eine Schrift zu erstellen oder zu ändern ist allerdings auch eine häftige Aufgabe.

Gruß

Koter
[-] 1 Benutzer bedankt sich bei koter für diesen Beitrag:
  • Boerni
Zitieren
#6
Hallo und einen schönen Tag Koter
 
Ich habe es geschafft dein Makro einzulesen.
Es sieht so aus, als ob es hier für dieses Dokument gilt.
Meine Selbstgebasteteln Rechtecke habe ich entfernt.
Darum lade ich diese Version einmal hoch.
Was mache ich falsch? Fällt aber biegt sich nicht (Kurvenrichtung stimmt)

Wünsche allen im Forum einen erfolgreichen Tag

Gruss aus der Schweiz


Angehängte Dateien Thumbnail(s)
       

.cdr   Plotter ABC Überarbeitet-2.cdr (Größe: 100,81 KB / Downloads: 3)

Betriebssystem / Grafik-Software: Windows 11 / COREL X6
Zitieren
#7
Hallo Boerni,

Du hast das Makro im Dokument gespeichert.
Wenn Du es nach meiner Anweisung machst,
wird es in einer eigenen GMS gespeichert und steht immer zur Verfügung.

Wenn Du es aber nur mit diesem Dokument verwenden willst, ist es so sogar sinnvoller.

Wenn Du Hilfsrechtecke verwendest, müssen sie mit den einzelnen Buchstaben gruppiert sein,
also ein Buchstabe und ein Hilfsrechteck müssen jeweils eine Gruppe bilden.

Du hast ja Die Rechtecke und Buchstaben zu einem Objekt kombiniert.
Wenn Du es so lässt, brauchst Du keine weiteren Hilfsrechtecke.

Die einzelnen Buchstaben-Objekte oder Buchstabe-Rechteck-Gruppen dürfen aber nicht miteinander gruppiert sein!
Das Makro braucht einzelne Objekte die es platzieren und rotieren kann.

Mit Deinen Buchstaben-Rechteck-Objekten würde das So aussehen:

[Bild: Danke-Juergen.gif]

Gruß

Koter
Zitieren
#8
Big Grin Gruppierung aufgelöst....Peng!----Klappt....

Für ein Dankeschön kannst du mir auf PN deine Entwürfe schicken.....ich mache dir 8 Untersetzer wie versprochen.
Text und Idee der Grafik.....
Empfängeradresse?

Allen Interessierten ein Merci

Gruss aus der Schweiz


Angehängte Dateien Thumbnail(s)
   

Betriebssystem / Grafik-Software: Windows 11 / COREL X6
Zitieren



Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  VBA Objekte ausrichten fremoikaner 12 750 06.06.2024, 14:30
Letzter Beitrag: koter
  Makro - Text an Rechteck ausrichten benni313 5 617 31.01.2024, 09:20
Letzter Beitrag: benni313
  Häkchen bei "An Hilfslinie ausrichten" fixieren martens 15 1.213 16.10.2023, 18:55
Letzter Beitrag: martens
Photo Bogenschrift am Objekt ausrichten ist weg ? panzerauto 6 1.229 08.08.2022, 18:24
Letzter Beitrag: panzerauto
  Ausrichten an - Dialog Karthagos 6 1.498 02.12.2018, 21:13
Letzter Beitrag: norre
  Objetke ausrichten ohne (bzw. mit festem) Abstand abru 10 3.126 08.08.2018, 08:36
Letzter Beitrag: abru
  Ein Objekt - Stadtsilhouette- an Kreis ausrichten CorelDraw 2017 Hans Mampf 3 2.104 03.12.2017, 15:53
Letzter Beitrag: Hartmut
  Objekte am Objekt ausrichten - Corel X6 Uckerschwan 1 1.400 27.01.2017, 13:41
Letzter Beitrag: norre
  Objekte an Kurven ausrichten SerialK 7 11.580 26.01.2017, 20:53
Letzter Beitrag: norre
  Vektorgrafik am Kreis ausrichten DJMC 3 2.252 30.11.2016, 10:55
Letzter Beitrag: DJMC