| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: import von messdaten in adt2002 (5492 mal gelesen)
|
ibaf Mitglied Student
Beiträge: 4 Registriert: 24.10.2003
|
erstellt am: 24. Okt. 2003 18:49 <-- editieren / zitieren --> Unities abgeben:
|
daiz Mitglied
Beiträge: 224 Registriert: 06.09.2003 SYSTEMINFO: WinXP, Map 3d 2006
|
erstellt am: 24. Okt. 2003 18:59 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
Hallo, das ist mittels eines kleines Lisps kein Problem, ich mache es selber so. Du müßtest mal eine Beispiel-Datei posten, damit die Formatierung klar ist. Dann müßte noch gekärt werden, was bei welchem Punkt passieren soll (alles einzelne Punkte, sollen Linien gezeichnet werden, Blöcke eingefügt werden...) ------------------ Daiz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
matgehrke Mitglied Landschaftsarchitekt
Beiträge: 651 Registriert: 31.08.2003 - ACAD 2015
|
erstellt am: 24. Okt. 2003 20:28 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
hallo. bei bedarf kann ich dir das programm dataflor survey mailen. läuft 30 tage als voll funktionsfähige demo version. damit können alle daten ohne probleme eingelesen werden. handelt es sich um reine punktdaten (x/y/z) kannst du auch landxpert dtm runterladen (www.lansxpert.de).läuft 15 tage als voll funktionsfähige demo version. ------------------ herzliche grüße matthias aus göttingen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibaf Mitglied Student
Beiträge: 4 Registriert: 24.10.2003
|
erstellt am: 27. Okt. 2003 11:13 <-- editieren / zitieren --> Unities abgeben:
Hallo daiz, im anhang die datei hof.pkt. die datei kann mit dem editor geöffnet werden. an erster stelle steht eine durchlaufende meßpunktnummer, danach die punktbezeichnung und dahinter stehen die koordinaten in x,y,z-richtung. die einzelnen punkte sollen einfach als punktwolke dargestellt werden. p.s. eine diplomandin hat 3000(!) meßpunkte zu fuß eingegeben, da es für acad an unserer fh auch keine applikation wie land-development etc. gibt. es wäre daher eine enorme zeitersparnis, wenn das ganze über ein tool etwas einfacher geht. ------------------ fs Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ibaf Mitglied Student
Beiträge: 4 Registriert: 24.10.2003
|
erstellt am: 27. Okt. 2003 11:17 <-- editieren / zitieren --> Unities abgeben:
|
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 27. Okt. 2003 11:52 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
Hallo ibaf, folgende Zeilen lesen dir die Punktdatei ein. Solltest dann noch den Ort der Punkte-Datei entsprechend anpassen.
Code:
(defun c:txtaspkt (/ file zeile) (setq file (open (findfile "c:\\temp\\punkte.txt") "r") ) (while (setq zeile (read-line file)) (command "_.POINT" (cddadr (read(strcat "'(" zeile ")")))) );while )
Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD NEU: AutoLISP- Projektschulung NEU: Praxisorientierte Schulungen und Workshops durch die bekannten CAD.de Moderatoren AutoCAD, AutoCAD LT, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daiz Mitglied
Beiträge: 224 Registriert: 06.09.2003 SYSTEMINFO: WinXP, Map 3d 2006
|
erstellt am: 27. Okt. 2003 13:53 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
Hallo, ich habe es bei mir so ähnlich gelöst, wie Holger. Da meine Text-Dateien je nach Projekt in einem anderen Verzeichnis liegen und einen anderen Namen haben, öffnet sich bei mir eine Verzeichnisliste und die entsprechende Datei kann ausgewählt werden. Es muß also nicht für jede Datei das Lisp umgeschrieben werden: (defun c:einl (/ file text zeile) (setq file (getfiled "Verzeichnisliste" "" "" 2)) (setq text (open file "r")) (while (setq zeile (read-line file1)) (command "_.POINT" (cddadr (read(strcat "'(" zeile ")")))) );while ) @ibaf: Die 2.Spalte könnte natürlich auch noch irgenwo für verwendet werden, falls gewünscht.
------------------ Daiz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 27. Okt. 2003 14:05 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
Hallo Daiz, in deinem Code ist ein Fehler (file1 musste text heißen). Ich habe diesen korrigiert und das ganze etwas erweitert/verbessert. (defun c:einl (/ file zeile) (setq file (getfiled "Verzeichnisliste" "" "" 2)) (if file (progn (setq file (open file "r")) (while (setq zeile (read-line file)) (command "_.POINT" (cddadr (read(strcat "'(" zeile ")")))) );while (close file) ) (alert "Keine Date gewählt!") ) ) Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD NEU: AutoLISP- Projektschulung NEU: Praxisorientierte Schulungen und Workshops durch die bekannten CAD.de Moderatoren AutoCAD, AutoCAD LT, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daiz Mitglied
Beiträge: 224 Registriert: 06.09.2003 SYSTEMINFO: WinXP, Map 3d 2006
|
erstellt am: 27. Okt. 2003 14:13 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
|
ibaf Mitglied Student
Beiträge: 4 Registriert: 24.10.2003
|
erstellt am: 27. Okt. 2003 17:14 <-- editieren / zitieren --> Unities abgeben:
|
Khatinka Mitglied
Beiträge: 64 Registriert: 10.07.2003 ACAD 2000 Windows 2000
|
erstellt am: 27. Okt. 2003 17:51 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
|
Khatinka Mitglied
Beiträge: 64 Registriert: 10.07.2003 ACAD 2000 Windows 2000
|
erstellt am: 27. Okt. 2003 17:57 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
...und was müsste man in der Lisp verändern, wenn man die 2. Spalte (in dem Fall "Punktbezeichnung")nicht hat-also, wenn in der 2.Spalte direkt der X-Wert steht? ------------------ Gruß, Khatinka Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 27. Okt. 2003 19:38 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
Hallo CADinka ehh sorry Khatinka deine 2 Fragen zusammen gefasst sieht dann so aus:
Code:
(defun c:einlt (/ file zeile) (setq file (getfiled "Verzeichnisliste" "" "" 2)) (if file (progn (setq file (open file "r")) (while (setq zeile (read-line file)) (create:simplePOINT (cdadr (read(strcat "'(" zeile ")")))) (create:simpleTEXT (cdadr (read(strcat "'(" zeile ")"))) (itoa(caadr (read(strcat "'(" zeile ")"))))) );while (close file) ) (alert "Keine Datei gewählt!") ) ) (defun create:simpleTEXT (PKT TXT /) (entmake (list '(0 . "TEXT") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(8 . "0") '(100 . "AcDbText") (cons 10 PKT) '(40 . 2.5) (cons 1 TXT) '(50 . 0.0) '(41 . 1.0) '(51 . 0.0) '(7 . "Standard") '(71 . 0) '(72 . 0) '(11 0.0 0.0 0.0) '(210 0.0 0.0 1.0) '(100 . "AcDbText") '(73 . 0) ) ) ) (defun create:simplePOINT (PKT /) (entmake (list '(0 . "POINT") '(100 . "AcDbEntity") '(67 . 0) '(410 . "Model") '(8 . "0") '(100 . "AcDbPoint") (cons 10 PKT) '(210 0.0 0.0 1.0) '(50 . 0.0) ) ) )
Bei Fragen ... Grüße Holger ------------------ Holger Brischke (defun - Lisp over night! AutoLISP-Programmierung für AutoCAD NEU: AutoLISP- Projektschulung NEU: Praxisorientierte Schulungen und Workshops durch die bekannten CAD.de Moderatoren AutoCAD, AutoCAD LT, AutoCAD Mechanical, Mechanical Desktop, Architectural Desktop Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Khatinka Mitglied
Beiträge: 64 Registriert: 10.07.2003 ACAD 2000 Windows 2000
|
erstellt am: 28. Okt. 2003 09:59 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
Zitat: Original erstellt von Brischke: Hallo CADinka ehh sorry Khatinka
witzig, auf die Idee bin ich noch nicht gekommen, ist aber naheliegend... Tausend Dank und 10 Us für die prompte Antwort!!! ------------------ Gruß, Khatinka Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mdaemon Mitglied
Beiträge: 12 Registriert: 11.11.2004
|
erstellt am: 16. Dez. 2004 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
Hallo mitnand, Habe genau das gleiche Problem mit dem Tachymeter und habe euer LISP bereits getestet und es funktioniert bestens. Damit ich gleich völlig unmäßig bin: - wie müsste das Ganze aussehen, wenn ich zusätzlich möchte, daß die Beschriftung neben dem Punkt zu stehen kommt (damit sich das nicht überdeckt) und ich auch noch die Höhenangabe auch angegeben möchte (das ist die 4. Spalte im txt-file), und zwar so, daß sie sich nicht überdeckt mit der Beschreibung? Habe leider von LISP keine Ahnung. Danke für eure Hilfe! Martin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bauvermesser Mitglied Vermesser
Beiträge: 460 Registriert: 18.03.2006 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner, keine Adminrecht
|
erstellt am: 26. Aug. 2006 15:49 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
würde gern zu diesem älteren Beitrag ein paar fragen stellen da ich die lsp auch anwenden möchte, könnte mir der verfasser kurz eine kleine erläuterung zur lsp geben damit ich sie mir eventuell besser anpassen kann was bedeuten die befehle? '(100 . "AcDbEntity") ?? '(67 . 0) ?? '(410 . "Model") ?? '(8 . "0") = layer 0 '(100 . "AcDbText") ?? (cons 10 PKT) ?? '(40 . 2.5) ?? (cons 1 TXT) ?? '(50 . 0.0) ?? '(41 . 1.0) ?? '(51 . 0.0) ?? '(7 . "Standard") = Schrifttyp wie gesetzt ?? '(71 . 0) ?? '(72 . 0) ?? '(11 0.0 0.0 0.0) ?? '(210 0.0 0.0 1.0) ?? '(100 . "AcDbText") ?? '(73 . 0) ?? so wie ich das mitbekommen habe sind die anzahl der leerzeichen beim einlesen zwischen den zahlen nicht von bedeutung, aus welcher zeile ergibt sich die reihenfolge der dateneinlesung pnr,x,y,z oder pnr,cod,x,y,z vielleicht kann mir jemand weiterhelfen gruß bauvermesser wer mir helfen kann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM Inventor AutoCAD 2022, AIP 4-2022 Win 10
|
erstellt am: 26. Aug. 2006 16:07 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
Zu den nachgefragten Gruppencodes hier der Verweis auf die AutoCAD eigene Online Hilfe. in der Datei acad_dev.chm (AutoCAD 200x Hilfe : Entwicklerdokumentation (üblicherweise im Ordner C:\Programme\AutoCAD 200x\Help) Abschnitt DXF-Referenz stehen diese DXF-Gruppencodes für alle AutoCAD-Objekte erklärt. Zum Teil haben die Codes in verschiedenen Elementen unterschiedliche Bedeutung (z.B. ist Code 40 bei Kreisen der Radius, bei Attributen aber die Texthöhe) Die Lisp Befehle cdadr oder cddadr extrahieren die gesuchten Werte aus der Datenzeile.
------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM Inventor AutoCAD 2022, AIP 4-2022 Win 10
|
erstellt am: 26. Aug. 2006 16:31 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
|
Bauvermesser Mitglied Vermesser
Beiträge: 460 Registriert: 18.03.2006 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner, keine Adminrecht
|
erstellt am: 07. Sep. 2006 10:50 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
danke für die erläuterung: habe mich versucht in die befehlsbeschreibung der befehle cdr,cdadar,cadr,caaar, usw. einzulesen - werde es wohl nicht hinbekommen, vielleicht kann mir jemand für die zwei verschiedenen textzeilen zum einlesen die zwei lsp befehle ändern 1. pnr cod y x z 2. pnr y x z cod wobei der cod jeweils überlesen werden kann soweit ich das erkenne sind ja nur die zwei befehlszeilen dafür zuständig wobei bei meinen versuchen mit 2. des programm nicht lief weil eben noch der cod dranhängt ;;(create:simplePOINT (cdadr (read(strcat "'(" zeile ")")))) ;;(create:simpleTEXT (cdadr (read(strcat "'(" zeile ")"))) (itoa(caadr (read(strcat "'(" zeile ")"))))) gruß bauvermesser ------------------ Gruß vom Bauvermesser; Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Huebner Ehrenmitglied V.I.P. h.c. Verm.- Ing., ATC-Trainer
Beiträge: 9732 Registriert: 01.12.2003 AutoCAD 2.5 - 2022, Civil 3D, MAP 3D, ACADM Inventor AutoCAD 2022, AIP 4-2022 Win 10
|
erstellt am: 07. Sep. 2006 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
Zitat: Original erstellt von Bauvermesser: ... 1. pnr cod y x z 2. pnr y x z cod ...
die Funktion Create:SimplePoint erwartet als Übergabe eine Liste mit 3 Koordinaten, also einen 3D Punkt. Die Koordinaten werden nach dem mathematischen System in folgender Reihenfolge X,Y,Z = Rechtswert, Hochwert, Höhe in der Liste erwartet. Die Vermesser ticken ja etwas anders, da wird mit Y üblicherweise der Hochwert bezeichnet, das weiss aber sonst kein Mensch. Wie ist es denn oben im Zitat gemeint? ------------------ Mit freundlichem Gruß Udo Hübner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bauvermesser Mitglied Vermesser
Beiträge: 460 Registriert: 18.03.2006 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner, keine Adminrecht
|
erstellt am: 17. Sep. 2006 20:29 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
Hallo, richtig, richtig nicht dran gedacht; ich ticke natürlich im Vermesserformat und es ist x=Hochwert und y=Rechtswert wenn ich die Importdatei erstelle, da die Werte ja aus einem Vermessungsprogramm kommen ------------------ Gruß vom Bauvermesser; Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Geos Mitglied Vermessungstechniker i.R.
Beiträge: 1017 Registriert: 21.09.2001 ACAD Map 2010, Win 7 Pro eigene Lisp's<P>HW: Core i7 860, 2.8 GHz 3.3 GB, NVIDIA GeForce GTS 250
|
erstellt am: 18. Sep. 2006 07:44 <-- editieren / zitieren --> Unities abgeben: Nur für ibaf
|