| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für BricsCAD |
| |
 | TRICAD MS Piping 3D - Effizient Apparate- und Rohrleitungsmodelle planen , eine App
|
Autor
|
Thema: Auslesen von Textkoordinaten (2578 mal gelesen)
|
FraBaNeu Mitglied Angestelter, Vermesser
 Beiträge: 7 Registriert: 25.03.2014 AutoCad 2002 BricsCad v14
|
erstellt am: 30. Apr. 2014 14:06 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich bin neu hier habe bis jetzt mit Autocad 2002 gearbeitet und bin jetzt auf Bricscad v14 umgestiegen. Ich habe mit folgender Lisp-Routine immer Koordinaten von Punktnummern (Text) in eine *.txt Datei geschrieben -------------------------------------------------------------------------- (defun C:text_xy ( / aws datei dateiname n) (setq dateiname (getfiled "Datei auswählen:" "" "txt" 1)) (if dateiname (progn (setq datei (open dateiname "w")) (princ "\nBitte Texte und M-Texte auswählen:") (setq aws (ssget (list (cons -4 "<OR") (cons 0 "TEXT") (cons 0 "MTEXT") (cons -4 "OR>")))) (if aws (progn (setq n 0) (princ "\n0 Texte ausgelesen.") (repeat (sslength aws) (write-line (strcat (cdr(assoc 1 (entget(ssname aws n))));;Textinhalt " ";;;Leerzeichen (rtos(car(cdr(assoc 10 (entget(ssname aws n)))))2 3) ;;x mit 6 Nachkommastellen " ";;;Leerzeichen (rtos(cadr(cdr(assoc 10 (entget(ssname aws n)))))2 3) ;;y mit 6 Nachkommastellen )datei) (princ (strcat "\r" (itoa (+ n 1))" Texte ausgelesen.")) (setq n (+ n 1))) (princ (strcat "\nDie Texte wurden in der Datei "dateiname " gespeichert."))) (alert "Es wurden keine Texte ausgewählt.")) ) (alert "ungültiger Dateiname")) (princ)) -------------------------------------------------------------------------- Wenn ich diese Lisproutine in Briccad ausführe, bekomme ich als Ergebnis eine leere *.txt Datei Kann mir jemand sagen, wie ich die Routine anpassen kann? Besten Dank
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theodor Schoenwald Ehrenmitglied
    
 Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 01. Mai. 2014 21:19 <-- editieren / zitieren --> Unities abgeben:          Nur für FraBaNeu
Hallo, Du hast die eine Datei zum schreiben geöffnet, diese Datei muss nach der Beendigung der Arbeit geschlossen werden, z.B.: mit (close Datei). ;;--------------------------------------------------- (defun C:TEXT_XY (/ AWS DATEI DATEINAME N) (setq DATEINAME (getfiled "Datei auswählen:" "" "txt" 1)) (if DATEINAME (progn (setq DATEI (open DATEINAME "w")) (princ "\nBitte Texte und M-Texte auswählen:") (setq AWS (ssget (list (cons -4 "<OR") (cons 0 "TEXT") (cons 0 "MTEXT") (cons -4 "OR>") ) ) ) (if AWS (progn (setq N 0) (princ "\n0 Texte ausgelesen.") (repeat (sslength AWS) (write-line (strcat (cdr (assoc 1 (entget (ssname AWS N)))) " " (rtos (car (cdr (assoc 10 (entget (ssname AWS N))))) 2 3) " " (rtos (cadr (cdr (assoc 10 (entget (ssname AWS N))))) 2 3) ) DATEI ) (princ (strcat "\r" (itoa (+ N 1)) " Texte ausgelesen.")) (setq N (+ N 1)) ) (princ (strcat "\nDie Texte wurden in der Datei " DATEINAME " gespeichert.")) ) (alert "Es wurden keine Texte ausgewählt.") ) (close DATEI); die Datei zumachen ) (alert "Ungültiger Dateiname") ) (princ) ) (prompt "\nC:TEXT_XY") (princ) ;;---------------------------------------- Gruß Theodor Schönwald Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theodor Schoenwald Ehrenmitglied
    
 Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 03. Mai. 2014 19:31 <-- editieren / zitieren --> Unities abgeben:          Nur für FraBaNeu
|
FraBaNeu Mitglied Angestelter, Vermesser
 Beiträge: 7 Registriert: 25.03.2014 AutoCad 2002 BricsCad v14
|
erstellt am: 05. Mai. 2014 08:17 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen Theodor, sorry, konnte einige Tage nicht am PC sein (Urlaub) Habe heute Morgen gleich die Lisp mit Deinen Anpassungen getestet. Es funktioniert wunderbar. Besten Dank für die schnelle Hilfe Freundlicher Gruß Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theodor Schoenwald Ehrenmitglied
    
 Beiträge: 1672 Registriert: 16.04.2002
|
erstellt am: 05. Mai. 2014 09:37 <-- editieren / zitieren --> Unities abgeben:          Nur für FraBaNeu
... alles klar. Noch eine Anmerkung zu einem anderen Fall der in ACAD läuft und in Bricscad nicht. Wenn in einer DCL-Datei folgende Zeile steht: value = 1; läuft die Datei in ACAD. in Bricscad nicht, es muss: value = "1"; stehen. Anführungszeichen wären richtig und sollten ACAD auch stehen, aber ACAD ignoriert den Fehler. Fröhliches Schaffen nach dem Urlaub Theodor Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
FraBaNeu Mitglied Angestelter, Vermesser
 Beiträge: 7 Registriert: 25.03.2014 AutoCad 2002 BricsCad v14
|
erstellt am: 05. Mai. 2014 09:57 <-- editieren / zitieren --> Unities abgeben:         
|