using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
[CommandMethod("ADDBZ")]
public void ConnectMText()
{
Database db = HostApplicationServices.WorkingDatabase;
Document doc = Application.DocumentManager.GetDocument(db);
Editor ed = doc.Editor;
DocumentLock dl = doc.LockDocument();
try
{
using (Transaction tr = db.TransactionManager.StartTransaction())
{
BlockTable blockTbl = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
BlockTableRecord modelSpace = tr.GetObject(blockTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
MText mt =
new MText
{
Contents = MakeScript("ABC", "+0.01", "-0.01", ScriptType.Tolerance, 0.5)
};
mt.SetDatabaseDefaults();
modelSpace.AppendEntity(mt);
tr.AddNewlyCreatedDBObject(mt, true);
tr.Commit();
}
}
catch { }
dl.Dispose();
}
public static string MakeScript(string baseTextString, string superScript, string subScript, ScriptType scriptType, double scale)
{
string[] scriptTypStrings = new string[] { "/", "#", "^" };
return string.Format("\\A1;{0}{1}\\H{2:0.#}x;\\S{3}{4}{5};{6}",baseTextString,"{", scale,superScript,scriptTypStrings[(int)scriptType], subScript,"}");
}
public enum ScriptType
{
Fraction,
Italic,
Tolerance
}
AutoCAD二次开发(.Net)之多文本(MText)创建
最新推荐文章于 2023-07-30 19:57:34 发布