java开发autocad_.NET AutoCAD二次开发之路(四、文字篇)

创建文字的方法有单行文字和多行文字之分,方法都一样都是先用不带参数的默认构造函数(先创建一个单行文字或多行文字对象的实例,不要为构造函数传递任何参数),然后在对其插入点、文字内容、文字宽度、文字高度等进行设置,多行文字要比单行文字复杂点,不过仍然是我学习中最简单的内容。

单行文字创建步骤:

1、  获取当前数据库

Database db=HostApplicationServices.WorkingDatabase;

2、  创建一个单行文字对象的实例,不为构造函数传递任何参数,

DBText firsttext=new DBText();

3、  设置单行文字属性,

firsttext.Position=new point3d();//设置插入点

firsttext.Height=5;//设置文字高度

firsttext.TextString=”This is firsttext!”;// 设置文字内容

…属性下面列出

4、  只读方式打开块表

BlockTable acBlkTbl;

acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;

5、  写的方式打开块表记录

BlockTableRecord acBlkTblRec;

acBlkTblRec= acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;

6、  将文字对象添加到块表记录中

acBlkTblRec.AppendEntity(acText);

7、  将文本对象添加到事物处理中

acTrans.AddNewlyCreatedDBObject(acText, true);

单行文字的属性:

HorizontalMode

指定文字的水平对象方式。

VerticalMode

指定文字的垂直对象方式。

Position

指定文字的插入点

Oblique

指定单个文字对象的倾斜角度。

Rotation

指定以弧度表示的文字的旋转角度。

WidthFactor

指定文字的缩放因子。

AlignmentPoint

指定文字的对齐点。

IsMirroredInX

指定文字是否反向显示。

IsMirroredInY

指定文字是否倒置显示。

TextString

指定实际显示的文字字符串。

注意:要修改单个单行文字 对象的关联文字样式,请将 TextStyleId 属性设置为新的文字样式。只要修改了文字样式,就必须重新生成图形或更新对象以查看图形中的变化;文字对象也可以被移动、旋转、删除、复制和镜像。

多行文字多用来实现堆叠效果,例如公差等,其创建的方式基本和单行文字一至,只有构造函数不同,

MText secondtext=New MText();//创建多行文字

单行文字创建完整代码:

using Autodesk.AutoCAD.DatabaseServices;

using Autodesk.AutoCAD.Geometry;

using Autodesk.AutoCAD.Runtime;

namespace Texts

{

public class Texts

{

[CommandMethod("AddText")]

public void AddText()

{

Database db=HostApplicationServices.WorkingDatabase;

using (Transaction trans=db.TransactionManager.StartTransaction())

{

// 以只读方式打开块表

BlockTable acBlkTbl;

acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId, OpenMode.ForRead) as BlockTable;

// 以写方式打开模型空间块表记录 BlockTableRecord acBlkTblRec;

acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],

OpenMode.ForWrite) as BlockTableRecord;

DBText firsttext=new DBText(); // 创建第一个单行文字

firsttext.Position = new Point3d();//文字位置为原点

firsttext.Height = 5;//文字高度

//设置文字内容

firsttext.TextString = “This is firsttext!”;

//设置文字的水平对齐方式为居中

firsttext.HorizontalMode = TextHorizontalMode.TextCenter;

//设置文字的垂直对齐方式为居中

firsttext.VerticalMode = TextVerticalMode.TextVerticalMid;

//设置文字的对齐点

firsttext.AlignmentPoint = firsttext.Position;

acBlkTblRec.AppendEntity(firsttext);

acTrans.AddNewlyCreatedDBObject(firsttext, true);

trans.Commit();//提交事务处理

}

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值