ARES Commander provides .NET API that lets you author third party Plugin Software for ARES Commander.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
//Method attribute to define lisp callable function 'LispTest' //i.e (setq x (lisptest "Text created by .NET lisp function" 1.0 '(10 10 0))) [LispFunction("lisptest")] public ResultBuffer DoIt(ResultBuffer args) { // Get the database of the active document. Database db = HostApplicationServices.WorkingDatabase; TypedValue[] argsVal = new TypedValue[3]; if (args != null) { argsVal = args.AsArray(); } else { argsVal[0] = new TypedValue((int)LispDataType.Text, "Default Text"); argsVal[1] = new TypedValue((int)LispDataType.Double, .2); argsVal[1] = new TypedValue((int)LispDataType.Point3d, new Point3d(0, 0, 0)); } // Set up transaction manager. Teigha.DatabaseServices.TransactionManager tm = db.TransactionManager; using (Transaction tr = tm.StartTransaction()) { try { Point3d pPosition = new Point3d(0, 0, 0); // Create a new MText object and set properties. DBText pText = new DBText(); pText.TextString = (String)argsVal[0].Value; pText.Height = Convert.ToDouble(argsVal[1].Value); pText.Position = (Point3d)argsVal[2].Value; // Get model space to add the MText object. BlockTable pBlockTable = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForWrite); BlockTableRecord pModelSpace = (BlockTableRecord)tr.GetObject(pBlockTable[BlockTableRecord.ModelSpace], OpenMode.ForWrite); // Add the object to the model space. ObjectId id = pModelSpace.AppendEntity(pText); tr.AddNewlyCreatedDBObject(pText, true); // Commit changes to database. tr.Commit(); //return created text entity to lisp return new ResultBuffer(new TypedValue((int)LispDataType.ObjectId, id)); } finally { // delete tr , managed by c# with garbage collection } } } |
Migrating AutoCAD® .NET Classic Application to ARES Commander
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
#if ARES using Teigha.DatabaseServices; using Teigha.Runtime; using Teigha.Geometry; using Teigha.ApplicationServices; using Teigha.EditorInput; using CADApp = Teigha; #elif AutoCAD using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.Geometry; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.EditorInput; using CADApp = Autodesk.AutoCAD; #endif //If we define using statement as above then while porting no need to write as below #if ARES Teigha.Colors.Color acadColor = Teigha.Colors.Color.FromRgb(color.R, color.G, color.B); #else Autodesk.AutoCAD.Colors.Color acadColor = Autodesk.AutoCAD.Colors.Color.FromRgb(color.R, color.G, color.B); #endif //ported code will be CADApp.Colors.Color acadColor = TeighaCADApp.Colors.Color.FromRgb(color.R, color.G, color.B); |
...