private void SampleCsObjectManagerControl_Load(object sender, EventArgs e)
        {
            m_events.Register();
            m_events.Enable(true);

            MRhinoObjectIterator it = new MRhinoObjectIterator(
                IRhinoObjectIterator.object_state.undeleted_objects,
                IRhinoObjectIterator.object_category.active_and_reference_objects
                );

            it.IncludeLights(true);
            it.IncludeGrips(false);

            m_listbox.BeginUpdate();
            for (MRhinoObject obj = it.First(); obj != null; obj = it.Next())
            {
                Guid guid  = obj.Attributes().m_uuid;
                int  index = m_listbox.Items.Add(guid.ToString());
                if (obj.IsSelected() > 0)
                {
                    m_listbox.SetSelected(index, true);
                }
            }
            m_listbox.EndUpdate();
            SaveSelectedIndices();
        }
        ///<summary> This gets called when when the user runs this command.</summary>
        public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
        {
            string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
              int count = 0;

              context.m_doc.UnselectAll();

              MRhinoObjectIterator it = new MRhinoObjectIterator(
            IRhinoObjectIterator.object_state.normal_objects,
            IRhinoObjectIterator.object_category.active_objects
            );

              IRhinoObject obj = null;
              for (obj = it.First(); null != obj; obj = it.Next())
              {
            if (obj.IsSolid())
            {
              IOn.object_type type = obj.ObjectType();
              if (type == IOn.object_type.surface_object || type == IOn.object_type.brep_object)
              {
            obj.Select(true);

            string fname = string.Format("{0}\\rhino_sat_export_{1}.sat", path, count++);
            string script = string.Format("_-Export \"{0}\" Inventor _Enter", fname);
            RhUtil.RhinoApp().RunScript(script, 1);

            obj.Select(false);
              }
            }
              }

              context.m_doc.Redraw();

              return IRhinoCommand.result.success;
        }
Example #3
0
        ///<summary> This gets called when when the user runs this command.</summary>
        public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
        {
            MRhinoGetString gs = new MRhinoGetString();

            gs.SetCommandPrompt("Object name to select");
            gs.GetString();
            if (gs.CommandResult() != IRhinoCommand.result.success)
            {
                return(gs.CommandResult());
            }

            string name = gs.String().Trim();

            if (string.IsNullOrEmpty(name))
            {
                return(IRhinoCommand.result.nothing);
            }

            MRhinoObjectIterator it = new MRhinoObjectIterator(
                IRhinoObjectIterator.object_state.normal_objects,
                IRhinoObjectIterator.object_category.active_and_reference_objects
                );

            int          num_selected = 0;
            IRhinoObject obj          = null;

            for (obj = it.First(); null != obj; obj = it.Next())
            {
                if (name.Equals(obj.Attributes().m_name, StringComparison.OrdinalIgnoreCase))
                {
                    obj.Select(true, true, true);
                    num_selected++;
                }
            }

            if (0 == num_selected)
            {
                RhUtil.RhinoApp().Print("0 objects selected\n");
            }
            else if (1 == num_selected)
            {
                RhUtil.RhinoApp().Print("1 object selected\n");
            }
            else
            {
                RhUtil.RhinoApp().Print(string.Format("{0} objects selected\n", num_selected));
            }

            if (0 < num_selected)
            {
                context.m_doc.Redraw();
            }

            return(IRhinoCommand.result.success);
        }
        public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
        {
            MRhinoObjectIterator it = new MRhinoObjectIterator(
            IRhinoObjectIterator.object_state.undeleted_objects,
            IRhinoObjectIterator.object_category.active_and_reference_objects
            );

              for (MRhinoObject obj = it.First(); null != obj; obj = it.Next())
            obj.EnableAnalysisMode(ZAnalysisVAM.ZANALYSIS_VAM_ID, false);

              context.m_doc.Redraw();
              RhUtil.RhinoApp().Print("Z-Analysis is off.\n");

              return IRhinoCommand.result.success;
        }
        public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
        {
            MRhinoObjectIterator it = new MRhinoObjectIterator(
                IRhinoObjectIterator.object_state.undeleted_objects,
                IRhinoObjectIterator.object_category.active_and_reference_objects
                );

            for (MRhinoObject obj = it.First(); null != obj; obj = it.Next())
            {
                obj.EnableAnalysisMode(ZAnalysisVAM.ZANALYSIS_VAM_ID, false);
            }

            context.m_doc.Redraw();
            RhUtil.RhinoApp().Print("Z-Analysis is off.\n");

            return(IRhinoCommand.result.success);
        }
        ///<summary> This gets called when when the user runs this command.</summary>
        public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
        {
            MRhinoGetString gs = new MRhinoGetString();
              gs.SetCommandPrompt("Object name to select");
              gs.GetString();
              if (gs.CommandResult() != IRhinoCommand.result.success)
            return gs.CommandResult();

              string name = gs.String().Trim();
              if (string.IsNullOrEmpty(name))
            return IRhinoCommand.result.nothing;

              MRhinoObjectIterator it = new MRhinoObjectIterator(
            IRhinoObjectIterator.object_state.normal_objects,
            IRhinoObjectIterator.object_category.active_and_reference_objects
            );

              int num_selected = 0;
              IRhinoObject obj = null;
              for (obj = it.First(); null != obj; obj = it.Next())
              {
            if (name.Equals(obj.Attributes().m_name, StringComparison.OrdinalIgnoreCase))
            {
              obj.Select(true, true, true);
              num_selected++;
            }
              }

              if (0 == num_selected)
            RhUtil.RhinoApp().Print("0 objects selected\n" );
              else if (1 == num_selected)
            RhUtil.RhinoApp().Print("1 object selected\n");
              else
            RhUtil.RhinoApp().Print(string.Format("{0} objects selected\n", num_selected));

              if (0 < num_selected)
            context.m_doc.Redraw();

              return IRhinoCommand.result.success;
        }
        ///<summary> This gets called when when the user runs this command.</summary>
        public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
        {
            string path  = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
            int    count = 0;

            context.m_doc.UnselectAll();

            MRhinoObjectIterator it = new MRhinoObjectIterator(
                IRhinoObjectIterator.object_state.normal_objects,
                IRhinoObjectIterator.object_category.active_objects
                );

            IRhinoObject obj = null;

            for (obj = it.First(); null != obj; obj = it.Next())
            {
                if (obj.IsSolid())
                {
                    IOn.object_type type = obj.ObjectType();
                    if (type == IOn.object_type.surface_object || type == IOn.object_type.brep_object)
                    {
                        obj.Select(true);

                        string fname  = string.Format("{0}\\rhino_sat_export_{1}.sat", path, count++);
                        string script = string.Format("_-Export \"{0}\" Inventor _Enter", fname);
                        RhUtil.RhinoApp().RunScript(script, 1);

                        obj.Select(false);
                    }
                }
            }

            context.m_doc.Redraw();


            return(IRhinoCommand.result.success);
        }
        private void SampleCsObjectManagerControl_Load(object sender, EventArgs e)
        {
            m_events.Register();
              m_events.Enable(true);

              MRhinoObjectIterator it = new MRhinoObjectIterator(
            IRhinoObjectIterator.object_state.undeleted_objects,
            IRhinoObjectIterator.object_category.active_and_reference_objects
            );
              it.IncludeLights(true);
              it.IncludeGrips(false);

              m_listbox.BeginUpdate();
              for (MRhinoObject obj = it.First(); obj != null; obj = it.Next())
              {
            Guid guid = obj.Attributes().m_uuid;
            int index = m_listbox.Items.Add(guid.ToString());
            if (obj.IsSelected() > 0)
              m_listbox.SetSelected(index, true);
              }
              m_listbox.EndUpdate();
              SaveSelectedIndices();
        }
Example #9
0
        /// <summary>
        /// Rhino calls WriteFile() to write document geometry to an external file.
        /// </summary>
        public override int WriteFile(string filename, int index, ref MRhinoDoc doc, ref IRhinoFileWriteOptions options)
        {
            int rc = 0; // false

            // Are we saving or exporting?
            bool bExport = options.Mode(IRhinoFileWriteOptions.ModeFlag.SelectedMode);
            // Are we in interactive or scripted mode?
            bool bScript = options.Mode(IRhinoFileWriteOptions.ModeFlag.BatchMode);

            List <IRhinoObject> objects = new List <IRhinoObject>();

            // Get objects to save/export
            MRhinoObjectIterator it = new MRhinoObjectIterator(doc, IRhinoObjectIterator.object_state.undeleted_objects);

            if (bExport)
            {
                it.EnableSelectedFilter();
                it.EnableVisibleFilter();
            }

            // Do the iteration...
            MRhinoObject obj = null;

            for (obj = it.First(); null != obj; obj = it.Next())
            {
                objects.Add(obj);
            }

            ArrayMRhinoObjectMesh meshes          = new ArrayMRhinoObjectMesh(objects.Count);
            OnMeshParameters      mesh_parameters = _mesh_parameters;
            int mesh_ui_style = (bScript) ? 2 : _mesh_ui_style;

            // Get the meshes to save/export
            IRhinoCommand.result res = RhUtil.RhinoMeshObjects(objects.ToArray(), ref mesh_parameters, ref mesh_ui_style, ref meshes);
            if (res == IRhinoCommand.result.success)
            {
                if (mesh_ui_style >= 0 && mesh_ui_style <= 1)
                {
                    _mesh_ui_style = mesh_ui_style;
                }
                _mesh_parameters = mesh_parameters;
            }
            else
            {
                if (bExport)
                {
                    RhUtil.RhinoApp().Print("No meshes to export.\n");
                }
                else
                {
                    RhUtil.RhinoApp().Print("No meshes to save.\n");
                }
                return(rc);
            }

            try
            {
                // Open the file
                System.IO.StreamWriter file = new System.IO.StreamWriter(filename);

                // Write mesh count
                file.WriteLine(string.Format("meshcount={0}\n", meshes.Count()));

                // Write each mesh
                for (int i = 0; i < meshes.Count(); i++)
                {
                    MRhinoObjectMesh obj_mesh = meshes[i];
                    OnMesh           mesh     = obj_mesh.GetMesh();
                    if (null != mesh)
                    {
                        // Write mesh number
                        file.WriteLine(string.Format("mesh={0}\n", i));

                        // Write mesh vertex count
                        file.WriteLine(string.Format("vertexcount={0}\n", mesh.m_V.Count()));

                        // Write mesh face count
                        file.WriteLine(string.Format("facecount={0}\n", mesh.m_F.Count()));

                        // Write mesh vertices
                        for (int vi = 0; vi < mesh.m_V.Count(); vi++)
                        {
                            On3fPoint p = mesh.m_V[vi];
                            file.WriteLine(string.Format("vertex=({0},{1},{2})\n", p.x, p.y, p.z));
                        }

                        // Write mesh faces
                        for (int fi = 0; fi < mesh.m_F.Count(); fi++)
                        {
                            OnMeshFace f = mesh.m_F[fi];
                            file.WriteLine(string.Format("face=({0},{1},{2},{3})\n", f.get_vi(0), f.get_vi(1), f.get_vi(2), f.get_vi(3)));
                        }
                    }
                }

                file.Close();

                rc = 1; // true
            }
            catch (Exception e)
            {
                RhUtil.RhinoApp().Print(string.Format("{0}\n", e.Message));
            }

            return(rc);
        }
        /// <summary>
        /// Rhino calls WriteFile() to write document geometry to an external file.
        /// </summary>
        public override int WriteFile(string filename, int index, ref MRhinoDoc doc, ref IRhinoFileWriteOptions options)
        {
            int rc = 0; // false

              // Are we saving or exporting?
              bool bExport = options.Mode(IRhinoFileWriteOptions.ModeFlag.SelectedMode);
              // Are we in interactive or scripted mode?
              bool bScript = options.Mode(IRhinoFileWriteOptions.ModeFlag.BatchMode);

              List<IRhinoObject> objects = new List<IRhinoObject>();

              // Get objects to save/export
              MRhinoObjectIterator it = new MRhinoObjectIterator(doc, IRhinoObjectIterator.object_state.undeleted_objects);
              if (bExport)
              {
            it.EnableSelectedFilter();
            it.EnableVisibleFilter();
              }

              // Do the iteration...
              MRhinoObject obj = null;
              for (obj = it.First(); null != obj; obj = it.Next())
            objects.Add(obj);

              ArrayMRhinoObjectMesh meshes = new ArrayMRhinoObjectMesh(objects.Count);
              OnMeshParameters mesh_parameters = _mesh_parameters;
              int mesh_ui_style = (bScript) ? 2 : _mesh_ui_style;

              // Get the meshes to save/export
              IRhinoCommand.result res = RhUtil.RhinoMeshObjects(objects.ToArray(), ref mesh_parameters, ref mesh_ui_style, ref meshes);
              if (res == IRhinoCommand.result.success)
              {
            if (mesh_ui_style >= 0 && mesh_ui_style <= 1)
              _mesh_ui_style = mesh_ui_style;
            _mesh_parameters = mesh_parameters;
              }
              else
              {
            if (bExport)
              RhUtil.RhinoApp().Print("No meshes to export.\n");
            else
              RhUtil.RhinoApp().Print("No meshes to save.\n");
            return rc;
              }

              try
              {
            // Open the file
            System.IO.StreamWriter file = new System.IO.StreamWriter(filename);

            // Write mesh count
            file.WriteLine(string.Format("meshcount={0}\n", meshes.Count()));

            // Write each mesh
            for (int i = 0; i < meshes.Count(); i++)
            {
              MRhinoObjectMesh obj_mesh = meshes[i];
              OnMesh mesh = obj_mesh.GetMesh();
              if (null != mesh)
              {
            // Write mesh number
            file.WriteLine(string.Format("mesh={0}\n", i));

            // Write mesh vertex count
            file.WriteLine(string.Format("vertexcount={0}\n", mesh.m_V.Count()));

            // Write mesh face count
            file.WriteLine(string.Format("facecount={0}\n", mesh.m_F.Count()));

            // Write mesh vertices
            for (int vi = 0; vi < mesh.m_V.Count(); vi++)
            {
              On3fPoint p = mesh.m_V[vi];
              file.WriteLine(string.Format("vertex=({0},{1},{2})\n", p.x, p.y, p.z));
            }

            // Write mesh faces
            for (int fi = 0; fi < mesh.m_F.Count(); fi++)
            {
              OnMeshFace f = mesh.m_F[fi];
              file.WriteLine(string.Format("face=({0},{1},{2},{3})\n", f.get_vi(0), f.get_vi(1), f.get_vi(2), f.get_vi(3)));
            }
              }
            }

            file.Close();

            rc = 1; // true
              }
              catch (Exception e)
              {
            RhUtil.RhinoApp().Print(string.Format("{0}\n", e.Message));
              }

              return rc;
        }