| |
| 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: Block-Attribute mit lisp ausfiltern. (302 mal gelesen)
|
ROBYCAD Mitglied Vermessungstechniker
Beiträge: 57 Registriert: 13.05.2002 ACAD 2002(MAP 5), ACAD 2000 2xP3 1Ghz 512 MB Ram NT 4.0
|
erstellt am: 11. Okt. 2002 12:44 <-- editieren / zitieren --> Unities abgeben:
Hallo ACAD Forum, hab folgendes problem, ich möchte aus einen in die zeichnung eingeüfgten Blocks,der auch Attribute enthält, über den Gruppencode die attributwerte rausfiltern um diese dann in eine ASCII-Datei auslesen zu können. Wenn ich mir aber den Gruppencode mit (entget(car(entsel)))anzeigen lasse sind keine dotted-pairs listen mit den attributwerten [z.B. (1 . "15.4")] in den code vorhanden bzw. die werden nicht angezeigt. Wie komme ich über eine lisp-funktion an die attributte? Weis jemand wie ich das hinkriegen kann. Ich danke euch im voraus für die tipps. Gruß Roberto Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 11. Okt. 2002 12:59 <-- editieren / zitieren --> Unities abgeben: Nur für ROBYCAD
keine Antwort aber dennoch: kennst du schon den Datenbankviewer aus den Expresstools(1-9) ? der hilft manchmal um Sachen zu verstehen...(fange langsam an mich mit dem Thema zu befassen- du bist da schon weiter...) ------------------ Gruß Sebastian ,FFM 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: 11. Okt. 2002 13:03 <-- editieren / zitieren --> Unities abgeben: Nur für ROBYCAD
Hai Du kannst 1. Die Filterliste noch spezifizieren und 2. Musst Du dien Attribut benennen. (z.Zt. steht da Basis) und 3. musst Du einen Eintrag machen was Passieren soll, wenn das Attribut mit dem gesuchten übereinstimmt. (z.Zt steht da '(setq M:base (assoc 10 M:ELIST))') (prompt "\n----> Starten mit 'BLK-ATT'") (defun C:BLK-att (/ M:MD_ERR M:FEHLER M:SS1 M:SS1LEN i M:ENAME M:ELIST M:ETYPE M:BTAB M:BASE M:BLK ) (setq M:MD_ERR *ERROR* *ERROR* M:FEHLER ) ;_ end of setq ;;Marke für Zurück nach Abbruch setzen (command "_.UNDO" "_MARK") (setvar "cmdecho" 0) (if (setq M:SS1 (ssget "X" '((0 . "Insert"))) ) ;_ end of setq (progn (setq M:SS1LEN (sslength M:SS1) ;length of selection set i 0 ;loop counter ) ;_ end of setq (while (< i M:SS1LEN) (setq M:ENAME (ssname M:SS1 i) ;entity name M:ELIST (entget M:ENAME) ;entity data list M:ETYPE (cdr (assoc 0 M:ELIST)) ;entity type ) ;setq (setq M:BLK (entnext (cdr (assoc -1 M:ELIST))) ) ;setq (while (/= (cdr (assoc 0 (entget M:BLK))) "SEQEND") (setq M:ELIST (entget M:BLK) M:ETYPE (cdr (assoc 0 M:ELIST)) ) ;_ end of setq (cond ((= M:ETYPE "ATTRIB") (if (wcmatch (cdr (assoc 2 M:ELIST)) "BASIS") (setq M:base (assoc 10 M:ELIST)) ) ;_ end of if ) ) ;_ end of cond (setq M:BLK (entnext M:BLK)) ) ;ende while ;ende while (setq i (1+ i)) ;next entity ) ;while ) ;_ end of progn (Princ "\nEs wurden keine entsprechenden Blöcke in der Zeichnung gefunden." ) ;_ end of Princ ) ;_ end of if (princ) ) ;_ end of defun ------------------ Gruß CADwiesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ROBYCAD Mitglied Vermessungstechniker
Beiträge: 57 Registriert: 13.05.2002
|
erstellt am: 11. Okt. 2002 13:09 <-- editieren / zitieren --> Unities abgeben:
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 11. Okt. 2002 13:12 <-- editieren / zitieren --> Unities abgeben: Nur für ROBYCAD
nicht sagen lassen- selber schaun! falls du die Tools also nicht hast: renn zu CADwiesel.de und hol´dir die "ETV1-9" + deutsches Menü - Anleitung liegt bei! -------------- der Viewer zeigt dir die Entityliste der Geometriedatenbank und ist aufgebaut wie der Explorer! ------------------ Gruß Sebastian ,FFM Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ROBYCAD Mitglied Vermessungstechniker
Beiträge: 57 Registriert: 13.05.2002
|
erstellt am: 11. Okt. 2002 13:45 <-- editieren / zitieren --> Unities abgeben:
|
ROBYCAD Mitglied Vermessungstechniker
Beiträge: 57 Registriert: 13.05.2002 ACAD 2002(MAP 5), ACAD 2000 2xP3 1Ghz 512 MB Ram NT 4.0
|
erstellt am: 11. Okt. 2002 14:53 <-- editieren / zitieren --> Unities abgeben:
Hi CADwiesel, Da bin ich wieder! Hat top gefunzt! Hast mir wirklich weitrgeholfen. DANKE!!! Dafür gibt's 10 Unities. Ich hoffe ich nerve nicht aber ein paar fragen hätte ich noch. 1. Welche von den dottet-pairs listen identifiziert die attribut Entities? 2. Was hat "SEQEND" für eine funktion/bedeutung? Schöne Grüße Roberto
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ROBYCAD Mitglied Vermessungstechniker
Beiträge: 57 Registriert: 13.05.2002
|
erstellt am: 11. Okt. 2002 15:44 <-- editieren / zitieren --> Unities abgeben:
|
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 14. Okt. 2002 10:01 <-- editieren / zitieren --> Unities abgeben: Nur für ROBYCAD
Hai 1. Welche von den dottet-pairs listen identifiziert die attribut Entities? ...??? Ich versuch's mal: GC 66 . 1 von Block => Block mit Attributen (0 . "ATTRIB") geh' doch einfach mal mit (entget (car (nentsel))) an ein Blockatt ran. 2. Was hat "SEQEND" für eine funktion/bedeutung? Ende der Sequenz (innerhalb des Blockes kommen keine Elemente meht) ------------------ Gruß CADwiesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ROBYCAD Mitglied Vermessungstechniker
Beiträge: 57 Registriert: 13.05.2002
|
erstellt am: 14. Okt. 2002 10:42 <-- editieren / zitieren --> Unities abgeben:
|