如何更改当前标注样式中的文字样式而不生成标注样式替代.
1.如何更改当前标注样式中的文字样式而不生成标注样式替代.2.如何删除已有的标注样式替代.
http://bbs.mjtd.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 namezg的微博 1.(command "_.DIMSTYLE" "_SAVE")
2.标注样式替代是因为相关系统变量被修改但又为保存到当前样式,当当前样式被修改即不现实样式替代,无需删除也无法删除 标注样式替代是作为扩展数据写入标注图元的,应该可以通过删除图元扩展数据恢复成默认的标注样式。 第一个问题
public static void SetDimStyleCurrent(string DimStyleName)
{
// Establish connections to the document and its database
Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
// Establish a transaction
using (Transaction tr = doc.TransactionManager.StartTransaction())
{
DimStyleTable dst = (DimStyleTable)tr.GetObject(db.DimStyleTableId, OpenMode.ForRead);
ObjectId dimId = ObjectId.Null;
string message = string.Empty;
if (!dst.Has(DimStyleName))
{
CreateModifyDimStyle(DimStyleName, out message);
dimId = dst;
}
else
dimId = dst;
DimStyleTableRecord dstr = (DimStyleTableRecord)tr.GetObject(dimId, OpenMode.ForRead);
/* NOTE:
* If this code is used, and the updated style is current,
* an override is created for that style.
* This is not what I wanted.
*/
//if (dstr.ObjectId != db.Dimstyle)
//{
// db.Dimstyle = dstr.ObjectId;
// db.SetDimstyleData(dstr);
//}
/* Simply by running these two lines all the time, any overrides to updated dimstyles get
* cleared away as happens when you select the parent dimstyle in AutoCAD.
*/
db.Dimstyle = dstr.ObjectId;
db.SetDimstyleData(dstr);
tr.Commit();
}
}
关键在于
db.Dimstyle = dstr.ObjectId;
db.SetDimstyleData(dstr);
要两句一起用,我之前也是只用一句,总是有个替代
页:
[1]