| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Koordinatenexport (2452 mal gelesen)
|
Bauvermesser Mitglied Vermesser
Beiträge: 460 Registriert: 18.03.2006 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner,
|
erstellt am: 11. Jul. 2006 22:46 <-- editieren / zitieren --> Unities abgeben:
hallo,alle zusammen ich bitte um hilfe für folgende problem, habe eine LSP aus diesem forum welche sich für mich sehr gut zum Koordinatenauslesen eignet weil die jeweiligen punkte gleich markiert und beschriftet werden, es gibt nur ein paar probleme mit enigen zeilen welche ich gern geändert haben möchte, kann mir jemand helfen, vielleicht sogar der verfasser selbst? ; habe überall wo ich eine änderung benötige ???? rangehängt ;; ;; (defun C:test (/) (setq clay (getvar "CLAYER")) (setq OSM (getvar "osmode")) (setq ASN (getvar "autosnap")) (setq TG (getvar "textsize")) (setq DEZ (getvar "luprec")) (command "-LAYER" "ma" "V-Pu" "");???? alle beschriftungen sollen auf aktuellem layer ;; luprec "3" (setq MD_ERR *ERROR* *ERROR* M:FEHLER ) ;_ end of setq (command "_UNDO" "_MARK") ;Marke für Zurück nach Abbruch setzen (setvar "OSMODE" 6184) (setvar "autosnap" 39) (setq Mass 100) ; Fester Skalierfaktor (setq MASSNEU (* 2.0 MASS)) (command "textsize" MASSNEU) ; (command "textsize" ) 1.5 (Setq BA (Getint "\Soll-Höhen o./Pos: ")) ;????? eingabe muss als text (323.256 oder 2,10,60) möglich sein (Setq A (Getint "\nStart Pnr (Zähler): ")) (Setq RA (Getint "\nStart Cod (konstant): "))
(setq listnam (getfiled "Punktliste anlegen" "Textfile" "txt" 1))
(if listnam (progn (While (setq pkt (getpoint "Punkt zeigen: ")) /= NULL (Setq F (Itoa A)) (setq XA "") (if (< A 10) (setq XA "")) ; ???? was wird hier eingestellt (setq XRA "") (if (< RA 10) (setq XRA "")); ???? was wird hier eingestellt ;; (setq NR (strcat (itoa BA) XA (itoa A) XRA (itoa RA))) ; alles beschriften Ba,Pnr,Cod (setq NR (strcat XA (itoa A) (itoa BA ))) ; nur Pnr,BA beschriften ;; (setq NR (strcat XA (itoa A) )) ; nur Pnr ;; (Command "Text" Pkt "" 0 NR) ; setzt bei pnr=0 (Command "Text" Pkt "" NR) ; (Command "Text" "" (rtos (car pkt))) ; (Command "Text" "" (rtos (cadr pkt))) ; (Command "Text" "" (rtos (caddr pkt))) (Command "_point" pkt) ; (Command "kreis" 1.5) ;???? an punkt kreis zeichnen geht nicht
;----------------------------------------------------------------------- ; Ausgabe in liste BA=XA,Pnr=A,Cod=XRA ; (setq pktlst (strcat (itoa BA) " " XA (itoa A) " " XRA (itoa RA) ; Ausgabe in liste Pnr,Cod,BA (setq pktlst (strcat XA (itoa A) " " XRA (itoa RA) " " (itoa BA) " " (rtos (car pkt)) " " (rtos (cadr pkt)) " " (rtos (caddr pkt)) ) ;_ end of strcat ) ;_ end of setq
(Setq A (+ A 1)) (setq DAT_ID (open listnam "a")) (write-line pktlst DAT_ID) (close DAT_ID) ) ;_ end of While ) ;_ end of progn ) ;_ end of if (command "LAYER" "SE" clay "") (command "osmode" OSM) (command "autosnap" ASN) ) ;_ end of defun ;?????? Anhang an lsp M:Fehler unklar welche funktion ;;(defun M:FEHLER (S) ;; (print (strcat "M:fehler " S)) ;; (close DAT_ID) ;; (command) ;; (command "_UNDO" "_BACK") ;; (setq *ERROR* MD_ERR) ;; (princ) ;; (command "LAYER" "SE" clay "") ;; (command "osmode" OSM) ;; (command "autosnap" ASN) ;; ) ;_ end of defun ;;;|«Visual LISP© Format Options» ;;(72 2 40 1 T "end of " 60 9 0 0 0 nil T nil T) ;;;*** KEINEN Text unterhalb des Kommentars hinzufügen! ***|; vielen dank an alle die sich meinem problem annehmen
------------------ Gruß vom Bauvermesser; übrigens- ein Vermesser kennt seine Grenzen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004
|
erstellt am: 12. Jul. 2006 08:08 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
Na, das ist ja - Verzeihung - ein toller Code! Naja, ich fange mal an... Zitat: (setq DEZ (getvar "luprec")) (command "-LAYER" "ma" "V-Pu" "");???? alle beschriftungen sollen auf aktuellem layer
ändere das "ma" in "s" für "setzen". "ma" erstellt den Layer nur, "s" setzt ihn auch aktuell, d.h. alle künftigen Objekte liegen auf diesem. Tip: ACAD-Befehlszeile mit "-layer". Zitat: Setq BA (Getint "\Soll-Höhen o./Pos: ")) ;????? eingabe muss als text (323.256 oder 2,10,60) möglich sein
Mach aus dem "Getint" ein "Getreal". Integer sind - wie der Name sagt - GANZzahlen, d.h. OHNE Nachkommastellen, im Gegensatz zu Realzahlen. Zitat: (if (< A 10) (setq XA "")) ; ???? was wird hier eingestellt (setq XRA "") (if (< RA 10) (setq XRA "")); ???? was wird hier eingestellt
Ehrlich gesagt: Keine Ahnung. Nur soviel: XA festlegen. Falls A<10, setze XA auf nix, jedoch nicht wirklich Null oder nil?! Habe gerade nicht die Muse, das im Detail nachzuvollziehen, Verzeihung! Zitat: (Command "kreis" 1.5) ;???? an punkt kreis zeichnen geht nicht
Naja, entschuldige mal, gib mal in der ACAD-Befehlszeile "kreis" ein und sieh Dir die exakte Befehlsabfolge an. "Command ..." braucht den GENAUEN Wortlaut, dann klappt´s auch mit dem Nachbarn Zitat: ;?????? Anhang an lsp M:Fehler unklar welche funktion
Sieht aus wie die abgespeckte Version eines "Errorhandlers"... Noch was zum Abschluß: Ich bin kein Profi. Allerdings zeigt mir bereits diese Batterie von "setqs" am Anfang, daß das nicht gerade vorbildlich "programmiert" wurde. Bei den "commands" wird scheinbar willkürlich Deutsch und Englisch gemischt: mal "text", mal "_point". In meinen Augen also eher ein Negativbeispiel. Natürlich kannst Du gerne damit arbeiten, wenn es läuft?! Soviel von meiner Seite, vielleicht fühlt sich ja noch jemand anderes dazu berufen, diesen Code zu zerpflücken Gruß Frederik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 12. Jul. 2006 08:19 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
Hier das was du brauchst - denke ich Code:
(defun C:test (/ clay OSM ASN TG DEZ MD_ERR) ;;;Errorhandler (defun M:FEHLER (S) (print (strcat "M:fehler " S)) (close DAT_ID) (command) (command "_UNDO" "_BACK") (setq *ERROR* MD_ERR) (command "LAYER" "SE" clay "") (command "osmode" OSM) (command "autosnap" ASN) (princ) ) ;_ end of defun (command "_UNDO" "_MARK") ;Marke für Zurück nach Abbruch setzen (setq MD_ERR *ERROR* *ERROR* M:FEHLER clay (getvar "CLAYER") OSM (getvar "osmode") ASN (getvar "autosnap") TG (getvar "textsize") DEZ (getvar "luprec") ) ;_ end of setq ;;; (command "-LAYER" "ma" "V-Pu" "") ;;; (command "_-LAYER" "_set" clay "");???? alle beschriftungen sollen auf aktuellem layer ;; luprec "3" (setvar "OSMODE" 6184) (setvar "autosnap" 39) (setq Mass 100 ; Fester Skalierfaktor MASSNEU (* 2.0 MASS) ) ;_ end of setq (setvar "textsize" MASSNEU) ; (command "textsize" ) 1.5 (Setq BA (Getint "\nSoll-Höhen o./Pos: ")) ;????? eingabe muss als text (323.256 oder 2,10,60) möglich sein (Setq A (atof(Getstring "\nStart Pnr (Zähler): "))) (Setq RA (atof(Getstring "\nStart Cod (konstant): "))) (setq listnam (getfiled "Punktliste anlegen" "Textfile" "txt" 1)) (if listnam (progn (While (setq pkt (getpoint "\nPunkt zeigen: ")) ;;; (if (< A 10) ;;; (setq XA "") ;;; (setq XA "") ;;; ) ; ???? was wird hier eingestellt ;;; ;;; (if (< RA 10) ;;; (setq XRA "") ;;; (setq XRA "") ;;; ) ; ???? was wird hier eingestellt ;; (setq NR (strcat (itoa BA) XA (itoa A) XRA (itoa RA))) ; alles beschriften Ba,Pnr,Cod ;;; (setq NR (strcat XA (itoa A) (itoa BA))) ; nur Pnr,BA beschriften ;; (setq NR (strcat XA (itoa A) )) ; nur Pnr ;; (Command "Text" Pkt "" 0 NR) ; setzt bei pnr=0 ;;; (Command "Text" Pkt "" MASSNEU) (entmake (LIST '(0 . "TEXT") (cons 8 clay) (CONS 10 Pkt) (cons 40 MASSNEU) (cons 50 0.0) (CONS 1 (rtos MASSNEU 2 2)) ) ;_ ende von LIST ) ;_ end of entmake ; (Command "Text" "" (rtos (car pkt))) ; (Command "Text" "" (rtos (cadr pkt))) ; (Command "Text" "" (rtos (caddr pkt))) ;;; (Command "_point" pkt) (entmake (LIST '(0 . "POINT") (cons 8 clay) (CONS 10 Pkt) ) ;_ ende von LIST ) ;_ end of entmake ; (Command "kreis" 1.5) ;???? an punkt kreis zeichnen geht nicht ;----------------------------------------------------------------------- ; Ausgabe in liste BA=XA,Pnr=A,Cod=XRA ; (setq pktlst (strcat (itoa BA) " " XA (itoa A) " " XRA (itoa RA) ; Ausgabe in liste Pnr,Cod,BA (setq pktlst (strcat (rtos A) " " (rtos RA) " " (rtos BA) " " (rtos (car pkt)) " " (rtos (cadr pkt)) " " (rtos (caddr pkt)) ) ;_ end of strcat ) ;_ end of setq (Setq A (+ A 1)) (setq DAT_ID (open listnam "a")) (write-line pktlst DAT_ID) (close DAT_ID) ) ;_ end of While ) ;_ end of progn ) ;_ end of if ;;; (command "LAYER" "SE" clay "") (command "osmode" OSM) (command "autosnap" ASN) ) ;_ end of defun
------------------ Gruß CADwiesel Besucht uns im CHAT
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,
|
erstellt am: 26. Jul. 2006 00:29 <-- editieren / zitieren --> Unities abgeben:
hallo, habe mich durchgekämpft und es ist sogar was draus geworden, habe mir die lsp Koordinatenexport so passend gemacht wie ich sie am besten verwenden kann und ein paar hinweise von euch eingebaut, stelle sie hier allen zur verfügung um sie zu verbessern; aber eine bitte hätte ich, probiert aus was ihr verändert ob es auch geht, für leihen ist es schwer zu erkennen wo eine ) fehlt oder ein buchstabe im befehl; - das mit dem 'Getreal' lief nicht und ich habe es ausgeblendet da ich mir anders behelfe - CADwiesel hat die ganze lsp auf den kopf gestellt, leider lief sie bei mir nicht , für mich nicht ganz klar was für unterschied ist ob 'defun M:FEHLER ' vorn dran steht oder hinten, probleme gibt es noch mit der beschriftung der koordinaten, die lsp setze einen Standartschriftsatz voraus, gut wäre man könnte ihn gleich in der lsp definieren auch wenn er noch nicht im autocad existiert,ob das mit dem (setq MASSNEU (* 2.0 MASS)) (command "textsize" MASSNEU) auf dauer funktioniert wird sich zeigen da ich über den befehl command und textsize nicht gutes im forum gelesen habe, wie gesagt wer verbesserungen weiß, bitte so einarbeiten damit man als leihe klar kommt, ganke an alle die geholfen haben, nun suche ich für den Koordinatenimport noch was passendens ohne blöcke und symbole, nur eine einfache lsp mit der man das gleiche oder ähnliche format mit punktnummer einlesen kann- auf eine layer seiner wahl, wer was weis bitte melden (acadin schon getestet!) ___________________________________________________________________ (defun C:KOOEX (/) (setq clay (getvar "CLAYER")) (setq OSM (getvar "osmode")) (setq ASN (getvar "autosnap")) (setq TG (getvar "textsize")) (setq DEZ (getvar "luprec")) (command "-LAYER" "ma" "Überg-Punkte" "") ;-------------------------------- ; (command "_-LAYER" "_set" clay "") ; aktueller layer ;-------------------------------- luprec "3" (setq MD_ERR *ERROR* *ERROR* M:FEHLER ) ;_ end of setq (command "_UNDO" "_MARK") ;Marke für Zurück nach Abbruch setzen (setvar "OSMODE" 6184) (setvar "autosnap" 39) (setq Mass 100) ; Fester Skalierfaktor (setq MASSNEU (* 0.2 MASS)) (command "textsize" MASSNEU) ;; (SETVAR "DIMTXT" 1.5) ; Textgröße auf 1.5 ;; (Setq BA (Getint "\nSoll-Höhe: ")) (Setq A (Getint "\nStart Pnr (Zähler): ")) (Setq RA (Getint "\nStart COD(konstant): ")) ;; (setq listnam (getfiled "Punktliste anlegen" "Textfile" "txt" 1))
(setq listnam (getfiled "Punktliste anlegen" "F:/Vermessung/Punkte" "cad" 1)) (if listnam (progn (While (setq pkt (getpoint "Punkt zeigen: ")) /= NULL
(Setq F (Itoa A)) (setq XA "") (if (< A 10) (setq XA "0")) (setq XRA "") (if (< RA 10) (setq XRA "0")) ;; (setq NR (strcat (itoa BA) XA (itoa A) XRA (itoa RA))) ;beschriftet mit drei werten ;; (setq NR (strcat XA (itoa A) (itoa BA ))) ; nur Pnr,BA beschriften (setq NR (strcat XA (itoa A) )) ; nur Pnr ;; (Command "Text" Pkt "" 0 NR) (Command "Text" Pkt "" NR) ;; (Command "Text" "" (rtos (car pkt))) ;Beschriftung X ;; (Command "Text" "" (rtos (cadr pkt))) ; Y (Command "Text" "" (rtos (caddr pkt))) ; Z
(Command "_point" pkt) (command "_CIRCLE" pkt "0.2") ;------------------------------------------------------- ;; Ausgabe in liste BA=XA,Pnr=A,Cod=XRA ;; (setq pktlst (strcat (itoa BA) " " XA (itoa A) " " XRA (itoa RA) ;; Ausgabe in liste Pnr,Cod,BA,Y,X,Z, ;; (setq pktlst (strcat XA (itoa A) " " XRA (itoa RA) " " (itoa BA) ;; Ausgabe in liste Pnr,Cod,Y,X,Z, (setq pktlst (strcat XA (itoa A) " " XRA (itoa RA) " " " " (rtos (car pkt)) " " (rtos (cadr pkt)) " " (rtos (caddr pkt)) ) ;_ end of strcat ) ;_ end of setq (Setq A (+ A 1)) (setq DAT_ID (open listnam "a")) (write-line pktlst DAT_ID) (close DAT_ID) ) ;_ end of While ) ;_ end of progn ) ;_ end of if (command "LAYER" "SE" clay "") (command "osmode" OSM) (command "autosnap" ASN) ) ;_ end of defun (defun M:FEHLER (S) (print (strcat "M:fehler " S)) (close DAT_ID) (command) (command "_UNDO" "_BACK") (setq *ERROR* MD_ERR) (princ) (command "LAYER" "SE" clay "") (command "osmode" OSM) (command "autosnap" ASN) ) ;_ end of defun ;|«Visual LISP© Format Options» (72 2 40 1 T "end of " 60 9 0 0 0 nil T nil T) ;*** KEINEN Text unterhalb des Kommentars hinzufügen! ***|; ___________________________________________________________________
------------------ Gruß vom Bauvermesser; übrigens- ein Vermesser kennt seine Grenzen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004
|
erstellt am: 26. Jul. 2006 12:07 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
Hallo Bauvermesser, Zitat: nun suche ich für den Koordinatenimport noch was passendens ohne blöcke und symbole, nur eine einfache lsp mit der man das gleiche oder ähnliche format mit punktnummer einlesen kann- auf eine layer seiner wahl
Spontan fallen mir dazu folgenden Befehle ein: open [text.txt], close [text.txt], read-line und write-line. Also: Deine Koordinaten in eine Textdatei schreiben - so kannst Du sie auch noch anderweitig verwenden, wenn Du möchtest, und natürlich auch in ACAD einlesen. [Edit] Über den "Stil" Deiner Routine wollen wir mal nicht streiten :-) [/Edit] Gruß Frederik [Diese Nachricht wurde von Paulchen am 26. Jul. 2006 editiert.] 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,
|
erstellt am: 07. Aug. 2006 22:16 <-- editieren / zitieren --> Unities abgeben:
hallo, habe noch eine frage zur dieser Kooexport lsp, kann mir jemand eine Befehlszeile einfügen oder nennen mit der ich die ausgegebenen und ins Datenfil geschriebenen Daten etwas besser formatieren kann, zur Zeit ist es so das alle Daten linksbündig geschreiben werden, dies ist bei unterschiedlichen Zahlenformaten ungünstig zur weiteren verarbeitung und macht weitere Schritte mit einem Spalteneditor notwendig, vielleicht kann man alle daten gleich Rechtsbündig ins Datenfil schreiben lassen? Bsp.: 25 35 56666.777 32444.555 333.333 1011 531 56666.777 32444.555 333.333 besser wäre 0025 035 56666.777 32444.555 333.333 1011 531 56666.777 32444.555 333.333 leider kann ich in dieser lsp die Zahlenformate nicht durch einfügen einer NUll ins richtige Format bringen kann mir jemand weiterhelfen
------------------ Gruß vom Bauvermesser; übrigens- ein Vermesser kennt seine Grenzen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 08. Aug. 2006 07:23 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
Hallo Bauvermesser, mit folgender Funktion kannst Du ein Zeichen (auch Leerzeichen) als Präfix vor einen String anordnen, z.B. (Praefix "89.908" 10 " ") => " 89.908" oder (Praefix "123" 6 "#") => "###123" Das zweite Argument ist die Gesamtanzahl der Stringlänge Code:
defun Praefix (str n pattern / ) (if (<(strlen str)n) (repeat (- n(strlen str)) (setq str (strcat pattern str)))) str)
------------------ viele Grüße Jörn 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,
|
erstellt am: 08. Aug. 2006 23:55 <-- editieren / zitieren --> Unities abgeben:
danke für die hilfe, den oberen teil deiner antwort habe ich ja begriffen , aber in der Codierung erkenne ich keinen zusammenhang zum oberen beispiel, sicher bin ich nicht der einzige und du könntest es für dumme mal übersetzen, (nur ein bisschen) müsste dann noch wissen an welche stelle das in meine lsp ungefähr eingefügt werden müsste- gleich am anfang? danke bauvermesser ------------------ Gruß vom Bauvermesser; übrigens- ein Vermesser kennt seine Grenzen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 09. Aug. 2006 07:37 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
Hallo Bauvermesser, na ich probier es mal: folgendermaßen wird zur Zeit Deine Koordinatenzeile zusammengestellt:
Code:
;; Ausgabe in liste Pnr,Cod,Y,X,Z, (setq pktlst (strcat XA (itoa A) " " XRA (itoa RA) " " (rtos (car pkt)) " " (rtos (cadr pkt)) " " (rtos (caddr pkt)) ) ;_ end of strcat ) ;_ end of setq
Ergebnis: alle Werte in einem String, jeweils durch eine Leerzeichen getrennt, z.B. "25 35 56666.777 32444.555 333.333" "25 35 999.999 666.666 22.222" Um jetzt z.B. Nullen vor die Werte zu schreiben, kannst Du die Funktion Praefix wie folgt einbinden: Code:
;; Ausgabe in liste Pnr,Cod,Y,X,Z, (setq pktlst (strcat (Praefix (strcat XA (itoa A) 3 "0") " " (Praefix (strcat XRA (itoa RA) 3 "0") " " (Praefix (rtos (car pkt)) 10 "0") " " (Praefix (rtos (cadr pkt)) 10 "0") " " (Praefix (rtos (caddr pkt)) 8 "0") ) ;_ end of strcat ) ;_ end of setq
Das sollte dann z.B. folgende Zeile ergeben: "025 035 056666.777 032444.555 0333.333" "025 035 000999.999 000666.666 0022.222" Ich habe den Code nicht ausprobiert, vielleicht sind noch ein paar Fehler drin, aber ich glaube es reicht zum Verständnis erstmal aus. In der Funktion Praefix wird einem String (str) solange ein Zeichen (pattern) vorangestellt, bis der String eine bestimmte Länge (n) erreicht hat.
Code:
(defun Praefix (str n pattern / ) (if (<(strlen str)n) (repeat (- n(strlen str)) (setq str (strcat pattern str)))) str)
------------------ viele Grüße Jörn 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,
|
erstellt am: 10. Aug. 2006 10:09 <-- editieren / zitieren --> Unities abgeben:
|
Bauvermesser Mitglied Vermesser
Beiträge: 460 Registriert: 18.03.2006 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner,
|
erstellt am: 11. Aug. 2006 09:21 <-- editieren / zitieren --> Unities abgeben:
hallo jörn, bin wieder ein stück weiter, aber es klappt was nicht ganz, der befehl Praefix wird auf die xyz koo angewendet, das ist schon mal ein fortschritt und wichtig, aber für den pnr- und codwert kommt eine fehlermeldung, denke mir das es mit dem weiter oben stehenden befehl "getint" zusammenhängt, die vorschläge zum wechsel auf "getreal" und "(atof(Getstring" im beitrag werden mit fehlermeldungen quitiert; - mußte damit es läuft den cod -Praefix- in die lsp erst einfügen weil sonst -befehl unbekannt- kam; kannst du oder andere weiterhelfen, es ist wichtig das die punktnummer selbständig hochzählt! gruß bauvermesser Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 11. Aug. 2006 10:30 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
Hallo Bauvermesser, also, da kann ich nur folgendes Vorschlagen, prüfen den Datentypen, den Du für Deine Punktnummer verwendest. Wenn es ein INTEGER ist, dann kannst Du diesen mit "itoa" in einen String umwandeln und dann auch der Funktion "Praefix" übergeben. Die Funktion "Praefix" braucht auf jeden Fall einen String. Wenn das noch nicht hilft, mußt Du noch ein bißchen präziser werden. ------------------ viele Grüße Jörn 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,
|
erstellt am: 15. Aug. 2006 22:03 <-- editieren / zitieren --> Unities abgeben:
danke Jörn für die bisherige hilfe, leider muss ich hier passen da ich die befehle nicht hinbekomme, die thematik wird nun für mich als Laie doch zu kommplex da es eine größere Änderung in der jetzigen lsp bedeutet, wer denoch helfen möchte; - es geht darum den befehl "Praefix" für die befehlszeile in der oben angegebenen lsp (Setq A (Getint "\nStart Pnr (Zähler): ")) (Setq RA (Getint "\nStart COD(konstant): ")) so zu ändern das "Praefix" "verstanden" und angewendet werden kann um die daten mit gleicher spaltenanzahl (Pnr 5stellig), (Cod 4-stellig)übergeben zu können gruß bauvermesser ------------------ Gruß vom Bauvermesser; übrigens- ein Vermesser kennt seine Grenzen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joern bosse Ehrenmitglied Dipl.-Ing. Vermessung
Beiträge: 1763 Registriert: 11.10.2004 Window 11 ACAD 2021 CIVIL 2021 BricsCAD ab V14 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz 2.80 GHz 32.0GB RAM NVIDIA GeForce MX450<P>
|
erstellt am: 16. Aug. 2006 08:39 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
Hallo Bauvermesser, also, ich habe nochmal geschaut: in dem Beispielcode, den ich gepostet hatte fehlen 2 schließende Klammern, mit folgendem Code sollte es gehen: Code:
;; Ausgabe in liste Pnr,Cod,Y,X,Z, (setq pktlst (strcat (Praefix (strcat XA (itoa A)) 3 "0") " " (Praefix (strcat XRA (itoa RA)) 3 "0") " " (Praefix (rtos (car pkt)) 10 "0") " " (Praefix (rtos (cadr pkt)) 10 "0") " " (Praefix (rtos (caddr pkt)) 8 "0") ) ;_ end of strcat ) ;_ end of setq
------------------ viele Grüße Jörn 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,
|
erstellt am: 19. Aug. 2006 17:58 <-- editieren / zitieren --> Unities abgeben:
hallo Jörn, ja ja die klammern ,sind mir sowieso ein rätzel, aber es läuft! Danke für deine hilfe; -kannst du mir bitte noch schreiben wie die der befehl heißen muss damit beim aufruf der lsp der textstil "standard" gesetzt wird gruß und dank Bauvermesser ------------------ Gruß vom Bauvermesser; übrigens- ein Vermesser kennt seine Grenzen! 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: 9803 Registriert: 01.12.2003 One AutoCAD 2.5 - 2024, AutoCAD, Civil 3D, Win10/Win11
|
erstellt am: 19. Aug. 2006 19:48 <-- editieren / zitieren --> Unities abgeben: Nur für Bauvermesser
|
Bauvermesser Mitglied Vermesser
Beiträge: 460 Registriert: 18.03.2006 AMD 2600, 2024RAM ,WIN XP PROF-SP3, ACAD 2005, Firmenrechner,
|
erstellt am: 31. Aug. 2006 10:14 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|