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();
                    }
    
                }
  • 相关阅读:
    windows2016优化
    oracle什么时候需要commit
    Mysql的锁表,锁行记录
    git add
    linux系统优化
    解决rsyslog启动问题
    HAProxy启用日志功能
    nc命令获取远端端口状态
    将pip源更换到国内镜像
    Centos7.6下安装Python3.7
  • 原文地址:https://www.cnblogs.com/swtool/p/14491092.html
Copyright © 2011-2022 走看看