//Use Visual Studio to Start a new "Class Library" Project
// Add this code.
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Autodesk.AutoCAD.Runtime; //Reference: accoremgd, acdbmgd, acmgd
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.LayerManager;
using Autodesk.AutoCAD.PlottingServices;
using Autodesk.AutoCAD.Publishing;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Windows.ToolPalette;
// renamings
using AcadApp = Autodesk.AutoCAD.ApplicationServices.Application;
using AcAp = Autodesk.AutoCAD.ApplicationServices;
using AcDb = Autodesk.AutoCAD.DatabaseServices;
using AcEd = Autodesk.AutoCAD.EditorInput;
using AcGe = Autodesk.AutoCAD.Geometry;
using AcRx = Autodesk.AutoCAD.Runtime;
using AcCm = Autodesk.AutoCAD.Colors;
using AcGi = Autodesk.AutoCAD.GraphicsInterface;
using AcLy = Autodesk.AutoCAD.LayerManager;
using AcPl = Autodesk.AutoCAD.PlottingServices;
using AcUi = Autodesk.AutoCAD.Windows;
using PlotType = Autodesk.AutoCAD.DatabaseServices.PlotType;
using AcWin = Autodesk.AutoCAD.Windows;
namespace Firm.AutoCAD.ApplicationName
[CommandMethod("CUD")]
public static void CreateUselessDrawings()
{
Document doc = null;
//Database db = null;
Editor ed = null;
try
{
//To give some feedback, add the Editor (ed)
doc = AcadApp.DocumentManager.MdiActiveDocument;
if (doc != null)
ed = doc.Editor;
var newDwgPath=Path.GetTempPath();
if (ed != null)
ed.WriteMessage("\n Creating Useless Drawings in: {0}", newDwgPath);
for (int i = 0; i < 4; i++)
{
var buildDefaultDrawing = true;
var noDocument = true;
using (var newDwgDb = new Database(buildDefaultDrawing, noDocument))
{
//to make it a bid more usefull add a line
using (Transaction tr = newDwgDb.TransactionManager.StartTransaction())
{
newDwgDb.Measurement = MeasurementValue.Metric;
var modelSpace = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(newDwgDb), OpenMode.ForWrite);
var pStart = new Point3d(0, 0, 0);
var toRad=Math.PI/180;
var line_l=100+10*i;
var angleInDegrees=i*30;
var angleInRad=angleInDegrees*toRad;
var xEnd=line_l*Math.Cos(angleInRad);
var yEnd=line_l*Math.Sin(angleInRad);
var pEnd = new Point3d(xEnd, yEnd, 0);
var newLine = new Line(pStart, pEnd);
modelSpace.AppendEntity(newLine);
tr.AddNewlyCreatedDBObject(newLine, true);
tr.Commit();
}
var newDwgPathname = Path.Combine(newDwgPath, "NewDrawing_" + i + ".dwg");
if (File.Exists(newDwgPathname))
File.Delete(newDwgPathname);
newDwgDb.SaveAs(newDwgPathname, DwgVersion.Current);
if (ed != null)
ed.WriteMessage("\n\t Created: {0}", Path.GetFileName( newDwgPathname) );
}
}
}
catch (System.Exception ex)
{
if (ed != null)
ed.WriteMessage("\n Error in CreateUselessDrawings: {0}", ex.Message);
}
}
}
}
//Add References to AutoCAD DLL's: accoremgd, acdbmgd, acmgd
//Compile into Application DLL
//Start AutoCAD
//Command: NETLOAD <browse_to_Application DLL>
//Command: CUD
This concludes my project 