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);