您的位置:首页 > 其它

AutoCAD二次开发(.Net)之多文本(MText)创建

2017-12-29 10:11 846 查看
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
         }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: