AutoCAD und .Net-Framework: Sichern von Zeichnungsdateien
Das Speichern von Zeichnungsdateien kann auf unterschiedlichste Art gelöst werden.
1. Variante: Nutzung des .Net
Die Methode SaveAs des Objekts DataBase speichert die Zeichnung. Diese Methode kann in anderen in C# oder VB.Net programmierten Funktionen genutzt werden.
.
.
.
public void SaveAS(string Name)
{
Document hDoc = AcAp.DocumentManager.MdiActiveDocument;
object hCmd = AcAp.GetSystemVariable("CMDECHO");
hDoc.Database.SaveAs
(Name, true, DwgVersion.Current, hDoc.Database.SecurityParameters);
}
2. Variante: Als COM-Objekt
hDoc.SaveAs(dwgPath, AcSaveAsType.acNative, null);
3. Variante: Methode SendStringToExecute
Hierbei wird der Commandbefehl als String in Form einer Lisp-Anweisung zusammengesetzt und der SendStringToExecute-Methode des Objektes MdiActiveDocument übergeben.
Diese Methode kann NICHT in anderen eigenen Methoden genutzt werden, da innerhlab eines aktiven Befehls kein Command-Befehl aufgerufen werden kann, außer er ist transparent. Da der SaveAs-befehl nicht transparent ist, kann diese Methode innerhalb eigener Methoden nicht genutzt werden.
.
.
.
public void SaveAS(string Name)
{
Document hDoc = AcAp.DocumentManager.MdiActiveDocument;
object hCmd = AcAp.GetSystemVariable("CMDECHO");
hDoc.SendStringToExecute("(setvar \"CMDECHO\" 0)");
hDoc.SendStringToExecute
("(command \"_.SAVEAS\" \"\" \"" + Name + "\")", false, false, false);
hDoc.SendStringToExecute
("(setvar \"CMDECHO\" " + hCmd.ToString() + ")", false, false, false );
hDoc.SendStringToExecute
("(princ)", false, false, false );
}
Eine 4. Variante die Nutzung der Methode Save des Objektes DataBase hat bisher nicht funktioniert.
Viel Spaß beim Ausprobieren
Autor: Dipl.-Ing. Jürgen A. Becker
Kontakt: Juergen.Becker@CAD-Becker.de oder Juergen.Becker@AUGI.COM
- Langjährige Schulungserfahrung
- Autorisierter AutoCAD Trainer (AutoCAD, Mechanical Desktop etc.)
- Software- und Datenbankentwicklung