| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Ersetzen von Blöcken in VBA (947 mal gelesen)
|
rstu Mitglied
Beiträge: 4 Registriert: 17.06.2004 Autocad VBA
|
erstellt am: 17. Jun. 2004 11:15 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich muss mit Hilfe von Vba in einer Autocad-Zeichnung einzelne Blöcke durch eine neuere Version (inclusive veränderter Attribute) ersetzen. die neuen Blöcke befinden sich in einer Symbol-Dwg. Wenn ich beide Dateien in Autocad lade, kann ich in einer Listbox mir alle Blöcke der zu ändernden Zeichnung, in einer anderen Listbox alle Blöcke der Symbol-Dwg anzeigen lassen, dann markieren, welche Blöcke durch welchen Block ersetzt werden soll. Bis hierhin ist alles leicht programmierbar. Aber jetzt: für alle Blöcke in Zeichnung merke x,y,z lösche Block füge an x,y,z neuen Block ein ----- wie wird das programmiert !!??? nächster Block Wer kann mir helfen Gruss Roland
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Ehrenmitglied CAD4FM UG
Beiträge: 1968 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 17. Jun. 2004 11:27 <-- editieren / zitieren --> Unities abgeben: Nur für rstu
|
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Die Phönizier haben das Geld erfunden - aber warum so wenig? (Johann Nepomuk Nestroy)
|
erstellt am: 17. Jun. 2004 20:51 <-- editieren / zitieren --> Unities abgeben: Nur für rstu
|
rstu Mitglied
Beiträge: 4 Registriert: 17.06.2004 Autocad VBA
|
erstellt am: 18. Jun. 2004 10:56 <-- editieren / zitieren --> Unities abgeben:
Hallo, dass meine Frage hier gleich drei mal erscheint ist natürlich ärgerlich ( nach dem Abschicken des Beitrages erhiehlt ich eine Fehlermeldung, also hab ich es nocheinmal .... Wie krieg ich den überflüssigen Kram wieder weg?) zu meiner Frage: mit der Anweisung ThisDrawing.ModelSpace.InsertBlock(currInsertionPoint, sBlock, dXScaleFactor, ..... kann ich einen neuen Block einfügen, dabei steht in sBlock entweder der Name eines sich in der Zeichnung befindlichen Blockes oder der Pfad/Name.dwg einer dwg-Datei mit dem einzufügenden Block. In meiner Pfad/Name.dwg befinden sich aber mehrere Blöcke. ich möchte nur einen Block aus dieser Symbol-Datei auswählen, auf die Art sBlock = Pfad/Datei.Block4 -- dies scheint aber nicht möglich zu sein, oder doch ? Gruss Roland (sich vor Scham über die drei Beiträge im Staube wälzend) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Systemingenieur / Automatisierungstechniker (m/w/d) | Seit 2022 ist WOmed ein Tochterunternehmen der BEBIG Medical GmbH. BEBIG Medical ist ein globaler Anbieter von qualitativ hochwertigen Strahlentherapieprodukten für die Krebsbehandlung mit Sitz in Berlin, Deutschland. BEBIG Medical bietet hochmoderne Afterloading- und Behandlungsplanungssysteme an, die für das gesamte Spektrum der HDR-Brachytherapie-Anwendungen ausgelegt sind. WOLF-Medizintechnik GmbH sucht zur Verstärkung des Teams am Standort St.... | Anzeige ansehen | Automatisierungstechnik |
|
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Die Phönizier haben das Geld erfunden - aber warum so wenig? (Johann Nepomuk Nestroy)
|
erstellt am: 18. Jun. 2004 13:13 <-- editieren / zitieren --> Unities abgeben: Nur für rstu
Jetzt kommen wir der Sache näher - mit Sache meine ich jetzt das Problem, nicht die Lösung. Also nicht das simple Einfügen, sondern ein Block-Import aus einer anderen Zeichnung. Da fällt mir spontan dieser Weg ein: Die Quellzeichnung zusätzlich zur Zielzeichnung aufmachen und die Blockdefinition abkopieren - anschließend die Quellzeichnung wieder schließen. Du kannst aber auch den 'quick and dirty'-Weg gehen: Quelle insgesamt als Block in die Zielzeichnung einfügen und das Insert wieder löschen. Dann hast du alle Blockdefinitionen aus der Quellzeichnung in der Zielzeichnung, musst aber ggf. anschließend bereinigen, weil du wahrscheinlich nicht alle Blöcke benötigst. Und schliesslich bleibt noch der Kaltimport über ObjectDBX - d.h. die Blöcke werden aus der Quellzeichnung ausgelesen und kopiert, ohne die Zeichnung zu öffnen. Das ist nicht ganz einfach - wie's geht, findest du auf meinen Lisp-Seiten. Es handelt sich aber (natürlich) um ActiveX, deswegen sollte die Umsetzung nach VBA keine grundsätzlichen Probleme machen. Gruß, Axel ------------------ Meine AutoLisp-Seiten Meine private Homepage Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze Meine Überzeugung... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|