Teigha.net for CAD:使用LoadLineTypeFile加载部分含文字(形)的线型失败原因

在使用LoadLineTypeFile从线型文件中(如acad.lin加载部分含有文字(形)的线型的莫名其妙的出错,经过一段时间的百般查找原因,终于明白,如 db.LoadLineTypeFile(“BATTING”, lineFile),要加BATTING线型,该线型描述如下:
*BATTING,Batting SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
A,.0001,-.1,[BAT,ltypeshp.shx,x=-.1,s=.1],-.2,[BAT,ltypeshp.shx,r=180,x=.1,s=.1],-.1
从中可以看到字母“S”需要的字体(形)为“BAT”,支持该字体(形)的文件为“ltypeshp.shx”。在加载“BATTING”线型失败,是由于db中字体表中缺少“BAT”字体(形)记录,因此,需要预先加载该字体。加载代码可如下:

//load font style
TextStyleTable tst = db.TextStyleTableId.GetObject(Teigha.DatabaseServices.OpenMode.ForWrite) as TextStyleTable;
TextStyleTableRecord Bat = new TextStyleTableRecord();
Bat.Name = "BAT";
string shapeFile = Application.StartupPath + "\\ltypeshp.shx";
tst.Add(Bat);
Bat.IsShapeFile = true;//要放在后面
Bat.FileName = shapeFile;//要放在后面

现在就可以成功加载"BATTING"线型了:

LinetypeTable ltt = db.LinetypeTableId.GetObject(Teigha.DatabaseServices.OpenMode.ForWrite) as LinetypeTable;
string lineFile = Application.StartupPath + "\\acad.lin";
db.LoadLineTypeFile("BATTING", lineFile);
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值