Startseite

Über Jürgen A. Becker

Impressum

CAD-Dienstleistungen

Schulungsangebot

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.

using AcAp = Autodesk.AutoCAD.ApplicationServices.Application;
.
.
.
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

AcadDocument hdoc = (AcadDocument)doc.AcadDocument;
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.

using AcAp = Autodesk.AutoCAD.ApplicationServices.Application;
.
.
.
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

Kommentieren