CAD二次开发插入栅格图片

        [CommandMethod("TESTIMAGE")]
        public void TSTImage() {

            Document doc = Application.DocumentManager.MdiActiveDocument;
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            Database db = HostApplicationServices.WorkingDatabase;
            using (Transaction trans = doc.TransactionManager.StartTransaction())
            {
                BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForWrite);
                BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);
    
                
                RasterImageDef imageDef =  db.AddImageDef(trans, @"D:\用户目录\Desktop\Love\图片.png");
                if (imageDef != null) {
                    RasterImage rasterImage = new RasterImage();
                    
                    rasterImage.ImageDefId = imageDef.ObjectId;
                    ObjectId imageId = btr.AppendEntity(rasterImage);
                    if (imageId.IsNull)
                        throw new Autodesk.AutoCAD.Runtime.Exception(ErrorStatus.NullObjectId);
                    trans.AddNewlyCreatedDBObject(rasterImage, true);
                    RasterImage.EnableReactors(true);
                    rasterImage.AssociateRasterDef(imageDef);
                    rasterImage.Orientation = new CoordinateSystem3d(Point3d.Origin, Vector3d.XAxis, Vector3d.YAxis);

                }

                trans.Commit();
            }

        }

 

posted @ 2022-03-06 11:08  百年一梦  阅读(396)  评论(0编辑  收藏  举报