Ejemplo n.º 1
0
 /// <summary>
 /// Low level function to set formattted string data to an
 /// object's attribute user string data.
 /// </summary>
 public static bool SetData(IRhinoObject obj, string string_data)
 {
     if (obj != null)
     {
         MRhinoDoc doc = obj.Document();
         if (doc != null)
         {
             MRhinoObjectAttributes atts = new MRhinoObjectAttributes(obj.Attributes());
             if (atts.SetUserString(GetKey(), string_data))
             {
                 return(doc.ModifyObjectAttributes(new MRhinoObjRef(obj), atts));
             }
         }
     }
     return(false);
 }
        ///<summary> This gets called when when the user runs this command.</summary>
        public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
        {
            MRhinoGetObject go = new MRhinoGetObject();
              go.SetCommandPrompt("Select edge curve");
              go.SetGeometryFilter(IRhinoGetObject.GEOMETRY_TYPE_FILTER.edge_object);
              go.GetObjects(1, 1);
              if (go.CommandResult() != IRhinoCommand.result.success)
            return go.CommandResult();

              IRhinoObject obj = go.Object(0).Object();
              IOnBrep brep = go.Object(0).Brep();
              IOnBrepEdge edge = go.Object(0).Edge();
              if (null == obj || null == brep || null == edge)
            return IRhinoCommand.result.failure;

              MRhinoObjectAttributes attribs = new MRhinoObjectAttributes(obj.Attributes());
              if (attribs.GroupCount() > 0)
            attribs.RemoveFromAllGroups();

              for (int i = 0; i < edge.TrimCount(); i++)
              {
            IOnBrepTrim trim = edge.Trim(i);
            if (null != trim)
            {
              IOnBrepFace face = trim.Face();
              if (null != face)
              {
            OnBrep face_brep = brep.DuplicateFace(face.m_face_index, true);
            if (null != face_brep)
            {
              MRhinoBrepObject face_brep_obj = context.m_doc.AddBrepObject(face_brep, attribs);
              if (null != face_brep_obj)
                face_brep_obj.Select();
            }
              }
            }
              }

              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)
    {
      MRhinoGetObject go = new MRhinoGetObject();
      go.SetCommandPrompt("Select edge curve");
      go.SetGeometryFilter(IRhinoGetObject.GEOMETRY_TYPE_FILTER.edge_object);
      go.GetObjects(1, 1);
      if (go.CommandResult() != IRhinoCommand.result.success)
        return go.CommandResult();

      IRhinoObject obj = go.Object(0).Object();
      IOnBrep brep = go.Object(0).Brep();
      IOnBrepEdge edge = go.Object(0).Edge();
      if (null == obj || null == brep || null == edge)
        return IRhinoCommand.result.failure;

      MRhinoObjectAttributes attribs = new MRhinoObjectAttributes(obj.Attributes());
      if (attribs.GroupCount() > 0)
        attribs.RemoveFromAllGroups();

      for (int i = 0; i < edge.TrimCount(); i++)
      {
        IOnBrepTrim trim = edge.Trim(i);
        if (null != trim)
        {
          IOnBrepFace face = trim.Face();
          if (null != face)
          {
            OnBrep face_brep = brep.DuplicateFace(face.m_face_index, true);
            if (null != face_brep)
            {
              MRhinoBrepObject face_brep_obj = context.m_doc.AddBrepObject(face_brep, attribs);
              if (null != face_brep_obj)
                face_brep_obj.Select();
            }
          }
        }
      }

      context.m_doc.Redraw();

      return IRhinoCommand.result.success;
    }
 /// <summary>
 /// Low level function to set formattted string data to an
 /// object's attribute user string data.
 /// </summary>
 public static bool SetData(IRhinoObject obj, string string_data)
 {
     if (obj != null)
       {
     MRhinoDoc doc = obj.Document();
     if (doc != null)
     {
       MRhinoObjectAttributes atts = new MRhinoObjectAttributes(obj.Attributes());
       if (atts.SetUserString(GetKey(), string_data))
     return doc.ModifyObjectAttributes(new MRhinoObjRef(obj), atts);
     }
       }
       return false;
 }