[gelöst] Konturen bereinigen

Bitte benutzen Sie dieses Forum für Fragen, Kommentare und Probleme im Zusammenhang mit QCAD Professional

Moderators: andrew, Husky

Forum rules

Immer Betriebssystem und QCAD Version angeben.

Zeichnungsdateien und Bildschirmfotos beifügen.

Eine Frage pro Topic.

Post Reply
thhz
Junior Member
Posts: 22
Joined: Thu Aug 04, 2022 12:04 pm

[gelöst] Konturen bereinigen

Post by thhz » Fri May 26, 2023 1:56 pm

Version: 3.27.9.0 (3.27.9)
Erstellungsdatum: Jan 16 2023
Revision: a88789f
Qt Version: 5.13.2
Architektur: x86_64
Compiler: MSVC++ 14.0 (2015)

Windows 10 Pro


Hallo,

wir bekommen manchmal Dateien mit zu schneidenden Teilen (in diesem Fall Laser) deren Konturen aus vielen einzelnen Elementen bestehen,
Beispiel 170422-50-1 ist die Original Datei, die Außenkontur besteht aus 719 Elementen, 32 Linien + 687 Kreisbögen.
Dies kann u.U. an der Laseranlage zu einem Abbruch führen, es gibt auch Teile die sind spitz zulaufend, dann funktioniert die automatische Eckenverrundung nicht weil der Laser die Spitze nicht als solche erkennt.
Wir müssen die Kontur nacharbeiten lassen, wird mit einem anderen Programm gemacht, wie weiß ich nicht. Das Ergebnis ist dann Beispiel 170422-50-2,
nur noch 12 Elemente und nur Kreisbögen. Wäre so eine Nacharbeit auch in QCAD möglich?
Ich hoffe ich habe die Problematik verständlich rüber gebracht.

Vielen Dank und schöne Pfingsten

Gruß
Thomas
Attachments
170422-50-1.jpg
170422-50-1.jpg (9.66 KiB) Viewed 8168 times
170422-50-1.dxf
(260.89 KiB) Downloaded 223 times
170422-50-2.jpg
170422-50-2.jpg (5.43 KiB) Viewed 8168 times
170422-50-2.dxf
(99.83 KiB) Downloaded 216 times

CVH
Premier Member
Posts: 3365
Joined: Wed Sep 27, 2017 4:17 pm

Re: Konturen bereinigen

Post by CVH » Fri May 26, 2023 5:36 pm

Das Problem ist klar, die Lösung jedoch nicht.
Dies war wahrscheinlich keine Ellipse, da sie nicht passt.
170422-50-2.dxf kommt dem nicht wirklich nahe und ist nicht symmetrisch.

QCAD verfügt über eine Vereinfachungsfunktion für Polylinien, diese funktioniert jedoch nicht für Bogensegmente.

Was ich getan habe:
Aus allen Segmenten eine Polylinie erstellt
Konstruktionslinien im Abstand von 30 Grad erstellt
Erstellt einen Fitpoint-Spline aus den Schnittpunkten zwischen der Polylinie und den Konstruktionslinien.

Wenn Sie diesen Spline zweimal explodieren (XP), erhalten Sie tangential verbundene Bögen.
Wie viele, hängt von der Toleranz ab, siehe: Anwendungseinstellungen
170422-50-1-Modded.dxf
(316.9 KiB) Downloaded 209 times

Grüße,
CVH

Google-Übersetzung von:
The problem is clear but the solution is not.
This probably was not an ellipse as it doesn't fit.
170422-50-2.dxf doesn't really come close and isn't symmetrical.

QCAD has a simplification function for polylines but this doesn't work for arc segments.

What I did:
Created a polyline from all segments
Created construction lines spaced 30 degree
Created a fitpoint spline from the intersections between the polyline and the construction lines.

When you Explode (XP) this spline twice one gets tangentially connected arcs.
How many depends on the tolerance, see: Applications Preferences

Regards,
CVH

User avatar
Husky
Moderator/Drawing Help/Testing
Posts: 4931
Joined: Wed May 11, 2011 9:25 am
Location: USA

Re: Konturen bereinigen

Post by Husky » Fri May 26, 2023 8:18 pm

