/// <summary> /// Loads a dxf ASCII file. /// </summary> /// <param name="file">File name.</param> public void Load(string file) { if (!File.Exists(file)) { throw new FileNotFoundException("File " + file + " not found.", file); } this.fileName = Path.GetFileNameWithoutExtension(file); // In dxf files the decimal point is always a dot. We have to make sure that this doesn't interfere with the system configuration. CultureInfo cultureInfo = CultureInfo.CurrentCulture; Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; DxfReader dxfReader = new DxfReader(file); dxfReader.Open(); dxfReader.Read(); dxfReader.Close(); //header information this.version = dxfReader.Version; this.handleCount = Convert.ToInt32(dxfReader.HandleSeed, 16); //tables information this.appRegisterNames = dxfReader.ApplicationRegistrationIds; this.layers = dxfReader.Layers; this.lineTypes = dxfReader.LineTypes; this.textStyles = dxfReader.TextStyles; this.blocks = dxfReader.Blocks; //entities information this.arcs = dxfReader.Arcs; this.circles = dxfReader.Circles; this.ellipses = dxfReader.Ellipses; this.points = dxfReader.Points; this.faces3d = dxfReader.Faces3d; this.solids = dxfReader.Solids; this.polylines = dxfReader.Polylines; this.lines = dxfReader.Lines; this.inserts = dxfReader.Inserts; this.texts = dxfReader.Texts; this.hatches = dxfReader.Hatches; Thread.CurrentThread.CurrentCulture = cultureInfo; }
/// <summary> /// Closes the datasource /// </summary> public virtual void Close() { if (!_Disposed) { //TODO: (ConnectionPooling) /* if (connector != null) * { Pooling.ConnectorPool.ConnectorPoolManager.Release...() * }*/ if (_IsOpen) { _DxfFile.Close(); //_fsDxfFile.Close(); _IsOpen = false; } } }
/// <summary> /// Loads a dxf ASCII file. /// </summary> /// <param name="file">File name.</param> public void Load(string file) { if (!File.Exists(file)) { throw new FileNotFoundException("File " + file + " not found.", file); } this.fileName = Path.GetFileNameWithoutExtension(file); CultureInfo cultureInfo = CultureInfo.CurrentCulture; Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; DxfReader dxfReader = new DxfReader(file); dxfReader.Open(); dxfReader.Read(); dxfReader.Close(); //header information this.version = dxfReader.Version; this.handleCount = Convert.ToInt32(dxfReader.HandleSeed, 16); //tables information this.appRegisterNames = dxfReader.ApplicationRegistrationIds; this.layers = dxfReader.Layers; this.lineTypes = dxfReader.LineTypes; this.textStyles = dxfReader.TextStyles; this.blocks = dxfReader.Blocks; //entities information this.arcs = dxfReader.Arcs; this.circles = dxfReader.Circles; this.ellipses = dxfReader.Ellipses; this.points = dxfReader.Points; this.faces3d = dxfReader.Faces3d; this.solids = dxfReader.Solids; this.polylines = dxfReader.Polylines; this.lines = dxfReader.Lines; this.inserts = dxfReader.Inserts; this.texts = dxfReader.Texts; Thread.CurrentThread.CurrentCulture = cultureInfo; #region reasign handles //add default viewports //foreach (ViewPort viewPort in this.viewports.Values ) //{ // this.handleCount = viewPort.AsignHandle(this.handleCount); //} ////add default layer //Layer.PlotStyleHandle = Conversion.Hex(this.handleCount++); //Layer byDefault = Layer.Default; //this.layers.Add(byDefault.Name, byDefault); //this.handleCount = byDefault.AsignHandle(this.handleCount); //// add default line types //LineType byLayer = LineType.ByLayer; //LineType byBlock = LineType.ByBlock; //this.lineTypes.Add(byLayer.Name, byLayer); //this.handleCount = byLayer.AsignHandle(this.handleCount); //this.lineTypes.Add(byBlock.Name, byBlock); //this.handleCount = byBlock.AsignHandle(this.handleCount); //// add default text style //TextStyle defaultStyle = TextStyle.Default; //this.textStyles.Add(defaultStyle.Name, defaultStyle); //this.handleCount = defaultStyle.AsignHandle(this.handleCount); //// add default blocks //Block modelSpace = Block.ModelSpace; //Block paperSpace = Block.PaperSpace; //this.blocks.Add(modelSpace.Name, modelSpace); //this.handleCount = modelSpace.AsignHandle(this.handleCount); //this.blocks.Add(paperSpace.Name, paperSpace); //this.handleCount = paperSpace.AsignHandle(this.handleCount); //// add default application registry //ApplicationRegistry defaultAppId = ApplicationRegistry.Default; //this.appRegisterNames.Add(defaultAppId.Name, defaultAppId); //this.handleCount = defaultAppId.AsignHandle(this.handleCount); //add default dimension style //foreach (DimensionStyle dimStyle in this.dimStyles.Values) //{ // this.handleCount = dimStyle.AsignHandle(this.handleCount); //} //foreach (Block block in this.blocks.Values) //{ // this.handleCount = block.AsignHandle(this.handleCount); //} #endregion }
/// <summary> /// 加载dxf ASCII文件 /// </summary> /// <param name="file">Dxf文件流</param> public void Load(Stream file) { CultureInfo cultureInfo = CultureInfo.CurrentCulture; Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; DxfReader dxfReader = new DxfReader(file); dxfReader.Open(); dxfReader.Read(); dxfReader.Close(); //header information this.version = dxfReader.Version; this.handleCount = Convert.ToInt32(dxfReader.HandleSeed, 16); this.extMaxPoint = dxfReader.ExtMaxPoint; this.extMinPoint = dxfReader.ExtMinPoint; //tables information this.appRegisterNames = dxfReader.ApplicationRegistrationIds; this.layers = dxfReader.Layers; this.lineTypes = dxfReader.LineTypes; this.textStyles = dxfReader.TextStyles; this.blocks = dxfReader.Blocks; //entities information this.arcs = dxfReader.Arcs; this.circles = dxfReader.Circles; this.ellipses = dxfReader.Ellipses; this.points = dxfReader.Points; this.faces3d = dxfReader.Faces3d; this.solids = dxfReader.Solids; this.polylines = dxfReader.Polylines; this.lines = dxfReader.Lines; this.inserts = dxfReader.Inserts; this.texts = dxfReader.Texts; this.shaps = dxfReader.Shaps.Where(p => p.Type != EntityType.Hatch).ToList(); this.hatchs = dxfReader.Shaps.Where(p => p.Type == EntityType.Hatch).Select(p => p as Hatch).ToList(); Thread.CurrentThread.CurrentCulture = cultureInfo; #region reasign handles //add default viewports //foreach (ViewPort viewPort in this.viewports.Values ) //{ // this.handleCount = viewPort.AsignHandle(this.handleCount); //} ////add default layer //Layer.PlotStyleHandle = Conversion.Hex(this.handleCount++); //Layer byDefault = Layer.Default; //this.layers.Add(byDefault.Name, byDefault); //this.handleCount = byDefault.AsignHandle(this.handleCount); //// add default line types //LineType byLayer = LineType.ByLayer; //LineType byBlock = LineType.ByBlock; //this.lineTypes.Add(byLayer.Name, byLayer); //this.handleCount = byLayer.AsignHandle(this.handleCount); //this.lineTypes.Add(byBlock.Name, byBlock); //this.handleCount = byBlock.AsignHandle(this.handleCount); //// add default text style //TextStyle defaultStyle = TextStyle.Default; //this.textStyles.Add(defaultStyle.Name, defaultStyle); //this.handleCount = defaultStyle.AsignHandle(this.handleCount); //// add default blocks //Block modelSpace = Block.ModelSpace; //Block paperSpace = Block.PaperSpace; //this.blocks.Add(modelSpace.Name, modelSpace); //this.handleCount = modelSpace.AsignHandle(this.handleCount); //this.blocks.Add(paperSpace.Name, paperSpace); //this.handleCount = paperSpace.AsignHandle(this.handleCount); //// add default application registry //ApplicationRegistry defaultAppId = ApplicationRegistry.Default; //this.appRegisterNames.Add(defaultAppId.Name, defaultAppId); //this.handleCount = defaultAppId.AsignHandle(this.handleCount); //add default dimension style //foreach (DimensionStyle dimStyle in this.dimStyles.Values) //{ // this.handleCount = dimStyle.AsignHandle(this.handleCount); //} //foreach (Block block in this.blocks.Values) //{ // this.handleCount = block.AsignHandle(this.handleCount); //} #endregion }