|
AutoCAD ObjectARX und .NET : Einfügen externer Blöcke in die Zeichnung
AndreasM2000 am 21.06.2015 um 13:35 Uhr (1)
ok. jetzt merke ich den Unterschied. ....dann nehme ich halt auch .ShowModalDialog(myForm1).
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
|
AutoCAD ObjectARX und .NET : Einfügen externer Blöcke in die Zeichnung
AndreasM2000 am 26.06.2015 um 05:53 Uhr (14)
Hallo Holger,ja, das war es, was noch zu machen war. Jetzt funktioniert es prima. vielen Dank.Gruß Andreas
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
|
AutoCAD ObjectARX und .NET : Einfügen externer Blöcke in die Zeichnung
AndreasM2000 am 21.06.2015 um 00:05 Uhr (1)
ja, es bricht genau mit der genannten Exception (eLockViolation) ab. Die Variable db ist so definiert:Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;Database db = doc.Database;Was bedeutet, das dass aktuelle Document gelockt werden müsste? Was muss ich dazu machen?Gruß Andreas
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
 |
AutoCAD ObjectARX und .NET : Fehler beim Öffnen einer dwg-Zeichnung
AndreasM2000 am 02.08.2015 um 08:41 Uhr (15)
Hallo,Ich habe versucht, eine (externe) dwg-Zeichnung zu öffnen. Einmal mittels CommandMethod und einmal den gleichen Code durch einen Button (Teil eines Formulars) zu starten. Die erste Methode klappt problemlos. Die zweite wirft folgenden Fehler aus. Was läuft falsch und muss ich ändern?System.Runtime.InteropServices.COMException (0x802000C8): Ungültiger Ausführungskontext1. Methode mittels CommandMethod:[CommandMethod("oeffne_eine_Zeichnung")] public void oeffne_eine_Zeichnung() { string strF ...
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
 |
AutoCAD ObjectARX und .NET : Fehler beim Öffnen einer dwg-Zeichnung
AndreasM2000 am 02.08.2015 um 12:43 Uhr (15)
Hallo,vielen Dank für den Hinweis.Dann habe ich es jetzt anders gemacht, um dennoch ans Ziel zu kommen. Der CommandMethod-Befehl ist ja wie ein "normaler" AutoCAD-Befehl bekannt und ich kann ihn dann auch über Button_Click mittels SendStringToExecute ansprechen.acDoc.SendStringToExecute("._oeffne_eine_Zeichnung ", false, false, false);Ist also dann keine direkte Lösung, aber klappt auch.Gruß Andreas
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
|
AutoCAD ObjectARX und .NET : Einfügen externer Blöcke in die Zeichnung
AndreasM2000 am 21.06.2015 um 12:46 Uhr (1)
Hallo Holger,ja, die Trennung habe ich auch vor bzw. auch schon angelegt in 3 Klassen. Der Programmnutzer soll üblicherweise das Programm in einer Folge von Aufrufen benutzen. Die Eingabe von Informationen und Einstellungen im Formular soll nur am Anfang und bei Bedarf erfolgen, also nicht immer notwendig sein. Dazu sollen die einmal gemachten Eingaben im Formular erhalten bleiben, indem das Formular ausgeblendet, aber aktiv bleibt und nicht jedesmal gestartet wird.Gibt es einen expliziten Vorteil, wenn .S ...
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
|
AutoCAD ObjectARX und .NET : Einfügen externer Blöcke in die Zeichnung
AndreasM2000 am 24.06.2015 um 07:37 Uhr (1)
Hallo Holger,vielen Dank für den Hinweis. Habe das auch mal probiert. Eine WPF-Anwendung mit Datenbindung habe ich auch schon zum Laufen gebracht. Jetzt muss ich noch AutoCAD dazu bringen das ganze anzuzeigen. Dazu habe ich ein neues Klassenbibliotheks-Programm angelegt, um später die dll über netload starten zu können. Dann habe ich die Autodesk Verweise gesetzt und ein Usercontrol-XAML Objekt erzeugt und eine Klasse, die die Datenbindung auswertet. Erstmal alles so wie in meiner lauffähigen WPF-Applikati ...
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
|
AutoCAD ObjectARX und .NET : Fehler beim Öffnen einer dwg-Zeichnung
AndreasM2000 am 02.08.2015 um 14:12 Uhr (1)
ja, richtig, dass muss ich noch sicherstellen, dass auf den Fall nicht vorhandener dwg-Zeichnungen reagiert wird.Der sendCommand-Befehl ist wohl im Laufe der Zeit "verloren" gegangen und durch den .SendStringToExecute-Befehl abgelöst worden? Ich konnte kein funktionierendes Beispiel mit sendCommand mehr finden, das bei mir läuft.Mein nächstes Problem ist, wenn ich eine Reihe von dwg-Dateien öffne, möchte ich sicherstellen, dass immer das letzte geöffnete dwg-Dokument "oben" liegt und aktiviert ist. Die geö ...
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
|
AutoCAD ObjectARX und .NET : Einfügen externer Blöcke in die Zeichnung
AndreasM2000 am 25.06.2015 um 07:18 Uhr (1)
Hallo Holger,Erstmal vielen Dank!! Es ist genau der Weg...Ein Problem habe ich immer noch. Beim CommandMethod-Aufruf will er jetzt auch das ucWPF- Objekt haben, dass er dann aber nicht kennt. Wie kann ich es bekannt machen? Wie muss ich die Übergabe richtig machen?Sonst scheint alles zu funktionieren. Ich habe das ElementHost-Objekt mit einem direkt im Konstruktor erzeugten WPF-Objekt beim Aufruf der Form schon gesehen...Gruss Andreasnamespace ClassLibrary1{ public partial class Form1 : Form { public ...
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
|
AutoCAD ObjectARX und .NET : Fehler beim Öffnen einer dwg-Zeichnung
AndreasM2000 am 02.08.2015 um 16:27 Uhr (1)
ja, ich erkläre den nächsten Schritt noch einmal etwas ausführlicher.Nachdem ein oder (meistens) mehrere Dateien geöffnet sind, wird eine von ihnen in einer Variable als Dateinamen gespeichert. In meinem Fall string strFileName = "C:Temp6008000246.dwg";Danach laufe ich durch den Document Manager und prüfe, ob einer von den geöffneten Dateien den gleichen Namen hat, wie mein vorher gespeicherter Dateinamen. Diese Datei möchte ich dann aktiv machen (soll oben liegen, den Focus haben).DocumentCollection docs ...
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
|
AutoCAD ObjectARX und .NET : Einfügen externer Blöcke in die Zeichnung
AndreasM2000 am 20.06.2015 um 14:00 Uhr (1)
Hallo,ich habe folgendes Problem. Ich möchte den Nutzer über ein Formular einen Block auswählen lassen, der dann geladen werden soll.Der Aufruf/Beginn meines Programms erfolgt in der myCommands-Klasse so:[CommandMethod("CreateGroups")]static public void CreateGroups(){ FormWoFlV myForm1 = new FormWoFlV(); myForm1.Show();}Es gibt also nur den Einstiegspunkt und die Weiterleitung zum Formular (Formularklasse).In der Formularklasse wird dann folgendes gemacht:Database TempDB = new Database(false, true);Transa ...
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
 |
AutoCAD ObjectARX und .NET : Blocktabelleneinträge
AndreasM2000 am 02.09.2015 um 16:35 Uhr (15)
vielen Dank für das Beispiel. Ich habe dann mit den beiden Beispielen solange experimentiert bis ich jetzt den Fehler gefunden habe und die beiden gewünschten Dinge umgesetzt bekomme. Mein entscheidender Fehler im obigen Script war hier: BlockTableRecord btr = (BlockTableRecord)tr.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); //btr.Name = "Blume";Hier versuche ich nicht, wie ich annahm, einen Verweis auf mein (Blume) BlockRecord zu setzen, sondern hier wird ein Verweis auf das Model ...
|
| In das Form AutoCAD ObjectARX und .NET wechseln |
|
AutoCAD ObjectARX und .NET : Blocktabelleneinträge
AndreasM2000 am 23.08.2015 um 10:19 Uhr (1)
Hallo, ich versuche externe (dwg)Blockdateien einzulesen, um sie später zu benutzen. In der Historie dieses Forums habe ich auch ein Beispiel gefunden, dass erstmal gut funktioniert: string acDwg = "C:TempBlume.dwg"; Document doc = Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; Transaction tr = doc.TransactionManager.StartTransaction(); try { string dwgName = HostApplicationServices.Current.FindFile(acDwg, Application.DocumentManager.MdiActiveDoc ...
|
| In das Form AutoCAD ObjectARX und .NET wechseln |