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
Betriebssystem / Grafik-Software: Windows 11 / COREL X6
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
Betriebssystem / Grafik-Software: Windows 11 / COREL X6
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.
Weil das Makro ein „Abfallprodukt“ eines anderen Makros war, wäre es reichlich überbezahlt, wenn ich das Angebot annehmen würde.
Gruß
Koter
2 Benutzer bedanken sich bei koter für diesen Beitrag:2 Benutzer bedanken Danke koter für diesen Beitrag • Boerni, Piet
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
Betriebssystem / Grafik-Software: Windows 11 / COREL X6
(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:
Du richtest die Objekte oben bündig aus (T), bevor Du die Strecke markierst.
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.
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
Betriebssystem / Grafik-Software: Windows 11 / COREL X6
(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)