| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY wird von NVIDIA zum Händler des Jahres gewählt - zum dritten Mal in Folge, eine Pressemitteilung
|
Autor
|
Thema: Blockdefinition löschen (4064 mal gelesen)
|
MartinM Mitglied
 
 Beiträge: 122 Registriert: 27.11.2001
|
erstellt am: 23. Aug. 2005 17:37 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, nachdem ich in einer Zeichnung alle Blockreferenzen gelöscht habe, möchte ich auch noch die Blockdefinition löschen. Das geht ganz gut mit Thisdrawing.Blocks.Item("MeinBlock").delete ! Ich komme jedoch nicht weiter, wenn es sich um einen verschachtelten Block handelt ! Beispiel: Ich habe einen Block A, der die Blöcke B und C beinhaltet. Beim Versuch, die Blockdefinition A zu löschen, erscheint die Meldung "Objekt wird referenziert". Diese Meldung verstehe ich, wenn ich B oder C versuch zu löschen, nicht aber bei A. Hat jemand eine Idee ? Viele Grüsse Martin [Diese Nachricht wurde von MartinM am 23. Aug. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
 
 Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 24. Aug. 2005 07:32 <-- editieren / zitieren --> Unities abgeben:          Nur für MartinM
|
MartinM Mitglied
 
 Beiträge: 122 Registriert: 27.11.2001
|
erstellt am: 24. Aug. 2005 09:18 <-- editieren / zitieren --> Unities abgeben:         
|
h1981 Mitglied student
 Beiträge: 4 Registriert: 11.08.2005
|
erstellt am: 26. Aug. 2005 07:54 <-- editieren / zitieren --> Unities abgeben:          Nur für MartinM
aber dieser befehl ("ThisDrawing.PurgeAll") löscht auch alle unbenutzten bzw. unbelegten layer, usw. ..., also dinge, die man später noch brauchen könnte. gibt es eine möglichkeit unbenutzte blockdefinitionen auch ohne "sendcommand" zu löschen? mfg hannes [Diese Nachricht wurde von h1981 am 26. Aug. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoeG Mitglied Systemadmin NX und Autocad
 
 Beiträge: 122 Registriert: 18.10.2002 Autocad 2000 und Win2000
|
erstellt am: 26. Aug. 2005 12:28 <-- editieren / zitieren --> Unities abgeben:          Nur für MartinM
Hallo Hannes Das ist schon richtig. Wenn man Layer usw. die man nicht benutzt in der Zeichnung beläst verschwendet man nur unnütz Speicherplatz und Zeit beim laden der Datei. Sollte man die Elemente irgendwann wieder brauchen kann man sie ja wieder einfügen. Soweit ich weis gibt es in VBA keine Möglichkeit um nur eine Blockdefinition zu löschen. mfg Joe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MartinM Mitglied
 
 Beiträge: 122 Registriert: 27.11.2001
|
erstellt am: 26. Aug. 2005 12:33 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, Grundsätzlich kann man eine Blockdefinition mit Thisdrawing.Blocks.Item("MeinBlock").delete löschen ! Setzt natürlich voraus, dass keine Blockreferenz vorhanden ist. Ich habe diesen Beitrag losgetreten, weil es nicht funktioniert, wenn es sich bei der Blockdefinition um einen verschachtelten Block handelt ! Viele Grüsse Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
h1981 Mitglied student
 Beiträge: 4 Registriert: 11.08.2005
|
erstellt am: 26. Aug. 2005 13:19 <-- editieren / zitieren --> Unities abgeben:          Nur für MartinM
@ JoeG: es geht hier allerdings um rund 40-50 layer, jeder ausdefiniert für einzelne zeichenaufgaben (ist sozusagen das ausgangsfile für neue zeichnungen) @ MartinM: stimmt, wieder einmal bäume vor den augen gehabt ;-) danke, hannes Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 26. Aug. 2005 17:06 <-- editieren / zitieren --> Unities abgeben:          Nur für MartinM
Hallo Martin, reicht nicht die Funktion [Datei\Dienstprogramme\Bereinigen] ? per VBA gäb es wohl die Möglichkeit die Blockdefinitionen rekursiv nach weiteren Blockdefinitionen zu untersuchen. oder mit sendCommand ThisDrawing.SendCommand "-bereinig BL " & vbCrLf & "Nein " Beispiel funkt leider nicht richtig, da ich die Kommandozeile nicht hinbekomme. Stelli1
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
autogis Mitglied Dr.-Ing. E-Technik
 
 Beiträge: 185 Registriert: 09.02.2001
|
erstellt am: 06. Feb. 2009 13:10 <-- editieren / zitieren --> Unities abgeben:          Nur für MartinM
Hi Stelli, da ich vor dem selben Problem stehe, scheidet purgeAll aus. Mit SendCommand habe ich anscheinend das selbe Problem, wie Du auch. Blieb mir der Weg über ein Script. SendCommand ("filedia 0 ") SendCommand ("_script C:\...\bereinigung.scr" & vbCr) SendCommand ("filedia 1 ") Damit sind noch alle Layer, Linientypen ... da, die Blöcke aber raus. Vielleicht hilft es ja dem einen oder anderen. Viele Grüße - Peter [Diese Nachricht wurde von autogis am 06. Feb. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |