AutoCAD.Net 实现创建wipeout遮罩实体

 [CommandMethod("mywipeout")]
        public static void mywipeout()
        {
            
            // 获取当前文档和数据库
            Document acDoc = Application.DocumentManager.MdiActiveDocument;
            Database acCurDb = acDoc.Database;
            // 启动事务
            using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
            {
                // 以读模式打开Block表
                BlockTable acBlkTbl;
                acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,
                OpenMode.ForRead) as BlockTable;
                // 以写模式打开Block表记录Model空间
                BlockTableRecord acBlkTblRec;
                acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],
                OpenMode.ForWrite) as BlockTableRecord;
                Point2dCollection pt2dArray = new Point2dCollection();
                pt2dArray.Add(new Point2d(0, 0));
                pt2dArray.Add(new Point2d(100, 0));
                pt2dArray.Add(new Point2d(100, 100));
                pt2dArray.Add(new Point2d(0, 100));
                pt2dArray.Add(new Point2d(0, 0));//必须闭合
                Wipeout wipeoutEnt = new Wipeout();
                wipeoutEnt.SetFrom(pt2dArray, new Vector3d(0, 0, 1));
                acBlkTblRec.AppendEntity(wipeoutEnt);
                acTrans.AddNewlyCreatedDBObject(wipeoutEnt, true);
                acTrans.Commit();
            }
        }

  

原文地址:https://www.cnblogs.com/edata/p/10105336.html