Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Löschen von Blockreferenzen im ARX

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:  Löschen von Blockreferenzen im ARX (892 mal gelesen)
Andreas Tost
Mitglied
Softwareentwickler


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

Beiträge: 30
Registriert: 21.11.2002

erstellt am: 14. Feb. 2006 08:28    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

Hallo ARX-Programmierer

Wer kan einen Tipp geben wie ich eine Blockreferenz (AcDbBlockReference) aus einer Zeichnung löschen oder unsichtbar machen kann. Das Einfügen als 'AcDbMInsertBlock' funktioniert einwandfrei, nur beim Löschen kommen immer Fehlermeldungen, dass es nicht fürs schreiben geeignet ist, obwohl ich fast alle Konstellationen (kforWrite...) ausprobiert habe. 

Da ich noch nicht sehr lange ARX-Anwendungen programmiere, fehlt mir hier die Erfahrung, habe aber auch kein Beispiel gefunden.

Über eine Hilfe wäre ich sehr froh.

mit freundliche GRüßen

Andreas

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

Heimdall
Mitglied


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

Beiträge: 7
Registriert: 10.02.2006

erstellt am: 14. Feb. 2006 09:09    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 Andreas Tost 10 Unities + Antwort hilfreich

Ohne den Code zu sehen, mit dem der Block eingefügt wurde bzw. mit dem versucht wird, ihn zu löschen, ist das schwierig zu beantworten  
Wie wird versucht, den Block zum Schreiben zu öffnen? acdbOpenObject?
Wenn ja, einfach mal den Rückgabewert der Funktion anschauen...
Im Moment würde ich denken, daß der Block nach der Erzeugung nicht geschlossen wurde, weswegen er nicht erneut geöffnet werden kann...
Unter diesen Umstäden würde der acdbOpenObject mit einem eWasOpenForRead bzw. eWasOpenForWrite zurückkommen...

Denn eigentlich lässt sich jede AcDbEntity (auch eine Blockreferenz ist eine Entity) immer gleich löschen, bzw. unsichtbar machen:

Zum schreiben öffnen:
(acdbOpenObject(pEnt, idEnt, AcDb::kForWrite))
löschen:
pEnt->erase();
(bzw. unsichtbar machen:
pEnt->setVisibility(AcDb::kInvisible);
)
Und wieder schliessen:
pEnt->close();

[Diese Nachricht wurde von Heimdall am 14. Feb. 2006 editiert.]

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