zoukankan      html  css  js  c++  java
  • AutoCAD.Net/C#.Net QQ群:193522571 深度克隆 deepclone

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

    [CommandMethod("copyEnt")]
            public void copyEnt()
                {
                Document doc = AcApp.DocumentManager.MdiActiveDocument;
                Database db = doc.Database;
                Editor ed = doc.Editor;
    
                PromptEntityOptions options = new PromptEntityOptions("
    Select 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();
                    }
    
                }
  • 相关阅读:
    一个类GraphQL的ORM数据访问框架发布
    关于 IIS Express 常用设置
    代码失控与状态机(上)
    实体类的动态生成(三)
    实体类的动态生成(二)
    搭建 github.io 博客站点
    实体类的动态生成(一)
    JDK的下载和安装
    三步搞定jupyter nootebook 主题切换
    LeetCode刷题--存在重复元素
  • 原文地址:https://www.cnblogs.com/swtool/p/14491092.html
Copyright © 2011-2022 走看看