|
AutoCAD ARX Object : Absturz nach dem 2. Aufruf einer Funktion
alfred neswadba am 21.05.2009 um 13:17 Uhr (0)
Hi, Zitat:Ich habe die Transaction im Catch - Block und nicht im Finally-Block beendet...na da haben wir den Übeltäter ja auch schon ;) ...denn wenn er nicht in das Catch hineinkommt (und das sollte er ja in der Regel nicht), dann wird die TransAction nicht ordnungsgemäß geschlossen und als weitere Folge werden die Entities auch nicht korrekt abgeschlossen. Zitat:Allerdings kackt AutoCAD immer am Ende ab...sowas bitte nie ignorieren, Code der schon beim Design solche Auswirkungen erzeugt, macht beim Anwend ...
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : CrossThreadMessagingException? WIe vermeiden?
alfred neswadba am 10.06.2009 um 12:03 Uhr (0)
Hi,und welches Programm (das offensichtlich asynchron laufen soll) weiss, welche AutoCAD-Zeichnung Du offen hast? Oder wo bekommt es die ID her (passend zu der geöffneten DWG)? Was passiert, wenn der User die Zeichnung schliesst? Was passiert, wenn der User das Element mit der ID inzwischen gelöscht hat?Und schon aus diesen Fragen ergibt sich: wieso läuft es asynchron? Ist doch nur eine höchstgefährliche Angelegenheit (in Bezug auf Stabilität und Fehleranfälligkeit)!- alfred -------------------www.hollaus. ...
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : CrossThreadMessagingException? WIe vermeiden?
alfred neswadba am 10.06.2009 um 12:21 Uhr (0)
Hi,kannst Du trotzdem versuchen, mal die Anwendung zu beschreiben, was diese Programme (einmal das in AutoCAD und dann das externe EXE) eigentlich tun und wie diese voneinander abhängig sind (in bezug auf Zeichnung, Elemente darin, ...).Es gibt vielleicht Ideen, die das Multithreading umgehen können, nur fehlen mir da die Informationen des (gedachten) Workflows.- alfred -------------------www.hollaus.at
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : CrossThreadMessagingException? WIe vermeiden?
alfred neswadba am 10.06.2009 um 13:03 Uhr (0)
Zitat:Es wird lediglich eine Datei geschrieben, die z.B. Handles enthält, die die Autocad Objekte in der aktuellen Zeichnung eindeutig bestimmen. Das andere Programm weiß also welche Handles es gibt...wann wird diese Datei geschrieben, beim Öffnen der Zeichnung oder nach jedem Bearbeitungsbefehl (damit die Liste der noch vorhandenen Handles wirklich aktuell ist)?Und das externe EXE rückt irgendwann mal mit einer Datei heraus und dann soll plötzlich gezoomt werden? Mitten während der AutoCAD-Anwender viell ...
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Autocad hängt nach .Net Funktionen
alfred neswadba am 23.06.2009 um 09:54 Uhr (0)
Hi,kenn ich so nicht, nie gesehen. Greifst Du auf Bildschirm-Libs hin, z.B. auf JIG-Funktionen?Ist das reproduzierbar, d.h. tritt nach Durchlauf eines bestimmten Codes auf?Wie verhält sich denn AutoCAD in dieser Situation, kannst Du noch Elemente anklicken bzw. grundsätzlich weiterarbeiten? Was ist nach Minimieren/Wiederherstellen des AutoCAD-App-Fensters?Dreh mal im AutoCAD die Bildschirm-Beschleunigung ab.Probiers auch mal auf einem anderen Rechner mit anderer Graphikkarte, wenn Du die Chance hast.- alf ...
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Autocad hängt nach .Net Funktionen
alfred neswadba am 23.06.2009 um 12:45 Uhr (0)
Hi, na Du hättest es ja in Deinem Code verwendet: Zitat:tDB.CloseInput(True)...schliesst den offenen FileHandle.- alfred -------------------www.hollaus.at
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Autocad hängt nach .Net Funktionen
alfred neswadba am 23.06.2009 um 09:54 Uhr (0)
Hi,kenn ich so nicht, nie gesehen. Greifst Du auf Bildschirm-Libs hin, z.B. auf JIG-Funktionen?Ist das reproduzierbar, d.h. tritt nach Durchlauf eines bestimmten Codes auf?Wie verhält sich denn AutoCAD in dieser Situation, kannst Du noch Elemente anklicken bzw. grundsätzlich weiterarbeiten? Was ist nach Minimieren/Wiederherstellen des AutoCAD-App-Fensters?Dreh mal im AutoCAD die Bildschirm-Beschleunigung ab.Probiers auch mal auf einem anderen Rechner mit anderer Graphikkarte, wenn Du die Chance hast.- alf ...
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Autocad hängt nach .Net Funktionen
alfred neswadba am 23.06.2009 um 10:35 Uhr (0)
Hi,nur geraten, weil in diesem Code leider nicht zu erkennen:Wenn Du in das catch hineinfällst (von dem Du schreibst, aber ich es im Code nicht sehe), hast Du dann sichergestellt, dass alles geschlossen/disposed wurde? Die tDB, die Transaction, das DocumentLock?Und wenn er die Datei nicht finden konnte, hast Du dann trotzdem .CloseInput gemacht?Hast Du vorher überprüft, ob es die Blockdefinition (RahmenFormat) schon gibt, wenns die nämlich schon gibt, dann glaube ich, könnte es Brösel geben? Unabhängig dav ...
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Autocad hängt nach .Net Funktionen
alfred neswadba am 23.06.2009 um 10:55 Uhr (0)
Hi, Zitat:Dass das File immer geladen wird hat seinen Grund, ich will dass es überschrieben wird, falls der Block erneuert werden soll...Glatteiswarnung!! Eine Blockdefinition ersetzt man nicht einfach so, dass man eine gleichnamige Blockdefinition in die BlockTableRecords hinzufügt. Das funktioniert zwar mit dem Benutzerinterface von AutoCAD (das in diesen Fällen auch fragt, ob diese zu ersetzen ist und sich dann entsprechend verhält), das erkennst Du schon damit, dass eine BlockReference auf eine Object ...
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Autocad hängt nach .Net Funktionen
alfred neswadba am 23.06.2009 um 11:31 Uhr (0)
Hi, Zitat:ist es da nicht einfacher, den alten BTR zu löschen?...kann nicht gelöscht werden, wenn bereits BlockReferences eingesetzt sind, die auf diesen BTR verweisen. - alfred -------------------www.hollaus.at
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Autocad hängt nach .Net Funktionen
alfred neswadba am 23.06.2009 um 11:39 Uhr (0)
Hi, Zitat:ich muss aber zuerst die dwg datei einlesen oder nicht? um die elemente in den alten BTR hineinkopieren zu können oder?...wo/wie solltest Du die Information (wie der Block aussehen sollte) sonst herbekommen?- alfred -------------------www.hollaus.at
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : Zeichnungseinheiten abfragen
alfred neswadba am 23.03.2011 um 09:14 Uhr (0)
Hi,Code:Dim tAcadDoc As Autodesk.AutoCAD.ApplicationServices.Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocumentDim tInsUnits As Double = tAcadDoc.Database.Insunits- alfred -------------------www.hollaus.at
|
| In das Form AutoCAD ARX Object wechseln |
|
AutoCAD ARX Object : CrossThreadMessagingException? WIe vermeiden?
alfred neswadba am 10.06.2009 um 11:53 Uhr (0)
Hi,AutoCAD ist nicht MultiThreading-Save. Soll heissen Du kannst zwar in Deinem Programm SubThreads starten, aber diese können nicht auf die Datenbank hingreifen (zumindest nicht in der gleichen Database).Ich nehme an, dass das Grund für die Fehlermeldung ist, mehr kann ich ohne Code nicht sagen.Vielleicht gibst noch Info, was Du machen willst, dann könnten Ideen zustandekommen, die ev. ohne MultiThreading durchkommen? Da wäre z.B. die Möglichkeit, sich an Events zu hängen wie CommandEnded oder Beginsave o ...
|
| In das Form AutoCAD ARX Object wechseln |