コード例 #1
0
        public IResult GetEntities(Type type)
        {
            var db           = AAAS.Core.Application.DocumentManager.MdiActiveDocument.Database;
            var returnresult = new Result_Model();

            using (AADS.Transaction tr = db.TransactionManager.StartTransaction())
            {
                try
                {
                    var modelspaceId = AADS.SymbolUtilityServices.GetBlockModelSpaceId(db);
                    var modelspace   = modelspaceId.GetObject(AADS.OpenMode.ForRead, false) as AADS.BlockTableRecord;
                    var rxobjclass   = AAR.RXObject.GetClass(type);
                    var entityids    = modelspace.Cast <AADS.ObjectId>().Where(id => id.ObjectClass == rxobjclass);

                    returnresult.Payload.Clear();
                    entityids.ToList().ForEach(id => returnresult.Payload.Add(id.GetObject(AADS.OpenMode.ForRead, false)));

                    tr.Commit();
                }
                catch
                {
                    tr.Abort();
                    returnresult.ResultType = Core.Enums.ResultTypes.Failed;
                }
            }

            return(returnresult);
        }
コード例 #2
0
        public static bool GetPoint(ref AcadGeo.Point3d val, string message, AcadGeo.Point3d bp)
        {
            AcadApp.DocumentManager.MdiActiveDocument.Window.Focus();
            using (AcadApp.DocumentManager.MdiActiveDocument.LockDocument())
            {
                using (AcadDB.Transaction tr = AcadFuncs.GetActiveDoc().TransactionManager.StartTransaction())
                {
                    AcadEd.PromptPointOptions prmpt_pnt = new AcadEd.PromptPointOptions(message);
                    prmpt_pnt.UseBasePoint = true;
                    prmpt_pnt.BasePoint    = bp;
                    AcadEd.PromptPointResult prmpt_ret = AcadFuncs.GetEditor().GetPoint(prmpt_pnt);
                    if (AcadEd.PromptStatus.Cancel == prmpt_ret.Status)
                    {
                        tr.Abort();
                        tr.Dispose();
                        return(false);
                    }

                    val = prmpt_ret.Value;
                    tr.Commit();
                }
            }

            return(true);
        }
コード例 #3
0
        public static List <AcadDB.ObjectId> PickEnts()
        {
            AcadApp.DocumentManager.MdiActiveDocument.Window.Focus();
            using (AcadApp.DocumentManager.MdiActiveDocument.LockDocument())
            {
                using (AcadDB.Transaction tr = AcadFuncs.GetActiveDoc().TransactionManager.StartTransaction())
                {
                    AcadEd.PromptSelectionResult prmpt_ret = AcadFuncs.GetEditor().GetSelection();
                    if (AcadEd.PromptStatus.Cancel == prmpt_ret.Status)
                    {
                        tr.Abort();
                        tr.Dispose();
                        return(new List <AcadDB.ObjectId>());
                    }
                    tr.Commit();

                    return(prmpt_ret.Value.GetObjectIds().ToList());
                }
            }
        }
コード例 #4
0
ファイル: TestCmds.cs プロジェクト: zhengjian211/MgdDbg
        TestTrans2()
        {
            Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor;

            PromptSelectionResult res = ed.GetSelection();

            if (res.Status != PromptStatus.OK)
            {
                return;
            }

            Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = Utils.Db.GetCurDwg().TransactionManager;

            ObjectId[] objIds = res.Value.GetObjectIds();
            foreach (ObjectId objId in objIds)
            {
                using (Autodesk.AutoCAD.DatabaseServices.Transaction tr = tm.StartTransaction()) {
                    DBObject tmpObj = tr.GetObject(objId, OpenMode.ForRead);
                    tr.Abort();
                }
            }
        }
コード例 #5
0
        public static bool GetDouble(ref double val, string message)
        {
            AcadApp.DocumentManager.MdiActiveDocument.Window.Focus();
            using (AcadApp.DocumentManager.MdiActiveDocument.LockDocument())
            {
                using (AcadDB.Transaction tr = AcadFuncs.GetActiveDoc().TransactionManager.StartTransaction())
                {
                    AcadEd.PromptDoubleOptions prmpt_pnt = new AcadEd.PromptDoubleOptions(message);
                    AcadEd.PromptDoubleResult  prmpt_ret = AcadFuncs.GetEditor().GetDouble(prmpt_pnt);
                    if (AcadEd.PromptStatus.Cancel == prmpt_ret.Status)
                    {
                        tr.Abort();
                        tr.Dispose();
                        return(false);
                    }

                    val = prmpt_ret.Value;
                    tr.Commit();
                }
            }

            return(true);
        }
コード例 #6
0
ファイル: AcadCmds.cs プロジェクト: presscad/Learn_objectARX
        public void CreateLayout()
        {
            using (AcadDb.Transaction tr = AcadFuncs.GetActiveDb().TransactionManager.StartTransaction())
            {
                AcadDb.LayoutManager layout_man = AcadDb.LayoutManager.Current;
                AcadDb.ObjectId      layout_id  = layout_man.CreateLayout("My_Layout");
                layout_man.SetCurrentLayoutId(layout_id);

                AcadDb.Layout layout = tr.GetObject(layout_id, AcadDb.OpenMode.ForRead) as AcadDb.Layout;
                if (null == layout)
                {
                    return;
                }

                AcadDb.BlockTableRecord blk_tbl_rcd = tr.GetObject(layout.BlockTableRecordId, AcadDb.OpenMode.ForRead)
                                                      as AcadDb.BlockTableRecord;
                if (null == blk_tbl_rcd)
                {
                    return;
                }

                AcadDb.ObjectIdCollection vp_ids = layout.GetViewports();
                AcadDb.Viewport           vp     = null;

                foreach (AcadDb.ObjectId vp_id in vp_ids)
                {
                    AcadDb.Viewport vp2 = tr.GetObject(vp_id, AcadDb.OpenMode.ForWrite) as AcadDb.Viewport;
                    if (null != vp2 && 2 == vp2.Number)
                    {
                        vp = vp2;
                        break;
                    }
                }

                if (null == vp)
                {
                    vp = new AcadDb.Viewport();
                    blk_tbl_rcd.UpgradeOpen();
                    blk_tbl_rcd.AppendEntity(vp);
                    tr.AddNewlyCreatedDBObject(vp, true);
                    vp.On     = true;
                    vp.GridOn = true;
                }

                vp.ViewCenter = new AcadGeo.Point2d(0.0, 0.0);
                double scale = 0;
                {
                    AcadEd.PromptDoubleOptions prmpt_pnt = new AcadEd.PromptDoubleOptions("Nhập scale:");
                    AcadEd.PromptDoubleResult  prmpt_ret = AcadFuncs.GetEditor().GetDouble(prmpt_pnt);
                    if (AcadEd.PromptStatus.Cancel == prmpt_ret.Status)
                    {
                        tr.Abort();
                        tr.Dispose();
                        return;
                    }

                    scale = prmpt_ret.Value;
                }
                vp.CustomScale = scale;
                vp.Locked      = true;

                tr.Commit();
            }
        }