| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Probleme mit (polar ... ) (1093 mal gelesen)
|
Oberpeilsteiner Florian Mitglied Student - Maschinenbau
Beiträge: 10 Registriert: 22.06.2011 Intel Core 2 @ 2.1 GHz 2 GB RAM NVIDIA GeForce 8400M G AutoCAD 2010 Deutsch Version 3
|
erstellt am: 22. Jun. 2011 13:46 <-- editieren / zitieren --> Unities abgeben:
Hallo, das ist mein erster Beitrag auf CAD.DE - ich hoffe ich mache keine (all zu großen) Fehler bei der Fragestellung: In meinem LISP-Programm wird eine Liste von Anweisungen in die Gruppencodes 10 und 42 einer Polylinie umgewandelt. Für die Ermittlung des Mittelpunktes eines Kreisbogens verwende ich den Anfangs- und Endpunkt der letzten Linie und den Endpunkt des Kreisbogens. In den meisten Fällen funktioniert der folgende Code.
Code:
(setq line (list "LINIE" 800 0 0 0 0)) ;aktueller Punkt (setq lastline (list "BOGEN" 800 -800 0 0 0)) ;letzter Punkt (setq lastlastline (list "PLBLOCK" 0 -800 0 0 27)) ;vorletzter Punkt(setq ze (inters (list (nth 1 lastline) (nth 2 lastline) ) (polar (list (nth 1 lastline) (nth 2 lastline)) (+ (/ pi 2) (angle (list (nth 1 lastlastline) (nth 2 lastlastline)) (list (nth 1 lastline) (nth 2 lastline)))) (distance (list (nth 1 line) (nth 2 line)) (list (nth 1 lastline) (nth 2 lastline))) ) (polar (list (nth 1 lastline) (nth 2 lastline)) (angle (list (nth 1 lastline) (nth 2 lastline)) (list (nth 1 line) (nth 2 line))) (/ (distance (list (nth 1 lastline) (nth 2 lastline)) (list (nth 1 line) (nth 2 line))) 2) ) (polar (polar (list (nth 1 lastline) (nth 2 lastline)) (angle (list (nth 1 lastline) (nth 2 lastline)) (list (nth 1 line) (nth 2 line))) (/ (distance (list (nth 1 lastline) (nth 2 lastline)) (list (nth 1 line) (nth 2 line))) 2) ) (+ (/ pi 2) (angle (list (nth 1 lastline) (nth 2 lastline)) (list (nth 1 line) (nth 2 line))) ) (distance (list (nth 1 lastline) (nth 2 lastline)) (list (nth 1 line) (nth 2 line))) ) nil ))
Obwohl ich beim Prüfen des letzten Punktes der "inters" Funtkion nur eine "Leere Eingabe" erhalte, wird das Ergebnis richtig errechnet. Verwende ich jedoch diese Punkte:
Code:
(setq line (list "LINIE" -400 0 0 0 0)) (setq lastline (list "BOGEN" 400 0 0 0 180)) (setq lastlastline (list "PLBLOCK" 400 0 0 0 27))
Ist auch das Ergebnis "nil" Hatte irgend wer bereits dieses Problem oder weiß einen Rat? Danke im voraus Florian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 22. Jun. 2011 15:08 <-- editieren / zitieren --> Unities abgeben: Nur für Oberpeilsteiner Florian
Servus, ich habe mir jetzt nicht alles angesehen sondern nur das INTERS samt Ergebnis, jetzt muß ich erst mal sagen das ich INTERS keinen Fehler nachsagen kann, zumindest wenn ich berücksichtige mit wieviel Nachkommastellen gerechnet werden kann. Zudem konnte ich mit deinem folgenden Satz nichts anfangen kann: "Obwohl ich beim Prüfen des letzten Punktes der "inters" Funtkion nur eine "Leere Eingabe" erhalte, wird das Ergebnis richtig errechnet." Was bekommt du wo ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberpeilsteiner Florian Mitglied Student - Maschinenbau
Beiträge: 10 Registriert: 22.06.2011 Intel Core 2 @ 2.1 GHz 2 GB RAM NVIDIA GeForce 8400M G AutoCAD 2010 Deutsch Version 3
|
erstellt am: 22. Jun. 2011 15:22 <-- editieren / zitieren --> Unities abgeben:
Ich habe vor: Code:
(polar (polar (list (nth 1 lastline) (nth 2 lastline)) (angle (list (nth 1 lastline) (nth 2 lastline)) (list (nth 1 line) (nth 2 line))) (/ (distance (list (nth 1 lastline) (nth 2 lastline)) (list (nth 1 line) (nth 2 line))) 2) ) (+ (/ pi 2) (angle (list (nth 1 lastline) (nth 2 lastline)) (list (nth 1 line) (nth 2 line))) ) (distance (list (nth 1 lastline) (nth 2 lastline)) (list (nth 1 line) (nth 2 line))) )
einen Haltepunkt gesetzt, diesen Teil dann markiert und wollte dann mit rechter Maustaste Prüfen das Ergebnis ansehen (bzw. ob eine Fehlermeldung erscheint). Aber eigenartigerweise bekomme ich weder ein Ergebnis noch eine Fehlermeldung, sondern einfach nur den Dialog mit einem leeren Feld. Da müsste doch meiner Meinung nach das Ergebnis stehen. Obwohl hier für keine meiner Werte ein Ergebnis angezeigt wird, funktioniert es für die ersten Werte (von oben), verwende ich die zweiten, bekomme erzeugt dieser Teil nil mfg Florian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 22. Jun. 2011 16:19 <-- editieren / zitieren --> Unities abgeben: Nur für Oberpeilsteiner Florian
Also wenn ich mich wirklich nur auf den Codeschnipsel beziehe, vor den man sich dann noch (setq line (list "LINIE" 800 0 0 0 0)) ;aktueller Punkt (setq lastline (list "BOGEN" 800 -800 0 0 0)) ;letzter Punkt (setq lastlastline (list "PLBLOCK" 0 -800 0 0 27)) oder (setq line (list "LINIE" -400 0 0 0 0)) (setq lastline (list "BOGEN" 400 0 0 0 180)) (setq lastlastline (list "PLBLOCK" 400 0 0 0 27)) denken muß, dann kann ich deine Aussage nicht bestätigen. Wenn ich den Schnipsel Prüfen lasse dann kommt entweder (0.0 -400.0) oder (-1.46953e-013 -800.0) heraus ! EDIT: mit deinem 2.Versuch: Die errechneten 4 Punkte ergeben bei deiner Berechnung 2 parallele Linien, zumindest mit der Genauigkeit mit der man rechnen kann, daher ist "nil" vom INTERS auch korrekt, ob deine Berechnung der 4 Punkte stimmt habe ich nicht geprüft. ------------------ CAD.de System-Angaben - CAD on demand - User:FAQ(Acad) [Diese Nachricht wurde von cadffm am 22. Jun. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Oberpeilsteiner Florian Mitglied Student - Maschinenbau
Beiträge: 10 Registriert: 22.06.2011 Intel Core 2 @ 2.1 GHz 2 GB RAM NVIDIA GeForce 8400M G AutoCAD 2010 Deutsch Version 3
|
erstellt am: 22. Jun. 2011 16:37 <-- editieren / zitieren --> Unities abgeben:
Hab jetzt das ganze noch mal überprüft und du hast recht. Da hab ich wohl den Wald vor lauter Bäumen nicht mehr gesehen. Das gemeine daran ist auch dass das anscheinend der einzige Punkt ist an dem die Berechnung des Zentrumspunktes auf diese Weise nicht funktioniert. (der Anfangspunkt der letzten Linie und der Endpunkt des Bogens sind identisch, dadurch entstehen die Parallelen) Danke für die rasche Antwort und ich Hoffe das nächste mal entdecke ich so einen Fehler bevor ich hier danach Frage mfg Florian Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 224 Registriert: 22.08.2006
|
erstellt am: 22. Jun. 2011 17:13 <-- editieren / zitieren --> Unities abgeben: Nur für Oberpeilsteiner Florian
|
Oberpeilsteiner Florian Mitglied Student - Maschinenbau
Beiträge: 10 Registriert: 22.06.2011 Intel Core 2 @ 2.1 GHz 2 GB RAM NVIDIA GeForce 8400M G AutoCAD 2010 Deutsch Version 3
|
erstellt am: 28. Jun. 2011 09:16 <-- editieren / zitieren --> Unities abgeben:
|