| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Blochreferenzen löschen (2304 mal gelesen)
|
Stechi Mitglied Informatiker
Beiträge: 75 Registriert: 17.01.2008
|
erstellt am: 08. Apr. 2008 16:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Forummitglieder, ich möchte Blockreferenzen löschen und benutze dafür folgenden Code: Code: Dim schriftblock As AcadBlockReference ' Prüfen ob ein Schriftkopf vorhanden ist, wenn ja löschen For Each schriftblock In ThisDrawing.ModelSpace If schriftblock.Name = "AKK_ZEKO" Then schriftblock.Delete End If Next schriftblock
Ich bekomme an der Stelle von der "For-Schleife" die Fehlermeldung Typen unverträglich! Kann mir bitte sagen, warum? Danke! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 08. Apr. 2008 16:17 <-- editieren / zitieren --> Unities abgeben: Nur für Stechi
Zitat: Original erstellt von Stechi: Hallo Forummitglieder,ich möchte Blockreferenzen löschen und benutze dafür folgenden Code: Code: Dim schriftblock As AcadBlockReference ' Prüfen ob ein Schriftkopf vorhanden ist, wenn ja löschen For Each schriftblock In ThisDrawing.ModelSpace If schriftblock.Name = "AKK_ZEKO" Then schriftblock.Delete End If Next schriftblock
Ich bekomme an der Stelle von der "For-Schleife" die Fehlermeldung [b]Typen unverträglich! Kann mir bitte sagen, warum? Danke![/B]
...na wenn der ModelSpace auch andere Objekte enthält .. z.B. Linien , die keine Eigenschaft "Name" haben .... Mach vorher besser noch ne Prüfung auf Objectname! ------------------ - 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 |
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 sw: Win7-x64 Office 365 ProPlus C3D (& LT ) ET; DACH; Extensions ------------------- hw: FX3800 i5 CPU 670 8GB RAM
|
erstellt am: 08. Apr. 2008 21:45 <-- editieren / zitieren --> Unities abgeben: Nur für Stechi
N'Abend zusammen, da ich so ganz allmählich mal mit VBA für ACAD anfangen möchte, vorab die Warnung: ich komm in Zukunft öfter hier vorbei Zitat: ...na wenn der ModelSpace auch andere Objekte enthält .. z.B. Linien , die keine Eigenschaft "Name" haben ....
hmm, mein Modellbereich war bis auf die Blockreferenzen blitzeblank, das konnte es nicht sein, aber ich konnte auch gar nicht erst gescheit als AcadBlockReference zuweisen (Laufzeitfehler 13). Als Object dagegen geht, mit der Einschränkung von Thomas komme ich auf: Code: Public Sub BlockReferenzLoeschen() Dim objSB As Object For Each objSB In ThisDrawing.ModelSpace If objSB.ObjectName = "AcDbBlockReference" Then If objSB.Name = "AKK_ZEKO" Then objSB.Delete End If Next objSB End Sub
naja, Object geht ja (fast) immer, ist also eigentlich langweilig, die genauere Zuweisung gelingt mir leider noch nicht. Kann da wer helfen? Ich denke, das ist meine die übliche Klassenphobie, die Objektbibliothek sagt mir nur: Klasse von ACAD, bringt mich im Moment nicht nach vorne Wo kann ich mich denn da mal schlau machen? Ich such was für "kleine Hände", möglichst auf deutsch...
------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info Excel -Suche RuA-Suche FAQ-ACAD Hilfe zu CAD.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002
|
erstellt am: 09. Apr. 2008 07:01 <-- editieren / zitieren --> Unities abgeben: Nur für Stechi
Hi Nicole, Probier es doch mal so: Code: Public Sub BlockReferenzLoeschen() Dim objSB As AcadBlockReference For Each objSB In ThisDrawing.ModelSpace If TypeName(objSB) = "IAcadBlockReference2" Then If objSB.Name = "AKK_ZEKO" Then objSB.Delete End If Next objSB End Sub
Das erst mal als Anfang. Ich schaue mal, ob ich noch ein Tutorial über VBA hier irgendwo rumfliegen habe. Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 sw: Win7-x64 Office 365 ProPlus C3D (& LT ) ET; DACH; Extensions ------------------- hw: FX3800 i5 CPU 670 8GB RAM
|
erstellt am: 09. Apr. 2008 07:18 <-- editieren / zitieren --> Unities abgeben: Nur für Stechi
Moin Carsten, nöö, leider nicht. Laufzeitfehler 13 bei Sprung in Zeile: For Each objSB In ThisDrawing.ModelSpace objSB -> Wert = Nothing Er mag einfach ums Verrecken die Zuweisung als AcadBlockReference nicht. Fehlt mir evtl. nur ein Verweis? PS: 1. Danke schon einmal für's gucken :-) 2. der "code" selber läuft und tut auch, was er soll, es geht mir rein um die "Dim as Object" Geschichte... ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info Excel -Suche RuA-Suche FAQ-ACAD Hilfe zu CAD.de
[Diese Nachricht wurde von runkelruebe am 09. Apr. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002
|
erstellt am: 09. Apr. 2008 07:46 <-- editieren / zitieren --> Unities abgeben: Nur für Stechi
|
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 sw: Win7-x64 Office 365 ProPlus C3D (& LT ) ET; DACH; Extensions ------------------- hw: FX3800 i5 CPU 670 8GB RAM
|
erstellt am: 09. Apr. 2008 07:57 <-- editieren / zitieren --> Unities abgeben: Nur für Stechi
|
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002
|
erstellt am: 09. Apr. 2008 08:38 <-- editieren / zitieren --> Unities abgeben: Nur für Stechi
|
runkelruebe Ehrenmitglied V.I.P. h.c. Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 sw: Win7-x64 Office 365 ProPlus C3D (& LT ) ET; DACH; Extensions ------------------- hw: FX3800 i5 CPU 670 8GB RAM
|
erstellt am: 09. Apr. 2008 08:58 <-- editieren / zitieren --> Unities abgeben: Nur für Stechi
|
Stechi Mitglied Informatiker
Beiträge: 75 Registriert: 17.01.2008
|
erstellt am: 09. Apr. 2008 09:51 <-- editieren / zitieren --> Unities abgeben:
|