多行文本,单行文本,文本样式,创建对齐标注,创建线性标注
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.Oblique = 0.5;
text.TextString = "测试单行文本";
text.ColorIndex = 3;
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())
{
TextStyleTableRecord ts = tran.GetObject(db.Textstyle, OpenMode.ForWrite) as TextStyleTableRecord;
FontDescriptor font = ts.Font;
doc.Editor.WriteMessage("当前字体:" + font.ToString());
FontDescriptor 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;
Line 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;
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();
}
}
}
}