Hallo Thomas,
thhz wrote:
Fri May 26, 2023 1:56 pm
Wir müssen die Kontur nacharbeiten lassen, wird mit einem anderen Programm gemacht, wie weiß ich nicht. Das Ergebnis ist dann Beispiel 170422-50-2,
nur noch 12 Elemente und nur Kreisbögen.
Wenn ich 170422-50-01 mit 170422-50-02 vergleiche finde ich gravierende Unterschiede welche normalerweise nicht akzeptabel sind für CNC Bearbeitung.

170422-50-01
Höhe 1068.61
Breite 1043

170422-50-02
Höhe 1065.94
Breite 1042.81

Abweichung: Höhe 2.67 mm, Breite 0.19 mm.

thhz wrote:
Fri May 26, 2023 1:56 pm
nur noch 12 Elemente und nur Kreisbögen. Wäre so eine Nacharbeit auch in QCAD möglich?
Ja, und genauer wäre es auch - vorausgesetzt Eure CNC kann Polylinien lesen (die meisten können das) ...

Mit einem klick (Polyline von Elementen [OG]) können in QCAD die 719 Einzelelemente zu einer Polyline zusammengefasst werden mit 0 mm Abweichung zur Ursprungszeichnung.

modifiziert mit QCAD (170422-50-03)
Höhe 1068.61
Breite 1043

Abweichung zu 170422-50-01 = 0 mm.

170422-50-3.dxf
(151.08 KiB) Downloaded 211 times

Anmerkung: Wenn so eine Konvertierung von Einzel Elementen zu einer Polyline mathematisch auf die Spitze getrieben werden sind Unterschiede im tausendstel Bereich höchstwahrscheinlich zu finden - ich denke aber irrelevant für Deinen Anwendungsfall da das Ergebnis von 170422-50-02 mit den gravierenden Abweichungen bereits von Euch als Verbesserung eingestuft wurde ... :wink:
Work smart, not hard: QCad Pro
Win10/64, QcadPro, QcadCam version: Current.
If a thread is considered as "solved" please change the title of the first post to "[solved] Title..."

CVH
Premier Member
Posts: 3365
Joined: Wed Sep 27, 2017 4:17 pm

Re: Konturen bereinigen

Post by CVH » Fri May 26, 2023 9:51 pm

Husky wrote:
Fri May 26, 2023 8:18 pm
Abweichung zu 170422-50-01 = 0 mm.
In English:
The same issues will exist because polylines are basically handled as arc and line segments on CNC level.
G-code is all about G1 or G2/3.

The shape is full of artifacts and most of the tiny arc-segments are not tangentially connected, endpoints can not match perfectly.
With OG there is a connect tolerance, only one of the points will be stored as node but both radii will be converted to a bulge factor as they where. QCAD does not trim the segments pair-wise before merging them.

Even QCAD can not generate a single offset polyline shape of this as segments or as polyline (e.g. 1mm).
That should already be an indication of inconsistent data.

A custom tool to round polyline corners returns 122 of 157 corners that mathematically can not be rounded with r=0.01 in your polyline.
Ask Pete (petevick) or John Hyslop to try it.

I do agree that 170422-50-2.dxf is not a match with the first.

Translated:
Die gleichen Probleme treten auf, da Polylinien auf CNC-Ebene grundsätzlich als Bogen- und Liniensegmente behandelt werden.
Bei G-Code dreht sich alles um G1 oder G2/3.

Die Form ist voller Artefakte und die meisten der winzigen Bogensegmente sind nicht tangential verbunden, Endpunkte können nicht perfekt übereinstimmen.
Bei OG gibt es eine Verbindungstoleranz, es wird nur einer der Punkte als Knoten gespeichert, aber beide Radien werden entsprechend ihrer Position in einen Wölbungsfaktor umgewandelt. QCAD schneidet die Segmente nicht paarweise zu, bevor sie zusammengeführt werden.

Selbst QCAD kann keine einzelne versetzte Polylinienform davon als Segmente oder als Polylinie (z. B. 1 mm) generieren.
Das dürfte bereits ein Hinweis auf inkonsistente Daten sein.

Ein benutzerdefiniertes Werkzeug zum Abrunden von Polylinienecken gibt 122 von 157 Ecken zurück, die mathematisch nicht mit r=0,01 in Ihrer Polylinie abgerundet werden können.
Bitten Sie Pete (petevick) oder John Hyslop, es auszuprobieren.

Ich stimme zu, dass 170422-50-2.dxf nicht mit dem ersten übereinstimmt.


Regards,
CVH

thhz
Junior Member
Posts: 22
Joined: Thu Aug 04, 2022 12:04 pm

Re: Konturen bereinigen

Post by thhz » Sun Jun 04, 2023 9:11 am

Guten Morgen,

erstmal vielen Dank für die Kommentare/Infos.
Die Sache ist wirklich nicht einfach, weil auch verschiedene Software zum tragen kommt, die Datei wird in unser ERP-System eingelesen,
Übergabe an eine andere Software (hier wird der technische Teil abgewickelt), was im einzelnen dort geschieht bzw. wie das abläuft kann ich nicht sagen oder beurteilen, die Datei/Kontur wird gelesen oder halt nicht, falls sie durchläuft werden die Parameter zurückgegeben,
Länge, Breite, Schneidmeter, Schneidzeit, Stelle der Anfahrt (für den Laser) usw., das ist dann unsere Kalkulationsbasis was die Technik angeht.
Aufgrund der vielen einzelnen Linien (siehe neue Datei) scheitert dies, auch wenn ich eine Polylinie machen, die einzelnen Knotenpunkte sind ja noch vorhanden, wie auch immer die verarbeitet werden. Auch wenn eine Datei mal durchläuft sollen angeblich Probleme an der Laseranlage auftreten,
die Anlage hat wohl jedes mal an einem Punkt versucht einzuschießen. Wenn man eine Polylinie erstellt hat, könnte man dann die Knoten löschen?
Das wirklich nur eine Linie da ist? Vergebt mir wenn ich doofe Fragen stellen sollte, ich bin Verkäufer, kein Techniker, ich darf nur dann immer
mit dem Kunden kommunizieren wenn es nicht funktioniert, das ist manchmal schwierig, weil der das Problem nicht auf seiner Seite sieht.
Von meinem Verständnis her ist u.a. ein Problem das mehrere Programme involviert sind, und keiner der Entwickler sieht das Problem bei sich, so kommt man nicht weiter.

Gruß
Thomas
Attachments
Segment_V_1.dxf
(2 MiB) Downloaded 208 times

CVH
Premier Member
Posts: 3365
Joined: Wed Sep 27, 2017 4:17 pm

Re: Konturen bereinigen

Post by CVH » Mon Jun 05, 2023 6:38 am

thhz wrote:
Sun Jun 04, 2023 9:11 am
Von meinem Verständnis her ist u.a. ein Problem das mehrere Programme involviert sind, und keiner der Entwickler sieht das Problem bei sich, so kommt man nicht weiter.
Es ist ein mathematisches Problem.
Knoten sind nur Positionen in X/Y, Bögen verwenden Mittelpunkt, Radius und Start-/Endwinkel oder die sogenannte Polarnotation.
Nur eine begrenzte Anzahl an Polarkoordinaten stimmen perfekt mit einer Position in X/Y überein. Oder Vica Verca.
Wenn wir erwarten, dass ein nächster Bogen dort beginnt, wo der vorherige Bogen endete, wird er im verwendeten Zahlensystem nur nahe genug übereinstimmen.
QCAD verwendet Gleitkommazahlen vom Typ Double, 64bit.
Andere Apps verwenden möglicherweise den Typ Float, 32bit oder ein anderes Zahlensystem.
Double ist ziemlich präzise, aber selbst dann wird der Start-/Endpunkt nie perfekt übereinstimmen.

Polylinienformen verwenden X/Y-Koordinaten und eine weitere Darstellung von Bogensegmenten, den sogenannten Bulge-Faktor (Ausbuchtungsfaktor).

Alle erforderlichen Umrechnungen und mathematischen Manipulationen führen zu einem gewissen Grad an Unsicherheit.

170422-50-1.dxf entstand wahrscheinlich aus einer Spline-Form, die in einzelne Bögen zerlegt wurde, allerdings mit einer zu engen Näherungstoleranz, daher die große Anzahl von Bogensegmenten.
Ab einem bestimmten Punkt gelten die mathematischen Zusammenhänge nicht mehr für sehr kurze Bogensegmente.
thhz wrote:
Fri May 26, 2023 1:56 pm
Das Ergebnis ist dann Beispiel 170422-50-2,
nur noch 12 Elemente und nur Kreisbögen. Wäre so eine Nacharbeit auch in QCAD möglich?
- Mit der ursprünglichen Form, dem ursprünglichen Spline, ja.
- Eine Rückkonstruktion der Näherung durch Bogensegmente ist praktisch unmöglich.
- QCAD vereinfacht an dieser Stelle keine Ketten von Bogensegmenten.
thhz wrote:
Sun Jun 04, 2023 9:11 am
Wenn man eine Polylinie erstellt hat, könnte man dann die Knoten löschen?
Ja, aber das wird die Form verändern.
Das Bogensegment erstreckt sich korrekt bis zum nächsten Endpunkt.
Der Ausbuchtungsfaktor wird jedoch durch den Durchschnitt der beiden Ausbuchtungen der ersetzten Bogensegmente ersetzt.
Das ist eine mathematische Abkürzung, aber es gibt keinen Bogen, der zwei verschiedene Bögen ersetzen kann.
Ein ausgewogener Durchschnitt basierend auf der Bogenlänge wäre besser ... In manchen Fällen ...

