示例#1
0
        protected override void OnContentRendered(EventArgs e)
        {
            model1.Layers[0].LineWeight = 2;
            model1.Layers[0].Color      = MyModel.DrawingColor;
            model1.Layers.TryAdd(new Layer("Dimensions", System.Drawing.Color.ForestGreen));
            model1.Layers.TryAdd(new Layer("Reference geometry", System.Drawing.Color.Red));

            tableTabControl.Environment = model1;
            model1.ActiveLayerName      = model1.Layers[0].Name;

            // enables FastZPR when the scene exceeds 3000 objects
            _maxComplexity = model1.Turbo.MaxComplexity = 3000;

            selectionComboBox.SelectedIndex = 0;

            rendererVersionStatusLabel.Text = model1.RendererVersion.ToString();

            model1.SetView(viewType.Top);

            model1.Invalidate();

            model1.Focus();
            EnableControls(false);

#if SETUP
            string        fileName = String.Format(@"{0}\Eyeshot {1} {2} Samples\dataset\Assets\Misc\app8.dwg", System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), _helper.Edition, _helper.Version.Major);
            ReadFileAsync ra       = _helper.GetReadAutodesk(model1, fileName);
#else
            ReadAutodesk ra = new ReadAutodesk("../../../../../../dataset/Assets/Misc/app8.dwg");
            ra.HatchImportMode = ReadAutodesk.hatchImportType.BlockReference;
#endif
            model1.StartWork(ra);

            base.OnContentRendered(e);
        }
示例#2
0
        private void model1_WorkCompleted(object sender, WorkCompletedEventArgs e)
        {
            ReadFileAsync rfa = (ReadFileAsync)e.WorkUnit;

            // adds MotherBoard Entities and Materials in view scene
            rfa.AddToScene(model1);

            model1.ZoomFit();

            // updates the bounding box size values of the viewport
            model1.Entities.UpdateBoundingBox();

            // copies all items inside model1's master collections to model2
            model1.CopyTo(model2);

            // sets the center and the radius of external content sphere for drawing directional Lights in model2
            Point3D max    = model1.Entities.BoxMax;
            Point3D min    = model1.Entities.BoxMin;
            Point3D center = new Point3D(min.X + (max.X - min.X) / 2, min.Y + (max.Y - min.Y) / 2, min.Z + (max.Z - min.Z) / 2);
            double  radius = Math.Sqrt(Math.Pow(max.X - min.X, 2) + Math.Pow(max.Y - min.Y, 2) + Math.Pow(max.Z - min.Z, 2));

            // creates Light editors
            Lights = new DrawLight[8];
            for (int i = 0; i < 8; i++)
            {
                Lights[i] = new DrawLight(model1, i + 1, center, radius, "Lights");
            }

            UpdateLights();

            model1_CameraMoveEnd(null, null);
            model2.ZoomFit();
        }
示例#3
0
        //导入
        private void importButton_Click(object sender, EventArgs e)
        {
            using (var importFileDialog1 = new OpenFileDialog())
                using (var importFileAddOn = new ImportFileAddOn())
                {
                    string theFilter = "All compatible file types (*.*)|*.asc;*.stl;*.obj;*.las;*.3ds";
                    theFilter += ";*.igs;*.iges;*.stp;*.step";
                    theFilter += "|Points (*.asc)|*.asc|" + "WaveFront OBJ (*.obj)|*.obj|" + "Stereolithography (*.stl)|*.stl|" + "Laser LAS (*.las)|*.las|" + "3D Studio Max (*.3ds)|*.3ds";
                    theFilter += "|IGES (*.igs; *.iges)|*.igs; *.iges|" + "STEP (*.stp; *.step)|*.stp; *.step";

                    importFileDialog1.Filter = theFilter;

                    importFileDialog1.Multiselect     = false;
                    importFileDialog1.AddExtension    = true;
                    importFileDialog1.CheckFileExists = true;
                    importFileDialog1.CheckPathExists = true;

                    if (importFileDialog1.ShowDialog(importFileAddOn, this) == DialogResult.OK)
                    {
                        model.Clear();
                        ReadFileAsync rfa = getReader(importFileDialog1.FileName);

                        if (rfa != null)
                        {
                            model.StartWork(rfa);
                            setFileButtonEnabled(false);
                        }
                    }
                }
        }
示例#4
0
        private void importButton_OnClick(object sender, EventArgs e)
        {
            using (var importFileDialog = new System.Windows.Forms.OpenFileDialog())
                using (var importFileAddOn = new ImportFileAddOn())
                {
                    importFileDialog.Filter          = "CAD drawings (*.dwg)|*.dwg|Drawing Exchange Format (*.dxf)|*.dxf|All compatible file types (*.*)|*.dwg;*.dxf";
                    importFileDialog.Multiselect     = false;
                    importFileDialog.AddExtension    = true;
                    importFileDialog.CheckFileExists = true;
                    importFileDialog.CheckPathExists = true;

                    if (importFileDialog.ShowDialog(importFileAddOn, null) == System.Windows.Forms.DialogResult.OK)
                    {
                        model1.Clear();
                        _yAxisUp = importFileAddOn.YAxisUp;

                        EnableControls(false);
#if SETUP
                        ReadFileAsync ra = _helper.GetReadAutodesk(model1, importFileDialog.FileName);
#else
                        ReadAutodesk ra = new ReadAutodesk(importFileDialog.FileName);
#endif
                        model1.StartWork(ra);
                    }
                }
        }
示例#5
0
 private void model2_WorkCompleted(object sender, devDept.Eyeshot.WorkCompletedEventArgs e)
 {
     if (e.WorkUnit is ReadFileAsync)
     {
         ReadFileAsync rfa = (ReadFileAsync)e.WorkUnit;
         rfa.AddToScene(model1);
         model1.SetView(viewType.Trimetric, true, model1.AnimateCamera);
     }
 }
示例#6
0
        private void importButton_Click(object sender, EventArgs e)
        {
            using (var importFileDialog1 = new OpenFileDialog())
                using (var importFileAddOn = new ImportFileAddOn())
                {
                    string theFilter = "All compatible file types (*.*)|*.asc;*.stl;*.obj;*.las;*.3ds"
#if NURBS
                                       + ";*.igs;*.iges;*.stp;*.step"
#endif

#if SOLID
                                       + ";*.ifc;*.ifczip"
#endif
                                       + "|Points (*.asc)|*.asc|" + "WaveFront OBJ (*.obj)|*.obj|" + "Stereolithography (*.stl)|*.stl|" + "Laser LAS (*.las)|*.las|" + "3D Studio Max (*.3ds)|*.3ds";
#if NURBS
                    theFilter += "|IGES (*.igs; *.iges)|*.igs; *.iges|" + "STEP (*.stp; *.step)|*.stp; *.step";
#endif

#if SOLID
                    theFilter += "|IFC (*.ifc; *.ifczip)|*.ifc; *.ifczip";
#endif
                    importFileDialog1.Filter = theFilter;

                    importFileDialog1.Multiselect     = false;
                    importFileDialog1.AddExtension    = true;
                    importFileDialog1.CheckFileExists = true;
                    importFileDialog1.CheckPathExists = true;

                    if (importFileDialog1.ShowDialog(importFileAddOn, null) == System.Windows.Forms.DialogResult.OK)
                    {
                        assemblyTreeView1.ClearTree();
                        if (model1.Entities.IsOpenCurrentBlockReference)
                        {
                            model1.Entities.CloseCurrentBlockReference();
                        }
                        model1.Clear();

                        _yAxisUp = importFileAddOn.YAxisUp;
                        ReadFileAsync rfa = getReader(importFileDialog1.FileName);

                        if (rfa != null)
                        {
                            model1.StartWork(rfa);

                            model1.SetView(viewType.Trimetric, true, model1.AnimateCamera);

                            openButton.IsEnabled   = false;
                            saveButton.IsEnabled   = false;
                            importButton.IsEnabled = false;
                            exportButton.IsEnabled = false;
                        }
                    }
                }
        }
示例#7
0
        private void modelWorkCompleted2(object sender, WorkCompletedEventArgs e)
        {
            if (e.WorkUnit is ReadFileAsync)
            {
                ReadFileAsync rfa = (ReadFileAsync)e.WorkUnit;
                rfa.AddToScene(model);

                model.SetView(viewType.Trimetric, true, model.AnimateCamera);
            }
            setFileButtonEnabled(true);
        }
示例#8
0
 private void model1_WorkCompleted(object sender, devDept.Eyeshot.WorkCompletedEventArgs e)
 {
     if (e.WorkUnit is ReadFileAsync)
     {
         ReadFileAsync ra = (ReadFileAsync)e.WorkUnit;
         ra.AddToScene(model1, new RegenOptions()
         {
             Async = true
         });
     }
 }
