DWG图纸中有很多看不见的数据,控件打开文件时,可以设置那些内容不让加载,来提高打开文件速度。

比如, 设置控件的Iniset属性的值 READCONTENT=132440最快方式打开图纸, 132440就一个位运算出来的数值,每个二进位代表是需要加那些内容,

js设置如下:

每个二进制位代表含义:

enum ReadContent
{
kReadAllDefault = 0xFFF9FFFF,//0xFFFDFFFF=~kFastRelease & ~kReadProxyEntGet
kReadAllProxyEntGet = 0xFFFDFFFF,//0xFFFDFFFF=~kFastRelease
kReadNull       = 0x0,// 下面数据都不读取
kReadExData= 0x1,
kReadHandle= 0x2,
kReadBlockRefPreviewIcon= 0x4,
kReadBlockLayoutName= 0x8,
kNamedObjectsDictionary= 0x10,// 是否读对象字典,如果不读,字典下所有数据都不会读取.
kReadGroupDict              = 0x20,// 是否读取组字典
kReadLayoutDict             = 0x40,
kReadMlineStyleDict         = 0x80,
kReadImageDict= 0x100,
kReadXrecord= 0x200,
kReadDrawOrder= 0x400,
kReadxData= 0x800,
kReadExRecord               = 0x1000,
kReadExternalReference      = 0x2000,
kReadCustomEntity           = 0x4000,// 是否读取自定义实体,如果该为项为真,则自动让kReadHandle值也为真,因为自定义实体需要名柄支持.
kReComputeDimBlock          = 0x8000,// 是否重新生成标注块 。
kReadUserDictionary         = 0x10000,// 读取命名字典下的用户字典.
kFastRelease                = 0x20000,
kReadProxyEntGet            = 0x40000,// 是否读取代理实体的entget.
kFastRead=  kReadBlockLayoutName|kNamedObjectsDictionary|kReadLayoutDict|kReadImageDict|kFastRelease|Mcad::kReadDrawOrder
};

JS代码,最快的速加载图纸,图纸内部看不见的数据,不加载:

        var param = mxOcx.NewResbuf();
        param.AddString("http://www.mxcad.net:2080/test.dwg");
        param.AddLong(132440);
        mxOcx.CallEx("Mx_OpenDwgEx", param);
12-26 05:11