Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Konturverlauf einer Polylinie

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   Konturverlauf einer Polylinie (2493 mal gelesen)
Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 18. Nov. 2005 16:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

wie kann ich in Lisp abfragen, ob der Richtungsverlauf einer Polylinie / LWPolylinie im Urzeigersinn oder GUZ ist.

Wie könnte eine Lösung aussehen?

Gruß
Theodor Schönwald

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



Sehen Sie sich das Profil von wronzky an!   Senden Sie eine Private Message an wronzky  Schreiben Sie einen Gästebucheintrag für wronzky

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 18. Nov. 2005 19:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

OK, mal ein Lösungsvorschlag:
wenn Du die Fläche des Polygons mit der gauss'schen Dreiecksformel berechnest, ist das Ergebnis POSITIV, wenn die Richtung IM Uhzeigersinn, NEGATIV wenn die Richtung GEGEN den Uhrzeigersinn verläuft.
Vielleicht gibt's da auch schon was in Lisp, musst Du mal SUCHEN!

Grüsse, Henning

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 18. Nov. 2005 19:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Henning,

danke für den Lösungsansatz, aber die Polyline ist nicht immer geschlossen. Das habe ich vergessen mitzuteilen.

Gruß
Theodor Schönwald

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

andi2050
Mitglied



Sehen Sie sich das Profil von andi2050 an!   Senden Sie eine Private Message an andi2050  Schreiben Sie einen Gästebucheintrag für andi2050

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 18. Nov. 2005 19:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Hallo Theodor

Im Prinzip ist das ganze relativ simpel.

Du musst 'nur' die Übergangswinkel der aufeinanderfolgenden Segmente zusammenzählen.
Bertägt das Endergebnis +2PI -> CCW; -2PI -> CW.

Stell Dir einfach vor, Du gehst der Polylinie zu Fuß nach.
An jedem Scheitelpunkt merkst Du Dir wie weit und in welche Richtung Du Dich drehen mußt, um auf dem nächsten
Segment zu gehen.

Der Winkel zwischen zwei Segmenten muß also umgerechnet werden,
daß er zwischen -PI und +PI (-180° bis 180°) liegt.
'Knickt' die Polylinie nach LINKS ab, ist es ein POSITIVER Winkel.
'Knickt' die Polylinie nach RECHTS ab, ist es ein NEGATIVER Winkel.

Etwas schwieriger ist es bei Bogensegmenten.
Hier mußt Du Dir zusätzlich merken, wie groß der Winkel des Bogens ist.
Hier wird der Übergangswinkel zwischen dem Endwinkel des vorherigen Segments und dem Startwinkel des
aktuellen Segments (Bogen) berechnet. Dann muß noch der eingeschlossene Winkel des Bogens addiert werden
(Bogenrichtung beachten !).
Der Übergangswinkel zum nächsten Segment wird dann mit dem Endwinkel des Bogens berechnet.

Vorraussetzung für diese Methode ist aber, daß es sich um eine geschlossene, NICHT selbstschneidende Kontur handelt.
Außerdem dürfen keine gegenläufigen Linien (180° Übergänge) und Segmente mit Länge 0 vorkommen.
Bei einem 180° Übergang zwischen 2 Linien kann keine Winkelrichtung definiert werden.
(Zu Fuß ist es ja auch egal, ob Du Dich nach links oder rechts umgedreht hast.)

Für folgende 180° Übergänge, kann jedoch die Winkelrichtung bestimmt werden.
- Bögen, die 'W-förmig', tangential aneinander liegen.
- Bögen, die 'kommaförmig', tangential ineinander liegen.
- Bogen/Linie, wobei die Linie 'kommaförmig', tangential an den Bogen anschließt.

Ich hoffe, daß es eingermaßen verständlich ist...

Grüße

Andi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



Sehen Sie sich das Profil von wronzky an!   Senden Sie eine Private Message an wronzky  Schreiben Sie einen Gästebucheintrag für wronzky

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 18. Nov. 2005 20:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Na, also offene Polylinien haben nun mal keinen Drehsinn!
Du kannst das Ende doch immer so weiterführen, dass es wieder anders herum geht. (Schlecht ausgedrückt, aber ich hoffe Du verstehst das.)

Grüsse, Henning

------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 18. Nov. 2005 22:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Andi,

den Weg hast Du gezeigt. Danke!

Nun muss ich es nur noch in LSP umsetzen.

Gruß

Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 18. Nov. 2005 22:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Henning,

ich möchte nicht um Hilfe bitte und dann an der Antwort kritisieren.

