Пример #1
0
        public void AddShape(string file)
        {
            string key = (DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond).ToString();

            shapes.Add(key, new WAShape(DXFReader.ReadFile(file), key));

            if (sizeOrderedShapeKeys.Count == 0)
            {
                sizeOrderedShapeKeys.Add(key);
            }
            else
            {
                for (int i = 0; i < sizeOrderedShapeKeys.Count; i++)
                {
                    float area = shapes[sizeOrderedShapeKeys[i]].GetDisplayArea();

                    if (area <= shapes[key].GetDisplayArea())
                    {
                        sizeOrderedShapeKeys.Insert(i, key);
                        break;
                    }
                    else if (i == sizeOrderedShapeKeys.Count - 1)
                    {
                        sizeOrderedShapeKeys.Add(key);
                        break;
                    }
                }
            }

            ClearDeployment();
            HandleShapesChange();
        }
Пример #2
0
        private void DXFLoadButton_Click(object sender, RoutedEventArgs e)
        {
            var openDialog = new OpenFileDialog();

            openDialog.Title  = "Select .DXF file to open";
            openDialog.Filter = "AutoCAD DXF File (*.dxf)|*dxf";

            if (openDialog.ShowDialog(this) == true)
            {
                var dxfReader = new DXFReader();
                VertexGeometryCollection geometry = dxfReader.ReadDXF(openDialog.FileName);
                GeometryLayerTable       layers   = geometry.Layered();
                DXFCanvas.ViewBounds = new BoundingBox(geometry);
                DXFCanvas.Layers     = layers;
                LayerBox.ItemsSource = layers;
            }
        }
Пример #3
0
        public void Units(DxfUnitsType sourceUnits, DistanceUnitsType destUnits)
        {
            var reader = new DXFReader(CreateTestPolyline(), sourceUnits);

            reader.Should().NotBeNull();

            reader.FindEntitiesSection().Should().BeTrue();

            var success = reader.GetBoundaryFromPolyLineEntity(true, out var eof, out var boundary);

            success.Should().BeTrue();

            boundary.Boundary.Points.Should().BeEquivalentTo(new List <FencePoint>
            {
                new FencePoint(0, 0),
                new FencePoint(10 * UnitUtils.DistToMeters(destUnits), 0),
                new FencePoint(0, 10 * UnitUtils.DistToMeters(destUnits))
            });
        }
Пример #4
0
        public void ReadSimplePolyLine()
        {
            var reader = new DXFReader(CreateTestPolyline(), DxfUnitsType.Meters);

            reader.Should().NotBeNull();

            reader.FindEntitiesSection().Should().BeTrue();

            var success = reader.GetBoundaryFromPolyLineEntity(true, out var eof, out var boundary);

            success.Should().BeTrue();

            boundary.Should().NotBeNull();
            boundary.Name.Should().BeEmpty();
            boundary.Type.Should().Be(DXFLineWorkBoundaryType.Unknown);

            boundary.Boundary.Points.Count.Should().Be(3);
            boundary.Boundary.Points.Should().BeEquivalentTo(new List <FencePoint> {
                new FencePoint(0, 0), new FencePoint(10, 0), new FencePoint(0, 10)
            });
        }
Пример #5
0
        public void Creation()
        {
            var reader = new DXFReader(new MemoryStream(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }), DxfUnitsType.Meters);

            reader.Should().NotBeNull();
        }