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

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

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

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

ocx.SendStringToExecute("Mx_Linetype")

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

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

CAD关于线型_控件

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

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

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

Int64  lId = axMxDrawX1.LoadLinetypeFromFile(axMxDrawX1.GetOcxAppPath() + "//mx.lin", "CENTER",true);

axMxDrawX1.LineType = "CENTER";

axMxDrawX1.DrawLine(0, 0, 100, 100);

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

//返回控件的数据库对象

MxDrawDatabase databae = (MxDrawDatabase)axMxDrawX1.GetDatabase();



// 设置全局线型比例

databae.LinetypeScale = 2.0;

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

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

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