实现往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:方向