Juergens-Workshops.de Forum
Ausrichten an Strecke - 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: Ausrichten an Strecke (/showthread.php?tid=38732)



Ausrichten an Strecke - Boerni - 23.09.2024

Hallo ihr da draussen an den Rechnern

Kann mir jemand erklären, wie ich Objekte an einer Strecke ausrichten kann?
(COREL X6)
Laut COREL Hilfe online sollte das funktionieren. (Siehe .jpg). Leider ist in meinem X6 die Befehlsfolge "Objekte - Objekte an Strecke ausrichten" nicht vorhanden.
Was mache ich falsch?

Danke für weiterführende Hinweise.

Gruss aus der Schweiz


RE: Ausrichten an Strecke - Piet - 24.09.2024

M.W. gibt es das erst ab X8, ich finde es in meiner X6 auch nirgends (Nur Text ausrichten)


RE: Ausrichten an Strecke - Boerni - 24.09.2024

Merci Piet

Man kann halt nicht alles haben. 
Aber Koter hat uns ja ein gutes Makro erstellt. Mit dem funktioniert es ja auch. (Siehe "Ausrichten an Kurvenobjekten" Danke Koter)


Also bis zum nächsten Problemchen

Gruss aus der Schweiz


RE: Ausrichten an Strecke - koter - 28.09.2024

Hallo Boerni,

zum Ausrichten von Objekten an einer Strecke kannst Du auch dieses Makro nehmen:

Code:
Sub AnStreckeAusrichten2()
   Dim Objekte As ShapeRange
   Dim Strecke As Shape
   Dim C As Curve
   Dim SP As SubPath
   Dim w As Double, ofs As Double, m As Double, x As Double, y As Double
   Dim Anz As Integer, i As Integer
   On Error GoTo ende
   
   Set Objekte = ActiveSelectionRange
   Set Strecke = Objekte.Shapes.First
   Objekte.Remove 1
   
   Objekte.Sort " @shape1.Top * 100 - @shape1.Left > @shape2.Top * 100 - @shape2.Left"
   Anz = Objekte.Count
   Set C = Strecke.Curve
   m = 1
   If C.Closed Then m = 0
   Set SP = C.SubPaths.First
   ofs = 0
   ActiveDocument.BeginCommandGroup "An Strecke Ausrichten"
   For i = 1 To Anz
       SP.GetPointPositionAt x, y, ofs
       w = SP.GetPerpendicularAt(ofs) - 90
       Objekte(i).CenterX = x
       Objekte(i).CenterY = y
       Objekte(i).RotationAngle = w
       ofs = 1 / (Anz - m) * i
   Next i
ende:
   ActiveDocument.EndCommandGroup
End Sub

Du musst erst die Objekte markieren und dann mit gedrückter Umschalttaste die Strecke. Dann das Makro ausführen. 

Das Makro ist mit X7 erstellt. Falls es bei Dir nicht funktioniert oder Du noch Änderungen brauchst, gib Bescheid.

Ich habe Dein großzügiges Angebot aus dem von Dir zitierten Beitrag gelesen. Vielen Dank dafür!
Leider bin ich davon abgekommen, darauf zu reagieren. erröten

Weil das Makro ein „Abfallprodukt“ eines anderen Makros war, wäre es reichlich überbezahlt, wenn ich das Angebot annehmen würde.

Gruß

Koter


RE: Ausrichten an Strecke - Boerni - 29.09.2024

Big Grin Hallo allerorten und besonderen Gruss an Norre !

Hab das Makro sofort ausprobiert und Begeisterung mach sich breit  Daumenhoch

Gruss aus der Schweiz


RE: Ausrichten an Strecke - Boerni - 11.10.2024

Hallo, ich schon wieder.....

Beim Ausführen von Norres (Hallo Norre) Makro für das "Ausrichten an Strecke", finde ich folgendes vor: Die einzelnen Elemente erscheinen nicht in der vorgesehenen Reihenfolge. Es wird munter aufgemischt, obwohl ich sie im Objektmanager sogar in der Reihenfolge angeordnet habe...….

Was könnte die Ursache sein?

Gruss aus der Schweiz


RE: Ausrichten an Strecke - norre - 11.10.2024

Hallo,
Danke für die Blumen,
aber das Makro ist von @Koter


RE: Ausrichten an Strecke - koter - 11.10.2024

Hallo Boerni,

(29.09.2024, 13:04)Boerni schrieb: ...und besonderen Gruss an Norre !

Da schließe ich mich an!

(11.10.2024, 06:53)Boerni schrieb: ...Es wird munter aufgemischt, obwohl ich sie im Objektmanager sogar in der Reihenfolge angeordnet habe...
Was könnte die Ursache sein?...

Die Ursache ist diese Zeile im Makro:
Objekte.Sort " @shape1.Top * 100 - @shape1.Left > @shape2.Top * 100 - @shape2.Left"

Wenn die Objekte von links nach rechts abgearbeitet werden sollen, hast Du zwei Möglichkeiten:
  1. Du richtest die Objekte oben bündig aus (T), bevor Du die Strecke markierst.
  2. Du tauscht die Zeile gegen diese aus:
    Objekte.Sort "@shape1.Left < @shape2.Left"
Man könnte die Sortierung auch ganz rausschmeißen, dann müssten die Objekte aber immer per Hand im Objektmanager angeordnet werden. Mir wäre das zu mühselig.

Gruß

Koter


RE: Ausrichten an Strecke - Boerni - 12.10.2024

Koter.....Norre.....Ihr Profis macht mich ganz schwindelig ;-))

Jeden Falls besten Dank für das Interesse an alle.

Ich habe die Zeile ausgetauscht und......Zack!......Funktioniert!
Zu;
"Man könnte die Sortierung auch ganz rausschmeißen, dann müssten die Objekte aber immer per Hand im Objektmanager angeordnet werden. Mir wäre das zu mühselig."

Habe ich ja in dem Beispiel gemacht. Das war ja dann auch nicht Zielführend.

Aber so ist jetzt alles gut.

Gruss aus der Schweiz


RE: Ausrichten an Strecke - koter - 12.10.2024

Hallo Boerni,

(12.10.2024, 05:22)Boerni schrieb: ...Habe ich ja in dem Beispiel gemacht. Das war ja dann auch nicht Zielführend.

lies Dir das Zitat in Deinem Beitrag noch einmal genau durch,
dann wirst Du erkennen, warum es in diesem Fall nicht zielführend war.
(aber nur wenn Du Lust auf ein kleines Rätsel hast)   Wink


Gruß

Koter