| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: retext - ssget (1042 mal gelesen)
|
THE_ONE Mitglied Student, Alter:23
 
 Beiträge: 299 Registriert: 27.04.2005 AMD XP 2000, 512MB-RAM, WIN XP Pro Readon 9600Pro VIZ 2005, Autocad 2007,(Mechanical)
|
erstellt am: 18. Jul. 2008 10:25 <-- editieren / zitieren --> Unities abgeben:         
Hallo! Ich hab mir das Programm ReText (Lisp) von der Seite von mapcar geladen, das auch wunderbar funktioniert. Das Lisp durchsucht die ganze Datei nach einen SUCHSTRING, wird dieser gefunden ersetzt diese Tool dann diesen SUCHSTRING durch den zu ersetzenden String. Das ganze n mal, also so oft wie diese Tool den String in dieser Datei findet. Ich wollte nun diese Lispdatei so modifizieren das es nicht die ganze Datei durchsucht sondern lediglich alle Objekt die ich mit einem Fenster auswähle. Hier mal ein Auszug des original Programms:
Code:
(defun ReTextg (fin repl / ss l n e as op x) (setq ss (ssget "X" (list ( cons -4 "<AND")(cons -4 "<OR")(cons 0 "TEXT")(cons 0 "MTEXT")(cons 0 "DIMENSION")(cons 0 "ATTRIB")(cons 0 "ATTDEF")(cons -4 "OR>")(cons 1 (strcat "*" fin "*"))(cons -4 "AND>")))) (if ss (progn (setq l 0) (setq n (sslength ss)) (while (< l n) (setq e (entget (ssname ss l))) (setq as (assoc 1 e)) (setq op (cdr (assoc 1 e))) (setq x (STD-STRCHG op fin repl)) (setq e (subst (cons 1 x) as e)) (entmod e) (setq l (1+ l)) ) ; while (princ (strcat "\n" (itoa (sslength ss)) " text strings modified.")) ) ; progn (alert (strcat "Text " fin " not found")) ) ; if (princ) )
Habe daher das X , bei ssget, durch W ersetzt. Funktioniert aber nicht da man wenn man W verwendet auch zwei Punkte angeben muss, also fix im Code (laut der Hilfe). Irgendwie blick ich bei ssget nicht durch und wäre daher für jede Hilfe dankbar. Lg THE_ONE ps:Wurde eigentlich schon mal nachgedacht über LISP Tags (Syntax highlighting ) hier im Forum? Würde die Lesbarkeit um vieles verbessern. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
  
 Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 18. Jul. 2008 10:39 <-- editieren / zitieren --> Unities abgeben:          Nur für THE_ONE
|
THE_ONE Mitglied Student, Alter:23
 
 Beiträge: 299 Registriert: 27.04.2005 AMD XP 2000, 512MB-RAM, WIN XP Pro Readon 9600Pro VIZ 2005, Autocad 2007,(Mechanical)
|
erstellt am: 18. Jul. 2008 10:50 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von Dorfy: Hallo, schon mal ssget ohne "Zusatz" verwendet
Hallo und danke erstmal für dein Hilfe! Genau das wäre die Lösung, aber dann kann ich die Filterliste nicht verwenden (ich brauche ja nur die Objekte die Text enthalten), obwohl genau wissen was die einzelnen Elemente in der Liste bedeuten tue ich sowieso nicht (für was gehören die ersten zwei und die letzen 3 Elemente in der Liste???). Ich will halt nur das das ganze funktioniert am Schluss und will daher nicht soviel verändern, ist ja nicht von mir das Lisp. [Diese Nachricht wurde von THE_ONE am 18. Jul. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
  
 Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 18. Jul. 2008 11:00 <-- editieren / zitieren --> Unities abgeben:          Nur für THE_ONE
|
THE_ONE Mitglied Student, Alter:23
 
 Beiträge: 299 Registriert: 27.04.2005 AMD XP 2000, 512MB-RAM, WIN XP Pro Readon 9600Pro VIZ 2005, Autocad 2007,(Mechanical)
|
erstellt am: 18. Jul. 2008 11:22 <-- editieren / zitieren --> Unities abgeben:         
Hi! Hier mal der ganze (originale) Code!
Code: ;;;--------------------------------------------------------------- ;;; ReText.lsp - Ändert gesuchten Teststring global. ;;; So geht's: (ReText "35" "42") ändert alle Vorkommen von "35" ;;; in "42". Auch wenn der gesuchte String in einem anderen steckt. ;;; ReText bearbeitet Text, MText, Attribute und Attributsdefinitionen ;;; ;;; Einschränkung: Durchsucht keine Blöcke. ;;; ;;; ;;; Teile des Programms stammen aus Reini Urbans STDLIB ;;; ;;; 1.0 ;;; Juli, 2002 ;;; ;;; CADchup@cad.de ;;;--------------------------------------------------------------- ;; ;; (defun ReText (fin repl / ss l n e as op x) (setq ss (ssget "X" (list ( cons -4 "<AND")(cons -4 "<OR")(cons 0 "TEXT")(cons 0 "MTEXT")(cons 0 "DIMENSION")(cons 0 "ATTRIB")(cons 0 "ATTDEF")(cons -4 "OR>")(cons 1 (strcat "*" fin "*"))(cons -4 "AND>")))) (if ss (progn (setq l 0) (setq n (sslength ss)) (while (< l n) (setq e (entget (ssname ss l))) (setq as (assoc 1 e)) (setq op (cdr (assoc 1 e))) (setq x (STD-STRCHG op fin repl)) (setq e (subst (cons 1 x) as e)) (entmod e) (setq l (1+ l)) ) ; while (princ (strcat "\n" (itoa (sslength ss)) " text strings modified.")) ) ; progn (alert (strcat "Text " fin " not found")) ) ; if (princ) ) ;;; ;;; The following code is taken from Reini Urbans STDLIB. ;;; ;;; ;;; $Id: STDSTR.LSP 0.5004 2000/09/20 12:48:22 rurban Exp $-*-AutoLISP-*- ;;; Time-stamp: <2000-10-03 00:56:55 rurban> ;;; Copyright (c) 1998,99,2000 by Reini Urban ;;; Available for free at http://xarch.tu-graz.ac.at/autocad/stdlib/ ;;; ;;; Permission to use, copy, modify and distribute this software and its ;;; documentation for any purpose is hereby granted without fee, provided ;;; 1) that the above copyright notice appear in all copies, ;;; 2) that the copyright notice, this permission notice and the pointer ;;; where to download the source code for free appear in the ;;; supporting documentation of source code distributions, ;;; 3) that the name of Reini Urban not be used in advertising or ;;; publicity pertaining to distribution of the software and ;;; 4) that modifications without changing the defined function and ;;; symbol names may not be published, distributed nor copied ;;; without specific, written prior permission. ;;; ;;; No Warranty ;;; Reini Urban makes no representations about the suitability of this ;;; software for any purpose, without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It is provided ;;; "as is" without express or implied warranty. ;;; See the full Disclaimer for all detailed warranty exclusions. ;;; -------------------------------------------------------------------- ;;; String function for the STDLIB (defun STD-STRCHG (s old new / i ls lold) (if (= old "") (strcat new s) (progn (setq lold (strlen old) ; length of substr to search ls (1+ (- (strlen s) lold)) ; max. position to search to i 1) (while (<= i ls) (if (= (substr s i lold) old) ; found (setq s (strcat (if (> i 1) (substr s 1 (1- i)) "") new (if (<= i ls) (substr s (+ i lold)) "")) i (+ i (strlen new))) ; next position to search (setq i (1+ i)) ) ) s ))) ;;; ;;; ;;; (princ "\nReText loaded.") (princ "\nUsage: (ReText findstring replacestring). See file headers for details.") (princ)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dorfy Mitglied Double-Dipl.-Ing. Bleistiftanspitzer
  
 Beiträge: 900 Registriert: 21.07.2006 AutoCad2007, ProE, HiCad
|
erstellt am: 18. Jul. 2008 11:30 <-- editieren / zitieren --> Unities abgeben:          Nur für THE_ONE
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |