Code:
namespace CADDrawing
{ /// <summary>
/// Eine einfache Klasse für die Erzeugung von Objekten in ACAD
/// </summary>
public class CADDrawing
{
#region Felder
/// <summary>
/// Felder für die Punkte
/// </summary>
private static Database db = new Database();
private static Transaction trans = new Transaction();
private static BlockTableRecord mSpace = new BlockTableRecord();
private double[] _startPoint = new double[3];
private double[] _endPoint = new double[3];
#endregion
#region Eigenschaften
/// <summary>
/// Gets oder sets den Start Punkt
/// </summary>
public double[] StartPoint
{
get
{
return this._startPoint;
}
set
{
this._startPoint = value;
}
}
/// <summary>
/// Gets oder sets den End Punkt
/// </summary>
public double[] EndPoint
{
get
{
return this._endPoint;
}
set
{
this._endPoint = value;
}
}
#endregion
#region Methoden
// Methode für das Zeichnen einer Linie
public void DrawLine()
{
// Zeichnet den Start und Endpunkt
db = Application.DocumentManager.MdiActiveDocument.Database;
trans = db.TransactionManager.StartTransaction();
mSpace = trans.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
Point3d startPoint = new Point3d(_startPoint[0], _startPoint[1], _startPoint[2]);
Point3d endPoint = new Point3d(_endPoint[0], _endPoint[1], _endPoint[2]);
Line3d line = new Line3d(startPoint, endPoint);
mSpace.AppendEntity(line);
trans.AddNewlyCreatedDBObject(line, true);
trans.Commit();
}
// Modal Command with localized name
[CommandMethod("MyGroup")]
public void MyCommand() // This method can have any name
{
CADDrawing linie1 = new CADDrawing();
linie1.StartPoint[0] = 0;
linie1.StartPoint[1] = 0;
linie1.StartPoint[2] = 0;
linie1.EndPoint[0] = 5;
linie1.EndPoint[1] = 5;
linie1.EndPoint[2] = 0;
}
#endregion
}
}