| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: wo ist der fehler? (459 mal gelesen)
|
GottesGeschenk Mitglied Bauingenieur
Beiträge: 229 Registriert: 23.02.2007 winxp pro sp3 / intel p4 3GHz / 2,5GB RAM / CAD 2011
|
erstellt am: 08. Nov. 2010 14:08 <-- editieren / zitieren --> Unities abgeben:
hallo zusammen kann mir bitte jemand sagen wo in dieser zeile der fehler ist? (setq NN_höhen (mapcar '(lambda (x) (mapcar '(lambda (y) (list (- (+ refhöhe (cadr y)) (nth 1 refp_wk))) ) x ) ) schnittpunkt_koordinaten_liste ) ) vielen dank schonmal an die profis Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 08. Nov. 2010 14:18 <-- editieren / zitieren --> Unities abgeben: Nur für GottesGeschenk
|
GottesGeschenk Mitglied Bauingenieur
Beiträge: 229 Registriert: 23.02.2007 winxp pro sp3 / intel p4 3GHz / 2,5GB RAM / CAD 2011
|
erstellt am: 08. Nov. 2010 14:26 <-- editieren / zitieren --> Unities abgeben:
|
GottesGeschenk Mitglied Bauingenieur
Beiträge: 229 Registriert: 23.02.2007 winxp pro sp3 / intel p4 3GHz / 2,5GB RAM / CAD 2011
|
erstellt am: 08. Nov. 2010 14:30 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 08. Nov. 2010 14:32 <-- editieren / zitieren --> Unities abgeben: Nur für GottesGeschenk
|
GottesGeschenk Mitglied Bauingenieur
Beiträge: 229 Registriert: 23.02.2007 winxp pro sp3 / intel p4 3GHz / 2,5GB RAM / CAD 2011
|
erstellt am: 08. Nov. 2010 14:50 <-- editieren / zitieren --> Unities abgeben:
|
GottesGeschenk Mitglied Bauingenieur
Beiträge: 229 Registriert: 23.02.2007 winxp pro sp3 / intel p4 3GHz / 2,5GB RAM / CAD 2011
|
erstellt am: 08. Nov. 2010 14:52 <-- editieren / zitieren --> Unities abgeben:
|
GottesGeschenk Mitglied Bauingenieur
Beiträge: 229 Registriert: 23.02.2007 winxp pro sp3 / intel p4 3GHz / 2,5GB RAM / CAD 2011
|
erstellt am: 08. Nov. 2010 14:57 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 08. Nov. 2010 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für GottesGeschenk
|
GottesGeschenk Mitglied Bauingenieur
Beiträge: 229 Registriert: 23.02.2007 winxp pro sp3 / intel p4 3GHz / 2,5GB RAM / CAD 2011
|
erstellt am: 08. Nov. 2010 15:20 <-- editieren / zitieren --> Unities abgeben:
tut mir leid das ich am anfang das problem nicht ganz erklärt habe. es geht darum schnittpunkte von objekten (es sollten 8 polylinien auf 8 verschiedenen layern liegen) an bestimmten koordinaten zu finden. wenn ein objekt nicht vorhanden ist soll nil ausgegeben werden. Das ist die bereits berechnete koordinatenliste der schnittpunkte. (setq schnittpunkt_koordinaten_liste '(nil;1.objekt ((68.2957 88.1625) ;2.objekt (70.7957 88.0775) (74.2957 87.9588) ) ((68.2957 88.1744) ;3.objekt (70.7957 88.1426) (74.2957 88.1225) ) ((68.2957 88.374) ;4.objekt (70.7957 88.3771) (74.2957 88.3813) ) ((68.2957 88.3842) ;5.objekt (70.7957 88.3906) (74.2957 88.3994) ) ((68.2957 87.4415) ;6.objekt (70.7957 87.4446) (74.2957 87.4488) ) nil ;7.objekt nil ;8.objekt ) ) lasse ich jetzt den code (setq NN_höhen_an_den_stationen (mapcar '(lambda (x) (mapcar '(lambda (y) (list (- (+ refhöhe (cadr y)) (nth 1 refp_wk))) ) x ) ) schnittpunkt_koordinaten_liste ) )
soll als ergebnis das herauskommen (das sind nur die y-werte mit der referenzhöhe und dem referenzpunkt korrigiert) '(nil ((102.162) (102.078) (101.959)) ((102.174) (102.143) (102.123)) ((102.374) (102.377) (102.381)) ((102.384) (102.391) (102.399)) ((101.442) (101.445) (101.449)) nil nil )
das komische dabei ist halt wie schon gesagt, daß es in einer datei mal läuft und in einer anderen nicht. ich hoffe ich habe mich jetzt etwas besser ausgedrückt. vielen dank an alle die sich wegen mir den kopf zerbrechen. gruß theo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 222 Registriert: 22.08.2006
|
erstellt am: 08. Nov. 2010 15:46 <-- editieren / zitieren --> Unities abgeben: Nur für GottesGeschenk
hallo theo, wenn ich mir dein bild liste.jpg anschaue, scheint es ein problem mit deiner funktion zu geben, die die einzelnen vertices der polylinien ausliest. die 3. subliste soll so ganz bestimmt nicht sein. schau da mal nach. gruss marco ------------------ Marco Heuer www.arc-aachen.de Airport Office Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GottesGeschenk Mitglied Bauingenieur
Beiträge: 229 Registriert: 23.02.2007 winxp pro sp3 / intel p4 3GHz / 2,5GB RAM / CAD 2011
|
erstellt am: 08. Nov. 2010 15:57 <-- editieren / zitieren --> Unities abgeben:
hallo Marco danke für den hinweis. keine ahnung wieso die da so aussieht. hier ein neues bild wo alles in ordnung ist (objekte auf layer 1,2,3,7,8 haben keine schnittpunkt bzw. sind gar nicht vorhanden) gruß theo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1734 Registriert: 11.10.2004 Window 10 ACAD 2021 CIVIL 2021 BricsCAD V14-V22 Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz 16.0GB RAM NVIDIA GeForce GTX 1050<P>
|
erstellt am: 09. Nov. 2010 07:42 <-- editieren / zitieren --> Unities abgeben: Nur für GottesGeschenk
Hallo Theo, ich glaube, dann hat CADmium doch schon die richtige Lösung, zumindestens bezogen auf das Bild "liste.jpg". Wenn das aber nicht die richtige Liste ist, sondern entweder eine Koordinate oder ein nil enthalten, dann muß anstelle des vl-remove-if nur ein if verwendet werden: Code:
(defun c:test ( / NN_HÖHEN REFHÖHE REFP_WK SCHNITTPUNKT_KOORDINATEN_LISTE SUBLIST X) (setq schnittpunkt_koordinaten_liste '(((1 2 3) (5 6 7) (8 9 10)) ((11 12 13) (15 16 17) (18 19 20)) ((21 22 23) (25 26 27) (28 29 30)) nil ) ) (setq refp_wk '(5 6 0)) (setq Refhöhe 20) (setq NN_Höhen (mapcar '(lambda (SUBLIST) (mapcar '(lambda (X) (if X (list (car X) (- (+ refhöhe (cadr X)) (cadr refp_wk)) (caddr X) ) ) ) SUBLIST ) ) schnittpunkt_koordinaten_liste ) ) )
------------------ viele Grüße Jörn http://www.bosse-engineering.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
neurosis Mitglied dipl.ing.
Beiträge: 222 Registriert: 22.08.2006
|
erstellt am: 09. Nov. 2010 08:20 <-- editieren / zitieren --> Unities abgeben: Nur für GottesGeschenk
hallo joern, der code von cadmium umgeht den fehler in der liste, mehr aber auch nicht. wenn es den fehlerhaften aufbau der liste (in dem fall 3. unterliste) nicht gaebe, wuerde der anfaengliche code funktionieren. deshalb ist der fehler im aufbau der koordinatenliste zu suchen und nicht in diesem code. ansonsten muesstest du in jeder funktion, die diese koordinatenliste weiterverarbeiten sollte, die gleichen fehlerabfangroutinen / fehlerumgehungen einbauen. und das sollte in meinen augen nicht sinn und zweck sein. deshalb mein hinweis auf die funktion, die diese koordinatenliste erzeugt; dort steckt meines erachtens der fehler. gruss marco ------------------ Marco Heuer www.arc-aachen.de Airport Office Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 09. Nov. 2010 08:29 <-- editieren / zitieren --> Unities abgeben: Nur für GottesGeschenk
|
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1734 Registriert: 11.10.2004 Window 10 ACAD 2021 CIVIL 2021 BricsCAD V14-V22 Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz 16.0GB RAM NVIDIA GeForce GTX 1050<P>
|
erstellt am: 09. Nov. 2010 08:40 <-- editieren / zitieren --> Unities abgeben: Nur für GottesGeschenk
Hallo Marco, naja, dann müßte man wissen, ob die Listen-erzeugende Funktion noch mehr Ungereimtheiten rauswirft oder ob es bei den bisherigen 3 Fällen bleibt: 1. Korrekte Liste mit Koordinaten 2. nil 3. Liste mit nil's Wenn es bei den 3 Fällen bleibt, dann hätte ich keine Probleme damit für 2. ein IF 3. ein VL-REMOVE-IF zu verwenden, weil die erzeugende Funktion ja scheinbar ein bißchen komplexer ist als dieses Fragment. Aber vom Prinzip hast Du Recht, man sollte das Übel bei der Wurzel packen ;-)
------------------ viele Grüße Jörn http://www.bosse-engineering.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |