Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  dynamischer Block

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:  dynamischer Block (850 mal gelesen)
otm
Mitglied
Bauingenieur


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

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 15. Mrz. 2022 18: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 Forum,

ich habe ein VBA-Makro geschrieben, das mir meine Blockbibliothek säubert.
Dabei werden alle DWGs geöffnet und unter anderem unbenannte Blöcke in benannte umgewandelt und diese dann über bereinigen beseitigt.

Kann es sein, dass dynamische Blöcke mit unbenannten Blöcken arbeiten und die Dynamik verloren geht, wenn man so vorgeht?
Oder, wo werden diese dynamischen Eigenschaften gespreichert?
Und, wie kann man nach dem Öffnen der DWG abfragen, ob es sich um einen dynamischen Block handelt?

------------------
Grüße aus München
Christian

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 17. Mrz. 2022 17:46    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 otm 10 Unities + Antwort hilfreich

Hallo Christian,

So etwas ähnliches hatten wir schon mal ...

Ja, referenzierte dynamische Blöcke werden unbenannte Blöcke.
Testen kannst Du das über: If BlockReference.IsDynamicBlock = True
den Ausgangsnamen des Blocks bekommst Du dann über BlockReference.EffectiveName

Kannst Du denn überhaupt einen dynamischen Block als reine Zeichnung speichern?
Ich arbeite nicht mit dynamischen Blöcken aber nachdem die Parametereinträge tabellenartig sind kann ich mir das nicht vorstellen.
Für Attribute gibt es Darstellungselemente aber für Aktionen?

Grüße
Klaus 

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

otm
Mitglied
Bauingenieur


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

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 18. Mrz. 2022 23:31    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 Klaus,

danke für die Hinweise.

Wir speichern einen dynamischen Block in einer Zeichnung, fügen die Zeichnung als Block ein und sprengen sie.
Damit kann ich den dynamischen Block wie eine Zeichnung als Block einfügen und habe nach dem Einfügen und dem Sprengen wieder den dynamischen Block in meiner aktuellen Zeichnung und kann ihn dann dynamisch verändern.

Ich vermute, dass sich die DWG mit dem dynamischen Block in der Blockbibliothek verändert, wenn ich automatisiert mit einem Säuberungsprogramm in dem CAD-Wiesels 'benennUBL' Programm enthalten ist, drüber gehe.

Deshalb muss ich vorher testen, ob es ein dynBlock ist und dann nicht mit benennUBL drübergehen.
Mal sehen, wie das funktioniert.

Dir aber nochmal danke für die Hilfe, das passt erst mal.

------------------
Grüße aus München
Christian

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

rexxitall
Mitglied
Dipl. -Ing. Bau


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

Beiträge: 266
Registriert: 07.06.2013

Various: systems, Operating systems, cad systems, cad versions, programming languages.

erstellt am: 22. Mrz. 2022 23:32    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 otm 10 Unities + Antwort hilfreich

Autocad setzt dynamische Block Instanzen als "*U" Blockreferenzen in die Zeichnung. Als Kopie mit allem was dazu gehört. Man kann die Parameter dieser Blöcke ja auslesen. Was bei statischen Blöcken nicht ginge. Wenn du die Blöcke speichern willst must du wenn die Blockdatenbank bemühen.Thisdrawing.blocks.item(...
Die Blöcke haben übrigens auch die Eigenschaft "isdynamicBlock" Gehst du nur oberflächlich über die Zeichnung mittels der Blockreferenzen erwischt du Blöcke nicht die nicht in der Zeichnung abgelegt wurden aber vorhanden sind. Und irgend ein 0815 Tool mag die Unterschiede gar nicht kennen und schreibt dann die erste Kopie raus die es findet. Wenn es nichts von dynamischen Parametern weis und mit Thisdrawing.copyobjects nur mit den Eigenschaften arbeitet die es kennt, war es das denn für die dynamic. Entweder die Blocknamen ermitteln (*U,*d etc kannst du getrost ignorieren) und mit thisdrawing.sendcommand "Wblock" auf die Platte schreiben oder eine (für jeden Block) Zeichnung auf der Platte anlegen und dort ohne Rücksicht auf Verluste alles mit copyObject rein kopieren. Die Parameter bleiben so intakt und der Block dynamisch.
Spannend wird es in jedem Fall bei verschachtelten Blöcken. Ich bin ja eher ein Fan davon den Blöcken gleich gescheite Namen zu geben. Block Namen in der Block Datenbank ändern und danach ein _REGEN per sendcommand. Sonst hast du jede Menge Blockfragmente und musst dir erst mal überlegen was für ein geniales Konstruktionselement dieses nun schon wieder war...

------------------
Wer es nicht versucht, hat schon verlorn 
Und bei 3 Typos gibts den vierten gratis !
<<< not for sale !

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: 23. Mrz. 2022 10:20    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 otm 10 Unities + Antwort hilfreich

Hi Christian,

darf ich mal "nachfragen"?

>>"Dabei werden alle DWGs geöffnet und unter anderem unbenannte Blöcke in benannte umgewandelt"

Warum? Unbenannte sollten dich nicht interessieren!?
(Tabellen, alte Schraffuren, Bemaßungen, Anordnungen.. bis zu dynamischen Blockvarianten)

>>"und diese dann über bereinigen beseitigt."
Unbenannte Blöcke sollten automatisch bereinigt werden, geschieht dies nicht, so gibt es IMHO eine "Verknüpfung" die dies verhindert.
Klappt das bereinigen vorher nicht, nach umbenennen über das Tool aber schon(also den neuen benannten Block bereinigen),
oder bereinigst du dann die Unbenannten?


>>"Wir speichern einen dynamischen Block in einer Zeichnung, fügen die Zeichnung als Block ein und sprengen sie.
Damit kann ich den dynamischen Block wie eine Zeichnung als Block einfügen und habe nach dem Einfügen und dem Sprengen wieder den dynamischen Block in meiner aktuellen Zeichnung und kann ihn dann dynamisch verändern."

"Wie" fügst du denn die DWG ein dass dieser Weg gewählt wird?
Die Blockdefinition ordentlich als DWG gespeichert und über den AutoCAD-Befehl -Einfüge importieren würde ha auch funktionieren.


>>"Ich vermute, dass sich die DWG mit dem dynamischen Block in der Blockbibliothek verändert,"
Was für eine Blovkbibliothek?
Erkläre bitte mal was du damit meinst.

>>"wenn ich automatisiert mit einem Säuberungsprogramm in dem CAD-Wiesels 'benennUBL' Programm enthalten ist, drüber gehe."
Es ist keine Säuberungsroutine integriert
auch wird der User nicht darauf hingewiesen was er damit alles zerstört/zerstören kann.


>>"Deshalb muss ich vorher testen, ob es ein dynBlock ist und dann nicht mit benennUBL drübergehen."
Was ist mit Tabellen? Anordnungen? Schraffuren? Bemaßungen? usw.
oder sprichst du explizit nur von *U Blöcken?
Geschrieben hast du allgemein von "unbenannten", also nehme ich * alle an?

Aber eigentlich ist es egal, denn die Kürzel sind
nicht geschützt und daher kann auch ein *U Block eine dynamische Ableitung darstellen,
ODER sonstiges.. von einer anderen Applikation.

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

otm
Mitglied
Bauingenieur


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

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 10. Apr. 2022 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

Hi cadffm,

das waren jetzt 'ne Menge Fragen.

Also:
ich habe ein Verzeichnis in dem ich alle meine Blöcke als einzelne (kleine oder größere) DWGs ablege. Das ist meine 'Blockbibliothek'.

Irgendwann einmal habe ich zwei unbenannte Blöcke (*U0, *U1) eingeschleppt, die in jede Datei beim Einfügen des betroffenen Blocks weiterverbreitet werden. Die Blöcke sehen aus wie eine Nadel für eine Pinwand.
Sie sind auch nach dem Ausführen von BenennUBL händisch einzufügen, aber nicht zu bereinigen.

Nehme ich eine neue saubere Zeichnung, ohne diese zwei und füge alle Objekte des Blocks über 'Mit Originalkoordinaten kopieren' ein, sind sie nicht mehr da. Sie sind also nicht notwendig.

Mein Anliegen ist diese und anderen überflüssige Daten aus allen DWGs meiner Blockbibliothek zu entfernen.
Dabei habe ich die Dynamic bei den dynamischen Blöcken verloren.
Und ich weiß nicht wie ich das geschafft habe.
Deshalb die Frage, ob die Dynamic etwas mit unbenannten Blöcken zu tun hat.

Der Dynamische Block ist als DWG abgespeichert und die DWG wird mittels VBA eingefügt und gesprengt.

Zitat:

Es ist keine Säuberungsroutine integriert


ich habe nicht gesagt, dass eine Säuberungsroutine integriert ist.
Ich habe eine Säuberungsroutine für meine Blockbibliothek geschrieben und darin das Programm BenennUBL integriert, mit dem ich unbenannte Blöcke benenne und dann zu bereinigen versuche.

Zitat:

Was ist mit Tabellen? Anordnungen? Schraffuren? Bemaßungen? usw.
oder sprichst du explizit nur von *U Blöcken?
Geschrieben hast du allgemein von "unbenannten", also nehme ich * alle an?

Ja * alle.
Ich möchte alles was mir später Datenmüll produziert aus den Blöcken bereinigen bzw., wenn das nicht automatisch geht, finden und händisch entfernen.
Dazu habe ich mir eine DWG erstellt in der es nur noch 'Standard'-Stile gibt.
Mit 'Datei neu, metrisch' bekomme ich das nicht. Dort gibt es bei mir z.B. keine Schrift 'Standard', dafür 'Annotative', ....
Den Tabellenstil Legend bekomme ich da leider nicht raus aus der DWG.
Vielleicht weißt, Du wie das geht?

Deiner Frage entnehme ich aber, dass Tabellen, Schraffuren etc. auch unbenannte Blöcke benutzen.
Ist das so?

------------------
Grüße aus München
Christian

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 10. Apr. 2022 11:26    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 otm 10 Unities + Antwort hilfreich

Hallo Christian,
Zitat:
Irgendwann einmal habe ich zwei unbenannte Blöcke (*U0, *U1) eingeschleppt, die in jede Datei beim Einfügen des betroffenen Blocks weiterverbreitet werden. Die Blöcke sehen aus wie eine Nadel für eine Pinwand.
Sie sind auch nach dem Ausführen von BenennUBL händisch einzufügen, aber nicht zu bereinigen.

Kannst Du mal die Blockzeichnung hochladen?

Grüße
Klaus 

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

rexxitall
Mitglied
Dipl. -Ing. Bau


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

Beiträge: 266
Registriert: 07.06.2013

Various: systems, Operating systems, cad systems, cad versions, programming languages.

erstellt am: 11. Apr. 2022 20:55    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 otm 10 Unities + Antwort hilfreich

Schieb mal die Zeichnung und deine Bereinigungsroutine hoch. Das scheint mir ein 20 Zeiler zu sein 

------------------
Wer es nicht versucht, hat schon verlorn 
Und bei 3 Typos gibts den vierten gratis !
<<< not for sale !

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: 12. Apr. 2022 00:21    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 otm 10 Unities + Antwort hilfreich

Huch,

das ist schon länger her. Erst Urlaub und seit dem Krank :-/

Zitat:
Original erstellt von otm:
Nehme ich eine neue saubere Zeichnung..
Gebe uns die Originale und wir schauen nach "wo es hängt" Pinwand-Nadel kommt mir auch irgendwie bekannt vor.

Der Dynamische Block ist als DWG abgespeichert und die DWG wird mittels VBA eingefügt und gesprengt.
Offensichtlich liegt der Block also nicht "als DWG" vor, sondern du hast eine DWG mit einer Blockreferenz im Modellbereich
gespeichert. Hier wäre die Frage ob das ganz bewußt gemacht wurde (Warum?) oder ob man hier das mit den Blöcken und DWG noch mal erklären sollte!?
Beides kann sinnvoll sein.


Dabei habe ich die Dynamic bei den dynamischen Blöcken verloren.
Und ich weiß nicht wie ich das geschafft habe.
Dein ursprünglicher (benannter) Block ist noch intakt, nur deine dynamische Ableitung nicht, die hast du zerstört.
Hattest du also eine Blockreferenz welche zuvor schon mal "dynamisch verändert" wurde, dann referenzierte
diese einen anonymen Block (*Unnn). Mit benennubl hast du hast du die Verbindung zum urprünglichen (benannten) Block zerstört
und hast nunmehr einen "dummen"(statischen) Block mit "dummen" Namen, nutzlos wie sonstwas erschaffen.
EINFÜGE <dein Blockname> -> wird aber weiterhin ordentliche Blockreferenzen erzeugen, den dieser Block wurde ja nicht geändert von dir.

Deshalb die Frage, ob die Dynamic etwas mit unbenannten Blöcken zu tun hat.
Nun, dein ursprünglicher Block und die Blockreferenzen welche noch NICHT dynamisch verändert wurde,
die haben damit nichts zutun. Sobald du aber anfängst an einer Blockreferenz die dynamischen Parameter zu verändern
erstellt AutoCAD eine Kopie von deinem Block (der Name so eines Block ist *Unnn) und die Blockreferenz welche du
bearbeitest verweist dann auf diesen "anonymen/unbenannten" Block.
Dir als Benutzer wird weiterhin der Name des ursprünglichen Blockes angezeigt, was aber technisch nicht stimmt.

Ja * alle.
Dann "zerstörst" du noch mehr, bei den meisten ist das jedoch nicht schlimm da die Blockdefinition, wenn nötig, neu erzeugt&benannt wird vom System

Mit 'Datei neu, metrisch' bekomme ich das nicht. Dort gibt es bei mir z.B. keine Schrift 'Standard', dafür 'Annotative', ....
"Standard" wäre ja auch die schlechteste Wahl, das hat aber mit dem Wort "Standard" nichts zutun,
bei meiner Aussage beziehe ich mich auf alle vordefinierten Objekte - egal ob das Standard, ISO-25 oder Annotative benannt ist.
Aber das ist ein andere Thema.

Den Tabellenstil Legend bekomme ich da leider nicht raus aus der DWG.
Vielleicht weißt, Du wie das geht?
Ich habe deine DWG nicht.()

Deiner Frage entnehme ich aber, dass Tabellen, Schraffuren etc. auch unbenannte Blöcke benutzen.
Ist das so?
Ja so ist das.
Anm: Wobei es auf Schraffuren nur zutrifft wenn man von ganz alten Dateiformaten spricht,
also im Normalfall haben Schraffuren heute nichts mit Blöcken zutun. Sofern man von AutoDESK und Dateiformaten der letzten zwei Jahrzehnte spricht.
(Ansonsten ist es nur ein Block mit vielen Linien - keine Schraffur, wenn auch optisch identisch, Blockname *Xnnn)



Also: Hat es einen Grund warum du nicht wirklich deine Blöcke als DWG speicherst die man dann einfach "als Block" einfügen kann,
sondern Blockreferenzen im Modellbereich -> Im Grunde entspricht dein Vorgene genau dem "Copy&Paste" Vorgang.
[Mir sind wohl einige mögliche sinnvolle Gründe bekannt, es ist die Frage ob bei dir einer davon vorliegt?]

Also, einfach mal eine deiner DWG (in denen auch die Pinnwandnadel drinhängt) hier anhängen und wir müssen nicht mehr raten,
dafür bekommst du dann maßgeschneiderte Antworten.

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

otm
Mitglied
Bauingenieur


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

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 12. Apr. 2022 12:58    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


H-Schild.dwg

 
@cadffm
nur die dynamischen Blöcke speichere ich so verschachtelt.
Wenn das einfacher geht, bin ich um einen Hinweis dankbar.

Im Anhang mal ein einfacher Block, bei dem die Blöcke *U0 und *U1 drin sind.
Mit BenennUBL werden sie als zu bereinigen angezeigt.
Schließt man die Datei und öffnet sie wieder, sind die *U0, *U1 wieder nicht zu bereinigen.

Bislang kopiere ich die Objekte, füge sie in eine saubere Zeichnung ein und weg sind die Blöcke.

------------------
Grüße aus München
Christian

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

rexxitall
Mitglied
Dipl. -Ing. Bau


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

Beiträge: 266
Registriert: 07.06.2013

Various: systems, Operating systems, cad systems, cad versions, programming languages.

erstellt am: 12. Apr. 2022 13:20    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 otm 10 Unities + Antwort hilfreich

Husch wech sans

Sub delu1u0()
    Dim ENTITY As AcadEntity
    Dim BLOCK As AcadBlock
    Dim BLOCKREF As AcadBlockReference
    Dim B2 As AcadBlock
    Dim ENT As AcadEntity
    For Each BLOCK In ThisDrawing.BLOCKS
    Debug.Print BLOCK.name
    Select Case BLOCK.name
    Case "*U0", "*U1"
        For Each ENTITY In BLOCK
            ENTITY.DELETE
        Next
        End Select
    Next
    On Error Resume Next
    Set BLOCK = ThisDrawing.BLOCKS.ITEM("*U0")
    BLOCK.DELETE
    Set BLOCK = ThisDrawing.BLOCKS.ITEM("*U1")
    BLOCK.DELETE
   
    ThisDrawing.SendCommand "_regen" & vbLf
    ThisDrawing.PURGEALL
End Sub

------------------
Wer es nicht versucht, hat schon verlorn 
Und bei 3 Typos gibts den vierten gratis !
<<< not for sale !

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: 12. Apr. 2022 13:33    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 otm 10 Unities + Antwort hilfreich

Hi,

>>"nur die dynamischen Blöcke speichere ich so verschachtelt."
>>"Wenn das einfacher geht, bin ich um einen Hinweis dankbar."

Es gibt eigentlich keinen Unterschied/Grund bei dynamsichen Blöcken anders vorzugehen wie man es mit statischen macht!?
Entweder man zeichnet seine Blockgeometrie im Modellbereich (bei Aktionsparametern zwingend im BEDIT),
oder man erstellt seine Blöcke ganz normla in einer DWG und nutzt dann Befehl WBLOCK um die Blockdefinition
als DWG rauszuschreiben.
Anm: Es gibt Tools, oder man macht sich diese selbst, um alle Blöcke einer DWG als DWG abzuspeichern,
genau wie auch viele DWG alle auf einmal in einer Datei einzufügen.


>>"Im Anhang mal ein einfacher Block, bei dem die Blöcke *U0 und *U1 drin sind."
Super, danke
Ja genau, die PinnwandNadel hatte ich schon mal am Monitor :-)
Stichwort AECC_TREE_NODE
https://knowledge.autodesk.com/de/support/autocad/troubleshooting/caas/sfdcarticles/sfdcarticles/DEU/DXFIN-works-in-AutoCAD-2015-but-not-in-AutoCAD-2016.html

