| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Textzähler (1131 mal gelesen)
|
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 07. Feb. 2005 09:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich brauche einen Tool der nach Text z.B „Schraube“ in der Zeichnung sucht. Er soll mir zurückgeben wie oft kommt der Text vor. Kann mir jemand ein Tipp geben oder ein Beispiel zeigen. Gruß Roy
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 07. Feb. 2005 09:21 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
Deinen Wunsch 100 % umgesetzt (ohne Glaskugel ): (if (setq l (ssget "_x" '((0 . "*TEXT")(1 . "Schraube")))) (sslength l) 0) Willst du noch verschachtelte Blöcke usw Berücksichtigen hilft dir das weiter:
(defun COUNT-TXT(TEXTSTR / BLOCK COUNT) (vl-load-com) (setq COUNT 0) (vlax-for LAYOUT (vla-get-layouts(vla-get-activedocument(vlax-get-acad-object))) (vlax-for ITEM (setq BLOCK (vla-get-Block LAYOUT)) (if(and(member(strcase(vla-get-objectname ITEM))'("ACDBMTEXT" "ACDBTEXT")) (=(vla-get-Textstring ITEM )TEXTSTR) ) (setq COUNT(1+ COUNT)) ) ) ) (vlax-for BLOCK (vla-get-blocks(vla-get-activedocument(vlax-get-acad-object))) (vlax-for ITEM BLOCK (if(and(member(strcase(vla-get-objectname ITEM))'("ACDBMTEXT" "ACDBTEXT")) (=(vla-get-Textstring ITEM )TEXTSTR) ) (setq COUNT(1+ COUNT)) ) ) ) COUNT ) Aufruf dann so ähnlich: (princ "\n Vorkommen des Textes \"Schraube\" in der Zeichnung: ") (princ (COUNT-TXT "Schraube")) Attribute werden dir aber noch nicht berücksichtigt, anaolg auch nicht das Vorkommen von "Schraube" innerhalb eines Textes. Aber als Tipp dürfte es ja reichen, oder? ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."
[Diese Nachricht wurde von CADmium am 07. Feb. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 07. Feb. 2005 14:17 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 07. Feb. 2005 14:26 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
bei mir nicht! und bevor wir rumrätseln : was sagt denn die befehlszeile genau?! ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 07. Feb. 2005 14:31 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 .
|
erstellt am: 07. Feb. 2005 14:34 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
.. das ist doch kein Syntax-Fehler!!! <dream> und wie gesagt, die Funktion guckt nicht in Blöcke und analysiert auch keine Attribute. Weiterhin wird auch "Schraube" in "Das ist eine Schraube" nicht gesucht. Das war aber auch nicht gefragt!! Besonders Teil 2 ist aber in der Hinsicht ausbaufähig und ist als Tipp und Beispiel gedacht.. ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."[Diese Nachricht wurde von CADmium am 07. Feb. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 07. Feb. 2005 14:35 <-- editieren / zitieren --> Unities abgeben: Nur für RoyCAD
|
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 07. Feb. 2005 15:02 <-- editieren / zitieren --> Unities abgeben:
|
RoyCAD Mitglied Dipl-Ing Energietechnik
Beiträge: 206 Registriert: 24.05.2004 Win XP AutoCAD2008-2010 Inventor 2008-2010 Productstream Compass P4 3,0GHz 512MB Ram
|
erstellt am: 09. Feb. 2005 16:02 <-- editieren / zitieren --> Unities abgeben:
Mit Text und Mtext Funktioniert perfekt mit (setq all (ssget "X" '((0 . "*TEXT")(1 . "Schraube")))) (sslength all) aber wenn es geht um verschachtelte Blöcke usw. dann brauche ich noch einen guten Tipp weil ich komme da nicht weiter mit der Code (defun COUNT-TXT(TEXTSTR / BLOCK COUNT) (vl-load-com) (setq COUNT 0) (vlax-for LAYOUT (vla-get-layouts(vla-get-activedocument(vlax-get-acad-object))) (vlax-for ITEM (setq BLOCK (vla-get-Block LAYOUT)) (if(and(member(strcase(vla-get-objectname ITEM))'("ACDBMTEXT" "ACDBTEXT")) (=(vla-get-Textstring ITEM )TEXTSTR) ) (setq COUNT(1+ COUNT)) ) ) ) (vlax-for BLOCK (vla-get-blocks(vla-get-activedocument(vlax-get-acad-object))) (vlax-for ITEM BLOCK (if(and(member(strcase(vla-get-objectname ITEM))'("ACDBMTEXT" "ACDBTEXT")) (=(vla-get-Textstring ITEM )TEXTSTR) ) (setq COUNT(1+ COUNT)) ) ) ) COUNT ) Für eine weitere Inspiration bin ich sehr dankbar Gruß Roy Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |