admin管理员组

文章数量:1574064

实现往cad图纸中插入另一个dwg文件,可用于图框签名

private static void SignDwgName(ref Document doc, Transaction transaction, ObjectId objId, Point3d position, string signfilename, double widthblv, double heigthblv, double rotation)
        {
            BlockTableRecord ms = transaction.GetObject(objId, OpenMode.ForWrite, false) as BlockTableRecord;
            string type = signfilename.Substring(signfilename.Length - 3, 3); //获取签名格式(dwg: CAD图纸  png:图片)
            if ("dwg" == type) // 矢量图签名
            {
                using (Database db = new Database(false, false))
                {
                    db.ReadDwgFile(signfilename, FileOpenMode.OpenForReadAndReadShare, true, null);
                    db.CloseInput(true);

                    string name = signfilename.Substring(signfilename.LastIndexOf("\\") + 1).Replace(".dwg", "");
                    ObjectId objectId = doc.Database.Insert(name, db, false);

                    using (BlockReference brf = new BlockReference(position, objectId)) //position是一个Point3D坐标,这里是插入进当前dwg文件中
                    {
                        brf.ScaleFactors = new Scale3d(widthblv, heigthblv, 1);
                        brf.Rotation = rotation;
                        ms.AppendEntity(brf);
                        transaction.AddNewlyCreatedDBObject(brf, true);
                    }
                }
            }
        }

signfilename:插入文件路径

widthblv:宽度比例

heigthblv:高度比例

rotation:方向

本文标签: 图纸文件AutoCADDWG