Im DXF-Format könnte man direkt bereinigen, im DWG -Format müßte ich nachsehen (hoffe aber es macht ein andere / kein Lust)
Wenn es bei den blöcken aber ohnhin nicht um AEC/CIVIL3D Daten geht, dann könntest du auch gleich richtig aufräumen
und den Befehl -EXPORTTOAUTOCAD benutzen um eine neue Datei zu schreiben.

Da werden dann auch deine ungenutzen Applikationseinträge gelöscht (die du noch nicht bereinigt hast) usw.
Nur als Hinweis:
Befehl: -BEREINIG
RegAppl
*

-BEREINIG
alle
*


- - -

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: 12. Apr. 2022 13:39    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 otm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von rexxitall:
Husch wech sans

Genau, husch -> egal was es war. 6 Monate Arbeit oder ein Pin den niemand wünscht, dem Beispielcode wäre es völlig schnurz 

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

otm
Mitglied
Bauingenieur


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

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 12. Apr. 2022 15:04    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

Vielen lieben Dank.
Der Code funktioniert super.

Frohe Ostern allen, die mitgedacht haben.

------------------
Grüße aus München
Christian

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

rexxitall
Mitglied
Dipl. -Ing. Bau


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

Beiträge: 266
Registriert: 07.06.2013

Various: systems, Operating systems, cad systems, cad versions, programming languages.

erstellt am: 12. Apr. 2022 17:21    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 otm 10 Unities + Antwort hilfreich

Ja wäre in der Tat so wenn man das SELECT statement nicht geflissentlich übersehen hätte. (Als auch die Zwei Statements wo ich explizit U0 und U1 selektiert habe)  Ging ja auch mehr darum zu zeigen wie man die prinzipiell los wird. Aber hey, hier darf ja eh nur der Forenonkel Lösungen bringen. Ansonsten sind ja sämtliche Ansätze prinzipiell abzulehnen  Und denn war es auch noch so simpel. Herjeh wie konnt ich nur ...

------------------
Wer es nicht versucht, hat schon verlorn 
Und bei 3 Typos gibts den vierten gratis !
<<< not for sale !

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: 12. Apr. 2022 20: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 Nur für otm 10 Unities + Antwort hilfreich

@rexxitall 

>>"- Ging ja auch mehr darum zu zeigen wie man die prinzipiell los wird."
Genau richtig so im Programmier-Board
Das dir all das bekannt ist - für mich ohnehin außer Frage 

Eigentlich war der Post mehr für den TO, ich wollte die Aufmerksamkeit etwas mehr auf das Wissen drumherum lenken
und auch darauf das dies eben kein "sorglos"-fertiger Code ist.

*U0 und *U1 wie auch alle anderen *Unnnn sind anonyme Blöcke hinten denen sich alles mögliche verbergen kann,
auch gewünschte "wichtige" Sachen -> wie zB der Block um den es Ihm in der DWG eigentlich geht
und der unerwünschte PIN könnte in der nächsten Datei ebenso gut *U123 heißen und damit nicht verschwinden.

- Aber hey,
JA ja, das habe ich mir hart verdient über die Jahre  und ich bereue gepostet zu haben // hätte ich mir wirklich sparen sollen,
aber nu isses zu spät 


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