CAD线型

DWG数据库中,线型样式存放在线型样式表中,表类名:MxDrawLinetypeTable,它的详细接口说明参考:http://www.mxdraw.com/help/IMxDrawLinetypeTable.htm

线型样式表中每一条记录称为一种线型样式,类名:MxDrawLinetypeTableRecord,它的详细接口说明参考:http://www.mxdraw.com/help/IMxDrawLinetypeTableRecord.htm

线型样式是随图纸保存,不同的图纸使用的线型样式都可能会不一样。

文字样式设置命令:Mx_Linetype, 比如:

ocx.SendStringToExecute("Mx_Linetype")

简单线型定义是通一个double数组来表示,大于零表示线型的实线长度,小于零表示线型的虚线长度,比如

1,-1,2,-2定义的线如下

linetype.png

 在控件程序所在目录下有个mx.lin线型定义文件,定义了一些常用的线型,线型文件定义格式与AutoCAD线型定义文件一至,可在百度搜索到AutoCAD线型定义文件格式教程。

 调用控件函数:LoadLinetypeFromFile从线型文件加载线型,函数详细说明:http://www.mxdraw.com/help/MxDrawXLib___DMxDrawX__LoadLinetypeFromFile@BSTR@BSTR@VARIANT_BOOL.htm

下面代码,从线型文件加CENTER线型,然使用该线型,画一条直线

var  lId = mxOcx.LoadLinetypeFromFile(mxOcx.GetOcxAppPath() + "//mx.lin", "CENTER",true);
mxOcx.LineType = "CENTER";
mxOcx.DrawLine(0, 0, 100, 100);

修改全局线型比例代码如下:

//返回控件的数据库对象
 var database = mxOcx.GetDatabase();
  
// 设置全局线型比例
database.LinetypeScale = 2.0;

MxDrawDatabase的CurrentlyLineTypeScale属性,设置新增加到数据库的对象的默认线型缩放比例

MxDrawDatabase的CurrentlyLineTypeName属性,设置新增加到数据库的对象的默认线型

在有些时候,明明一些线有线型,但显示成实线的原因是,线型的中空白长度远远小于或远远大于当前视区显示的范围上长度(不在一个数量级上),此时控件会显示成实线,AutoCAD软件也一样。这时可以通修改对象的线型比例或全局线型比例,让线型的显示大小在一个合理范围内,也可通过放大或缩小视区后,然后使用重新命令重新生成显示。

猜你喜欢

转载自www.cnblogs.com/yzy0224/p/12014750.html
CAD