| |
![](https://ww3.cad.de/php/image.php?resolution=width:20050) | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
![](https://ww3.cad.de/php/image.php?resolution=width:16196) | PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: ASCII Grid in XYZ File umwandeln (4957 mal gelesen)
|
Rudolfthomas Mitglied Bautechniker
![Schreiben Sie einen Gästebucheintrag für Rudolfthomas](/foren/ubb/pmimages/gbu.gif) Beiträge: 8 Registriert: 01.03.2005
|
erstellt am: 14. Dez. 2005 12:40 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Grüß euch, Folgendes Problem: Ich habe ein ASCII File mit einem Startpunkt und einem definierten Rasterabstand und weiterführend nur mehr Höhendaten (Z-Koordinaten). Mir fehlen die entsprechenden X- und Y-Koordinaten. Diese lassen sich aber auf Grund des bekannten Startpunktes und des Rasterabstandes berechnen. Nur ist das Datenvolumen für eine händische Änferung zu groß und die Abfrage bekomme ich nicht hin um es automatisch zu berechnen. Geschweige denn die Berechnung! Ich habe zwar ein Phyton Script gefunden, aber mit dem fange ich nicht viel an! Bitte um Hilfe! ------------------ RT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
![](/foren/ubb/Admin1.gif) ![](/foren/ubb/Admin2.gif) ![](/foren/ubb/Admin3.gif) ![](/foren/ubb/Admin4.gif) ![](/foren/ubb/Admin5.gif) ![](/foren/ubb/Admin1.gif) ![](/foren/ubb/Admin2.gif) ![](/foren/ubb/Admin3.gif)
![](/foren/avatars/CADmium.gif)
![Schreiben Sie einen Gästebucheintrag für CADmium](/foren/ubb/pmimages/gbu.gif) Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 14. Dez. 2005 12:51 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Rudolfthomas
Willkommen im Forum! Wenn du dich in Lisp einarbeiten willst, empfehle ich dir Mapcars Online Tutorial, wenn du die Aufgabe beauftragen willst, dann such dir jemand, der sich schon mit der Autocadprogrammierung auskennt. Sind ja einige in den Foren unterwegs. Oder hast du schon Algorithmen, Codefragmente, und kommst nur an einigen Stellen nicht weiter? Dann frag konkret. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StephanJP Mitglied CAD-Admin
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für StephanJP](/foren/ubb/pmimages/gbu.gif) Beiträge: 834 Registriert: 09.11.2000
|
erstellt am: 14. Dez. 2005 12:52 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Rudolfthomas
Hallo Rudolf und willkommen im Forum, am besten hängst Du mal einen Teil Deiner ASCII-Datei hier an, damit die Leute hier gemauer erkennen können, in welcher Form das gehen kann. Prinzipiell kann man da bestimmt was machen, aber ob hier jemand sowas fertig in der Schublade liegen hat.... ------------------ ![](/foren/ubb/wink.gif) gruß Stephan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rudolfthomas Mitglied Bautechniker
![Schreiben Sie einen Gästebucheintrag für Rudolfthomas](/foren/ubb/pmimages/gbu.gif) Beiträge: 8 Registriert: 01.03.2005 Intel P4 3,2 GHz 1 GB RAM NVIDIA GeForce 6600 . WinXP prof. Autodesk Civil 3D 2006 SP 2
|
erstellt am: 14. Dez. 2005 13:20 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Hallo, Danke für eure schnellen Antworten; Es geht darum, dass ich folgendes habe: (defun C ktgis( / FileName FileImport ImportRow X Y Z xStart yStart zStart xLen yLen zLen x1Fenster y1Fenster x2Fenster y2Fenster fenster1 fenster2) ; ---- Einstellungen ---------------------------------------------- (setq xStart 1) ; Beginn der x-Koordinate im Datenfile bei Zeichen 1 (setq xLen 11) ; Länge der x-Koordinate im Datenfile 11 Zeichen (setq yStart 13) ; Beginn der y-Koordinate im Datenfile bei Zeichen 13 (setq yLen 11) ; Länge der y-Koordinate im Datenfile 11 Zeichen (setq zStart 25) ; Beginn der z-Koordinate im Datenfile bei Zeichen 25 (setq zLen 6) ; Länge der z-Koordinate im Datenfile 6 Zeichen ; ----------------------------------------------------------------- (alert (strcat " Einlesen von Geländepunkten aus" (chr 13) "Koordinatenlisten im BUNDESMELDENETZ" (chr 13) (chr 13) "Auswahl des Koordinatenfensters in Gauß-Krüger" (chr 13) "(z-Wookdinate ohne 5 Mio. !!!" ) ) (setq fenster1 (getpoint "Bereichsfenster - Links unten : ")) (setq fenster2 (getcorner fenster1 "Bereichsfenster - Reschts oben: ")) (setq x1Fenster (car fenster1)) (setq y1Fenster (cadr fenster1)) (setq x2Fenster (car fenster2)) (setq y2Fenster (cadr fenster2)) (alert (strcat "aktueller Ausschnitt:" (chr 13) " links-unten x=" (rtos x1Fenster) " y=" (rtos y1Fenster) (chr 13) " rechts-oben x=" (rtos x2Fenster) " y=" (rtos y2Fenster) ) ) (setq FileName (getfiled "NÖGIS Datenfile laden" "" "*" 8)) (setq FileImport (open FileName "r")) (setq ImportRow (read-line FileImport)) (while (/= ImportRow "nil") (setq X (read (substr ImportRow xStart xLen))) (setq X (- X 750000)) (setq Y (read (substr ImportRow yStart yLen))) (setq Z (read (substr ImportRow zStart zLen))) ; (print (strcat "x=" (rtos X) " y=" (rtos Y) " z=" (rtos Z))) (if (AND (>= X x1Fenster) (<= X x2Fenster) (>= Y y1Fenster) (<= Y y2Fenster)) (progn (command "_point" "_none" (list X Y Z)) ; (command "_text" "_none" (list X Y Z) 0.5 0 (rtos Z 2 2)) ) ) (setq ImportRow (read-line FileImport)) ) (close FileImport) Nun möchte ich das veränderte Ausgangsfile hernehmen und daraus zuerst die Koordinaten berechnen und dann in weiterer Folge zeichnen! Leider kenn ich die Zeilenabfrage nicht und weiß auch nicht, wie ich definiere, wann nach der letzten Spalte eine neue Zeile abgefragt wird ------------------ RT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.wickel Mitglied Bauingenieur Wasserwirtschaft
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für s.wickel](/foren/ubb/pmimages/gbu.gif) Beiträge: 422 Registriert: 17.12.2001 Bricscad V7 - V11
|
erstellt am: 14. Dez. 2005 13:23 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Rudolfthomas
Hallo Rudolf! Bei so Problemen greife ich gerne auf andere Wege zurück: Ließ die Datei in Excel ein. Dann hast du eine Spalte mit den Höhen. Jetzt kannst du die X und Y Koordinaten einfach erzeugen. Schreibe für die ersten drei bis vier Punkte die Koordinaten mit der Hand. Dann einfach den Bereich markieren und an dem kleinen schwarzen Punkte unten rechts ziehen. Die Koordinaten werden in diesem System weitergeführt (z. B. der X-Wert immer um 5 erhöht, Y-Wert bleibt). Ein bisschen Probieren und schon geht's. Wenn man's öfters macht, dauert dass für ein Raster mit 100x100 Punkten ungefähr 2 Minuten! Jetzt noch entsprechend speicher, Voilá, fertig. ------------------ Grüße aus dem Siegerland, Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rudolfthomas Mitglied Bautechniker
![Schreiben Sie einen Gästebucheintrag für Rudolfthomas](/foren/ubb/pmimages/gbu.gif) Beiträge: 8 Registriert: 01.03.2005
|
erstellt am: 14. Dez. 2005 13:35 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Hallo s.wickel, Mein Vorname ist Thomas, macht aber nichts;
zum Thema: Ich habe ja insgesamt 4 Fils mit je 10.000 x 10.000 Punkten Daher ist es mit Excel nicht mehr möglich; Dazu kommt noch, dass jede Zeile des Textfiles nach 20 Werten einen Zeilenumbruch hat. Normalerweise sollte aber nur eine Zeilenumbruch alle 1000 Werte sein, da ja dann eine weitere Zeile laut Definition sein sollte; Andere Vorschläge?
------------------ RT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
![](/foren/avatars/CAD-Huebner.gif)
![Schreiben Sie einen Gästebucheintrag für CAD-Huebner](/foren/ubb/pmimages/gbu.gif) Beiträge: 9795 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 14. Dez. 2005 14:06 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Rudolfthomas
Zitat: Original erstellt von Rudolfthomas: ...Ich habe ja insgesamt 4 Files mit je 10.000 x 10.000 Punkten
Darf ich anmerken, dass das dann 400 Millionen Punkte in AutoCAD werden! Wer soll das denn sinvoll weiterbearbeiten? Wenn das einfach nur ein Raster mit Höhendaten ist und es soll daraus ggf. noch ein DGM erzeugt werden oder auch nur Dreieckfslächen zur Visualisierung, dann ist AutoCAD total überfordert. Jenseits der Millionengrenze wirds auch mit einen schnellen Rechner unter AutoCAD quälend. Ich würde die Daten zuerst sinnvoll verkleinern (redundante Daten eleminieren). Es werden sicher eine Menge nebeneinanderliegende Rasterpunkte annähernd (im Toleranzbereich) gleiche Höhenwerte aufweisen. Diese kann man ja zuerst eleminieren. Was soll den letztendlich mit den Daten gemacht werden? ------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rudolfthomas Mitglied Bautechniker
![Schreiben Sie einen Gästebucheintrag für Rudolfthomas](/foren/ubb/pmimages/gbu.gif) Beiträge: 8 Registriert: 01.03.2005
|
erstellt am: 14. Dez. 2005 14:15 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Das ist schon klar; aber woher soll ich schon vorher wissen, Höhen ich benötigen werde, wenn ich nicht einmal weiß wo diese sind! Mit den Daten soll ein DGM erstellt werden! ------------------ RT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.wickel Mitglied Bauingenieur Wasserwirtschaft
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für s.wickel](/foren/ubb/pmimages/gbu.gif) Beiträge: 422 Registriert: 17.12.2001 Bricscad V7 - V11
|
erstellt am: 14. Dez. 2005 15:31 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Rudolfthomas
Hallo Thomas! Wenn ich es richtig verstanden habe, liest dein gepostetes Programm Werte aus einer Datei ein und zeichnet einen Punkte. Allerdings enthält die Datei pro Zeile nur einen Punkt mit X Y und Z-Koordinate (im GK-System). Du willst das jetzt für deine Datei anpassen. Problem: Keine X und Y-Koordinaten und die Z-Koordinaten stehen auch noch in einer Zeile. Ich habe dein Programm so angepasst, dass die Zeile genommen wird, ein die einzelnen Bestandteile zerlegt und um die einzelnen Koordinaten um die berechneten X und Y-Werte ergänzt werden. Den Abschnitt mit den wesentlichen Änderungen habe ich zwischen die Sternchenzeilen geschrieben. Die Daten werden einfach eingelesen, bis keine Punkte mehr da sind, egal wieviele Werte in einer Zeile stehen (bei 10.000 könnte es da vielleicht auch zu Problemen kommen, weil ich APPEND verwendet habe, aber ohne hätte ich erst noch mehr forschen müssen, deshlab sind 20 pro Zeile gar nicht schlecht). Code:
(defun C:bktgis ( / liste pkt NCols NROWS XLLCORNER YLLCORNER CELLSIZE str FileName FileImport ImportRow X Y Z xStart yStart zStart xLen yLen zLen x1Fenster y1Fenster x2Fenster y2Fenster fenster1 fenster2) ; ---- Einstellungen ---------------------------------------------- ; (setq xStart 1) ; Beginn der x-Koordinate im Datenfile bei Zeichen 1 ; (setq xLen 11) ; Länge der x-Koordinate im Datenfile 11 Zeichen ; (setq yStart 13) ; Beginn der y-Koordinate im Datenfile bei Zeichen 13 ; (setq yLen 11) ; Länge der y-Koordinate im Datenfile 11 Zeichen ; (setq zStart 25) ; Beginn der z-Koordinate im Datenfile bei Zeichen 25 ; (setq zLen 6) ; Länge der z-Koordinate im Datenfile 6 Zeichen ; ----------------------------------------------------------------- ; (alert "Einlesen von Geländepunkten aus\nKoordinatenlisten im BUNDESMELDENETZ\n\nAuswahl des Koordinatenfensters in Gauß-Krüger\n z-Wookdinate ohne 5 Mio. !!!") (setq fenster1 (getpoint "Bereichsfenster - Links unten : ")) (setq fenster2 (getcorner fenster1 "Bereichsfenster - Reschts oben: ")) (setq x1Fenster (car fenster1)) (setq y1Fenster (cadr fenster1)) (setq x2Fenster (car fenster2)) (setq y2Fenster (cadr fenster2)) (alert (strcat "aktueller Ausschnitt:\nlinks-unten x=" (rtos x1Fenster) " y=" (rtos y1Fenster) "\n rechts-oben x=" (rtos x2Fenster) " y=" (rtos y2Fenster) ) ) (setq FileName (getfiled "NÖGIS Datenfile laden" "" "*" 8)) ;(setq FileName "c:\\temp\\auszug.txt") (setq FileImport (open FileName "r")) ;*********************************************************************************************************************************** ;Ab hier wesentlich geändert (setq ImportRow (read-line FileImport)) ;Werte aus Dateikopf lesen (setq NCOLS (atoi (substr importrow 7))) (setq ImportRow (read-line FileImport)) (setq NROWS (atoi (substr importrow 7))) (setq ImportRow (read-line FileImport)) (setq XLLCORNER (atof (substr importrow 11))) (setq ImportRow (read-line FileImport)) (setq YLLCORNER (atof (substr importrow 11))) (setq ImportRow (read-line FileImport)) (setq CELLSIZE (atof (substr importrow 10))) (setq ImportRow (read-line FileImport)) (setq ImportRow (read-line FileImport)) (Setq X XLLCORNER) (Setq Y YLLCORNER) (while (/= ImportRow ()) ;Für jede Datenzeile (setq liste ()) ;Liste auf NIL setzen (foreach str (str-tok ImportRow " ") (setq liste (append liste (list (atof str))))) ;Zeile in einzelne Elemente zerlegen (foreach pkt liste ;für jeden Punkt ;(command "_point" "_none" (list X Y pkt)) (entmake (list '(0 . "POINT") (cons 10 (list X Y pkt)))) (setq x (+ x CELLSIZE)) (if (> X (+ XLLCORNER (* (1- NCOLS) CELLSIZE))) (progn (Setq X XLLCORNER) (Setq Y (+ y CELLSIZE)) ) ) ) (setq ImportRow (read-line FileImport)) ) ;*********************************************************************************************************************************** (close FileImport) )
Hoffentlich hilft es dir! Ach so: Es wird eine Funktion von MAPCAR verwendet: Code:
(defun str-tok(str c / tmp) ;teilt den String str an den Stellen, an denen das Zeichen c auftritt (auch mehrfach) (if(/= str "") (progn (setq tmp(str-div str c)) (append(list(car tmp))(str-tok(cadr tmp)c)) ) ) )(defun str-div(str c / i l ) ;teilt den String str an der Stelle in zwei Teile, an dem das Zeichen c erstmals auftritt (setq i 1) (setq l(strlen str)) (while(and(<= i l)(/=(substr str i 1)c)) (setq i(1+ i)) ) (list(substr str 1(1- i))(substr str(1+ i))) )
Wenn's nicht klappt, melde dich! ------------------ Grüße aus dem Siegerland, Stefan [Diese Nachricht wurde von s.wickel am 14. Dez. 2005 editiert.] [Diese Nachricht wurde von s.wickel am 14. Dez. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rudolfthomas Mitglied Bautechniker
![Schreiben Sie einen Gästebucheintrag für Rudolfthomas](/foren/ubb/pmimages/gbu.gif) Beiträge: 8 Registriert: 01.03.2005
|
erstellt am: 14. Dez. 2005 17:50 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Hallo, Herzlichen Dank für die promte Hilfe; Programm läuft, so dass ich gar nicht mal mehr auf dem Rechner arbeiten kann, weil wie prognostiziert die Datenmenge ein Wahnsinn ist!! Habe es noch ein wenig verändert (besser gesagt unnötige Dinge entfernt!) Siehe ab hier: (defun C:dgm ( / liste pkt NCols NROWS XLLCORNER YLLCORNER CELLSIZE str FileName FileImport ImportRow X Y Z) (setq FileName (getfiled "Datenfile laden" "" "*" 8)) ;(setq FileName "c:\\temp\\auszug.txt") (setq FileImport (open FileName "r")) (setq ImportRow (read-line FileImport)) ;Werte aus Dateikopf lesen (setq NCOLS (atoi (substr importrow 7))) (setq ImportRow (read-line FileImport)) (setq NROWS (atoi (substr importrow 7))) (setq ImportRow (read-line FileImport)) (setq XLLCORNER (atof (substr importrow 11))) (setq ImportRow (read-line FileImport)) (setq YLLCORNER (atof (substr importrow 11))) (setq ImportRow (read-line FileImport)) (setq CELLSIZE (atof (substr importrow 10))) (setq ImportRow (read-line FileImport)) (setq ImportRow (read-line FileImport))
(Setq X XLLCORNER) (Setq Y YLLCORNER) (while (/= ImportRow ()) ;Für jede Datenzeile (setq liste ()) ;Liste auf NIL setzen (defun str-tok(str c / tmp) ;teilt den String str an den Stellen, an denen das Zeichen c auftritt (auch mehrfach) (if(/= str "") (progn (setq tmp(str-div str c)) (append(list(car tmp))(str-tok(cadr tmp)c)) ) ) ) (defun str-div(str c / i l ) ;teilt den String str an der Stelle in zwei Teile, an dem das Zeichen c erstmals auftritt (setq i 1) (setq l(strlen str)) (while(and(<= i l)(/=(substr str i 1)c)) (setq i(1+ i)) ) (list(substr str 1(1- i))(substr str(1+ i))) ) (foreach str (str-tok ImportRow " ") (setq liste (append liste (list (atof str))))) ;Zeile in einzelne Elemente zerlegen (foreach pkt liste ;für jeden Punkt ;(command "_point" "_none" (list X Y pkt)) (entmake (list '(0 . "POINT") (cons 10 (list X Y pkt)))) (setq x (+ x CELLSIZE)) (if (> X (+ XLLCORNER (* (1- NCOLS) CELLSIZE))) (progn (Setq X XLLCORNER) (Setq Y (+ y CELLSIZE)) ) ) ) (setq ImportRow (read-line FileImport)) ) (close FileImport) ) Nochmals recht herzlichen Dank!!
------------------ RT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.wickel Mitglied Bauingenieur Wasserwirtschaft
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für s.wickel](/foren/ubb/pmimages/gbu.gif) Beiträge: 422 Registriert: 17.12.2001 Bricscad V7 - V11
|
erstellt am: 15. Dez. 2005 08:35 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Rudolfthomas
Guten Morgen Thomas! Freut mich dass es läuft . Bitte kontrolliere, ob das Ergebnis plausibel ist und nicht so Sachen passiert sind wie: - X und Y vertauscht - Immer einen X-Wert zuviel eingelesen (oder zu wenig), der würde dann nämlich am Anfang der nächsten Reihe eingefügt. Bitte genau kontrollieren, sonst hast du 'ne Menge Ärger am Hals . ------------------ Grüße aus dem Siegerland, Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rudolfthomas Mitglied Bautechniker
![Schreiben Sie einen Gästebucheintrag für Rudolfthomas](/foren/ubb/pmimages/gbu.gif) Beiträge: 8 Registriert: 01.03.2005
|
erstellt am: 15. Dez. 2005 09:21 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Hallo s.wickel, Es ist tatsächlich so, dass etwas daran faul ist!
Nur weiß ich nicht wo der Fehler liegt. Habe ein kleines File selbst erstellt, das 9 Höhenpunkte enthält und habe versucht, dieses mittels Lisp auszulesen. einwandfrei!! Möglicherweise hat das Ausgangsfile die höhen in Spalten und nicht in Zeilen; dann ist das Lisp nämlich unbrauchbar! ------------------ RT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.wickel Mitglied Bauingenieur Wasserwirtschaft
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für s.wickel](/foren/ubb/pmimages/gbu.gif) Beiträge: 422 Registriert: 17.12.2001 Bricscad V7 - V11
|
erstellt am: 15. Dez. 2005 09:33 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Rudolfthomas
Wenn du die komplette Datendatei mal mailen könntest, könnte ich genauer nachsehen! Wenn die Höhen nicht durch Leerzeichen sondern durch Tabs getrennt sind lässt sich schnell was machen. Aber dann dürfte es vor Fehlermeldungen nur so hageln. Wenn das Format der Datei kompliziert ist würde eine Umformatierung "vonn Hand" (mit einem guten Texteditor) vielleicht Abhilfe schaffen. ------------------ Grüße aus dem Siegerland, Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.wickel Mitglied Bauingenieur Wasserwirtschaft
![](/foren/ubb/star3.gif) ![](/foren/ubb/star3.gif)
![Schreiben Sie einen Gästebucheintrag für s.wickel](/foren/ubb/pmimages/gbu.gif) Beiträge: 422 Registriert: 17.12.2001 Bricscad V7 - V11
|
erstellt am: 15. Dez. 2005 09:56 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif) Nur für Rudolfthomas
Ich hab's ausprobiert mit einer selbsterstellten Datei. Zur Kontrolle habe ich auf dem Gelände 3d-Polylinie gezeichnet (vor dem einlesen). Das Ergebnis im Anhang. Die Roten Linien sind nur zur Verdeutlichung des Geländes. Die Eingabedatei muss genau dem format entsprechen, wie die von dir gepostete "Auszug.txt"!! ------------------ Grüße aus dem Siegerland, Stefan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rudolfthomas Mitglied Bautechniker
![Schreiben Sie einen Gästebucheintrag für Rudolfthomas](/foren/ubb/pmimages/gbu.gif) Beiträge: 8 Registriert: 01.03.2005
|
erstellt am: 15. Dez. 2005 12:52 <-- editieren / zitieren --> Unities abgeben: ![1 Unity (wenig hilfreich, aber dennoch)](/foren/ubb/z1.gif) ![2 Unities](/foren/ubb/z2.gif) ![3 Unities](/foren/ubb/z3.gif) ![4 Unities](/foren/ubb/z4.gif) ![5 Unities](/foren/ubb/z5.gif) ![6 Unities](/foren/ubb/z6.gif) ![7 Unities](/foren/ubb/z7.gif) ![8 Unities](/foren/ubb/z8.gif) ![9 Unities](/foren/ubb/z9.gif)
Hallo s.wickel, Das Lisp Programm stimmt ja wie gesagt! vielleicht sind x und y vertauscht, es kann aber auch sein, dass die Höhen in Spalten und nicht in Zeilen ausgelesen werden, doch dafür habe ich das Lisp bereits abgeändert! Am Lisp dürfte es anscheinend nicht liegen! Ich weiß nicht mehr weiter, aber das Lisp-Thema ist auf jeden Fall gelöst! mfG, Thomas ------------------ RT Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |