1. 程式人生 > >AutoCAD.Net 實現建立wipeout遮罩實體

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();
            }
        }