| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY bietet das umfangreichste Ökosystem von B2B als auch B2C-Lösungen für IT-Akteure auf dem Markt, eine Pressemitteilung
|
Autor
|
Thema: Vermessungsdaten (9234 mal gelesen)
|
Harald Jacob Mitglied Bauzeichner
Beiträge: 23 Registriert: 22.04.2002 amd athlon, 1,2 GHz, 256 MB Ram Windows xp SP2, acad 2002, Expresstools
|
erstellt am: 29. Okt. 2003 16:10 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, habe versucht mir auf Grundlage eines vorhergehenden Beitrages (Messdaten einlesen) selbst ein Lisp zusammenzustellen, mit dem ich aus eier Textdatei Vermessungsdaten einlesen kann. Unsere dateien haben immer das Format Punktnummer, x-wert, y-wert, z-wert, Kode. Sinn des ganzen, das Programm soll die daten Zeilenweise einlesen und an die jewiliegen Koordinaten einen Block mit Atributen setzen. Leider läuft das ganze nicht. Fehlermeldung nach dem Laden: Fehler: Falsch formatierte Zeichenfolge in Eingabe Programm: (defun c:vein (/ file zeile) (setq file (getfiled "Verzeichnisliste" "" "" 4)) (if file (progn (setq file (open file "r")) (while (setq zeile (read-line file)) (setq nummer (car zeile)) (setq temp (cdr zeile)) (setq xw (car temp)) (setq temp (cdr temp)) (setq yw (car temp)) (setq temp (cdr temp)) (setq zw (car temp)) (setq temp (cdr temp)) (setq kode temp) (setq ep (xw yw zw)) (setq hw (rtos zw 2 3)) (setq nummer (rtos nummer 2 0)) (command (_-insert" "vp" ep mst mst "" nummer kode hw"")) ) ) (close file) ) (alert "keine Daten gewählt!") ) Kann mir jemand sagen wo der Fehler liegt, oder muß ich das Ganze völlig anders anfangen. Habe mit Lisp leider nicht soviel Erfahrung. Gruß aus Aachen Harald ------------------ Harald Jacob MAP 5.0, SP1, Expresstools WIN NT 4.0, NT-Netzwerk 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: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 29. Okt. 2003 16:25 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
Hallo Harald, besser wäre es gewesen du hättest gleich noch eine Bsp-Datei angehängt. Sind die Datren durch Komma-getrennt? Stimmt das Zahlenformat (Punkt/Komma)? Das sind alles wichtige Informationen, die für eine korrekte Antwort wichtig sind. 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 |
marvin101010 Mitglied ingenieur der architektur ohne diplom, bauzeichner ohne lehre, cad-admin ohne wissen :-)
Beiträge: 562 Registriert: 22.01.2003 Pentium 4 Windows XP Autocad 2006 Autocad 2006LT + Extender ADT 2007 ArchiCAD
|
erstellt am: 29. Okt. 2003 16:28 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
hallo harald, hallo holger... bin noch nicht wirklich dahinter gestiegen, aber eins fällt mir auf: (setq ep (xw yw zw)) sollte das nicht (setq ep (list xw yw zw)) heissen? ------------------ .......good vibrations make the world go round Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Harald Jacob Mitglied Bauzeichner
Beiträge: 23 Registriert: 22.04.2002 amd athlon, 1,2 GHz, 256 MB Ram Windows xp SP2, acad 2002, Expresstools
|
erstellt am: 30. Okt. 2003 10:49 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, marvin hat natürlich Recht, es muss heissen (setq ep (list x y z)). Hilf aber nicht funktioniert trotzdem nicht. Anbei noch eine Beispieldatei mit Vermessungsdaten. hat jemand eine Idee wo da Problem liegt? Gruß harald ------------------ Harald Jacob MAP 5.0, SP1, Expresstools WIN NT 4.0, NT-Netzwerk 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: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 30. Okt. 2003 11:39 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
Hallo Harald, nur einfach zusammen kopieren ist's halt doch nicht. ;-) An deinem Code war einiges nicht in Ordnung. Ich habe mal den Code angepasst.
Code:
(vl-load-com) (defun c:vein (/ file zeile nummer punkt hw kode) (setq file (getfiled "Verzeichnisliste" "" "" 4)) (if file (progn (setq file (open file "r")) (while (setq zeile (read-line file)) (setq zeile (cadr(read(strcat "'(" zeile ")"))) nummer (rtos (car zeile) 2 0) punkt (reverse(cdr(reverse(cdr zeile)))) hw (rtos (caddr punkt) 2 3) kode (vl-symbol-name (last zeile)) ) ;;;Keine Ahnung, was woher bei dir die Variable mst kommt?? ;;;Wahrscheinlich Maßstab, den musst du dann aber auch setzen (setq mst 1.0) (command ("_.-insert" "vp" ep mst mst "" nummer kode hw"")) ) ) (close file) ) (alert "keine Daten 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 |
WernerB Mitglied FM-/GIS-Berater
Beiträge: 20 Registriert: 10.09.2003
|
erstellt am: 05. Nov. 2003 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
Hallo Holger, da mich das Thema ALISP/Koordinateneinlesen interessiert und ich einen praxisnahen Einstieg in die LISP-Programmierung suche, habe ich das Beispiel ausprobieren wollen. Leider kommt die Fehlermeldung "Fehlerhafte Funktion _.-insert". Für Deine Hilfe wäre ich sehr dankbar. Gruß WernerB 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: 05. Nov. 2003 13:39 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
|
Harald Jacob Mitglied Bauzeichner
Beiträge: 23 Registriert: 22.04.2002 amd athlon, 1,2 GHz, 256 MB Ram Windows xp SP2, acad 2002, Expresstools
|
erstellt am: 05. Nov. 2003 14:00 <-- editieren / zitieren --> Unities abgeben:
|
Thomas Rausch Mitglied
Beiträge: 1200 Registriert: 26.03.2001 Intel Xeon 3,6 GHz 32 GB RAM NVIDIA Quadro P2000 Windows 10 Enterprise AutoCADmap 3D 2023 WS-Landcad 2023 QGIS 3.28.5
|
erstellt am: 05. Nov. 2003 14:05 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
Zitat: Original erstellt von Harald Jacob: bei _.-insert ist der Punkt zuviel
das vermutest du oder was? der Punkt ist schon ganz prima dort, er unterdrückt eventuelle Befehlsüberschreibungen ------------------ gruß thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Harald Jacob Mitglied Bauzeichner
Beiträge: 23 Registriert: 22.04.2002 amd athlon, 1,2 GHz, 256 MB Ram Windows xp SP2, acad 2002, Expresstools
|
erstellt am: 05. Nov. 2003 14:17 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, das vermute ich erst einmal. Hatte das selbe Problem. Nach entfernen des Punktes lief das Programm. Gruß Harald ------------------ Harald Jacob MAP 5.0, SP1, Expresstools WIN NT 4.0, NT-Netzwerk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 05. Nov. 2003 14:21 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
Hi, der Punkt ist vollkommen in Ordnung. Er sorgt dafür, dass der Original-INSERT-Befehl genommen wird und nicht etwa ein umdefinierter. Das Problem bei dieser Zeile sind die Klammern: (command ("_.-insert" "vp" ep mst mst "" nummer kode hw"")) sollte so aussehen: (command "_.-insert" "vp" ep mst mst "" nummer kode hw"") Gruß CADchup
------------------ www.cadditions.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gerd_Ecke Mitglied Bergbauingenieur
Beiträge: 146 Registriert: 28.08.2002
|
erstellt am: 06. Nov. 2003 05:57 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
Hallo, also ich arbeite auch in der Vermessung und verwende das Lisp-Programm ACADIN. Mit diesem kann man festlegen wieviele Attribute gefüllt werden, was die Punkte für Blöcke darstellen, auf welchen Layer welche Blockart abzulegen ist und und und. Soll das Thema jedoch eine Lisp-Übung sein, entschuldigt die unqualivizierte Äußerung ;-) MfG GE 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: 06. Nov. 2003 08:06 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
|
WernerB Mitglied FM-/GIS-Berater
Beiträge: 20 Registriert: 10.09.2003
|
erstellt am: 06. Nov. 2003 13:05 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
Hallo Gerd, vielen Dank für Deinen Hinweis auf ACADIN, ich hab's gleich ausprobiert, aber wie du siehst, hat's Fehlermeldungen gegeben. Ich arbeite mit ACAD2002 AAD R3 Hast Du eine Idee, woran es liegen kann? Bitte Masstab der Zeichnung eingeben 1:<1000> Messcode-Definitionsdatei: C:\Dokumente und Einstellungen\busch.w\Vermessung\Koordinateneinlesen\ACADIN\acadin-mc.def Neue Messcode-Definitionsdatei laden J/N <N>:J Ascii-Definitionsdatei: C:\Dokumente und Einstellungen\busch.w\Vermessung\Koordinateneinlesen\ACADIN\acadin-ascii.def Neue Ascii-Definitionsdatei laden J/N <N>:J Höhen auf wieviele Kommastellen: <4> Punkte werden eingelesen - bitte warten ... Unbekannter Befehl "06105-32 ". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "ACADIN". Drücken Sie F1-Taste für Hilfe. Unbekannter Befehl "ACADIN". Drücken Sie F1-Taste für Hilfe. ; Fehler: Es ist ein Fehler innerhalb der *error*-Funktion aufgetreten.Fehlerhafter Argumenttyp: fixnump: nil
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gerd_Ecke Mitglied Bergbauingenieur
Beiträge: 146 Registriert: 28.08.2002 ACAD 2024, GeoCAD Brics CAD 23
|
erstellt am: 06. Nov. 2003 13:54 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
|
Grebe Mitglied
Beiträge: 536 Registriert: 16.12.2002 LT-2021, Civil3D-2021, BricsCAD V18 HP-DesignJet T1200
|
erstellt am: 06. Nov. 2003 15:19 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
|
WernerB Mitglied FM-/GIS-Berater
Beiträge: 20 Registriert: 10.09.2003
|
erstellt am: 07. Nov. 2003 09:00 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
|
REWOLF Mitglied Bauzeichner
Beiträge: 21 Registriert: 02.06.2006
|
erstellt am: 10. Aug. 2006 14:07 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
Hallo, ich hab auch diese LSP-Programm, nur leider auch ein problem damit, und zwar möchte ich gerne Punktcodes mit bis zu 3 stellen und auch den Punktcode 0 einlesen. es klappt bei mir ohne probleme von 1-9 Punktcode, aber sobald ich draüber rauskomme funktioniert das programm nicht mehr, kann mir einer die LSP datei so umschreiben, das dieses auch 3 Stellige Codes annimmt? und dann wenn möglich an wibmer@ib-trummer.de schicken? Ich hoffe einer von euch schafft das! DANKE im Vorraus euer REWOLF Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
silcono Mitglied Planer
Beiträge: 88 Registriert: 19.12.2014 AutoCAD 2014 AutoCAD 2019 AutoCAD MAP 3D 2019 Intel(R) Core(TM) i5-4570 CPU @ 3.20GhZ 3.20Ghz 16,00GB Ram Windows 7- Prof. 64-Bit ASUS EAH6450 Series
|
erstellt am: 24. Aug. 2016 14:18 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
Halli Hallo, Bin nach der SuFu hier gelandet. Die LISP gefällt mir auch so sehr gut. Code:
(vl-load-com) (defun c:vein (/ file zeile nummer punkt hw kode) (setq file (getfiled "Verzeichnisliste" "" "" 4)) (if file (progn (setq file (open file "r")) (while (setq zeile (read-line file)) (setq zeile (cadr(read(strcat "'(" zeile ")"))) nummer (rtos (car zeile) 2 0) punkt (reverse(cdr(reverse(cdr zeile)))) hw (rtos (caddr punkt) 2 3) kode (vl-symbol-name (last zeile)) ) ;;;Keine Ahnung, was woher bei dir die Variable mst kommt?? ;;;Wahrscheinlich Maßstab, den musst du dann aber auch setzen (setq mst 1.0) (command "_.-insert" "vp" ep mst mst "" nummer kode hw "") ) ) (close file) ) (alert "keine Daten gewählt!") )
Hab diese nun mal mit oben genannten Beispiel-Datei ausprobiert, aber leider tut sich nichts. Nach Eingabe der BSP.kor kommt folgendes in der Befehlszeile: Befehl: VEIN _.-insert Blocknamen eingeben oder [?] <vp>: vp Einheiten: Keine Einheit Konvertierung: 0.039 Einfügepunkt angeben oder [Basispunkt/Faktor/Drehen]: Befehl: 1.000000 Danach tut er nichts mehr? Hat da jemand zufällig eine Idee? EDIT: Kann es was mit der Blockdefinition zu tun haben? Grüße Silcono [Diese Nachricht wurde von silcono am 24. Aug. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 24. Aug. 2016 14:24 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
|
silcono Mitglied Planer
Beiträge: 88 Registriert: 19.12.2014
|
erstellt am: 24. Aug. 2016 14:36 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 24. Aug. 2016 16:35 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
|
silcono Mitglied Planer
Beiträge: 88 Registriert: 19.12.2014
|
erstellt am: 25. Aug. 2016 08:13 <-- editieren / zitieren --> Unities abgeben: Nur für Harald Jacob
Es ist vollbracht! Die Blockdefinition habe ich entsprechend angepasst (Attributanzahl und Eigenschaften). Die Systemvariable Attreq und Attdia habe ich ins LISP integriert. Erst hat es immer noch nicht funktionert, dann ist mir aufgefallen, das im command _.-insert eine Variable "ep" vorhanden ist. Aber diese wurde nirgends definiert. Dann fand ich die Variable "punkt" (die hierfür für die Koordinaten steht). ep durch punkt ersetzt und nun funktioniert es. Perfekt! Hier der endgültige Code (wobei dieser noch ausgeschmückt werden kann ) : Code:
(vl-load-com) (defun c:vein (/ file zeile nummer punkt hw kode) (setq file (getfiled "Verzeichnisliste" "" "" 4)) (setvar "attdia" 0) (setvar "attreq" 1) (if file (progn (setq file (open file "r")) (while (setq zeile (read-line file)) (setq zeile (cadr(read(strcat "'(" zeile ")"))) nummer (rtos (car zeile) 2 0) punkt (reverse(cdr(reverse(cdr zeile)))) hw (rtos (caddr punkt) 2 3) kode (vl-symbol-name (last zeile)) ) ;;;Keine Ahnung, was woher bei dir die Variable mst kommt?? ;;;Wahrscheinlich Maßstab, den musst du dann aber auch setzen (setq mst 1.0) (command "_.-insert" "vp" punkt "1" "1" "" nummer kode hw "") ) ) (close file) ) (alert "Punkte wurden eingelesen") (setvar "attdia" 1) )
DANKE cadffm für die Hilfestellung! Grüße Silcono Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |