Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Suche Block in Zeichnung bzw Support-list

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:  Suche Block in Zeichnung bzw Support-list (979 mal gelesen)
cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 04. Jun. 2015 08:12    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

Mal kurz nachgefragt, wenn ich prüfen möchte, ob ein Block mit bspw. Namen "CHECK" in der Zeichnung vorhanden ist, gibt es einmal das Problem, dass nur der Blockname mit Grossbuchstaben gefunden werden kann und zum zweiten, sollte der Block nicht in der aktuellen Zeichnung sein, soll in den Supportfiles gesucht werden. In LISP ist das sehr einfach zu erledigen, wie sieht es jedoch mit C#.NET aus

Code:
using (Transaction myT = db.TransactionManager.StartTransaction())
            {
                //Get the block definition "Check".
                string blockName = "CHECK";
                bool found = false;

                //Check if block "CHECK" found in databas
                BlockTable bt = db.BlockTableId.GetObject(OpenMode.ForRead) as BlockTable;
                foreach (ObjectId id in bt)
                {
                    BlockTableRecord btRecord = (BlockTableRecord)myT.GetObject(id, OpenMode.ForRead);

                    if (btRecord.Name.Contains("CHECK"))
                    {
                        ed.WriteMessage("\nBlock name: {0}", btRecord.Name);
                        found = true;
                    }

                      //ed.WriteMessage("\nFound Block name: {0", btRecord.Name);
                }


------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 04. Jun. 2015 08: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 Nur für cadplayer 10 Unities + Antwort hilfreich

Hallo Dirk,

die BlockTable ist ein Array, auf deren Elemente du direkt mit dem BlockNamen abfragen kannst.
ObjectId _blockTableRecordId = bt ["CHECK"]
if(_blockTableRecordId == ...

So ein (findfile ..) wie in Lisp ist mir in .Net-API nicht bekannt. Falls es das wirklich nicht gibt, musst du halt jeden Supportpfad checken, ob dieser die Datei enthält.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 04. Jun. 2015 08: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

Danke für den Tip mit array (1A.Klasse was ein array alles einsammelt).
Der Aufruf 'command' in LISP ist da ziehmlich gediegen, wenn man bedenkt was der unternimmt, um bspw. einen Block zu finden.
Gibt es nicht selbiges als Methode in .NET oder wie kann es funktionieren (theoretisch), wenn man externe Suchpfade wie bei findfile in der Suche mit einbeziehen möchte.

------------------
Gruss Dirk
Blog | Adolf Spende | Infra-Feed | ÅF AB

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

Brischke
Moderator
CAD on demand GmbH




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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 04. Jun. 2015 09: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 Nur für cadplayer 10 Unities + Antwort hilfreich

... lies nochmal meine vorherige Antwort, da sind die Antworten doch bereits enthalten???
Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

cadplayer
Ehrenmitglied
CADniker


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

Beiträge: 1832
Registriert: 28.04.2009

erstellt am: 04. Jun. 2015 19:47    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


BlockTable.png

 
Klaro!
Du bist doch immer mal wieder zum scherzen bereit   
Habs gefunden und werd mal weiter schwitzen
Danke!

Zitat:
...musst du halt jeden Supportpfad checken, ob dieser die Datei enthält...

Das meinte ich eben, command erledigt das selbst, wenn der Block irgendwo in den Suchpfaden vergraben ist.
Nicht aber das Beispiel, welches ich erst gepostet habe, dass checkt nur in der Zeichnung.
Also stellt sich nun die Frage, wie kann ich bei der Abfrage die Support-pfade einbeziehen.
Sehe ich wiedermal den Wald vor Bäumen nicht ? 

[Diese Nachricht wurde von cadplayer am 04. Jun. 2015 editiert.]

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

cadffm
Ehrenmitglied V.I.P. h.c.
良い精神



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

Beiträge: 21533
Registriert: 03.06.2002

System: F1
und Google

erstellt am: 04. Jun. 2015 20:54    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 cadplayer 10 Unities + Antwort hilfreich

Es gibt (nach Brischkes Kenntnisstand) keinen Wald, du suchst ihn aber verzweifelt weil die alternative Arbeit ist, hmm.

Wobei das nicht viel Arbeit sein kann, denn "suche Datei in Ordner XY" wirst du ja hinbekommen und das machst du dann für alle Supportordner, das aktuelle Verzeichnis und alle Projektverzeichnisse(falls die aktuelle Datei einen Projekt zugeordnet ist).

Beim ersten Treffer kannst du aufhören/die Datei ist im ACAD-Sinn die gesuchte. Die Reihenfolge der Suche hat man in 5min raus - um es 1:1 zum Einfüge-Befehl gestalten zu können.

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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