In Segment_V_1.dxf werden die gekrümmten Formen aus Liniensegmenten zusammengesetzt.
Die Verarbeitung mit CNC sollte kein Problem darstellen.
Aber auch hier kann die Verarbeitung der großen Anzahl an Liniensegmenten (4499 und 4035) problematisch sein.
QCAD kann einen perfekten Versatz dazu erstellen, aber es dauert mehrere Minuten pro Kurve, um dies zu erreichen.

Grüße,
CVH

User avatar
Husky
Moderator/Drawing Help/Testing
Posts: 4931
Joined: Wed May 11, 2011 9:25 am
Location: USA

Re: Konturen bereinigen

Post by Husky » Mon Jun 05, 2023 7:08 am

Hallo Thomas,
thhz wrote:
Sun Jun 04, 2023 9:11 am
Aufgrund der vielen einzelnen Linien (siehe neue Datei) scheitert dies, auch wenn ich eine Polylinie machen, die einzelnen Knotenpunkte sind ja noch vorhanden, wie auch immer die verarbeitet werden. Auch wenn eine Datei mal durchläuft sollen angeblich Probleme an der Laseranlage auftreten,
die Anlage hat wohl jedes mal an einem Punkt versucht einzuschießen. Wenn man eine Polylinie erstellt hat, könnte man dann die Knoten löschen?
Ich vermute das die Geometry in der dxf auf eine Spline basierte welche aus welchen Gründen auch immer zu Linien umgewandelt wurde. Die Genauigkeit einer Spline kann nur annähernd mit Linien erreicht werden was zu der hohen Anzahl der Linien führt. Eine Linie ist letztendlich immer eine Gerade (Kürzeste Strecke zwischen 2 Punkten) - um die Kurven in einer Spline nachzuzeichnen werden dementsprechend unzählige Kurze Linien gebraucht ...

Deine Segment_V_1.dxf hat 8.536 Linien - viel Arbeit für eine CAM / CNC Anlage. Die Totale Länge ist 10.714,02465941 mm.

Wenn ich diese Linien zu einer Polyline umwandle wird diese mit 8.537 Knotenpunkten gebildet - kein Unterschied zu der Anzahl der Linien ...

Allerdings bei einer Polylinie kann ich nun Knotenpunkte reduzieren (Vereinfachen OS) - bedenke, je mehr Knotenpunkte entfernt werden je mehr wird die Kontur abweichen.

Ich habe die Knotenpunkte also entfernt mit einer Tolerance von 0.01 was dazu führt das die Polyline nun mit 407 Knotenpunkten gebildet ist. Die Totale Länge ist nun 10.714,02311718 mm - verglichen mit der Original Länge ist das eine Abweichungen im Tausendstel mm Bereich - wahrscheinlich unerheblich (kann ich allerdings nicht beurteilen!).

Da der Startpunkt auch ein Problem war habe ich diesen nach Links Unten der Geometry verlegt. Es gibt nur einen!

Ich hänge die modifizierte Datei an - schaut Euch das an ob das nun von den CNC'ler akzeptiert werden kann und ob die Abweichungen im Tolerierbaren Bereich liegen ...

Segment_V_1_mod.dxf
(123.11 KiB) Downloaded 213 times
Work smart, not hard: QCad Pro
Win10/64, QcadPro, QcadCam version: Current.
If a thread is considered as "solved" please change the title of the first post to "[solved] Title..."

thhz
Junior Member
Posts: 22
Joined: Thu Aug 04, 2022 12:04 pm

Re: Konturen bereinigen

Post by thhz » Sun Jun 11, 2023 8:41 am

Guten Morgen,

sorry für die späte Antwort.
Das hat funktioniert, so hatte ich mir das erhofft, das man die Kontur durch die Vereinfachung verändern kann ist ein Risiko (siehe die Ovale).
Ich habe noch Verständnisprobleme.
Das hat jetzt nur funktioniert weil es Linien sind?
Bei den Ovalen ist also auf diese Weise keine Vereinfachung möglich?

Vielen Dank

Gruß
Thomas

CVH
Premier Member
Posts: 3365
Joined: Wed Sep 27, 2017 4:17 pm

Re: Konturen bereinigen

Post by CVH » Sun Jun 11, 2023 1:37 pm

thhz wrote:
Sun Jun 11, 2023 8:41 am
Das hat jetzt nur funktioniert weil es Linien sind?
https://www.qcad.org/rsforum/viewtopic. ... 955#p28526
thhz wrote:
Sun Jun 11, 2023 8:41 am
Bei den Ovalen ist also auf diese Weise keine Vereinfachung möglich?
CVH wrote:
Mon Jun 05, 2023 6:38 am
- QCAD vereinfacht an dieser Stelle keine Ketten von Bogensegmenten.
Es gibt kein einzelnes Bogensegment, das ein Bogen- und ein Liniensegment oder zwei Bogensegmente ersetzen kann.
Es sei denn die Krümmung und der Radius gleich sind.
Das Anwenden einer Toleranz ist nicht einfach, eine oder beide Formfunktionen sind quadratisch, die Toleranz ist linear.

Aber es gibt bessere Lösungen als die Mathematik die zum Löschen von Knoten (OD) mit mindestens einem Bogensegment verwendet wird.
Jetzt wird der Durchschnitt der Ausbuchtungsfaktoren berechnet.
Das ist ein mathematischer Durchschnitt von 2 Exponentialwerte, was kein guter Ansatz ist.
thhz wrote:
Fri May 26, 2023 1:56 pm
Das Ergebnis ist dann Beispiel 170422-50-2, nur noch 12 Elemente und nur Kreisbögen.
Wäre so eine Nacharbeit auch in QCAD möglich?
Nicht mit Bogensegmenten.
Aus einer Bogenkette kann man eine Polylinie erstellen wie in Husky sein Beispiel: 170422-50-3.dxf > Polylinie von Segmenten (OC).
Alle kleinen Bogensegmente können in Liniensegmente umgewandelt werden > Bogen- zu Liniensegmenten (keine Abkürzung).
Vereinfachen wie Huskys Beispiel: Segment_V_1_mod.dxf > Vereinfachen (OS).

Grüße,
CVH

User avatar
Husky
Moderator/Drawing Help/Testing
Posts: 4931
Joined: Wed May 11, 2011 9:25 am
Location: USA

Re: Konturen bereinigen

Post by Husky » Mon Jun 12, 2023 8:41 pm

@Thomas
thhz wrote:
Sun Jun 11, 2023 8:41 am
Das hat jetzt nur funktioniert weil es Linien sind?
Ja.
thhz wrote:
Sun Jun 11, 2023 8:41 am
Bei den Ovalen ist also auf diese Weise keine Vereinfachung möglich?
Das ist auch bei den Ovalen möglich wenn Du als erstes alle Bogenelemente in Linien umwandelst!

Beim Beispiel 170422-50-1.dxf wäre dieser Weg sinnvoll:

bereitgestelltes Oval besteht aus 719 Linien und bögen,
Umwandeln zu einer Polyline, (OG, or OC),
Umwandeln Bögen zu Linienelementen,
Vereinfachen (OS).

Ergebnis:
Polyline hat nun nur noch 255 Knotenpunkte (ca. 65% weniger als das Original!),
im Durchschnitt 2 - 4 Hundertstel mm kleiner als das Original ...!
Work smart, not hard: QCad Pro
Win10/64, QcadPro, QcadCam version: Current.
If a thread is considered as "solved" please change the title of the first post to "[solved] Title..."

thhz
Junior Member
Posts: 22
Joined: Thu Aug 04, 2022 12:04 pm

Re: Konturen bereinigen

Post by thhz » Thu Jun 15, 2023 10:24 am

Hallo CVH, hallo Husky,

vielen Dank, das hat funktioniert und bringt uns intern eine Menge an Zeitersparnis

der nächste Thread von mir ist in Arbeit :?

Gruß
Thomas

Post Reply

Return to “QCAD Professional”