Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Koordinatenexport

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Koordinatenexport (2418 mal gelesen)
Bauvermesser
Mitglied
Vermesser


Sehen Sie sich das Profil von Bauvermesser an!   Senden Sie eine Private Message an Bauvermesser  Schreiben Sie einen Gästebucheintrag für Bauvermesser

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

erstellt am: 12. Jul. 2006 08:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bauvermesser 10 Unities + Antwort hilfreich

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




Sehen Sie sich das Profil von CADwiesel an!   Senden Sie eine Private Message an CADwiesel  Schreiben Sie einen Gästebucheintrag für CADwiesel

Beiträge: 1968
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 12. Jul. 2006 08:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bauvermesser 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Bauvermesser an!   Senden Sie eine Private Message an Bauvermesser  Schreiben Sie einen Gästebucheintrag für Bauvermesser

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

erstellt am: 26. Jul. 2006 12:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bauvermesser 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Bauvermesser an!   Senden Sie eine Private Message an Bauvermesser  Schreiben Sie einen Gästebucheintrag für Bauvermesser

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

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: 08. Aug. 2006 07:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bauvermesser 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Bauvermesser an!   Senden Sie eine Private Message an Bauvermesser  Schreiben Sie einen Gästebucheintrag für Bauvermesser

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

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. Aug. 2006 07:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bauvermesser 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Bauvermesser an!   Senden Sie eine Private Message an Bauvermesser  Schreiben Sie einen Gästebucheintrag für Bauvermesser

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

deine erläuterungen waren große klasse, danke, werde es versuchen

------------------
Gruß vom Bauvermesser;
übrigens-
ein Vermesser kennt seine Grenzen!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bauvermesser
Mitglied
Vermesser


Sehen Sie sich das Profil von Bauvermesser an!   Senden Sie eine Private Message an Bauvermesser  Schreiben Sie einen Gästebucheintrag für Bauvermesser

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

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: 11. Aug. 2006 10:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bauvermesser 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Bauvermesser an!   Senden Sie eine Private Message an Bauvermesser  Schreiben Sie einen Gästebucheintrag für Bauvermesser

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

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: 16. Aug. 2006 08:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bauvermesser 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Bauvermesser an!   Senden Sie eine Private Message an Bauvermesser  Schreiben Sie einen Gästebucheintrag für Bauvermesser

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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



Sehen Sie sich das Profil von CAD-Huebner an!   Senden Sie eine Private Message an CAD-Huebner  Schreiben Sie einen Gästebucheintrag für CAD-Huebner

Beiträge: 9732
Registriert: 01.12.2003

One AutoCAD 2.5 - 2023, Civil 3D, Win10/win11

erstellt am: 19. Aug. 2006 19:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bauvermesser 10 Unities + Antwort hilfreich

(setvar "textstyle" "standard")

------------------
Mit freundlichem Gruß

Udo Hübner

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bauvermesser
Mitglied
Vermesser


Sehen Sie sich das Profil von Bauvermesser an!   Senden Sie eine Private Message an Bauvermesser  Schreiben Sie einen Gästebucheintrag für Bauvermesser

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

bedanke bei allen für die mithilfe und würde diesen beitrag jetzt abschließen,
wer die lsp braucht kann sich ja melden

------------------
Gruß vom Bauvermesser;

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz