public static Result IsPlanarSurfaceInPlane(RhinoDoc doc) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject("select surface", true, ObjectType.Surface, out obj_ref); if (rc != Result.Success) { return(rc); } var surface = obj_ref.Surface(); Point3d[] corners; rc = RhinoGet.GetRectangle(out corners); if (rc != Result.Success) { return(rc); } var plane = new Plane(corners[0], corners[1], corners[2]); var is_or_isnt = " not "; if (IsSurfaceInPlane(surface, plane, doc.ModelAbsoluteTolerance)) { is_or_isnt = ""; } RhinoApp.WriteLine("Surface is{0} in plane.", is_or_isnt); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { // Pick a mesh ObjRef obj_ref; Result rc = RhinoGet.GetOneObject("Select mesh", false, ObjectType.Mesh, out obj_ref); if (rc != Result.Success) { return(rc); } Rhino.Geometry.Mesh mesh = obj_ref.Mesh(); if (null == mesh) { return(Result.Failure); } // Pick a point that is contrained to the mesh GetPoint gp = new GetPoint(); gp.SetCommandPrompt("Pick point on mesh"); gp.Constrain(mesh, false); gp.Get(); if (gp.CommandResult() != Result.Success) { return(gp.CommandResult()); } Point3d point = gp.Point(); doc.Objects.AddPoint(point); doc.Views.Redraw(); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { const ObjectType filter = ObjectType.AnyObject; ObjRef objref; var rc = RhinoGet.GetOneObject("Select object", false, filter, out objref); if (rc != Result.Success || null == objref) { return(rc); } var obj = objref.Object(); if (null == obj) { return(Result.Failure); } var ud = obj.Attributes.UserData.Find(typeof(SampleCsUserDataObject)) as SampleCsUserDataObject; if (null != ud) { obj.Attributes.UserData.Remove(ud); } return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { ObjRef sRef; Result r = RhinoGet.GetOneObject("Pick closed curve", false, ObjectType.Curve, out sRef); if (r != Result.Success || null == sRef) { return(r); } RhinoObject obj = sRef.Object(); obj.Attributes.SetUserString("Name", "Concrete"); Curve selectedCurve = sRef.Curve(); //if the curve is not closed do nothing if (!selectedCurve.IsClosed) { Rhino.RhinoApp.WriteLine("The curve was not closed!!"); return(Result.Success); } List <Brep> breps = new List <Brep>(); List <Curve> cuttedCurves = CurveAndBrepManipulation.cutCurve(selectedCurve, Plane.WorldXY, Axis.XAxis); foreach (Curve curve in cuttedCurves) { breps.AddRange(Brep.CreatePlanarBreps(curve)); } DrawAndSaveUserAttr(breps, doc, obj); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject("Select object", false, ObjectType.AnyObject, out obj_ref); if (rc != Result.Success) { return(rc); } var rhino_object = obj_ref.Object(); var color = rhino_object.Attributes.ObjectColor; bool b = Rhino.UI.Dialogs.ShowColorDialog(ref color); if (!b) { return(Result.Cancel); } rhino_object.Attributes.ObjectColor = color; rhino_object.Attributes.ColorSource = ObjectColorSource.ColorFromObject; rhino_object.CommitChanges(); // an object's color attributes can also be specified // when the object is added to Rhino var sphere = new Sphere(Point3d.Origin, 5.0); var attributes = new ObjectAttributes(); attributes.ObjectColor = Color.CadetBlue; attributes.ColorSource = ObjectColorSource.ColorFromObject; doc.Objects.AddSphere(sphere, attributes); doc.Views.Redraw(); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject( "Select edge curve", false, ObjectType.EdgeFilter, out obj_ref); if (rc != Result.Success) { return(rc); } var edge = obj_ref.Edge(); var face_idxs = edge.AdjacentFaces(); var edge_owning_brep = edge.Brep; foreach (var idx in face_idxs) { var face = edge_owning_brep.Faces[idx]; var face_copy = face.DuplicateFace(true); var id = doc.Objects.AddBrep(face_copy); doc.Objects.Find(id).Select(true); } doc.Views.Redraw(); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { const ObjectType filter = ObjectType.AnyObject; ObjRef objref; var rc = RhinoGet.GetOneObject("Select object", false, filter, out objref); if (rc != Result.Success || null == objref) { return(rc); } var obj = objref.Object(); if (null == obj) { return(Result.Failure); } var ud = obj.Attributes.UserData.Find(typeof(SampleCsUserDataObject)) as SampleCsUserDataObject; if (null != ud) { var gs = new GetString(); gs.SetCommandPrompt("Modify object notes"); gs.GetLiteralString(); if (gs.CommandResult() != Result.Success) { return(gs.CommandResult()); } ud.Notes = gs.StringResult(); } return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { // get mesh var rc = RhinoGet.GetOneObject("Pick mesh", false, ObjectType.Mesh, out var objRef); if (rc != Result.Success) { return(rc); } var mesh = objRef.Mesh(); doc.Views.RedrawEnabled = false; var pMesh = mesh.ToPlanktonMeshWithNgons(); for (int i = pMesh.Faces.Count - 1; i >= 0; i--) { if (pMesh.Faces.GetFaceVertices(i).Length == 3) { pMesh.Faces.RemoveFace(i); } } pMesh.Compact(); mesh = pMesh.ToRhinoMeshWithNgons(); doc.Objects.Replace(objRef, mesh); doc.Views.RedrawEnabled = true; doc.Views.Redraw(); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var rc = RhinoGet.GetOneObject("Select object", false, ObjectType.AnyObject, out var objref); if (rc != Result.Success) { return(rc); } var obj = objref.Object(); if (null == obj) { return(Result.Failure); } if (!(obj.Attributes.UserData.Find(typeof(SampleCsCustomUserData)) is SampleCsCustomUserData ud)) { var rand = new Random(); ud = new SampleCsCustomUserData { Data = { X = rand.NextDouble(), Y = rand.NextDouble(), Z = rand.NextDouble() } }; obj.Attributes.UserData.Add(ud); } RhinoApp.WriteLine("{0} = {1}", ud.Description, ud.Data); return(Result.Success); }
public static Result ModifyLightColor(RhinoDoc doc) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject("Select light to change color", true, ObjectType.Light, out obj_ref); if (rc != Result.Success) { return(rc); } var light = obj_ref.Light(); if (light == null) { return(Result.Failure); } var diffuse_color = light.Diffuse; if (Dialogs.ShowColorDialog(ref diffuse_color)) { light.Diffuse = diffuse_color; } doc.Lights.Modify(obj_ref.ObjectId, light); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { // get mesh var rc = RhinoGet.GetOneObject("Pick mesh", false, ObjectType.Mesh, out var objRef); if (rc != Result.Success) { return(rc); } var mesh = objRef.Mesh(); doc.Views.RedrawEnabled = false; for (int i = 0; i < mesh.Vertices.Count; i++) { doc.Objects.AddTextDot(i.ToString(), mesh.Vertices[i]); } var faceAttributes = new ObjectAttributes { ObjectColor = Color.Blue, ColorSource = ObjectColorSource.ColorFromObject }; for (int i = 0; i < mesh.Faces.Count; i++) { doc.Objects.AddTextDot(i.ToString(), mesh.Faces.GetFaceCenter(i), faceAttributes); } doc.Views.RedrawEnabled = true; doc.Views.Redraw(); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { const ObjectType filter = ObjectType.AnyObject; ObjRef objref; var rc = RhinoGet.GetOneObject("Select object", false, filter, out objref); if (rc != Result.Success || null == objref) { return(rc); } var obj = objref.Object(); if (null == obj) { return(Result.Failure); } var userdata = obj.Attributes.UserData.Find(typeof(SampleCsUserDataObject)) as SampleCsUserDataObject; if (null != userdata) { RhinoApp.WriteLine("{0} = {1}", userdata.Description, userdata.Notes); } else { RhinoApp.WriteLine("SampleCsUserData not found."); } return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject("Select object to change name", true, ObjectType.AnyObject, out obj_ref); if (rc != Result.Success) { return(rc); } var rhino_object = obj_ref.Object(); var new_object_name = ""; rc = RhinoGet.GetString("New object name", true, ref new_object_name); if (rc != Result.Success) { return(rc); } if (string.IsNullOrWhiteSpace(new_object_name)) { return(Result.Nothing); } if (rhino_object.Name != new_object_name) { rhino_object.Attributes.Name = new_object_name; rhino_object.CommitChanges(); } return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { if (m_conduit.Enabled) { m_conduit.Enabled = false; } else { if (RhinoGet.GetOneObject("Select surface", false, ObjectType.Surface, out var obj) == Result.Success) { m_conduit.Points.Clear(); var surface = obj.Surface(); var u_domain = surface.Domain(0); u_domain.MakeIncreasing(); var v_domain = surface.Domain(1); v_domain.MakeIncreasing(); const int count = 10; for (var i = 0; i < count + 1; i++) { for (var j = 0; j < count + 1; j++) { var u = u_domain.Min + u_domain.Length * i / count; var v = v_domain.Min + v_domain.Length * j / count; var point = surface.PointAt(u, v); m_conduit.Points.Add(point); } } m_conduit.Enabled = true; } } doc.Views.Redraw(); return(Result.Success); }
public static Result ProjectPointsToMeshesEx(RhinoDoc doc) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject("mesh", false, ObjectType.Mesh, out obj_ref); if (rc != Result.Success) { return(rc); } var mesh = obj_ref.Mesh(); ObjRef[] obj_ref_pts; rc = RhinoGet.GetMultipleObjects("points", false, ObjectType.Point, out obj_ref_pts); if (rc != Result.Success) { return(rc); } var points = new List <Point3d>(); foreach (var obj_ref_pt in obj_ref_pts) { var pt = obj_ref_pt.Point().Location; points.Add(pt); } int[] indices; var prj_points = Intersection.ProjectPointsToMeshesEx(new[] { mesh }, points, new Vector3d(0, 1, 0), 0, out indices); foreach (var prj_pt in prj_points) { doc.Objects.AddPoint(prj_pt); } doc.Views.Redraw(); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { ObjRef object_ref; var rc = RhinoGet.GetOneObject("Select curve for stacked control point test", false, ObjectType.Curve, out object_ref); if (rc != Result.Success) { return(rc); } var nc = object_ref.Curve() as NurbsCurve; if (null == nc) { RhinoApp.WriteLine("Curve is not a NURBS curve."); return(Result.Success); } var b = IsStackedControlPointsCurve(nc); if (b) { RhinoApp.WriteLine("NURBS curve has stacked control points."); } else { RhinoApp.WriteLine("NURBS curve does not have stacked control points."); } return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { Rhino.DocObjects.ObjRef objref; var rc = RhinoGet.GetOneObject("Select Curve", false, ObjectType.Curve, out objref); if (rc != Result.Success) { return(rc); } var curve = objref.Curve(); var view = doc.Views.ActiveView; var plane = view.ActiveViewport.ConstructionPlane(); // Create a construction plane aligned bounding box var bbox = curve.GetBoundingBox(plane); if (bbox.IsDegenerate(doc.ModelAbsoluteTolerance) > 0) { RhinoApp.WriteLine("the curve's bounding box is degenerate (flat) in at least one direction so a box cannot be created."); return(Result.Failure); } var brep = Brep.CreateFromBox(bbox); doc.Objects.AddBrep(brep); doc.Views.Redraw(); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { ObjRef object_ref; Result res2 = RhinoGet.GetOneObject("Select FANCY curve", false, ObjectType.Curve, out object_ref); // RhinoGet takes 5 arguments - prompt as a string, press enter boolean (does not allow the user to press // enter), geometry filter to allow them to only select certain types of geometry, then, most importantly // we are going to get our object reference back!! Via the 'out'. This means that we are passing this // variable by reference and not by value. Therefore, the value will be able to change, so we can access // it outside of this method. Curve curve = object_ref.Curve(); if (null == curve) { return(Result.Failure); } // this checks if the curve is zero, so it can then return a failure result // THERE are a lot of ways to select objects. Using the ObjRef class is a very powerful way to select // geometry. // You will see in the future that whenever we draw something to the document, thereby adding it to memory, // we will also be adding a Rhino object to it. return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject("Select light to change color", true, ObjectType.Light, out obj_ref); if (rc != Result.Success) { return(rc); } var light = obj_ref.Light(); if (light == null) { return(Result.Failure); } var diffuse_color = light.Diffuse; if (Dialogs.ShowColorDialog(ref diffuse_color)) { light.Diffuse = diffuse_color; } doc.Lights.Modify(obj_ref.ObjectId, light); return(Result.Success); }
public static Rhino.Commands.Result Sweep1(Rhino.RhinoDoc doc) { Rhino.DocObjects.ObjRef rail_ref; var rc = RhinoGet.GetOneObject("Select rail curve", false, Rhino.DocObjects.ObjectType.Curve, out rail_ref); if (rc != Rhino.Commands.Result.Success) { return(rc); } var rail_crv = rail_ref.Curve(); if (rail_crv == null) { return(Rhino.Commands.Result.Failure); } var gx = new Rhino.Input.Custom.GetObject(); gx.SetCommandPrompt("Select cross section curves"); gx.GeometryFilter = Rhino.DocObjects.ObjectType.Curve; gx.EnablePreSelect(false, true); gx.GetMultiple(1, 0); if (gx.CommandResult() != Rhino.Commands.Result.Success) { return(gx.CommandResult()); } var cross_sections = new List <Rhino.Geometry.Curve>(); for (int i = 0; i < gx.ObjectCount; i++) { var crv = gx.Object(i).Curve(); if (crv != null) { cross_sections.Add(crv); } } if (cross_sections.Count < 1) { return(Rhino.Commands.Result.Failure); } var sweep = new Rhino.Geometry.SweepOneRail(); sweep.AngleToleranceRadians = doc.ModelAngleToleranceRadians; sweep.ClosedSweep = false; sweep.SweepTolerance = doc.ModelAbsoluteTolerance; sweep.SetToRoadlikeTop(); var breps = sweep.PerformSweep(rail_crv, cross_sections); for (int i = 0; i < breps.Length; i++) { doc.Objects.AddBrep(breps[i]); } doc.Views.Redraw(); return(Rhino.Commands.Result.Success); }
public static Result NurbsSurfaceIncreaseDegree(RhinoDoc doc) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject( "Select surface", false, ObjectType.Surface, out obj_ref); if (rc != Result.Success) { return(rc); } if (obj_ref == null) { return(Result.Failure); } var surface = obj_ref.Surface(); if (surface == null) { return(Result.Failure); } var nurbs_surface = surface.ToNurbsSurface(); int new_u_degree = -1; rc = RhinoGet.GetInteger(string.Format("New U degree <{0}...11>", nurbs_surface.Degree(0)), true, ref new_u_degree, nurbs_surface.Degree(0), 11); if (rc != Result.Success) { return(rc); } int new_v_degree = -1; rc = RhinoGet.GetInteger(string.Format("New V degree <{0}...11>", nurbs_surface.Degree(1)), true, ref new_v_degree, nurbs_surface.Degree(1), 11); if (rc != Result.Success) { return(rc); } rc = Result.Failure; if (nurbs_surface.IncreaseDegreeU(new_u_degree)) { if (nurbs_surface.IncreaseDegreeV(new_v_degree)) { if (doc.Objects.Replace(obj_ref.ObjectId, nurbs_surface)) { rc = Result.Success; } } } RhinoApp.WriteLine("Result: {0}", rc.ToString()); doc.Views.Redraw(); return(rc); }
//PickPoint 選點功能 public Result RunCommand(RhinoDoc doc) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject("Select point", false, ObjectType.Point, out obj_ref); if (rc != Result.Success) { return(rc); } //選擇單點 var point = obj_ref.Point(); RhinoApp.WriteLine("Point: x:{0}, y:{1}, z:{2}", point.Location.X, point.Location.Y, point.Location.Z); //選擇多點 ObjRef[] obj_refs; rc = RhinoGet.GetMultipleObjects("Select point", false, ObjectType.Point, out obj_refs); if (rc != Result.Success) { return(rc); } //欄位名稱 TxtRes.Text = "BC,UR1,UR2,UR3\n"; int i = 0; //清空 CbPointX.Items.Clear(); CbPointY.Items.Clear(); CbPointZ.Items.Clear(); foreach (var o_ref in obj_refs) { point = o_ref.Point(); RhinoApp.WriteLine("Point: x:{0}, y:{1}, z:{2}", point.Location.X, point.Location.Y, point.Location.Z); i++; //迭代 TxtRes.Text += TxtInputBC.Text + i + "," + point.Location.X + "," + point.Location.Y + "," + point.Location.Z + ",\n"; CbPointX.Items.Add(point.Location.X); CbPointY.Items.Add(point.Location.Y); CbPointZ.Items.Add(point.Location.Z); } return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject("Select curve for radius dimension", true, ObjectType.Curve, out obj_ref); if (rc != Result.Success) { return(rc); } double curve_parameter; var curve = obj_ref.CurveParameter(out curve_parameter); if (curve == null) { return(Result.Failure); } if (curve.IsLinear() || curve.IsPolyline()) { RhinoApp.WriteLine("Curve must be non-linear."); return(Result.Nothing); } // in this example just deal with planar curves if (!curve.IsPlanar()) { RhinoApp.WriteLine("Curve must be planar."); return(Result.Nothing); } var point_on_curve = curve.PointAt(curve_parameter); var curvature_vector = curve.CurvatureAt(curve_parameter); var len = curvature_vector.Length; if (len < RhinoMath.SqrtEpsilon) { RhinoApp.WriteLine("Curve is almost linear and therefore has no curvature."); return(Result.Nothing); } var center = point_on_curve + (curvature_vector / (len * len)); Plane plane; curve.TryGetPlane(out plane); var radial_dimension = new RadialDimension(center, point_on_curve, plane.XAxis, plane.Normal, 5.0); doc.Objects.AddRadialDimension(radial_dimension); doc.Views.Redraw(); return(Result.Success); }
public static Result ReparameterizeCurve(RhinoDoc doc) { ObjRef obj_ref; var rc = RhinoGet.GetOneObject("Select curve to reparameterize", false, ObjectType.Curve, out obj_ref); if (rc != Result.Success) { return(rc); } var curve = obj_ref.Curve(); if (curve == null) { return(Result.Failure); } double domain_start = 0; rc = RhinoGet.GetNumber("Domain start", false, ref domain_start); if (rc != Result.Success) { return(rc); } double domain_end = 0; rc = RhinoGet.GetNumber("Domain end", false, ref domain_end); if (rc != Result.Success) { return(rc); } if (Math.Abs(curve.Domain.T0 - domain_start) < RhinoMath.ZeroTolerance && Math.Abs(curve.Domain.T1 - domain_end) < RhinoMath.ZeroTolerance) { return(Result.Nothing); } var curve_copy = curve.DuplicateCurve(); curve_copy.Domain = new Interval(domain_start, domain_end); if (!doc.Objects.Replace(obj_ref, curve_copy)) { return(Result.Failure); } else { doc.Views.Redraw(); return(Result.Success); } }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { const ObjectType filter = ObjectType.AnyObject; ObjRef objref; var rc = RhinoGet.GetOneObject("Select object", false, filter, out objref); if (rc != Result.Success || null == objref) { return(rc); } var obj = objref.Object(); if (null == obj) { return(Result.Failure); } var userdata = obj.Attributes.UserData.Find(typeof(SampleCsUserDataObject)) as SampleCsUserDataObject; if (null == userdata) { RhinoApp.WriteLine("SampleCsUserData not found."); return(Result.Nothing); } var gs = new GetString(); gs.SetCommandPrompt("Modify object notes"); gs.GetLiteralString(); if (gs.CommandResult() != Result.Success) { return(gs.CommandResult()); } // To support undo, make a copy of the attributes // instead of modifying the attributes directly. var new_attributes = obj.Attributes.Duplicate(); userdata = new_attributes.UserData.Find(typeof(SampleCsUserDataObject)) as SampleCsUserDataObject; if (null == userdata) { return(Result.Failure); } userdata.Notes = gs.StringResult(); doc.Objects.ModifyAttributes(obj, new_attributes, true); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var filter = ObjectType.Surface | ObjectType.PolysrfFilter; ObjRef objref; var rc = RhinoGet.GetOneObject("Select surface or polysurface", false, filter, out objref); if (rc != Result.Success || objref == null) { return(rc); } var rhobj = objref.Object(); var brep = objref.Brep(); if (rhobj == null || brep == null) { return(Result.Failure); } rhobj.Select(false); var curves = new List <Curve>(); foreach (var edge in brep.Edges) { // Find only the naked edges if (edge.Valence == EdgeAdjacency.Naked) { var crv = edge.DuplicateCurve(); if (crv.IsLinear()) { crv = new LineCurve(crv.PointAtStart, crv.PointAtEnd); } curves.Add(crv); } } var tol = 2.1 * doc.ModelAbsoluteTolerance; var output = Curve.JoinCurves(curves, tol); for (var i = 0; i < output.Length; i++) { var id = doc.Objects.AddCurve(output[i]); doc.Objects.Select(id); } doc.Views.Redraw(); return(Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { // get mesh var rc = RhinoGet.GetOneObject("Pick mesh", false, ObjectType.Mesh, out var objRef); if (rc != Result.Success) { return(rc); } var mesh = objRef.Mesh(); // extract attributes from picked mesh var attributes = objRef.Object().Attributes; // delete picked mesh doc.Objects.Delete(objRef, true); // redraw doc.Views.Redraw(); // Test for runmode and start dialog OperateOnMeshDialog dialog = null; if (mode == RunMode.Interactive) { dialog = new OperateOnMeshDialog(mesh); dialog.RestorePosition(); var dialog_rc = dialog.ShowSemiModal(doc, RhinoEtoApp.MainWindow); dialog.SavePosition(); if (dialog_rc == DialogResult.Ok) { rc = Result.Success; } } else { RhinoApp.WriteLine($"Scriptable version of {EnglishName} not implemented."); doc.Objects.AddMesh(mesh, attributes); return(rc); } doc.Objects.AddMesh(dialog.OperationResult, attributes); doc.Views.Redraw(); return(rc); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var rc = RhinoGet.GetOneObject("Select brep to transform", true, Rhino.DocObjects.ObjectType.Brep, out ObjRef rhobj); if (rc != Rhino.Commands.Result.Success) { return(rc); } //simple translation transformation var xform = Rhino.Geometry.Transform.Translation(18, 25, 50); doc.Objects.Transform(rhobj, xform, true); doc.Views.Redraw(); return(Rhino.Commands.Result.Success); }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { ObjRef objref; var rc = RhinoGet.GetOneObject("Select object to move", false, ObjectType.AnyObject, out objref); if (rc != Result.Success) { return(rc); } if (null == objref) { return(Result.Failure); } Point3d first_point; rc = RhinoGet.GetPoint("Point to move from", false, out first_point); if (rc != Result.Success) { return(rc); } var gp = new GetPoint(); gp.SetCommandPrompt("Point to move to"); gp.SetBasePoint(first_point, true); gp.DrawLineFromPoint(first_point, true); gp.Get(); rc = gp.CommandResult(); if (rc != Result.Success) { return(rc); } var second_point = gp.Point(); var dir = second_point - first_point; if (dir.Length > RhinoMath.ZeroTolerance) { var xform = Transform.Translation(dir); doc.Objects.Transform(objref, xform, true); doc.Views.Redraw(); } return(rc); }
public static Rhino.Commands.Result TransformBrep(Rhino.RhinoDoc doc) { Rhino.DocObjects.ObjRef rhobj; var rc = RhinoGet.GetOneObject("Select brep", true, Rhino.DocObjects.ObjectType.Brep, out rhobj); if (rc != Rhino.Commands.Result.Success) { return(rc); } // Simple translation transformation var xform = Rhino.Geometry.Transform.Translation(18, -18, 25); doc.Objects.Transform(rhobj, xform, true); doc.Views.Redraw(); return(Rhino.Commands.Result.Success); }