Atook 发表于 2015-11-23 01:47:14

从支持路径中的dwt导入文本样式的最佳方法是什么?

将文字样式从支持路径中的dwt导入到激活图形的最佳方法是什么?我的dll目录中有一个dwt模板,其中包含我想在应用程序中使用的图层、块、文本样式等。这允许用户修改块等来定制他们的绘图,这也让我不用硬编码块、样式等。dwt文件位于支持路径中, WblockCloneObjects是否也是对textstyles执行此操作的最佳方式?现在,我导入具有以下内容的块:   /// 。
///从指定图形中获取块,并将其添加到激活图形的块表中..。
/// 。
/// 块名,。
/// 要从中提取块的dwg/dwt的路径,。
私有静态bool GetBlockFromDWG(string block name,string path)。
{。
使用(Database openDb = new Database(false,true))。
{。
openDb,ReadDwgFile(路径,。
系统,IO.FileShare.ReadWrite,true,“”;。

objectid collection ids = new objectid collection();。
使用(Transaction tr = openDb,transaction manager . start transaction())。
{。
var bt = (BlockTable)tr,GetObject(openDb,BlockTableId,OpenMode。for read);。

如果(bt,Has(blockName))。
{。
身份证,add(Bt);。
}。
trcommit();。
}。

//如果找到,则添加该块。
if (ids,数数!= 0)。
{。
//获取当前图形数据库。
激活,document . lock document(DocumentLockMode,ProtectedAutoWrite,null,null,true);。
id mapping iMap = new id mapping();。
激活,database . WblockCloneObjects(ids,Active。Database.BlockTableId。
iMap,DuplicateRecordCloning。忽略,假);。
返回true。
}。
否则。
{。
返回false。
}。
}。
}。


**** Hidden Message *****

Kerry 发表于 2015-11-23 03:06:41


是的,
适用于任何表记录导入。
完成后,不要忘记发布您的代码。
页: [1]
查看完整版本: 从支持路径中的dwt导入文本样式的最佳方法是什么?