Fixierter Linienstil
#1
Hallo!

Könnte jemand die angehängte X7-Datei mit einer Version ab 2019 (oder höher) öffnen,
den beiden Linien eine Umrissbreite von 1 mm verleihen und einen Screenshot erstellen?

Der Screenshot muss nur die Linien enthalten. Die Strichelung der Linien sollte erkennbar sein.

Gruß

Koter


Angehängte Dateien
.cdr   LinienstielFixiert.cdr (Größe: 32,43 KB / Downloads: 7)
Zitieren
#2
CorelDraw Version 19

   
[-] 1 Benutzer bedankt sich bei Litschi für diesen Beitrag:
  • koter
Zitieren
#3
Genau gleich wie bei Litschi.
Corel 2024 = V. 25.2.1.3.3

Sehr merkwürdig.

miss_marple
[-] 1 Benutzer bedankt sich bei miss_marple für diesen Beitrag:
  • koter
Zitieren
#4
Hallo Miss Marple, Hallo Litschi,

vielen Dank für Eure Mühe!

Eine Frage noch:

Kann man in Euren Versionen die Strichelung (den Linienstil) in einen Dialog so einstellen wie bei der unteren Linie?
Also so, dass die Abstände der Striche gleich bleiben, auch wenn man die Umrissbreite ändert?

Gruß

Koter
Zitieren
#5
Meinst Du diesen Dialog?

   
[-] 1 Benutzer bedankt sich bei Litschi für diesen Beitrag:
  • koter
Zitieren
#6
Hallo koter,

das Dialogfenster zeigt für beide Linien das gleiche Muster an, in beiden Versionen.
Die untere Linie kann man nicht nachbauen, weil es ja nur eine Stauchung des Musters ist, keine Änderung.
Das heißt, beim Ändern der Umrissstärke bleibt die Anzahl der Mustersätze gleich, die obere Linie wird gewissermaßen proportional angepasst, so dass das optische Erscheinungsbild gleich bleibt.
   

Auch interessant: Bearbeiten > Eigenschaften kopieren von ...
   

Leider habe ich (noch) keine Ahnung, woher dieses unterschiedliche Verhalten (die Stauchung) kommt und wieso es kopierbar ist. Ich kenne keinen Menübefehl, der das bewirken könnte.
Die Hilfslinien sind übrigens in Version X7 plötzlich ohne mein Zutun dagewesen, sie passen zu den Elementen des Mustersatzes.

Sind die Linien unter verschiedenen Umständen entstanden?
Denkrichtung: Import aus Illustrator, PDF o.ä. Programmen / Linie, die durch ein Script erzeugt wurde?

miss_marple
[-] 1 Benutzer bedankt sich bei miss_marple für diesen Beitrag:
  • koter
Zitieren
#7
Hallo Litschi,
(28.01.2026, 08:31)Litschi schrieb: Meinst Du diesen Dialog?
ich meinte keinen bestimmten Dialog, mich hat nur interessiert, ob es überhaupt einen gibt, bei dem man das einstellen kann.

Hallo Miss Marple,

(28.01.2026, 11:57)miss_marple schrieb: ...Die Hilfslinien sind übrigens in Version X7 plötzlich ohne mein Zutun dagewesen, sie passen zu den Elementen des Mustersatzes...

Die Hilfslinien waren in der Datei auf einer ausgeblendeten Ebene.

(28.01.2026, 11:57)miss_marple schrieb: ...Sind die Linien unter verschiedenen Umständen entstanden?...

Ich soll für jemanden ein Makro basteln, der die Strichlängen als Zahlenwerte eingeben will.
Außerdem soll die Strich-Lücke-Sequenz fix sein (also wie bei der 2. Linie).

Ich wollte erst die Sequenz in Kurvensegmente umwandeln lassen, habe dann aber die Eigenschaft „DashDotLength“
in der VBA-Hilfe gesehen. Die ist immer Null, wenn man dem Umriss die Strichelung über einen eingebauten Dialog zuweist.

Weist man der Eigenschaft einen Wert per Makro zu, ist die Strich-Lücke-Sequenz auf diesen Wert fixiert.

Seltsam, dass Corel eine Funktion einbaut, diese aber dem Nutzer nicht in einem Dialog zur Verfügung stellt.

Nochmal vielen Dank für Eure Hilfe!

Falls jemand Interesse an der Funktion hat, hier ein kurzes Makro, das die Strichelung fixiert oder die Fixierung aufhebt.:
Code:
Sub DDfix()
   Dim oL As Outline
   Dim oLS As OutlineStyle
   Dim i As Integer
   Dim x As Double, w As Double
   x = 0
   Set oL = ActiveShape.Outline
   Set oLS = oL.Style
   If oL.DashDotLength > 0 Then
       If MsgBox("Fixierung aufheben?", vbYesNo, "Linienstil") = vbYes Then
           oL.DashDotLength = 0: Exit Sub
       Else: Exit Sub
       End If
   Else
       If MsgBox("Fixieren?", vbYesNo, "Linienstil") = vbNo Then Exit Sub
   End If
   For i = 1 To oLS.DashCount
       x = x + oLS.DashLength(i)
       x = x + oLS.GapLength(i)
   Next i
   w = x * oL.Width
   oL.DashDotLength = w
End Sub
 
Das eigentliche Makro ist noch nicht fertig. Wenn es jemanden interessiert möge er sich melden.
Es handelt sich eher um ein Nischenthema, dürfte also für die Meisten uninteressant sein.

Gruß

Koter

P.S.: Die Eigenschaft gibt es schon mindestens seit X4.
Zitieren