| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Speichern externer Database (964 mal gelesen)
|
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008 ACAD 2019 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 19. Jun. 2015 11:33 <-- editieren / zitieren --> Unities abgeben:
Hallo an Alle, ich habe mir ein kleines Programm geschrieben, mit dem ich die Attribute in einer externen, das heißt nicht im Editor geöffneten Zeichnung, bearbeiten kann. Funktioniert super. Nachdem ich die Sache jetzt schon einige Zeit verwendet habe, ist mir jetzt ein großer Fehler aufgefallen. Und zwar kommt es vor, dass der Text von Tabellen riesig wird und damit die ganze Tabelle unleserlich wird. Dabei ist es egal ob ich wirklich eine Änderung vorgenommen habe oder ob ich einfach nur geöffnet und wieder gespeichert habe. Ich habe die betreffenden Zeilen aus meinen Code unten eingefügt. Weiß jemand was falsch ist? Oder was ich grundsätzlich besser machen kann? Danke. ExDataBase = New Autodesk.AutoCAD.DatabaseServices.Database Try ExDataBase.ReadDwgFile(FileName, IO.FileShare.Read, False, "") Catch Fehlerzeilen.Add("Fehler beim Öffnen der Datei " & FileName) End Try
Using acTrans As Transaction = ExDataBase.TransactionManager.StartTransaction() Try HostApplicationServices.WorkingDatabase = ExDataBase For Each Tempref In ÄnderReferenzen If Tempref.Dateiname = FileName Then For a = 0 To Tempref.AttriHandle.Length - 1 Try MyAttriRef = acTrans.GetObject(TempID, OpenMode.ForWrite) MyAttriRef.TextString = Tempref.Attritext(a) Catch End Try Next End If Next acTrans.Commit() Catch Fehlerzeilen.Add("Fehler beim Schreiben in Datei " & FileName) End Try End Using HostApplicationServices.WorkingDatabase = myDB ExDataBase.CloseInput(True) ExDataBase.SaveAs(FileName, DwgVersion.Current) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 19. Jun. 2015 11:42 <-- editieren / zitieren --> Unities abgeben: Nur für Theo37
Hallo Theo, das Problem scheint ja bei den Tabellen zu liegen .. davon ist im Code nichts zu sehen. keine Ahnung, ob das überhaupt etwas mit deinem Programm zu tun hat oder auch nicht. Vielleicht sind die Attributwerte, die du schreibst in die Tabellen referenziert und einfach zu lang -- das hat dann aber nichts mit den hier geposteten Codezeilen zu tun. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008
|
erstellt am: 19. Jun. 2015 11:42 <-- editieren / zitieren --> Unities abgeben:
|
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 19. Jun. 2015 11:47 <-- editieren / zitieren --> Unities abgeben: Nur für Theo37
... da ändert sich der Tabellenstil und/oder auch Textstil .. davon ist in deinem Code nichts zu sehen - du musst an anderer Stelle irgendetwas mit Tabellen machen oder anderes Zeugs importieren. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008
|
erstellt am: 19. Jun. 2015 11:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, das stimmt, diese Tabellen haben mit dem was ich ändere nichts zu tun. Auch wenn ich an der Datei gar nichts ändere sondern nur öffne und dann speichere, werden die Tabellen zerstört.(Aber auch nicht immer) Ich glaube daß, es etwas mit dem Öffnen oder dem Speichern der Datei zu tun hat. also mit READDWGFILE, CLOSEINPUT, oder SAVEAS. Gruß, Theo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools
|
erstellt am: 19. Jun. 2015 11:52 <-- editieren / zitieren --> Unities abgeben: Nur für Theo37
... hast du es mal händisch getestet? Was passiert dann mit der Tabelle? Das ReadDwgFile ... hat damit ganz sicher nichts zu tun - ist mir zumindest noch nicht unter gekommen. Es lohnt auch immer mal ein _.Audit über die Zeichnungen zu schicken, die sich seltsam verhalten. Grüße! Holger ------------------ Holger Brischke CAD on demand GmbH Individuelle Lösungen von Heute auf Morgen.
defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008
|
erstellt am: 19. Jun. 2015 13:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Holger, wenn ich normal speichere also in acad dann passiert mit der Tabelle nichts.(oder was meinst Du mit händisch) Audit findet keine Fehler. Bringt keine Änderung Wenn ich in einer Datei in der die Tabelle durch das .net Speichern zerschoßen wurde, die Tabelle wieder richtig mache, diese mit ACAD speichere und dann erneut mit .net speichere, dann passiert der Fehler nicht noch einmal sondern dann bleibt die Tabelle wie erstellt. Gruß, Theo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingenieur Studio HOLLAUS Mitglied CAD / CAFM / GIS Beratung-Programmierung-Schulung
Beiträge: 1049 Registriert: 06.11.2008 Autocad 2 bis Autocad 2020 (+Map3D, +Civil3D, +Infraworks) RKV .... CAFM+mehr HMap ... Vermessung und Verkehr OoC .... Raumplanung CBox ... Tools für AutoCAD und BricsCAD (kostenfrei)
|
erstellt am: 19. Jun. 2015 16:05 <-- editieren / zitieren --> Unities abgeben: Nur für Theo37
Ich würde dieses mal rausnehmen: HostApplicationServices.WorkingDatabase = ExDataBase Es wird zwar immer wieder verwendet, um Autodesk.Editor-Funktionailität an Zeichnungen anzuwenden, die aber nicht im Editor geladen sind (sondern nur über Database.ReadDWG), aber dann kann es auch sein, dass der Editor sich eben einmischt. Ich könnte mir z.B. vorstellen, dass dann Tabellen aktualisiert werden in bezug auf Maßstab/Annotation oder auch wenn diese Tabellen über Datenextraktion Verknüpfungen aufweisen u.v.m. ------------------
www.cars4fun.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008
|
erstellt am: 22. Jun. 2015 14:19 <-- editieren / zitieren --> Unities abgeben:
Hallo euch Beiden, das "WorkingDatabase" bringt keine Verbesserung. ich lasse es jetzt weg. Es scheint mir keinen Sinn zu haben. Der Fehler mit den Tabellen tritt wirklich nur bei einer Sorte Dateien auf und auch dann nur einmal. Ich richte diese jetzt einfach händisch wieder hin und ignoriere die Sache dann. Hatte nur die Befürchtung daß ich einen Fehler beim öffnen oder Speichern der Datei mache, das wäre fatal, weil ich diese Funktionen doch häufig verwende. Danke, Theo
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Theo37 Mitglied Techniker
Beiträge: 423 Registriert: 08.10.2008 ACAD 2019 WIN 7 64bit Intel Xenon CPU E5-1620 3.60GHz 16GB RAM
|
erstellt am: 22. Jun. 2015 14:22 <-- editieren / zitieren --> Unities abgeben:
Noch was ist mir eingefallen. In der Hilfe steht bei ReadDwgFile: "This function is obsolete and will be removed in a future release." Wie ist das zu verstehen? Gibt's dafür schon ne Alternative? Weiß da jemand was? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |