/// <summary> /// Visits the specified entity. /// See the <see cref="IEntityVisitor"/> for more details. /// </summary> public override void Visit(DxfTable table) { if (HandleEntity(table)) { // can remove associated block, too DxfBlock block = table.Block; if (block != null) { model.Blocks.Remove(block); } } }
public void Visit(DxfTable table) { this.method_0((DxfEntity)table); if ((this.handlingFlags_0 & EntityCounter.HandlingFlags.IncludeTableBlocks) == (EntityCounter.HandlingFlags) 0) { return; } DxfBlock block = table.Block; if (block == null) { return; } foreach (DxfEntity entity in (DxfHandledObjectCollection <DxfEntity>)block.Entities) { entity.Accept((IEntityVisitor)this); } }
internal void AddCommonValuePairs(List <DxfCodePair> pairs, DxfAcadVersion version, bool outputHandles) { pairs.Add(new DxfCodePair(0, DxfTable.TableTypeToName(TableType))); if (outputHandles) { int code = TableType == DxfTableType.DimStyle ? 105 : 5; pairs.Add(new DxfCodePair(code, DxfCommonConverters.UIntHandle(Handle))); } foreach (var group in ExtensionDataGroups) { group.AddValuePairs(pairs, version, outputHandles); } if (version >= DxfAcadVersion.R2000) { pairs.Add(new DxfCodePair(330, DxfCommonConverters.UIntHandle(OwnerHandle))); } pairs.Add(new DxfCodePair(100, "AcDbSymbolTableRecord")); }
internal Bounds3D method_1(DxfTable table) { DxfBlock valueObject = this.ValueObject as DxfBlock; if (valueObject == null) { return((Bounds3D)null); } DxfInsert dxfInsert = new DxfInsert(valueObject); foreach (DxfTableAttribute dxfTableAttribute in (List <DxfTableAttribute>) this.dxfTableAttributeCollection_0) { if (dxfTableAttribute.AttributeDefinition != null) { DxfAttribute dxfAttribute1 = new DxfAttribute(dxfTableAttribute.AttributeDefinition); dxfAttribute1.Text = dxfTableAttribute.Value; DxfAttribute dxfAttribute2 = dxfAttribute1; dxfAttribute2.AlignmentPoint1 = dxfAttribute2.AlignmentPoint1 - valueObject.BasePoint; if (dxfAttribute1.AlignmentPoint2.HasValue) { DxfAttribute dxfAttribute3 = dxfAttribute1; WW.Math.Point3D? alignmentPoint2 = dxfAttribute3.AlignmentPoint2; WW.Math.Vector3D basePoint = valueObject.BasePoint; dxfAttribute3.AlignmentPoint2 = alignmentPoint2.HasValue ? new WW.Math.Point3D?(alignmentPoint2.GetValueOrDefault() - basePoint) : new WW.Math.Point3D?(); } } } BoundsCalculator boundsCalculator = new BoundsCalculator(); boundsCalculator.GetBounds(table.Content.Model, (DxfEntity)dxfInsert); Bounds3D bounds = boundsCalculator.Bounds; Matrix4D transform = Transformation4D.Translation(valueObject.BasePoint) * Transformation4D.RotateZ(this.dxfContentFormat_0.Rotation) * Transformation4D.Translation(-valueObject.BasePoint); bounds.Transform(transform); return(bounds); }
public Class296(DxfTable table) : base((DxfInsertBase)table) { this.dxfTable_0 = table; }
public virtual void Visit(DxfTable table) { }
internal override bool vmethod_5(DxfModel model) { return(DxfTable.smethod_2(model)); }
public void Visit(DxfTable table) { this.bool_0 = true; }
public void method_0(DxfTable table, DxfTableContent tableContent) { this.vector3D_0 = table.HorizontalDirection; int num = tableContent.RowCount; if (table.BreakData != null && table.BreakData.OptionFlags != TableBreakOptionFlags.None && table.BreakData.RowRanges.Count > 0) { num = table.BreakData.RowRanges[0].EndRowIndex + 1; } this.method_7(num, false); this.method_8(tableContent.ColumnCount, false); if (tableContent.TableStyle == null) { throw new ArgumentException("Table style is not set on table content."); } this.TableStyle = tableContent.TableStyle; this.FlowDirection = tableContent.FlowDirection; this.SuppressTitle = tableContent.SuppressTitle == this.TableStyle.SuppressTitle ? new bool?() : new bool?(tableContent.SuppressTitle); this.SuppressHeaderRow = tableContent.SuppressHeaderRow == this.TableStyle.SuppressHeaderRow ? new bool?() : new bool?(tableContent.SuppressHeaderRow); this.VerticalCellMargin = !tableContent.CellStyleOverrides.OverrideVerticalMargin ? new double?() : new double?(tableContent.CellStyleOverrides.VerticalMargin); this.HorizontalCellMargin = !tableContent.CellStyleOverrides.OverrideHorizontalMargin ? new double?() : new double?(tableContent.CellStyleOverrides.HorizontalMargin); for (int rowIndex = 0; rowIndex < this.RowCount; ++rowIndex) { Class430 class430 = this.class429_0[rowIndex]; DxfTableRow row = tableContent.Rows[rowIndex]; class430.Height = row.Height; for (int columnIndex = 0; columnIndex < this.ColumnCount; ++columnIndex) { Class1026 cell1 = class430.Cells[columnIndex]; DxfTableCell cell2 = row.Cells[columnIndex]; TableCellContentType tableCellContentType1 = TableCellContentType.Value; DxfTableCellContent tableCellContent = (DxfTableCellContent)null; DxfTableCellStyle cellStyle = this.GetCellStyle(rowIndex, columnIndex); TableCellContentType tableCellContentType2; if (cell2.Contents.Count > 0) { tableCellContentType1 = TableCellContentType.Value; tableCellContentType1 = TableCellContentType.Value; tableCellContent = cell2.Contents[0]; tableCellContentType2 = tableCellContent.ContentType; switch (tableCellContentType2) { case TableCellContentType.Value: case TableCellContentType.Field: break; case TableCellContentType.Block: cell1.CellType = Enum47.const_2; cell1.Value.method_0(DxfValueFormat.GeneralInstance); cell1.Value.method_1((object)null); cell1.Value.method_2((string)null); cell1.AutoFit = table.GetAutoScale(rowIndex, columnIndex, -1); cell1.BlockScale = table.GetBlockScale(rowIndex, columnIndex, -1); cell1.Rotation = table.GetRotation(rowIndex, columnIndex, -1); if (tableCellContent != null) { cell1.BlockOrField = (DxfHandledObject)(tableCellContent.ValueObject as DxfBlock); cell1.AutoFit = table.GetAutoScale(rowIndex, columnIndex, 0); cell1.BlockScale = table.GetBlockScale(rowIndex, columnIndex, 0); cell1.Rotation = table.GetRotation(rowIndex, columnIndex, 0); goto label_16; } else { goto label_16; } default: goto label_16; } } else { tableCellContentType1 = TableCellContentType.Value; tableCellContentType2 = TableCellContentType.Value; } cell1.CellType = Enum47.const_1; if (tableCellContent != null) { cell1.BlockOrField = tableCellContentType2 != TableCellContentType.Field ? (DxfHandledObject)null : tableCellContent.ValueObject; cell1.Value.CopyFromShallow(tableCellContent.Value); double?rotationOverride = table.GetRotationOverride(rowIndex, columnIndex, 0, cellStyle); cell1.Rotation = rotationOverride.HasValue ? rotationOverride.Value : 0.0; cell1.TextStyle = table.GetTextStyleOverride(rowIndex, columnIndex, 0, cellStyle); cell1.TextHeight = table.GetTextHeightOverride(rowIndex, columnIndex, 0, cellStyle); } else { cell1.BlockOrField = (DxfHandledObject)null; if (cell2.Contents.Count > 0) { cell1.Value.CopyFromShallow(cell2.Contents[0].Value); } double?rotationOverride = table.GetRotationOverride(rowIndex, columnIndex, -1, cellStyle); cell1.Rotation = rotationOverride.HasValue ? rotationOverride.Value : 0.0; cell1.TextStyle = table.GetTextStyleOverride(rowIndex, columnIndex, -1, cellStyle); cell1.TextHeight = table.GetTextHeightOverride(rowIndex, columnIndex, -1, cellStyle); } label_16: cell1.CellAlignment = table.GetCellAlignmentOverride(rowIndex, columnIndex, -1, cellStyle); Color?contentColorOverride = table.GetContentColorOverride(rowIndex, columnIndex, -1, cellStyle); cell1.ContentColor = contentColorOverride.HasValue ? new Color?(contentColorOverride.Value) : new Color?(); Color?backColor = table.GetBackColor(rowIndex, columnIndex); if (backColor.HasValue) { cell1.BackColor = new Color?(backColor.Value); cell1.IsBackColorEnabled = new bool?(true); } else { cell1.BackColor = new Color?(); cell1.IsBackColorEnabled = new bool?(); } for (int borderIndex = 0; borderIndex < 4; ++borderIndex) { DxfTableBorder dxfTableBorder = cell2.CellStyleOverrides.method_21(borderIndex + 2); DxfTableBorderOverrides tableBorderOverrides = cell1.method_6(borderIndex); tableBorderOverrides.Color = !dxfTableBorder.OverrideColor ? new Color?() : new Color?(dxfTableBorder.Color); tableBorderOverrides.LineWeight = !dxfTableBorder.OverrideLineWeight ? new short?() : new short?(dxfTableBorder.LineWeight); tableBorderOverrides.Visible = !dxfTableBorder.OverrideVisibility ? new bool?() : new bool?(dxfTableBorder.Visible); } } } for (int index = 0; index < this.ColumnCount; ++index) { this.class912_0[index].Width = tableContent.Columns[index].Width; } foreach (DxfTableCellRange mergedCellRange in (List <DxfTableCellRange>)tableContent.MergedCellRanges) { if ((mergedCellRange.TopRowIndex != mergedCellRange.BottomRowIndex || mergedCellRange.LeftColumnIndex != mergedCellRange.RightColumnIndex) && (mergedCellRange.TopRowIndex < this.RowCount && mergedCellRange.LeftColumnIndex < this.ColumnCount)) { Class1026 cell = this.class429_0[mergedCellRange.TopRowIndex].Cells[mergedCellRange.LeftColumnIndex]; cell.MergedCellCountHorizontal = mergedCellRange.RightColumnIndex - mergedCellRange.LeftColumnIndex + 1; cell.MergedCellCountVertical = mergedCellRange.BottomRowIndex - mergedCellRange.TopRowIndex + 1; } } }
/// <summary> /// 创建一张表格的方法 /// </summary> public void createOneTable() { string str = getRadomData(6); model = new DxfModel(); //创建一个图层 DxfLayer layerTable = new DxfLayer("" + str + programName); model.Layers.Add(layerTable); //创建一个块 block = new DxfBlock("AcosticBoreHoleTable_Block" + str); model.Blocks.Add(block); DxfInsert insert = new DxfInsert(block, new Point3D(0, 0, 0)); insert.Layer = layerTable; model.Entities.Add(insert); { DxfTableStyle tableStyle1 = new DxfTableStyle("Single1 bordered" + str); tableStyle1.DataCellStyle.SetAllBordersBorderType(BorderType.Single); //tableStyle1.DataCellStyle.SetAllBordersColor(Colors.DarkGray); tableStyle1.TitleCellStyle.SetAllBordersBorderType(BorderType.Single); tableStyle1.HeaderCellStyle.SetAllBordersBorderType(BorderType.Single); //tableStyle1.HeaderCellStyle.ContentColor = Colors.DarkGray; model.TableStyles.Add(tableStyle1); DxfTable table1 = new DxfTable(tableStyle1); //表格插入点的位置 table1.InsertionPoint = new Point3D(0d, 0d, 0d); //设置表格的行数和列数 //各行高 table1.RowCount = 3; table1.ColumnCount = 9; table1.Rows.ElementAt <DxfTableRow>(0).Height = 18d; table1.Rows.ElementAt <DxfTableRow>(1).Height = 5d; table1.Rows.ElementAt <DxfTableRow>(2).Height = 255; /*foreach (DxfTableColumn column in table1.Columns) * { * column.Width = 25d; * }*/ table1.Columns.ElementAt <DxfTableColumn>(0).Width = 9; table1.Columns.ElementAt <DxfTableColumn>(1).Width = 13; table1.Columns.ElementAt <DxfTableColumn>(2).Width = 9; table1.Columns.ElementAt <DxfTableColumn>(3).Width = 13; table1.Columns.ElementAt <DxfTableColumn>(4).Width = 20; table1.Columns.ElementAt <DxfTableColumn>(5).Width = 40; table1.Columns.ElementAt <DxfTableColumn>(6).Width = 15; table1.Columns.ElementAt <DxfTableColumn>(7).Width = 20; table1.Columns.ElementAt <DxfTableColumn>(8).Width = 33; DxfMText drillHoleStadHeight = new DxfMText( @"地" + '\n' + "层" + '\n' + "时" + '\n' + "代", new Point3D(2.5d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"层 底" + '\n' + "厚 度" + '\n' + "(米)", new Point3D(12.5d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @" 层 " + '\n' + " 厚 " + '\n' + "(米)", new Point3D(24d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"层 底" + '\n' + "标 高" + '\n' + "(米)", new Point3D(33d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @" 柱 状 剖 面" + '\n' + " (比例尺)" + '\n' + " 1:" + plottingScale, new Point3D(46d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @" 所 通 过 岩 层 的 描 述" + '\n', new Point3D(66d, -3.5d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"(颗粒成分、状态、 颜色、掺杂物等)", new Point3D(66d, -9d, 0d), 1.5d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"岩芯" + '\n' + "采取率" + '\n' + "(%)", new Point3D(106d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"原 位 测 试", new Point3D(121d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @" 声 波 曲 线" + '\n' + " (km/s)", new Point3D(141d, -3.5d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"1", new Point3D(3d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"2", new Point3D(14.5d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"3", new Point3D(25d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"4", new Point3D(37.5d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"5", new Point3D(52.5d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"6", new Point3D(85d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"7", new Point3D(109.5d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"8", new Point3D(127d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"9", new Point3D(153.5d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); block.Entities.Add(table1); } { //************table2*************tableStyle2************** //set table borderStyle 此处DxfTableStyle括号中的名字,每个table的都不能相同 DxfTableStyle dxfTableStyle2 = new DxfTableStyle("Single2 bordered" + str); dxfTableStyle2.DataCellStyle.SetAllBordersBorderType(BorderType.Single); dxfTableStyle2.DataCellStyle.SetAllBordersColor(Colors.DarkGray); dxfTableStyle2.TitleCellStyle.SetAllBordersBorderType(BorderType.Single); dxfTableStyle2.HeaderCellStyle.SetAllBordersBorderType(BorderType.Single); dxfTableStyle2.HeaderCellStyle.SetAllBordersColor(Colors.DarkGray); //有该行的时候两个表格不能同时生成???***但是没有该行生成的图形文件又不完整 model.TableStyles.Add(dxfTableStyle2); //model.TableStyles.Insert(1,dxfTableStyle2); //定义一个拥有给定格式的表格 DxfTable table2 = new DxfTable(dxfTableStyle2); //表格插入点的位置 table2.InsertionPoint = new Point3D(-2d, 25d, 0d); table2.RowCount = 1; table2.ColumnCount = 1; table2.Rows.ElementAt <DxfTableRow>(0).Height = 305; foreach (DxfTableColumn column in table2.Columns) { column.Width = 176d; } block.Entities.Add(table2); } { //标题下划线 //定义线的长度 // A complex line type. DxfLineType lineType = new DxfLineType("titleLine" + str); model.LineTypes.Add(lineType); DxfLine line = new DxfLine(); line.Start = new Point3D(44d, 10d, 0d); line.End = new Point3D(113d, 10d, 0d); line.LineType = lineType; block.Entities.Add(line); //标题名 DxfMText mText = new DxfMText( @"钻孔柱状剖面图", new Point3D(46d, 18d, 0d), 6d ); block.Entities.Add(mText); } //定义标题栏中的其他部分 { //定义输入钻孔***X***坐标位置 DxfMText mText1 = new DxfMText( @"坐标 X=", new Point3D(135d, 20d, 0d), 2.5d ); block.Entities.Add(mText1); DxfLineType lineType1 = new DxfLineType("applicanceX" + str); model.LineTypes.Add(lineType1); DxfLine lineX = new DxfLine(); lineX.Start = new Point3D(149d, 17.5d, 0d); lineX.End = new Point3D(172d, 17.5d, 0d); lineX.LineType = lineType1; block.Entities.Add(lineX); DxfMText mText11 = new DxfMText( @"" + applicationCoordinateX, new Point3D(151d, 20d, 0d), 2d ); block.Entities.Add(mText11); //定义输入钻孔***Y***坐标位置********一块填写部分开始 DxfMText mText2 = new DxfMText( @"Y=", new Point3D(145d, 10d, 0d), 2.5d ); block.Entities.Add(mText2); DxfLineType lineType2 = new DxfLineType("applicanceY" + str); model.LineTypes.Add(lineType2); DxfLine lineY = new DxfLine(); lineY.Start = new Point3D(149d, 7.5d, 0d); lineY.End = new Point3D(172d, 7.5d, 0d); lineY.LineType = lineType2; block.Entities.Add(lineY); DxfMText mText21 = new DxfMText( @"" + applicationCoordinateY, new Point3D(151d, 10d, 0d), 2d ); block.Entities.Add(mText21); //********************************** 一块填写部分结束********************** } { //原位测试的长线条 DxfLineType drillCodeLineType = new DxfLineType("TestLine1" + str); model.LineTypes.Add(drillCodeLineType); DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(124d, -23d, 0d); drillCodeine.End = new Point3D(124d, -278d, 0d); drillCodeine.Color = EntityColors.Gray; drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); DxfLineType drillCodeLineType1 = new DxfLineType("TestLine2" + str); model.LineTypes.Add(drillCodeLineType1); DxfLine drillCodeine1 = new DxfLine(); drillCodeine1.Start = new Point3D(129d, -23d, 0d); drillCodeine1.End = new Point3D(129d, -278d, 0d); drillCodeine1.Color = EntityColors.Gray; drillCodeine1.LineType = drillCodeLineType1; block.Entities.Add(drillCodeine1); DxfLineType drillCodeLineType2 = new DxfLineType("TestLine3" + str); model.LineTypes.Add(drillCodeLineType2); DxfLine drillCodeine2 = new DxfLine(); drillCodeine2.Start = new Point3D(134d, -23d, 0d); drillCodeine2.End = new Point3D(134d, -278d, 0); drillCodeine2.Color = EntityColors.Gray; drillCodeine2.LineType = drillCodeLineType2; block.Entities.Add(drillCodeine2); } { //声波曲线的长线条 DxfLineType drillCodeLineType = new DxfLineType("TestLine11" + str); model.LineTypes.Add(drillCodeLineType); { //长线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(144d, -23d, 0d); drillCodeine.End = new Point3D(144d, -278d, 0d); drillCodeine.Color = EntityColors.Gray; drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } { DxfMText mtext = new DxfMText( @"2", new Point3D(143.5d, -13.5d, 0d), 2d ); model.Entities.Add(mtext); //长短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(144d, -16d, 0d); drillCodeine.End = new Point3D(144d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } { //短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(141.5d, -17d, 0d); drillCodeine.End = new Point3D(141.5d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } DxfLineType drillCodeLineType1 = new DxfLineType("TestLine12" + str); model.LineTypes.Add(drillCodeLineType1); { DxfLine drillCodeine1 = new DxfLine(); drillCodeine1.Start = new Point3D(149d, -23d, 0d); drillCodeine1.End = new Point3D(149d, -278d, 0d); drillCodeine1.Color = EntityColors.Gray; drillCodeine1.LineType = drillCodeLineType1; block.Entities.Add(drillCodeine1); } { DxfMText mtext = new DxfMText( @"3", new Point3D(148.5d, -13.5d, 0d), 2d ); model.Entities.Add(mtext); //长短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(149d, -16d, 0d); drillCodeine.End = new Point3D(149d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } { //短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(146.5d, -17d, 0d); drillCodeine.End = new Point3D(146.5d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } DxfLineType drillCodeLineType2 = new DxfLineType("TestLine13" + str); model.LineTypes.Add(drillCodeLineType2); { DxfLine drillCodeine2 = new DxfLine(); drillCodeine2.Start = new Point3D(154d, -23d, 0d); drillCodeine2.End = new Point3D(154d, -278d, 0); drillCodeine2.Color = EntityColors.Gray; drillCodeine2.LineType = drillCodeLineType2; block.Entities.Add(drillCodeine2); } { DxfMText mtext = new DxfMText( @"4", new Point3D(153.5d, -13.5d, 0d), 2d ); model.Entities.Add(mtext); //长短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(154d, -16d, 0d); drillCodeine.End = new Point3D(154d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } { //短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(151.5d, -17d, 0d); drillCodeine.End = new Point3D(151.5d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } DxfLineType drillCodeLineType3 = new DxfLineType("TestLine14" + str); model.LineTypes.Add(drillCodeLineType3); { DxfLine drillCodeine3 = new DxfLine(); drillCodeine3.Start = new Point3D(159d, -23d, 0d); drillCodeine3.End = new Point3D(159d, -278d, 0d); drillCodeine3.Color = EntityColors.Gray; drillCodeine3.LineType = drillCodeLineType3; block.Entities.Add(drillCodeine3); } { DxfMText mtext = new DxfMText( @"5", new Point3D(158.5d, -13.5d, 0d), 2d ); model.Entities.Add(mtext); //长短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(159d, -16d, 0d); drillCodeine.End = new Point3D(159d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } { //短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(156.5d, -17d, 0d); drillCodeine.End = new Point3D(156.5d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } DxfLineType drillCodeLineType4 = new DxfLineType("TestLine15" + str); model.LineTypes.Add(drillCodeLineType4); { DxfLine drillCodeine4 = new DxfLine(); drillCodeine4.Start = new Point3D(164d, -23d, 0d); drillCodeine4.End = new Point3D(164d, -278d, 0d); drillCodeine4.Color = EntityColors.Gray; drillCodeine4.LineType = drillCodeLineType4; block.Entities.Add(drillCodeine4); } { DxfMText mtext = new DxfMText( @"6", new Point3D(163.5d, -13.5d, 0d), 2d ); model.Entities.Add(mtext); //长短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(164d, -16d, 0d); drillCodeine.End = new Point3D(164d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } { //短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(161.5d, -17d, 0d); drillCodeine.End = new Point3D(161.5d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } DxfLineType drillCodeLineType5 = new DxfLineType("TestLine16" + str); model.LineTypes.Add(drillCodeLineType5); { DxfLine drillCodeine5 = new DxfLine(); drillCodeine5.Start = new Point3D(169d, -23d, 0d); drillCodeine5.End = new Point3D(169d, -278d, 0); drillCodeine5.Color = EntityColors.Gray; drillCodeine5.LineType = drillCodeLineType5; block.Entities.Add(drillCodeine5); } { DxfMText mtext = new DxfMText( @"7", new Point3D(168.5d, -13.5d, 0d), 2d ); model.Entities.Add(mtext); //长短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(169d, -16d, 0d); drillCodeine.End = new Point3D(169d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } { //短线 DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(166.5d, -17d, 0d); drillCodeine.End = new Point3D(166.5d, -18d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); } } //需要填入表中的其他部分的内容 { //钻孔编号***************************************************************** DxfMText drillCodeText = new DxfMText( @"钻孔编号", new Point3D(0d, 5d, 0d), 2.5d ); block.Entities.Add(drillCodeText); DxfLineType drillCodeLineType = new DxfLineType("zkbhLine" + str); model.LineTypes.Add(drillCodeLineType); DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(15d, 1d, 0d); drillCodeine.End = new Point3D(33d, 1d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); DxfMText drillCodeWriteIn = new DxfMText( @"" + drillCode, new Point3D(17d, 4d, 0d), 2d ); block.Entities.Add(drillCodeWriteIn); //*********************************************************************** //钻孔位置*************************************************************** DxfMText drillLocationText = new DxfMText( @"钻孔位置", new Point3D(35d, 5d, 0d), 2.5d ); block.Entities.Add(drillLocationText); DxfLineType drillLocationLineType = new DxfLineType("drillLocationLine" + str); model.LineTypes.Add(drillLocationLineType); DxfLine drillLocationLine = new DxfLine(); drillLocationLine.Start = new Point3D(52d, 1, 0d); drillLocationLine.End = new Point3D(77d, 1d, 0d); drillLocationLine.LineType = drillLocationLineType; block.Entities.Add(drillLocationLine); DxfMText drillLocationWriteIn = new DxfMText( @"" + drillLocation + drillLocation1 + drillLocation2, new Point3D(54d, 4d, 0d), 2d ); block.Entities.Add(drillLocationWriteIn); //***************************************************************************** //********施钻起止日期********************************************************* DxfMText drillDate = new DxfMText( @"施钻起止日期", new Point3D(79d, 5d, 0d), 2.5d ); block.Entities.Add(drillDate); DxfLineType drillDateLineType = new DxfLineType("drillDateLine" + str); model.LineTypes.Add(drillDateLineType); DxfLine drillDateLine = new DxfLine(); drillDateLine.Start = new Point3D(101, 1d, 0d); drillDateLine.End = new Point3D(133, 1d, 0d); drillDateLine.LineType = drillDateLineType; block.Entities.Add(drillDateLine); DxfMText drillDateWriteIn = new DxfMText( @"" + drillStartTime + "--" + drillEndTime, new Point3D(102d, 4d, 0d), 2d ); block.Entities.Add(drillDateWriteIn); //*********************************************************************** //**********孔口标高***************************************************** DxfMText drillHoleStadHeight = new DxfMText( @"孔口标高", new Point3D(136d, 5d, 0d), 2.5d ); block.Entities.Add(drillHoleStadHeight); DxfLineType drillHoleStadHeightLineType = new DxfLineType("drillHoleStaHeight" + str); model.LineTypes.Add(drillHoleStadHeightLineType); DxfLine drillHoleStadHeightLine = new DxfLine(); drillHoleStadHeightLine.Start = new Point3D(151d, 1d, 0d); drillHoleStadHeightLine.End = new Point3D(172d, 1d, 0d); drillHoleStadHeightLine.LineType = drillHoleStadHeightLineType; block.Entities.Add(drillHoleStadHeightLine); DxfMText drillHoleStadHeightWriteIn = new DxfMText( @"" + drillHoleStadardHeight, new Point3D(152d, 4d, 0d), 2d ); block.Entities.Add(drillHoleStadHeightWriteIn); //********************************************************************************** } addExtension(); //添加扩展线,包括描述信息的添加() AcosticWave aw = new AcosticWave(); //声波数据 aw.getAusticWave(model, block); //文件存储路径 //dxf格式的柱状图 string path = AppDomain.CurrentDomain.BaseDirectory + "Drill\\acosticHistogram\\" + drillCode + ".dxf"; DxfWriter.Write(path, model, true); //获取其他格式的柱状图 ConvertFigureFormat cf = new ConvertFigureFormat(); string filename = drillCode; string outfile = AppDomain.CurrentDomain.BaseDirectory + "Drill\\acosticHistogram\\" + filename; cf.getDXFFormat(model, filename, outfile); }
internal static DxfTablesSection TablesSectionFromBuffer(DxfCodePairBufferReader buffer) { var section = new DxfTablesSection(); section.Clear(); while (buffer.ItemsRemain) { var pair = buffer.Peek(); buffer.Advance(); if (DxfCodePair.IsSectionEnd(pair)) { break; } if (!IsTableStart(pair)) { throw new DxfReadException("Expected start of table.", pair); } var table = DxfTable.FromBuffer(buffer); if (table != null) { switch (table.TableType) { case DxfTableType.AppId: section.AppIdTable = (DxfAppIdTable)table; break; case DxfTableType.BlockRecord: section.BlockRecordTable = (DxfBlockRecordTable)table; break; case DxfTableType.DimStyle: section.DimStyleTable = (DxfDimStyleTable)table; break; case DxfTableType.Layer: section.LayerTable = (DxfLayerTable)table; break; case DxfTableType.LType: section.LTypeTable = (DxfLTypeTable)table; break; case DxfTableType.Style: section.StyleTable = (DxfStyleTable)table; break; case DxfTableType.Ucs: section.UcsTable = (DxfUcsTable)table; break; case DxfTableType.View: section.ViewTable = (DxfViewTable)table; break; case DxfTableType.ViewPort: section.ViewPortTable = (DxfViewPortTable)table; break; default: throw new DxfReadException($"Unexpected table type {table.TableType}", pair); } } } return(section); }
/// <summary> /// 创建一张表格的方法 /// </summary> public void createOneTable() { string str = getRadomData(6); model = new DxfModel(); //创建一个图层 DxfLayer layerTable = new DxfLayer("" + str + programName); model.Layers.Add(layerTable); //创建一个块 block = new DxfBlock("AcosticBoreHoleTable_Block" + str); model.Blocks.Add(block); DxfInsert insert = new DxfInsert(block, new Point3D(0, 0, 0)); insert.Layer = layerTable; model.Entities.Add(insert); { DxfTableStyle tableStyle1 = new DxfTableStyle("Single1 bordered" + str); tableStyle1.DataCellStyle.SetAllBordersBorderType(BorderType.Single); //tableStyle1.DataCellStyle.SetAllBordersColor(Colors.DarkGray); tableStyle1.TitleCellStyle.SetAllBordersBorderType(BorderType.Single); tableStyle1.HeaderCellStyle.SetAllBordersBorderType(BorderType.Single); //tableStyle1.HeaderCellStyle.ContentColor = Colors.DarkGray; model.TableStyles.Add(tableStyle1); DxfTable table1 = new DxfTable(tableStyle1); //表格插入点的位置 table1.InsertionPoint = new Point3D(0d, 0d, 0d); //设置表格的行数和列数 //各行高 table1.RowCount = 3; table1.ColumnCount = 10; table1.Rows.ElementAt <DxfTableRow>(0).Height = 18d; table1.Rows.ElementAt <DxfTableRow>(1).Height = 5d; table1.Rows.ElementAt <DxfTableRow>(2).Height = 255; //设置柱状图各列宽 table1.Columns.ElementAt <DxfTableColumn>(0).Width = 9; table1.Columns.ElementAt <DxfTableColumn>(1).Width = 13; table1.Columns.ElementAt <DxfTableColumn>(2).Width = 9; table1.Columns.ElementAt <DxfTableColumn>(3).Width = 13; table1.Columns.ElementAt <DxfTableColumn>(4).Width = 20; table1.Columns.ElementAt <DxfTableColumn>(5).Width = 40; table1.Columns.ElementAt <DxfTableColumn>(6).Width = 15; table1.Columns.ElementAt <DxfTableColumn>(7).Width = 20; table1.Columns.ElementAt <DxfTableColumn>(8).Width = 17; table1.Columns.ElementAt <DxfTableColumn>(9).Width = 16; DxfMText drillHoleStadHeight = new DxfMText( @"地" + '\n' + "层" + '\n' + "时" + '\n' + "代", new Point3D(2.5d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"层 底" + '\n' + "厚 度" + '\n' + "(米)", new Point3D(12.5d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @" 层 " + '\n' + " 厚 " + '\n' + "(米)", new Point3D(24d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"层 底" + '\n' + "标 高" + '\n' + "(米)", new Point3D(33d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @" 柱 状 剖 面" + '\n' + " (比例尺)" + '\n' + " 1:" + plottingScale, new Point3D(46d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @" 所 通 过 岩 层 的 描 述" + '\n', new Point3D(66d, -3.5d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"(颗粒成分、状态、 颜色、掺杂物等)", new Point3D(66d, -9d, 0d), 1.5d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @" 岩芯" + '\n' + "采取率" + '\n' + "(%)", new Point3D(106d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"原 位 测 试", new Point3D(121d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @" 采 " + '\n' + " 样 " + '\n' + "(米)", new Point3D(141d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @" 备 " + '\n' + '\n' + " 注 ", new Point3D(158d, -2d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); //列头的序号 drillHoleStadHeight = new DxfMText( @"1", new Point3D(3d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"2", new Point3D(14.5d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"3", new Point3D(25d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"4", new Point3D(37.5d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"5", new Point3D(52.5d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"6", new Point3D(85d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"7", new Point3D(109.5d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"8", new Point3D(127d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"9", new Point3D(148d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); drillHoleStadHeight = new DxfMText( @"10", new Point3D(165d, -19d, 0d), 2d ); block.Entities.Add(drillHoleStadHeight); block.Entities.Add(table1); } { //************table2*************tableStyle2************** //图头部分 DxfTableStyle dxfTableStyle2 = new DxfTableStyle("Single2 bordered" + str); dxfTableStyle2.DataCellStyle.SetAllBordersBorderType(BorderType.Single); dxfTableStyle2.DataCellStyle.SetAllBordersColor(Colors.DarkGray); dxfTableStyle2.TitleCellStyle.SetAllBordersBorderType(BorderType.Single); dxfTableStyle2.HeaderCellStyle.SetAllBordersBorderType(BorderType.Single); dxfTableStyle2.HeaderCellStyle.SetAllBordersColor(Colors.DarkGray); //有该行的时候两个表格不能同时生成???***但是没有该行生成的图形文件又不完整 model.TableStyles.Add(dxfTableStyle2); //定义一个拥有给定格式的表格 DxfTable table2 = new DxfTable(dxfTableStyle2); //表格插入点的位置 table2.InsertionPoint = new Point3D(-2d, 25d, 0d); table2.RowCount = 1; table2.ColumnCount = 1; table2.Rows.ElementAt <DxfTableRow>(0).Height = 305; foreach (DxfTableColumn column in table2.Columns) { column.Width = 176d; } block.Entities.Add(table2); } { //标题下划线 //定义线的长度 // A complex line type. DxfLineType lineType = new DxfLineType("titleLine" + str); model.LineTypes.Add(lineType); DxfLine line = new DxfLine(); line.Start = new Point3D(44d, 10d, 0d); line.End = new Point3D(113d, 10d, 0d); line.LineType = lineType; block.Entities.Add(line); //标题名 DxfMText mText = new DxfMText( @"钻孔柱状剖面图", new Point3D(46d, 18d, 0d), 6d ); block.Entities.Add(mText); } //定义标题栏中的其他部分 { //定义输入钻孔***X***坐标位置 DxfMText mText1 = new DxfMText( @"坐标 X=", new Point3D(135d, 20d, 0d), 2.5d ); block.Entities.Add(mText1); DxfLineType lineType1 = new DxfLineType("applicanceX" + str); model.LineTypes.Add(lineType1); DxfLine lineX = new DxfLine(); lineX.Start = new Point3D(149d, 17.5d, 0d); lineX.End = new Point3D(172d, 17.5d, 0d); lineX.LineType = lineType1; block.Entities.Add(lineX); DxfMText mText11 = new DxfMText( @"" + applicationCoordinateX, new Point3D(151d, 20d, 0d), 2d ); block.Entities.Add(mText11); //定义输入钻孔***Y***坐标位置********一块填写部分开始 DxfMText mText2 = new DxfMText( @"Y=", new Point3D(145d, 10d, 0d), 2.5d ); block.Entities.Add(mText2); DxfLineType lineType2 = new DxfLineType("applicanceY" + str); model.LineTypes.Add(lineType2); DxfLine lineY = new DxfLine(); lineY.Start = new Point3D(149d, 7.5d, 0d); lineY.End = new Point3D(172d, 7.5d, 0d); lineY.LineType = lineType2; block.Entities.Add(lineY); DxfMText mText21 = new DxfMText( @"" + applicationCoordinateY, new Point3D(151d, 10d, 0d), 2d ); block.Entities.Add(mText21); //********************************** 一块填写部分结束********************** } { //原位测试的长线条 DxfLineType drillCodeLineType = new DxfLineType("TestLine1" + str); model.LineTypes.Add(drillCodeLineType); DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(124d, -23d, 0d); drillCodeine.End = new Point3D(124d, -278d, 0d); drillCodeine.Color = EntityColors.Gray; drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); DxfLineType drillCodeLineType1 = new DxfLineType("TestLine2" + str); model.LineTypes.Add(drillCodeLineType1); DxfLine drillCodeine1 = new DxfLine(); drillCodeine1.Start = new Point3D(129d, -23d, 0d); drillCodeine1.End = new Point3D(129d, -278d, 0d); drillCodeine1.Color = EntityColors.Gray; drillCodeine1.LineType = drillCodeLineType1; block.Entities.Add(drillCodeine1); DxfLineType drillCodeLineType2 = new DxfLineType("TestLine3" + str); model.LineTypes.Add(drillCodeLineType2); DxfLine drillCodeine2 = new DxfLine(); drillCodeine2.Start = new Point3D(134d, -23d, 0d); drillCodeine2.End = new Point3D(134d, -278d, 0); drillCodeine2.Color = EntityColors.Gray; drillCodeine2.LineType = drillCodeLineType2; block.Entities.Add(drillCodeine2); } //需要填入表中的其他部分的内容 { //钻孔编号***************************************************************** DxfMText drillCodeText = new DxfMText( @"钻孔编号", new Point3D(0d, 5d, 0d), 2.5d ); block.Entities.Add(drillCodeText); DxfLineType drillCodeLineType = new DxfLineType("zkbhLine" + str); model.LineTypes.Add(drillCodeLineType); DxfLine drillCodeine = new DxfLine(); drillCodeine.Start = new Point3D(15d, 1d, 0d); drillCodeine.End = new Point3D(33d, 1d, 0d); drillCodeine.LineType = drillCodeLineType; block.Entities.Add(drillCodeine); DxfMText drillCodeWriteIn = new DxfMText( @"" + drillCode, new Point3D(17d, 4d, 0d), 2d ); block.Entities.Add(drillCodeWriteIn); //*********************************************************************** //钻孔位置*************************************************************** DxfMText drillLocationText = new DxfMText( @"钻孔位置", new Point3D(35d, 5d, 0d), 2.5d ); block.Entities.Add(drillLocationText); DxfLineType drillLocationLineType = new DxfLineType("drillLocationLine" + str); model.LineTypes.Add(drillLocationLineType); DxfLine drillLocationLine = new DxfLine(); drillLocationLine.Start = new Point3D(52d, 1, 0d); drillLocationLine.End = new Point3D(77d, 1d, 0d); drillLocationLine.LineType = drillLocationLineType; block.Entities.Add(drillLocationLine); DxfMText drillLocationWriteIn = new DxfMText( @"" + drillLocation + drillLocation1 + drillLocation2, new Point3D(54d, 4d, 0d), 2d ); block.Entities.Add(drillLocationWriteIn); //***************************************************************************** //********施钻起止日期********************************************************* DxfMText drillDate = new DxfMText( @"施钻起止日期", new Point3D(79d, 5d, 0d), 2.5d ); block.Entities.Add(drillDate); DxfLineType drillDateLineType = new DxfLineType("drillDateLine" + str); model.LineTypes.Add(drillDateLineType); DxfLine drillDateLine = new DxfLine(); drillDateLine.Start = new Point3D(101, 1d, 0d); drillDateLine.End = new Point3D(133, 1d, 0d); drillDateLine.LineType = drillDateLineType; block.Entities.Add(drillDateLine); DxfMText drillDateWriteIn = new DxfMText( @"" + drillStartTime + "--" + drillEndTime, new Point3D(102d, 4d, 0d), 2d ); block.Entities.Add(drillDateWriteIn); //*********************************************************************** //**********孔口标高***************************************************** DxfMText drillHoleStadHeight = new DxfMText( @"孔口标高", new Point3D(136d, 5d, 0d), 2.5d ); block.Entities.Add(drillHoleStadHeight); DxfLineType drillHoleStadHeightLineType = new DxfLineType("drillHoleStaHeight" + str); model.LineTypes.Add(drillHoleStadHeightLineType); DxfLine drillHoleStadHeightLine = new DxfLine(); drillHoleStadHeightLine.Start = new Point3D(151d, 1d, 0d); drillHoleStadHeightLine.End = new Point3D(172d, 1d, 0d); drillHoleStadHeightLine.LineType = drillHoleStadHeightLineType; block.Entities.Add(drillHoleStadHeightLine); DxfMText drillHoleStadHeightWriteIn = new DxfMText( @"" + drillHoleStadardHeight, new Point3D(152d, 4d, 0d), 2d ); block.Entities.Add(drillHoleStadHeightWriteIn); //********************************************************************************** } //addPattern(); addExtension();//设置值的同时画出扩展线 //文件存储路径以及文件名,因为钻孔编号是唯一的,所以钻孔柱状图根据钻孔编号命名,一个钻孔对应一个柱状图 string path = AppDomain.CurrentDomain.BaseDirectory + "Drill\\rockHistogram\\" + drillCode + ".dxf"; DirectoryInfo directoryInfo = new DirectoryInfo(path); //先判断当前文件若存在则删除 /* * if (directoryInfo.Exists) //若当前文件存在则先删除,再重新创建生成,这样可以在界面中进行多次成图 * { * directoryInfo.Delete(); * } */ DxfWriter.Write(path, model, true); //DxfWriter.Write("AcosticBoreholeTable.dxf", model); //return "AcosticBoreholeTable.dxf"; ConvertFigureFormat cf = new ConvertFigureFormat(); string filename = drillCode; string outfile = AppDomain.CurrentDomain.BaseDirectory + "Drill\\rockHistogram\\" + filename; cf.getDXFFormat(model, filename, outfile); }
public virtual void Visit(DxfTable table) { this.VisitInsertingEntity((DxfEntity)table, table.Block); }