Fehlerhafte Knoten-Griffe automatisch finden
#40
Hallo Asterix,

(21.06.2024, 20:03)asterix schrieb: ...Denn das habe ich mich auch bei deinem anderen Makro gefragt, also bis zu welcher Griff-Länge werden die "kurzen" Griffe da markiert? (nur um es zu verstehen)...

Das habe ich in Beitrag 11 erklärt:

(13.06.2024, 16:24)koter schrieb: ...der folgende Code markiert Steuerpunkte die kürzer sind als die Linienbreite...

Noch genauer: Kürzer als die Umrissbreite.
Falls Du das ändern willst, gib Bescheid.


(21.06.2024, 20:03)asterix schrieb: Was sind denn überhaupt Griff-Längen von einem "normalen" Knoten? Ist das die Länge, die man auch auf dem Lineal dann sieht?...

Ich nehme an, mit Griff-Länge meinst Du die Steuerpunkt-Länge.

Ich hole ein wenig aus:

Eine Kurve besteht aus einem oder mehreren Pfaden:
[Bild: Pfadelemente.jpg]
  • Ein Pfad besteht aus einem oder mehreren Segmenten.
  • Ein Segment verläuft zwischen zwei Knoten.
  • Ein Segment hat zwei Steuerpunkte.
    Ein gerades Segment hat keine Steuerpunkte.
  • Der Abstand vom Knoten zum Steuerpunkt ist die Steuerpunktlänge.
Ein Steuerpunkt gehört zum Segment und bestimmt dessen Verlauf.
Er gehört nicht zum Knoten. Der Knoten ist sein Ursprung.
Eine normale Steuerpunkt-Länge gibt es nicht.
Was Du mit einem „normalen“ Knoten meinst, weiß ich nicht.

Auf dem Lineal könntest Du die Länge nur sehen wenn der Steuerpunkt Parallel dazu verläuft.
Bei X7 kann man es in der Statusleiste unter „Entfernung“ sehen,
wenn man den Steuerpunkt bewegt.

(21.06.2024, 20:03)asterix schrieb: Ja, das Makro kann gerne den Griff automatisch verlängern und dann den Knoten direkt drehen, also ohne Nachfrage.

Der folgende Code enthält eine Prozedur und eine Funktion.
Falls Du doch noch eine Nachfrage willst, setze die Varible „Frage“ in der Funktion auf „True“.

Code:
Sub KnotenWenden()
   Dim s As Shape
   Dim C As Curve
   Dim sp As SubPath
   Dim seg As Segment
   Dim KR As NodeRange
   Dim KAnz As Double
   If ActiveSelectionRange.Count <> 1 Then Exit Sub
   Set s = ActiveShape
   Set C = s.Curve
   Set KR = s.Curve.Selection
   If KR.Count <> 1 Then Exit Sub
   KAnz = s.Curve.Nodes.Count
   For Each sp In C.SubPaths
       For Each seg In sp.Segments
           If seg.EndNode.Selected Then
               If LCheck(seg, False) Then Exit Sub
               seg.EndingControlPointAngle = seg.EndingControlPointAngle + 180
               seg.EndNode.CreateSelection
               Refresh
               Exit For
           End If
           If seg.StartNode.Selected Then
               If LCheck(seg, True) Then Exit Sub
               seg.StartingControlPointAngle = seg.StartingControlPointAngle + 180
               seg.StartNode.CreateSelection
               Refresh
               Exit For
           End If
       Next
   Next
End Sub

Function LCheck(seg As Segment, startN As Boolean) As Boolean
   Dim antwort
   Dim Fragen As Boolean
   Dim mld As String
   
   Fragen = False
   
   mld = "Die Steuerpunktlänge beträgt Null" & vbCrLf & "Steuerpunkt verlängern?"
   LCheck = True
   If startN Then
       If seg.StartingControlPointLength = 0 Then
           antwort = vbYes
           If Fragen Then antwort = MsgBox(mld, vbYesNo + vbQuestion, "Steuerpunktlänge")
           If antwort = vbYes Then
               seg.StartingControlPointLength = 0.001
               LCheck = False
           End If
       Else
           LCheck = False
       End If
   Else
       If seg.EndingControlPointLength = 0 Then
           antwort = vbYes
           If Fragen Then antwort = MsgBox(mld, vbYesNo + vbQuestion, "Steuerpunktlänge")
           If antwort = vbYes Then
               seg.EndingControlPointLength = 0.001
               LCheck = False
           End If
       Else
           LCheck = False
       End If
   End If
End Function

Gruß

Koter
Zitieren



Nachrichten in diesem Thema
RE: Fehlerhafte Knoten-Griffe automatisch finden - von koter - 21.06.2024, 22:37

Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  PDF nach importieren, automatisch verändert sebastian84 1 19 Vor 1 Stunde
Letzter Beitrag: miss_marple
  Dokumentschriftarten finden und (einfach) ersetzen in CDR X6? Sascha B. 33 14.439 13.09.2024, 12:48
Letzter Beitrag: koter
Question QR-Codes automatisch generieren Lisa1992 1 366 31.05.2024, 07:02
Letzter Beitrag: Litschi
  Beim speichern Version automatisch auf alte Version stellen awitechnik 4 1.462 12.01.2024, 11:04
Letzter Beitrag: awitechnik
  Seriendrucktexte automatisch skalieren ben512 7 2.650 26.04.2023, 20:45
Letzter Beitrag: koter
  Textwerkzeug automatisch gedreht Nils 3 1.814 28.09.2022, 12:22
Letzter Beitrag: cutti
  Objekt aus Knoten mit Farbe füllen Spaceliner 7 2.118 02.08.2022, 10:11
Letzter Beitrag: Spaceliner
  2018: Knoten verbinden mtemp 6 2.941 26.04.2021, 07:28
Letzter Beitrag: norre
Star nicht verbundene Knoten Finden Karthagos 2 1.907 24.03.2020, 13:40
Letzter Beitrag: Karthagos
  Knoten mit Bedienfeld verschieben. chrisberlin 11 4.101 22.01.2020, 23:53
Letzter Beitrag: norre