示例#9
0
        private void model1_WorkCompleted(object sender, devDept.Eyeshot.WorkCompletedEventArgs e)
        {
            // checks the WorkUnit type, more than one can be present in the same application
            if (e.WorkUnit is ReadFileAsync)
            {
                ReadFileAsync rfa = (ReadFileAsync)e.WorkUnit;

                ReadFile rf = e.WorkUnit as ReadFile;
                if (rf != null)
                {
                    _skipZoomFit = rf.FileSerializer.FileBody.Camera != null;
                }
                else
                {
                    _skipZoomFit = false;
                }

                if (rfa.Entities != null && _yAxisUp)
                {
                    rfa.RotateEverythingAroundX();
                }

                rfa.AddToScene(model1);

                model1.Layers[0].LineWeight = 2;
                model1.Layers[0].Color      = MyModel.DrawingColor;
                model1.Layers.TryAdd(new Layer("Dimensions", System.Drawing.Color.ForestGreen));
                model1.Layers.TryAdd(new Layer("Reference geometry", System.Drawing.Color.Red));
                tableTabControl.Sync();


                if (System.IO.Path.GetFileName(rfa.FileName) == "app8.dwg")
                {
                    foreach (Entity ent in model1.Entities)
                    {
                        ent.Translate(-170, -400);
                    }

                    model1.Entities.Regen();
                    model1.Camera.Target     = new Point3D(75, 3.5, 288);
                    model1.Camera.ZoomFactor = 3;
                    _skipZoomFit             = true;
                }


                if (!_skipZoomFit)
                {
                    model1.SetView(viewType.Top, true, false);
                }
            }

            EnableControls(true);
        }
示例#10
0
        //导入文件
        private void importButton_Click(object sender, EventArgs e)
        {
            using (var importFileDialog1 = new OpenFileDialog())
            //using (var importFileAddOn = new ImportFileAddOn())
            {
                string filter = "All compatible file types (*.*)|*.stl;*.obj;*.3ds"
#if NURBS
                                + ";*.igs;*.iges;*.stp;*.step"
#endif

#if SOLID
                                + ";*.ifc;*.ifczip"
#endif
                                + "|WaveFront OBJ (*.obj)|*.obj|" + "Stereolithography (*.stl)|*.stl|" + "3D Studio Max (*.3ds)|*.3ds";
#if NURBS
                filter += "|IGES (*.igs; *.iges)|*.igs; *.iges|" + "STEP (*.stp; *.step)|*.stp; *.step";
#endif

#if SOLID
                filter += "|IFC (*.ifc; *.ifczip)|*.ifc; *.ifczip";
#endif

                importFileDialog1.Filter = filter;

                importFileDialog1.Multiselect     = true;
                importFileDialog1.AddExtension    = true;
                importFileDialog1.CheckFileExists = true;
                importFileDialog1.CheckPathExists = true;

                if (importFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    model1.Clear();
                    ReadFileAsync rfa = GetReader(importFileDialog1.FileName);

                    if (rfa != null)
                    {
                        model1.StartWork(rfa);

                        model1.SetView(viewType.Trimetric, true, model1.AnimateCamera);
                    }
                }
            }
        }
示例#11
0
        private void model1_WorkCompleted(object sender, devDept.Eyeshot.WorkCompletedEventArgs e)
        {
            if (e.WorkUnit is ReadFileAsync)
            {
                assemblyTreeView1.ClearCurrent(true);

                ReadFileAsync ra = (ReadFileAsync)e.WorkUnit;

                if (_yAxisUp)
                {
                    ra.RotateEverythingAroundX();
                }

                // updates model units and its related combo box
                if (e.WorkUnit is ReadFileAsyncWithBlocks)
                {
                    model1.Units = ((ReadFileAsyncWithBlocks)e.WorkUnit).Units;
                }

                ra.AddToScene(model1, new RegenOptions()
                {
                    Async = true
                });
            }
            else if (e.WorkUnit is Regeneration)
            {
                assemblyTreeView1.PopulateTree(model1.Entities);

                model1.Entities.UpdateBoundingBox();
                UpdateFastZprButton();
                model1.ZoomFit();
                model1.Invalidate();
            }

            openButton.IsEnabled   = true;
            saveButton.IsEnabled   = true;
            importButton.IsEnabled = true;
            exportButton.IsEnabled = true;
        }