AutoCAD.NET API2018二次开发第十七章

多行文本,单行文本,文本样式,创建对齐标注,创建线性标注

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//运行时
using Autodesk.AutoCAD.Runtime;
//数据库
using Autodesk.AutoCAD.DatabaseServices;
//应用程序服务
using Autodesk.AutoCAD.ApplicationServices;
//几何
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.Interop.Common;
//编辑输入
using Autodesk.AutoCAD.EditorInput;
//颜色
using Autodesk.AutoCAD.Colors;
//图形接口命名空间
using Autodesk.AutoCAD.GraphicsInterface;namespace AutoDemo21
{public class Class1{//多行文本[CommandMethod("DHWB")]public static void DHWB(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//声明块表BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;//文本声明MText 文本 = new MText();文本.Location = new Point3d(10, 10, 0);文本.Width = 10;文本.Contents = "asdasdasdasdas";文本.ColorIndex = 3;btr.AppendEntity(文本);tran.AddNewlyCreatedDBObject(文本, true);tran.Commit();}}//单行文本[CommandMethod("CSDHWB")]public static void CSDHWB(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//声明块表BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;//文本声明DBText 文本 = new DBText();文本.Position = new Point3d(10, 10, 0);文本.Height = 2;文本.TextString = "asdasdasdasdas";文本.ColorIndex = 3;btr.AppendEntity(文本);tran.AddNewlyCreatedDBObject(文本, true);DBText text = 文本.Clone() as DBText;text.Position = new Point3d(10, 5, 0);//text.Height = 2;//弧度text.Oblique = 0.5;text.TextString = "测试单行文本";text.ColorIndex = 3;//X轴显示text.IsMirroredInX = true;btr.AppendEntity(text);tran.AddNewlyCreatedDBObject(text, true);tran.Commit();}}//文本样式[CommandMethod("WBYS")]public static void WBYS(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//声明块表//BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录//BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;//样式表记录TextStyleTableRecord ts = tran.GetObject(db.Textstyle, OpenMode.ForWrite) as TextStyleTableRecord;//当前文本样式字体FontDescriptor font = ts.Font;//Application.ShowAlertDialog("当前字体:" + font.ToString());doc.Editor.WriteMessage("当前字体:" + font.ToString());//zitiFontDescriptor newFont = new FontDescriptor("仿宋", true, font.Italic, font.CharacterSet, font.PitchAndFamily);ts.Font = newFont;doc.Editor.Regen();doc.Editor.WriteMessage("当前字体:" + font.ToString());tran.Commit();}}//创建对齐标注[CommandMethod("DQBZ")]public static void DQBZ(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//声明块表BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;Line li = new Line(new Point3d(0,0,0),new Point3d(10,10,0));btr.AppendEntity(li);tran.AddNewlyCreatedDBObject(li, true);//创建点DBPoint P = new DBPoint(new Point3d(0, 1, 0));btr.AppendEntity(P);tran.AddNewlyCreatedDBObject(P, true);//对齐标注AlignedDimension AD = new AlignedDimension();//起点AD.XLine1Point = li.StartPoint;//结束点AD.XLine2Point = li.EndPoint;//对齐标注 经过的点AD.DimLinePoint = new Point3d(P.Position.X, P.Position.Y, 0);AD.ColorIndex = 3;//倾角AD.Oblique = 0.785;btr.AppendEntity(AD);tran.AddNewlyCreatedDBObject(AD, true);tran.Commit();}}//创建线性标注[CommandMethod("XXBZ")]public static void XXBZ(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//声明块表BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;Line li = new Line(new Point3d(0, 0, 0), new Point3d(10, 10, 0));btr.AppendEntity(li);tran.AddNewlyCreatedDBObject(li, true);//创建点DBPoint P = new DBPoint(new Point3d(5, 5, 0));btr.AppendEntity(P);tran.AddNewlyCreatedDBObject(P, true);//线标注RotatedDimension AD = new RotatedDimension();//起点AD.XLine1Point = li.StartPoint;//结束点AD.XLine2Point = li.EndPoint;//对齐标注 经过的点AD.DimLinePoint = new Point3d(P.Position.X, P.Position.Y, 0);//标注样式AD.DimensionStyle = db.Dimstyle;btr.AppendEntity(AD);tran.AddNewlyCreatedDBObject(AD, true);tran.Commit();}}//半径标注[CommandMethod("BJBZ")]public static void BJBZ(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//声明块表BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;using (Circle c = new Circle()){//定义园c.Center = new Point3d(0, 0, 0);c.Radius = 10;c.ColorIndex = 3;RadialDimension rd = new RadialDimension();rd.Center = c.Center;rd.ChordPoint = new Point3d(0, 10, 0);rd.LeaderLength = 5;btr.AppendEntity(c);tran.AddNewlyCreatedDBObject(c, true);btr.AppendEntity(rd);tran.AddNewlyCreatedDBObject(rd, true);}tran.Commit();}}//角度标注[CommandMethod("JDBZ")]public static void JDBZ(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//声明块表BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;//定义xianLine li = new Line(new Point3d(0, 0, 0), new Point3d(0, 5, 0));Line li2 = new Line(new Point3d(0, 0, 0), new Point3d(5, 5, 0));DBPoint rd = new DBPoint(new Point3d(2,1,0));LineAngularDimension2 ad = new LineAngularDimension2();ad.XLine1Start = li.StartPoint;ad.XLine1End = li.EndPoint;ad.XLine2Start = li2.StartPoint;ad.XLine2End = li2.EndPoint;ad.ArcPoint = new Point3d(rd.Position.X, rd.Position.Y,0);btr.AppendEntity(li);tran.AddNewlyCreatedDBObject(li, true);btr.AppendEntity(li2);tran.AddNewlyCreatedDBObject(li2, true);btr.AppendEntity(rd);tran.AddNewlyCreatedDBObject(rd, true);btr.AppendEntity(ad);tran.AddNewlyCreatedDBObject(ad, true);tran.Commit();}}//弧长标注 坐标标注[CommandMethod("HCBZ")]public static void HCBZ(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//声明块表BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;//定义x弧长Arc a = new Arc();a.Center = new Point3d(0, 0, 0);a.Radius = 5;a.StartAngle = 0;a.EndAngle = 1.57;DBPoint p = new DBPoint(new Point3d(5, 4, 0));ArcDimension ad = new ArcDimension(a.Center,a.StartPoint,a.EndPoint,new Point3d(p.Position.X,p.Position.Y,0),"<>",db.Dimstyle);btr.AppendEntity(a);tran.AddNewlyCreatedDBObject(a, true);btr.AppendEntity(p);tran.AddNewlyCreatedDBObject(p, true);btr.AppendEntity(ad);tran.AddNewlyCreatedDBObject(ad, true);tran.Commit();}}//坐标标注[CommandMethod("BZZB")]public static void BZZB(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//声明块表BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;//声明坐标标注OrdinateDimension od = new OrdinateDimension();od.UsingXAxis = false;od.DefiningPoint = new Point3d(5,4,0);od.LeaderEndPoint = new Point3d(10, 8, 0);btr.AppendEntity(od);tran.AddNewlyCreatedDBObject(od, true);tran.Commit();}}//创建标注样式[CommandMethod("BZYS")]public static void BZYS(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//样式表DimStyleTable dst = tran.GetObject(db.DimStyleTableId, OpenMode.ForWrite) as DimStyleTable;//样式表记录DimStyleTableRecord dstr = new DimStyleTableRecord();//声明坐标标注dstr = db.GetDimstyleData();dstr.Name = "新样式";Application.SetSystemVariable("DIMBLK1","_DOT");dstr.Dimblk1 = db.Dimblk1;Application.SetSystemVariable("DIMBLK2","_CLOSEDBLANK");dstr.Dimblk2 = db.Dimblk2;dstr.Dimsah = true;dst.Add(dstr);tran.AddNewlyCreatedDBObject(dstr, true);//声明块表BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;//对齐标注AlignedDimension ad = new AlignedDimension();ad.XLine1Point = new Point3d(0,0,0);ad.XLine2Point = new Point3d(5,0,0);ad.DimLinePoint = new Point3d(1,1,0);ad.DimensionStyle = dst["新样式"];btr.AppendEntity(ad);tran.AddNewlyCreatedDBObject(ad, true);tran.Commit();}}//标注显示内容和小数点[CommandMethod("BZXS")]public static void BZXS(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//声明块表BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;//对齐标注AlignedDimension ad = new AlignedDimension();//起始点ad.XLine1Point = new Point3d(0, 0, 0);//终止点ad.XLine2Point = new Point3d(5, 0, 0);//经过点ad.DimLinePoint = new Point3d(1, 1, 0);//显示两位小数ad.Dimdec = 2;//标注内容ad.DimensionText = "线的长度 <>";btr.AppendEntity(ad);tran.AddNewlyCreatedDBObject(ad, true);tran.Commit();}}//创建多重引线[CommandMethod("DCYX")]public static void DCYX(){//当前文档Document doc = Application.DocumentManager.MdiActiveDocument;//当前数据库Database db = doc.Database;//开始事务using (Transaction tran = db.TransactionManager.StartTransaction()){//声明块表BlockTable bt = tran.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;//声明块表记录BlockTableRecord btr = tran.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;//创建多重引线MLeader ML = new MLeader();int l = ML.AddLeader();int ln = ML.AddLeaderLine(l);ML.AddFirstVertex(ln,new Point3d(0,0,0));ML.AddLastVertex(ln,new Point3d(10,10,0));ML.ContentType = ContentType.MTextContent;MText mt = new MText();mt.Height = 2;mt.Location = new Point3d(10, 10, 0);mt.Contents = "测试";ML.MText = mt;btr.AppendEntity(ML);tran.AddNewlyCreatedDBObject(ML, true);tran.Commit();}}}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部