1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.Windows; using Autodesk.AutoCAD.Geometry; namespace AcadDemo { class OtherDemo { [CommandMethod("ge2dbnet")] public void Ge2DbMethod() { EllipticalArc3d arc1 =new EllipticalArc3d(Point3d.Origin,Vector3d.XAxis,Vector3d.YAxis,2.0, 0.5);
GetCurveObjectId(arc1); }
static ObjectId GetCurveObjectId(Curve3d geCurve3d) { Document doc = Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; Database db = doc.Database;
ObjectId oid = ObjectId.Null; try { Curve dbCurve = Curve.CreateFromGeCurve(geCurve3d);
if (dbCurve != null) { using (Transaction tr =db.TransactionManager.StartTransaction()) { BlockTable bt = tr.GetObject(db.BlockTableId,OpenMode.ForRead) as BlockTable;
BlockTableRecord btr =tr.GetObject(db.CurrentSpaceId,OpenMode.ForWrite) as BlockTableRecord; btr.AppendEntity(dbCurve); tr.AddNewlyCreatedDBObject(dbCurve, true); tr.Commit(); } } }
catch (System.Exception ex) { ed.WriteMessage(ex.Message); } return oid; } } }
|