| | | 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: Mehrere Dokumente hintereinander bearbeiten (1559 mal gelesen)
|
veydan Mitglied
Beiträge: 252 Registriert: 29.05.2008 AutoCAD/Mechanical 2009, Inventor 2009
|
erstellt am: 09. Feb. 2010 10:09 <-- editieren / zitieren --> Unities abgeben:
Hallo! Gibt es eine elegante Möglichkeit mehrere Zeichnungen aus einem Ordner zu öffnen und dann zu bearbeiten, speichern und zu schließen? Ich hätte es jetzt so gemacht:
Code:
Dim app As AcadApplication dim acaddoc as AcadDocument dim Conv as New Conversion 'Klasse mit allen Konvertierungsfunktionen, geht immer auf das aktuell aktive Dokument app = CType(ApplicationServices.Application.AcadApplication, AcadApplication) acaddoc = app.Documents.Open(filename, false,"").Activate()conv.StartConvert() acaddoc.saveas(newfilename) acaddoc.close
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 09. Feb. 2010 11:04 <-- editieren / zitieren -->
Hi, hängt davon ab, was zu ändern ist. Werden automatisierte Änderungen durchgeführt, die keinen User-Eingriff benötigen, dann ist die Methode, die Zeichnung in den Editor zu laden, eine sehr langsame und speicherintensivere. Da empfiehlt es sich, nur ein Database-Object anzulegen und das DWG-File da hineinzulesen, darin zu arbeiten und am Ende zurückzuspeichern. Im Code musst Du halt auf Dinge verzichten, die Editor-basierend sind. Der größte Verlust dabei ist das Bilden von SelectionSets. Jedoch: Ist die DWG nur als Database-Object verfügbar, dann geht Durchscannen durch die Elemente auch sauschnell. - alfred - ------------------ www.hollaus.at |
veydan Mitglied
Beiträge: 252 Registriert: 29.05.2008 AutoCAD/Mechanical 2009, Inventor 2009
|
erstellt am: 09. Feb. 2010 12:10 <-- editieren / zitieren --> Unities abgeben:
naja Usereingaben sind keine Erforderliche, da diese über eine Maske erledigt werden und dann im Code aus der Einstellungsdatei ausgelesen werden. Aber die Funktionen sind so aufgebaut, dass das aktuelle Dokument Objekt genommen wird, gelocked, Transaction gestartet, der Code ausgeführt und dann alles wieder freigegeben wird. Auf aktuell geöffnete Zeichnungen läuft es problemlos, es ist nur interessant, wenn ich jetzt welche öffnen, bearbeiten und speichern muss,dass das nicht crashed... Ob da mein Ansatz richtig ist, oder ob es da noch andere Möglichkeiten gibt. Ich muss mir ja immer die AcadApplication holen, dann das AcadDocument Object... Ginge dass auch so: Code:
Dim app As ApplicationServices.Application Dim doc As Document doc = app.DocumentManager.Open(filename, False, "")
wäre dann die Datei filename als aktives dokument offen? denn Befehl
Code:
doc = app.DocumentManager.Open(filename, False, "").Activate
gibt es ja nicht.mfg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 09. Feb. 2010 12:32 <-- editieren / zitieren -->
Hi, das hätten wir doch >>>hier<<< schon mal gehabt (aktiv schalten von Zeichnungen). - alfred - ------------------ www.hollaus.at |
veydan Mitglied
Beiträge: 252 Registriert: 29.05.2008 AutoCAD/Mechanical 2009, Inventor 2009
|
erstellt am: 09. Feb. 2010 13:00 <-- editieren / zitieren --> Unities abgeben:
ok, da habe ich in die falsche Richtung gedacht, so gehts auch wenn ich beim speichern in einer anderen Version speichern will muss ich ja so vorgehen: doc.Database.SaveAs(vb.Left(fileName, fileName.Length - 4)& "_converted.dwg",DwgVersion.??? ) Welche Verson ist 2007 und 2009? Liste: AC11001-AC1015 AC1021 AC1500 AC1800 AC1800a AC1To2 AC1To40 AC1To50 AC2100a AC2To10 AC2To20 AC2To21 AC2To22 oder hilft da nur probieren... edit: habs rausbekommen mit einem Trick... Autocad 2007 Datei erstellen, dann mit einem Editor aufmachen.Die ersten Zeichen geben die Verison an. Bei 2007 --> AC1021 mfg [Diese Nachricht wurde von veydan am 09. Feb. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 09. Feb. 2010 14:02 <-- editieren / zitieren -->
Hi, >> Welche Verson ist 2007 und 2009? ist das gleiche DWG-Format. Die Sub-Bezeichnungen kann man nicht bestimmen, daher gibt es auch beim Save-Befehl nur die Enumerations für das DWG-Format, aber nicht für die AutoCAD-Version. DWG2000 ==> AutoCAD 2000, 2000i, 2002 DWG2004 ==> AutoCAD 2004, 2005, 2006 DWG2007 ==> AutoCAD 2007, 2008, 2009 DWG2010 ==> AutoCAD 2010, ... - alfred - ------------------ www.hollaus.at |
veydan Mitglied
Beiträge: 252 Registriert: 29.05.2008 AutoCAD/Mechanical 2009, Inventor 2009
|
erstellt am: 09. Feb. 2010 14:18 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 09. Feb. 2010 14:20 <-- editieren / zitieren -->
Wow, gute Frage, nie darauf gestossen, weil ich Gegner von zurückspeichern bin. Ich weiss es jetzt nicht, hätte aber mal die Variable CMDDIA, EXPERT (vielleicht noch ein paar zu finden) probiert. - alfred - ------------------ www.hollaus.at |
veydan Mitglied
Beiträge: 252 Registriert: 29.05.2008 AutoCAD/Mechanical 2009, Inventor 2009
|
erstellt am: 09. Feb. 2010 14:35 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 09. Feb. 2010 15:42 <-- editieren / zitieren -->
Hi, >> Könnte man die Meldungen unterdrücken die erscheinen wenn man auf eine Version >> speichert die gewisse Funktionen nicht unterstützt? Eine Idee hätte ich schon noch: In diesem Dialog gibt es ein Hakerl, mit welchem man festlegen kann, dass diese Warnmeldung nicht mehr angezeigt wird. Das Ausschalten von Warndialogen ist in der Registry gespeichert, damit müsste man nur mehr die Position in der Registry für dieses Hakerl finden und bei Bedarf selbst den Reg-Eintrag erstellen. HTH, - alfred - ------------------ www.hollaus.at |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|