Aber einfach zum Verständnis, wenn eine Polylinie aus mindestens 2 Elementen besteht und die nicht in einer Flucht liegen, müsste es doch einen Drehsinn geben. Wie beim Tanzen linksherum rechtsherum.
Oder mache ich einen Denkfehler?

Gruß
Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

wronzky
Ehrenmitglied V.I.P. h.c.
CAD-Dienstleistungen für Architekten



Sehen Sie sich das Profil von wronzky an!   Senden Sie eine Private Message an wronzky  Schreiben Sie einen Gästebucheintrag für wronzky

Beiträge: 2154
Registriert: 02.05.2005

CAD:
AutoCAD 2.6 bis 2014
ADT 2005 - 2014
Arcibem
System:
Windows 2000, XP, NO VISTA
Internet-Startseite:
http://www.archi.de

erstellt am: 18. Nov. 2005 22:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich


poly.jpg

 
Hi Theodor!
zur Verdeutlichung mal ein Bildchen...
Man kann also bei einer offenen Polylinie nicht wissen, wie es weiter geht. Links- oder Rechtsrum.
Und beim Tanzen - tja, da kannst Du (Gott sei Dank) beim Walzer auch mal abwechseln: mal links, mal rechts, (mal Wiegeschritt). Das geht aber bei einer Polylinie nicht 

Grüsse, Henning

PS: Andi'y Methode geht übrigens auch nur bei geschlossenen Polylinien. (Winkelsumme im Dreieck ist allerdings nur PI!)
------------------
VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure

  http://www.voxelman.de

[Diese Nachricht wurde von wronzky am 18. Nov. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

andi2050
Mitglied



Sehen Sie sich das Profil von andi2050 an!   Senden Sie eine Private Message an andi2050  Schreiben Sie einen Gästebucheintrag für andi2050

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 19. Nov. 2005 14:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich


Winkelsumme.JPG

 
Hallo

Eine offene Pline hat m.E. keine eindeutige Laufrichtung.
Es kann zwar sein, daß die meisten Konturen eher links oder rechts Orientiert sind,
aber es gibt auch Konturen, die neutral sind z.B. zwei S-formig angeordnete 180° Bögen oder ein 'Z'.

@wronzky
Du hast recht, die Winkelsumme der EINGESCHLOSSENN Winkel im Dreieck ist PI.
Aber darum geht es dabei nicht, sondern um die Summe der Richtungwechsel ! (siehe Skizze)
Diese Summe ist bei allen geschlossenen Polygonen +/- 2PI !

Grüße
Andi

[Diese Nachricht wurde von andi2050 am 19. Nov. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1661
Registriert: 11.10.2004

Window 8.1
ACAD 2012-2020
CIVIL 2012 - 2020
BricsCAD V14-V20
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050

erstellt am: 19. Nov. 2005 20:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Hallo,
ich bin der Meinung, mit der gauss'schen Dreiecksformel, wie Hennig es vorgeschlagen hat, kann man die Drehrichtung auch von jeder nicht geschlossenen Polylinie bestimmen, die mehr als 2 Stützpunkte hat. Meine Meinung nach ist es der Dreiecksformel egal, ob zwischen dem letzen und dem erstem Stützpunkt ein Polyliniensegment vorhanden ist oder nicht, wichtig sind nur die Koordinaten.

Ich hatte schon mal ein ähnliches Problem, mit folgender Funktion wird die doppelte Fläche einer Polylinie gerechnet. Zu übergeben an die Funktion ist die Stützpunktliste der Polylinie:

Code:

;;;2A => Fläche der Polyline, wenn negativ, dann im Uhrzeigersinn
(defun JB_flaeche  (liste / summe n)
  (setq n    0
summe 0.0
)
  (repeat (length liste)
    (setq summe (+ summe
  (* (car (nth n liste))
      (- (cadr (nth (if (< (- n 1) 0)
      (- (length liste) 1)
      (- n 1)
      )
    liste
    )
      )
(cadr
  (nth (if (> (+ n 1) (- (length liste) 1))
  0
  (+ n 1)
  )
liste
)
  )
)
      )
  )
  n (+ n 1)
  )
    )
  summe
  )


------------------
viele Grüße

Jörn

[Diese Nachricht wurde von joern bosse am 19. Nov. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 19. Nov. 2005 20:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


pl.gif

 
Hallo Andi,

ich habe eine Polylinie gezeichnet, kopiert und bei einer die Konturrichtung umgedreht.

Die jeweiligen Anfangspunkte habe ich mit einem Punktsymbol gekennzeichnet und die Laufrichtung mit Pfeilen.
Siehe Bild.

Wenn ich aus diesen Polylinien ein CNC-Programm erstelle, wird eine linksherum und die andere rechtsherum gefräst. Das habe ich getestet.

Welchen Denkfehler mache ich, dass es keine Laufrichtung geben soll?

Gruß
Theodor Schönwald

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 19. Nov. 2005 21:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


dpl.txt

 
Hallo Jörn,

es funktioniert auch mit offenen Polylinien.

Aber es hat noch einen Fehler bei geschlossenen Polylinien.
Wenn ich einen Ring zeichne, dann ist es eine Polylinie die aus zwei Bögen besteht und da funktioniert es nicht.
Vieleicht "noch nicht".

Gruß
Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

gmk
Mitglied
Dipl.-Ing.(FH) Vermessung


Sehen Sie sich das Profil von gmk an!   Senden Sie eine Private Message an gmk  Schreiben Sie einen Gästebucheintrag für gmk

Beiträge: 643
Registriert: 23.10.2002

Autocad 2004, WS CadCompass, Normica V2000, WinXP Prof., AMD Athlon 64 X2, 2GB, NVIDIA GeForce 7600GS, HP1055CM

erstellt am: 19. Nov. 2005 21:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Theodor Schoenwald:
Hallo Jörn,

Aber es hat noch einen Fehler bei geschlossenen Polylinien.
Wenn ich einen Ring zeichne, dann ist es eine Polylinie die aus zwei Bögen besteht und da funktioniert es nicht.
Vieleicht "noch nicht".

Gruß
Theodor


hi theodor,

du darfst natürlich nicht die segmentflächen vergessen.
je nach krümmung ergeben sich diese flächen positiv oder negativ (gruppencode 42).


ciao georg

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1661
Registriert: 11.10.2004

Window 8.1
ACAD 2012-2020
CIVIL 2012 - 2020
BricsCAD V14-V20
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050

erstellt am: 20. Nov. 2005 13:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

@ Theodor,

wenn Du einen Ring hast mit zwei Bögen hast, dann hast Du also auch nur zwei Stützpunkte. D.h., es kann in diesem Fall keine Drehrichtung festgelegt werden (meine Meinung). Du könnteset aber mind. einen zusätzlichen Stützpunkt einfügen.

------------------
viele Grüße

Jörn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

andi2050
Mitglied



Sehen Sie sich das Profil von andi2050 an!   Senden Sie eine Private Message an andi2050  Schreiben Sie einen Gästebucheintrag für andi2050

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 20. Nov. 2005 13:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich


Wierumjetzt1.JPG


Wierumjetzt2.JPG

 
Hallo Theodor

Ich habe mir vor einiger Zeit auch schon mal den Kopf darüber zerbrochen, ob eine offene Pline eine Richtung hat.
Dabei bin ich zu dem Schluß gekommen, daß es eine Richtungstendenz geben KANN, aber nicht MUß.
In der ersten Skizze habe ich eine einfache Kontur gezeichnet, bei der es keine eindeutige Richtung gibt.

Bei geschlossenen Konturen bleibt die Orientierung immer gleich, wenn man die Kontur DREHT (z.B 180°).
Wenn man aber die offene Kontur in der Skizze um 180° dreht, entsteht eine Kontur, die genau entgegengesetzt läuft !
Bei dieser Kontur könnte ich auch ohne Rechnerei nicht entscheiden, ob sie CW oder CCW orientiert ist, da die eine
Hälfte CW und die andere Hälfte CCW Läuft. Ich glaub beim Tanzen hättest Du auch so Deine Probleme...

In der zweiten Skizze habe ich die gleiche Kontur mit unterschiedlichen Bogenradien dargstellt.
Im Prinzip müßten doch alle drei Konturen die gleiche Laufrichtung haben.
Mit der Gauß'schen Flächenformel ergeben sich aber 3 verschiendene Ergebnisse (wenn ich das Prinzip der Berechnung
richtig verstanden habe.)

Da Du das für die NC-Programmierung benötigst, ist es m.E. bei offenen Konturen swieso egal, wie rum sie Laufen.
In der Praxis sieht es doch so aus, daß der Benutzer erstmal entscheiden muß, ob er im Gleich- oder Gegenlauf fräsen
will (G41 oder G42).
Bei geschlossenen Konturen ist dann natürlich wichtig, ob es sich um eine Innen- oder Außenkontur handelt.
Damit Dein Programmiersystem die Laufrichtung anpassen kann, brauchst Du dann die Laufrichtung.
Bei offenen Konturen aber muß der Benutzer angeben, auf welcher Seite der Kontur das Werkzeug fahren soll.
Da gibt es ja kein Innen/Außen.
Die Enscheidung, auf welcher Seite das Material abgetragen werden soll, kann Dir bei einer 2D-Zeichung kein Programmiersystem
abnehmen. -> Der Benutzer muß diese Information dem Progrmmiersystem übergeben.

Ich habe das bisher immer so gelöst, daß der Benutzer bei offenen Konturen die Seite grafisch am Bildschirm angibt.

Die Lösung mit der Gaußschen Dreiecksformel ist aber sehr interessant.
Da hätte ich auch gleich mal eine Frage an die Experten:
Liege ich da richtig, wenn man eine Pline mit Bögen hat, muß man erst die Fläche ohne Berücksichtigung der Bulges berechnen,
die Flächen der Bogensegmente unter Berücksichtigung des Vorzeichens addieren.
Ist diese Methode 100%ig ???

Grüße
Andi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1661
Registriert: 11.10.2004

Window 8.1
ACAD 2012-2020
CIVIL 2012 - 2020
BricsCAD V14-V20
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050

erstellt am: 20. Nov. 2005 15:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich


pl_drehrichtung.jpg

 
@andi
Bei der Verwendung der Gaußschen Dreiecksformel werden nur die Dreicksflächen zwischen den Stützpunkten berücksichtigt.

Im angehängten Bild habe ich die berechnete Fläche Schraffiert dargestellt.
Um noch mal auf Drehrichtung von solchen PL's aus Deinem Bild-Beispiel zu kommen: Wenn diese Linien Symmetrisch sind (d.h. der Betrag der negative Fläche ist gleich dem Betrag der positiven Fläche, dann kann keine Aussage über die Drehrichtung getroffen werden. (In meinem Bild das linke Beispiel)
Wenn der Betrag der negativen Flächen größer dem Betrag der positiven ist, dann ist die Drehrichtung im Uhrzeigersinn.
Und ob die Methode 100prozentig ist? Ich würde sagen, wenn man Polylinien mit geraden Liniensegmenten verwendet, dann auf jeden Fall.    Bei der Verwendung von PL's mit Bogensegmenten bin ich mir da dann doch nicht mehr so sicher. Da mach ich mir Gedanken drüber, wenn ich mal groß bin

------------------
viele Grüße

Jörn

[Diese Nachricht wurde von joern bosse am 20. Nov. 2005 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

andi2050
Mitglied



Sehen Sie sich das Profil von andi2050 an!   Senden Sie eine Private Message an andi2050  Schreiben Sie einen Gästebucheintrag für andi2050

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 20. Nov. 2005 17:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Hi Jörn,

erstmal Danke für die Antwort...

Ich hatte gehofft, daß Du schon ein großer bist 

So wie ich die Sache sehe, ist die Laufrichtung einer offenen Pline ziemlicher Käse,
wenn es Konturen ohne Laufrichtung gibt.

Grüße
Andi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 20. Nov. 2005 17:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Georg,

durch Deinen Hinweis den Gruppencode 42 auch abzufragen, funktioniert es nun auch bei einem Ring.

Danke.

Gruß
Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 20. Nov. 2005 17:18    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Jörn,

ich war schon froh, dass es mit der Abfrage von Gruppencode 42, auch bei einem Ring funktioniert.
Aber bei den 3 S die Du im Bild hast, funktioniert es nicht.

Nun geht es darum, auch dafür eine Lösung zu finden oder aufgeben oder warten bis Du ein großer bist.

Gruß
Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 20. Nov. 2005 17:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Andi,

zu Deinen ersten Bild, bei den oberen Konturen müsste G42 angeben, wenn ich außen herum fräsen möchte.
Beim ersten S G41, beim zweiten S G42, wenn ich links von der Kontur fräsen möchte.

Du siehst es gibt schon Unterschiede und mancher Benutzer tut sich schwer damit, deswegen wollte ich ein Programm haben das z.B sagt: "wenn du bei dieser Kontur G41 verwendest, wird auf der linken Seite gefräst."

Gruß

Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

andi2050
Mitglied



Sehen Sie sich das Profil von andi2050 an!   Senden Sie eine Private Message an andi2050  Schreiben Sie einen Gästebucheintrag für andi2050

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 20. Nov. 2005 19:57    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich


dir_pline.txt

 
Hi Theodor

Mit der Laufrichtung bist Du dann aber auch darauf angewiesen, daß der Benutzer die Laufrichtung richtig einschätzt !
Ich könnte z.B bei dem 'S' keine Laufrichtung angeben.

Um dieses Problem zu Lösen hab ich mir ein Tool geschrieben, mit dessen Hilfe kann der Benutzer die Seite am Bildschirm
bestimmen (ähnlich wie bei VERSETZ, jedoch interaktiv).
Dieses Tool gibt mir die Seite in Bezug auf die Laufrichutng der Pline zurück ("RECHTS" oder "LINKS")
Mit der zusätzlichen Information, ob Gleich- oder Gegenlauf gefräst werden soll, kann ich nun bestimmen ob die Pline
umgedreht werden muß oder nicht.

z.B Gleichlauf (G41) und Frässeite links ist die Pline i.O.
z.B Gleichlauf (G41) und Frässeite rechts wird sie Pline automatisch umgereht.

Der Benutzer muß sich also beim Zeichnen der Pline nicht einmal um die Richtung kümmern !

Ich hab Dir einmal das Tool angehängt.
Ist zwar eine alte Version, müßte aber Funktionieren. (Das Original ist ziemlich tief in meine BiBo eingestrickt)
Hoffentlich habe ich alle Funktionen dazu kopiert, damit's auch läuft.

Grüße
Andi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Theodor Schoenwald
Ehrenmitglied



Sehen Sie sich das Profil von Theodor Schoenwald an!   Senden Sie eine Private Message an Theodor Schoenwald  Schreiben Sie einen Gästebucheintrag für Theodor Schoenwald

Beiträge: 1672
Registriert: 16.04.2002

erstellt am: 20. Nov. 2005 21:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Andi,

ich habe verschiedene Elemente gezeichnet und damit probiert.
Alle (fast alle) Elemente gaben Werte zurück mit denen ich eine Auswahl treffen konnte.
Nur mit den "S" hatte ich Probleme und konnte keine eindeutige Auswahl treffen. Nach dem ich es aufgegeben hatte, kam Dein Tool. Das war es!

Vielen Dank!

Nach dem das Problem, mit der Konturrichtung, gelöst ist, habe ich noch einige Fragen:

a)Darf ich das Tool weiter geben?
b)Eventl. auf meiner Seite, bei den kostenlosen Tools,
  veröffentlichen?
Wenn "Ja"
c) Eine Copyright-Zeile einfügen?
Wenn "Ja"
d) Was soll da stehen?

Gruß

Theodor

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

andi2050
Mitglied



Sehen Sie sich das Profil von andi2050 an!   Senden Sie eine Private Message an andi2050  Schreiben Sie einen Gästebucheintrag für andi2050

Beiträge: 107
Registriert: 11.03.2003

erstellt am: 20. Nov. 2005 22:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Theodor Schoenwald 10 Unities + Antwort hilfreich

Hi Theodor

Freut mich, daß Dir das Tool weitergeholfen hat.

Das Tool darfst Du gerne weitergeben etc. (Kann sich eh jeder aus dem  Beitrag ziehen.)
Ein Copyright für solche Codeschnipsel ist m.E. ein ziemlicher Schmarrn.
Ich hab gerade bemerkt, daß die Laufrichtung in dem Code noch nicht korrigiert wird. Das mußt Du Dir noch selber reinstricken. Ich glaub das dürfte für Dich aber kein Problem sein.

ACHTUNG: Die Hilfsfunktion 'is-pt-right' liefert bei Pline's mit Bögen manchmal falsche Werte. Und zwar bei scharfkantigen Außenecken, bei denen 1 oder 2 Bögen beteiligt sind. Wenn man mit dem Cursor 'um das Eck' fährt, 'schnappt' die Richtung in einem kleinen Bereich kurz um. Dies ist aber für die Auswerung in dem Tool nicht wichtig, da die grafisch angezeigte Seite auch so von der Funktion 'get-side' korrekt zurückgegeben wird (wenn RECHTS angezeigt wird, wird auch "RECHTS" zurückgegeben). Es kann nur sein, daß der Cursor z.B. links der Kontur steht, die Anzeige und Rückgabe aber "RECHTS" ergibt.

Nur wenn Du mit der Hilfsfunktion 'is-pt-right' in einem anderen Kontext feststellen willst, ob ein Punkt rechts oder links einer Kontur liegt, ist Vorsicht geboten !

Grüße
Andi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz