AutoCAD.Net/C#.Net QQ群:193522571 深度克隆 deepclone

2021-05-16 11:26

阅读:455

标签:tab   open   create   strong   value   new   style   val   false   

废话不多说,上个例子。更多讨论请加我的QQ群:193522571

[CommandMethod("copyEnt")]
        public void copyEnt()
            {
            Document doc = AcApp.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;

            PromptEntityOptions options = new PromptEntityOptions("\nSelect entity to copy");

            PromptEntityResult acSSPrompt = ed.GetEntity(options);

            if (acSSPrompt.Status != PromptStatus.OK)
                return;

            ObjectIdCollection collection = new ObjectIdCollection();
            collection.Add(acSSPrompt.ObjectId);

            //make model space as owner for new entity
            ObjectId ModelSpaceId = SymbolUtilityServices.GetBlockModelSpaceId(db);

            IdMapping mapping = new IdMapping();
            //db.DeepCloneObjects(collection, ModelSpaceId, mapping, false);

            //now open the new entity and change the color...
            using (Transaction Tx = db.TransactionManager.StartTransaction())
                {
                Entity oldEnt = (Entity)Tx.GetObject(acSSPrompt.ObjectId, OpenMode.ForRead);
                Entity newEnt = (Entity)oldEnt.DeepClone(oldEnt, mapping, true);


                //get the map.
                IdPair pair1 = mapping[acSSPrompt.ObjectId];

                //new object
                Entity ent = Tx.GetObject(pair1.Value, OpenMode.ForWrite) as Entity;

                
                //change the color to red
                ent.ColorIndex = 1;
                ent.Highlight();
                BlockTableRecord btr = (BlockTableRecord)Tx.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
                btr.AppendEntity(newEnt);
                Tx.AddNewlyCreatedDBObject(newEnt, true);

                Tx.Commit();
                }

            }

 

AutoCAD.Net/C#.Net QQ群:193522571 深度克隆 deepclone

标签:tab   open   create   strong   value   new   style   val   false   

原文地址:https://www.cnblogs.com/swtool/p/14491092.html


评论


亲,登录后才可以留言!