protected override Rhino.Commands.Result RunCommand(RhinoDoc doc, Rhino.Commands.RunMode mode) { //List<Rhino.DocObjects.RhinoObject> ObjectList = new List<Rhino.DocObjects.RhinoObject>(); Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); settings.DeletedObjects = false; settings.HiddenObjects = false; settings.LockedObjects = true; settings.NormalObjects = true; settings.VisibleFilter = true; settings.ObjectTypeFilter = Rhino.DocObjects.ObjectType.Brep & Rhino.DocObjects.ObjectType.Surface & Rhino.DocObjects.ObjectType.Extrusion; List<Rhino.DocObjects.RhinoObject> RC_List = new List<Rhino.DocObjects.RhinoObject>(); foreach (Rhino.DocObjects.RhinoObject RHobj in Rhino.RhinoDoc.ActiveDoc.Objects.GetObjectList(settings)) { if (RHobj.ObjectType == Rhino.DocObjects.ObjectType.Brep || RHobj.ObjectType == Rhino.DocObjects.ObjectType.Surface || RHobj.ObjectType == Rhino.DocObjects.ObjectType.Extrusion) { RC_List.Add(RHobj); } } if (RC_List.Count != 0) { Ret_NURBS_Scene = new RhCommon_Scene(RC_List, Air_Temp, Rel_Humidity, Atm_pressure, Atten_Choice, Edge_Freq, false); if (!Ret_NURBS_Scene.Valid) return Rhino.Commands.Result.Failure; Ret_Mesh_Scene = new Polygon_Scene(RC_List, Air_Temp, Rel_Humidity, Atm_pressure, Atten_Choice, Edge_Freq, false); if (!Ret_Mesh_Scene.Valid) return Rhino.Commands.Result.Failure; } C_Result = Rhino.Commands.Result.Success; return Rhino.Commands.Result.Success; }
protected override Rhino.Commands.Result RunCommand(RhinoDoc doc, Rhino.Commands.RunMode mode) { //List<Rhino.DocObjects.RhinoObject> ObjectList = new List<Rhino.DocObjects.RhinoObject>(); Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); settings.DeletedObjects = false; settings.HiddenObjects = false; settings.LockedObjects = true; settings.NormalObjects = true; settings.VisibleFilter = true; settings.ObjectTypeFilter = Rhino.DocObjects.ObjectType.Brep & Rhino.DocObjects.ObjectType.Surface & Rhino.DocObjects.ObjectType.Extrusion; List <Rhino.DocObjects.RhinoObject> RC_List = new List <Rhino.DocObjects.RhinoObject>(); foreach (Rhino.DocObjects.RhinoObject RHobj in Rhino.RhinoDoc.ActiveDoc.Objects.GetObjectList(settings)) { if (RHobj.ObjectType == Rhino.DocObjects.ObjectType.Brep || RHobj.ObjectType == Rhino.DocObjects.ObjectType.Surface || RHobj.ObjectType == Rhino.DocObjects.ObjectType.Extrusion) { RC_List.Add(RHobj); } } if (RC_List.Count != 0) { Ret_NURBS_Scene = new RhCommon_Scene(RC_List, Air_Temp, Rel_Humidity, Atm_pressure, Atten_Choice, Edge_Freq, false); if (!Ret_NURBS_Scene.Valid) { return(Rhino.Commands.Result.Failure); } Ret_Mesh_Scene = new RhCommon_PolygonScene(RC_List, Register_Edges, Air_Temp, Rel_Humidity, Atm_pressure, Atten_Choice, Edge_Freq, false); if (!Ret_Mesh_Scene.Valid) { return(Rhino.Commands.Result.Failure); } } C_Result = Rhino.Commands.Result.Success; return(Rhino.Commands.Result.Success); }
public static Rhino.Commands.Result FindObjectsByName(Rhino.RhinoDoc doc) { const string name = "abc"; Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); settings.NameFilter = name; System.Collections.Generic.List <Guid> ids = new System.Collections.Generic.List <Guid>(); foreach (Rhino.DocObjects.RhinoObject rhObj in doc.Objects.GetObjectList(settings)) { ids.Add(rhObj.Id); } if (ids.Count == 0) { Rhino.RhinoApp.WriteLine("No objects with the name " + name); return(Rhino.Commands.Result.Failure); } Rhino.RhinoApp.WriteLine("Found {0} objects", ids.Count); foreach (Guid id in ids) { Rhino.RhinoApp.WriteLine(" {0}", id); } return(Rhino.Commands.Result.Success); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param> protected override void SolveInstance(IGH_DataAccess DA) { bool delete = false; DA.GetData(0, ref delete); Rhino.DocObjects.Tables.ObjectTable ot = Rhino.RhinoDoc.ActiveDoc.Objects; if (delete) { List <Rhino.DocObjects.RhinoObject> objects = new List <Rhino.DocObjects.RhinoObject>(); Rhino.DocObjects.ObjectEnumeratorSettings s = new Rhino.DocObjects.ObjectEnumeratorSettings { HiddenObjects = true, LockedObjects = true }; foreach (Rhino.DocObjects.RhinoObject obj in RhinoDoc.ActiveDoc.Objects.GetObjectList(s)) { if (obj.Name.StartsWith("Y:") || obj.Name.StartsWith("X:") || obj.Name.StartsWith("Z:")) { ot.Delete(obj.Id, true); } } } }
public static Rhino.Commands.Result FindObjectsByName(Rhino.RhinoDoc doc) { const string name = "abc"; Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); settings.NameFilter = name; System.Collections.Generic.List<Guid> ids = new System.Collections.Generic.List<Guid>(); foreach (Rhino.DocObjects.RhinoObject rhObj in doc.Objects.GetObjectList(settings)) ids.Add(rhObj.Id); if (ids.Count == 0) { Rhino.RhinoApp.WriteLine("No objects with the name " + name); return Rhino.Commands.Result.Failure; } Rhino.RhinoApp.WriteLine("Found {0} objects", ids.Count); foreach (Guid id in ids) Rhino.RhinoApp.WriteLine(" {0}", id); return Rhino.Commands.Result.Success; }
/// <summary> /// Shorthand tool to obtain Polygon_Scene object. /// </summary> /// <param name="Rel_Humidity">in percent</param> /// <param name="AirTempC">in degrees C.</param> /// <param name="AirPressurePa">in Pascals</param> /// <param name="AirAttenMethod"></param> /// <param name="EdgeFreq">Use edge frequency correction?</param> /// <returns></returns> public static Environment.Polygon_Scene Get_Poly_Scene(double Rel_Humidity, bool edges, double AirTempC, double AirPressurePa, int AirAttenMethod, bool EdgeFreq) { Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); settings.DeletedObjects = false; settings.HiddenObjects = false; settings.LockedObjects = true; settings.NormalObjects = true; settings.VisibleFilter = true; settings.ObjectTypeFilter = Rhino.DocObjects.ObjectType.Brep & Rhino.DocObjects.ObjectType.Surface & Rhino.DocObjects.ObjectType.Extrusion; List <Rhino.DocObjects.RhinoObject> RC_List = new List <Rhino.DocObjects.RhinoObject>(); foreach (Rhino.DocObjects.RhinoObject RHobj in Rhino.RhinoDoc.ActiveDoc.Objects.GetObjectList(settings)) { if (RHobj.ObjectType == Rhino.DocObjects.ObjectType.Brep || RHobj.ObjectType == Rhino.DocObjects.ObjectType.Surface || RHobj.ObjectType == Rhino.DocObjects.ObjectType.Extrusion) { RC_List.Add(RHobj); } } if (RC_List.Count != 0) { return(new Environment.RhCommon_PolygonScene(RC_List, edges, AirTempC, Rel_Humidity, AirPressurePa, AirAttenMethod, EdgeFreq, false)); } return(null); }
protected override void OnKeyPress(OpenTK.KeyPressEventArgs e) { if (e.KeyChar == 'C' || e.KeyChar == 'c') { ((VrRenderer)mRenderer).ovrvision_controller.getMatrixHeadtoCamera(0); mScene.popInteraction(); mScene.pushInteraction(new Interaction.CalibrationAR(ref mScene, ref mRenderer.ovrvision_controller)); } if (e.KeyChar == 'D' || e.KeyChar == 'd') { mRenderer.ovrvision_controller.setDefaultMatrixHC(); } if (e.KeyChar == 'J' || e.KeyChar == 'j') { //mScene.popInteraction(); //mScene.pushInteraction(new Interaction.EditPlane(ref mScene, ref xyPlane, ref xzPlane, ref yzPlane)); //mScene.pushInteraction(new Interaction.RotatePlane(ref mScene, ref xyPlane2, ref xzPlane2, ref yzPlane2)); //clear the stroke foreach (SceneNode sn in mScene.tableGeometry.children) { if (sn.name == "PrintStroke") { mScene.tableGeometry.children.Remove(sn); break; } } } if (e.KeyChar == 'M' || e.KeyChar == 'm') { mScene.popInteraction(); mScene.pushInteraction(new Interaction.Stroke(ref mScene)); } if (e.KeyChar == 'V' || e.KeyChar == 'v') { calibrationVRtoRobot(); } if (e.KeyChar == 'P' || e.KeyChar == 'p') { /* * mScene.popInteraction(); * controllerP = new List<Vector3>(); * mScene.pushInteraction(new Interaction.PickPoint(ref mScene, ref controllerP)); */ Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); settings.ObjectTypeFilter = Rhino.DocObjects.ObjectType.Brep; Brep teapotBody = new Brep(); Brep teapotSprout = new Brep(); Brep teapotHandle = new Brep(); foreach (Rhino.DocObjects.RhinoObject rhObj in mScene.rhinoDoc.Objects.GetObjectList(settings)) { if (rhObj.Attributes.Name == "aprinteGZx3Sz91Ag") { teapotBody = ((Brep)rhObj.Geometry).DuplicateBrep(); mScene.rhinoDoc.Objects.Delete(rhObj.Id, true); } else if (rhObj.Attributes.Name == "aprintS8FyJC391Ag") { teapotSprout = ((Brep)rhObj.Geometry).DuplicateBrep(); mScene.rhinoDoc.Objects.Delete(rhObj.Id, true); } else if (rhObj.Attributes.Name == "aprintVBE2eS391Ag") { teapotHandle = ((Brep)rhObj.Geometry).DuplicateBrep(); mScene.rhinoDoc.Objects.Delete(rhObj.Id, true); } } Material.Material mesh_m = new Material.LambertianMaterial(.7f, .7f, .7f, .3f); string modelName = "aprint"; SceneNode teapotBodySN; UtilOld.addRhinoObjectSceneNode(ref mScene, ref teapotBody, ref mesh_m, modelName, out teapotBodySN); SceneNode teapotSproutSN; UtilOld.addRhinoObjectSceneNode(ref mScene, ref teapotSprout, ref mesh_m, modelName, out teapotSproutSN); SceneNode teapotHandleSN; UtilOld.addRhinoObjectSceneNode(ref mScene, ref teapotHandle, ref mesh_m, modelName, out teapotHandleSN); } if (e.KeyChar == 'A' || e.KeyChar == 'a') { //mScene.popInteraction(); //mScene.pushInteraction(new Interaction.Align(ref mScene)); //for rhino object OpenTK.Matrix4 currentRotation = mScene.platformRotation; float theta = (float)(90.0f / 360f * 2 * Math.PI); Rhino.RhinoApp.WriteLine("Theta = " + theta); Matrix4.CreateRotationZ(theta, out mScene.platformRotation); mScene.platformRotation.Transpose(); //rotate Rhino objects OpenTK.Matrix4 rotMRhino = mScene.platformRotation * currentRotation.Inverted(); Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); mScene.transM = new Transform(); for (int row = 0; row < 4; row++) { for (int col = 0; col < 4; col++) { mScene.transM[row, col] = rotMRhino[row, col]; } } settings.ObjectTypeFilter = Rhino.DocObjects.ObjectType.Brep; foreach (Rhino.DocObjects.RhinoObject rhObj in mScene.rhinoDoc.Objects.GetObjectList(settings)) { SceneNode sn; if (mScene.BiDictionaryRhinoVR.TryGetByFirst(rhObj.Id, out sn) && !rhObj.Attributes.Name.Contains("planeXY") && !rhObj.Attributes.Name.Contains("planeXZ") && !rhObj.Attributes.Name.Contains("planeYZ")) { //SceneNode sn = mScene.brepToSceneNodeDic[rhObj.Id]; //mScene.brepToSceneNodeDic.Remove(rhObj.Id); Guid newGuid = mScene.rhinoDoc.Objects.Transform(rhObj.Id, mScene.transM, true); Rhino.RhinoApp.WriteLine("transM " + mScene.transM.ToString()); mScene.rhinoDoc.Views.Redraw(); //mScene.brepToSceneNodeDic.Add(newGuid, sn); //mScene.SceneNodeToBrepDic[sn.guid] = mScene.rhinoDoc.Objects.Find(newGuid); } } } if (e.KeyChar == 'O' || e.KeyChar == 'o') { mScene.popInteraction(); UtilOld.clearAllModel(ref mScene); } if (e.KeyChar == 'Q' || e.KeyChar == 'q') { //print out debug info foreach (var item in mScene.selectionDic) { Rhino.RhinoApp.WriteLine(item.Key.ToString() + ": " + item.Value.ToString()); } } if (e.KeyChar == 'Z' || e.KeyChar == 'z') { while (!mScene.interactionStackEmpty()) { mScene.popInteraction(); } } if (e.KeyChar == 'X' || e.KeyChar == 'x') { mScene.popInteraction(); mScene.pushInteraction(new Interaction.CreatePatch(ref mScene)); } if (e.KeyChar == '[' || e.KeyChar == '{') { mScene.popInteraction(); mScene.pushInteraction(new Interaction.PickPoint(ref mScene, ref mLeftControllerPoses)); current_i = null; } if (e.KeyChar == ']' || e.KeyChar == '}') { mScene.popInteraction(); mScene.pushInteraction(new Interaction.PickPoint(ref mScene, ref mRightControllerPoses)); current_i = null; } }
protected void handleSignals() { SparrowHawkSignal s = SparrowHawkEventListeners.Instance.getOneSignal(); if (s == null) { return; } switch (s.type) { case SparrowHawkSignal.ESparrowHawkSigalType.InitType: if (s.data.Length >= 3) { //To compute VRtoRobot matrix, press V key 8 times. //robotPoint is in mm unit so the calibration result already deal with scale issue Vector3 robotPoint = new Vector3(s.data[0], s.data[1], s.data[2]); robotCallibrationPoints.Add(robotPoint); Rhino.RhinoApp.WriteLine("add robotPoint: " + robotPoint.ToString()); if (mIsLefty && mScene.leftControllerIdx < 0 || !mIsLefty && mScene.leftControllerIdx < 0) { break; } } break; case SparrowHawkSignal.ESparrowHawkSigalType.LineType: if (s.data.Length >= 4) { if (s.data[0] == 0) { OpenTK.Vector3 p1 = new Vector3(s.data[1], s.data[2], s.data[3]); p1 = UtilOld.platformToVRPoint(ref mScene, p1); OpenTK.Vector3 p2 = new Vector3(s.data[4], s.data[5], s.data[6]); p2 = UtilOld.platformToVRPoint(ref mScene, p2); if (((Geometry.RobotPrintStroke)printStroke).mPoints.Count == 0) { printStroke = new Geometry.RobotPrintStroke(ref mScene); ((Geometry.RobotPrintStroke)printStroke).addEdge(p1, p2); printStrokeSN = new SceneNode("PrintStroke", ref printStroke, ref printStroke_m); mScene.tableGeometry.add(ref printStrokeSN); } else { ((Geometry.RobotPrintStroke)printStroke).addEdge(p1, p2); printStrokeSN.geometry = printStroke; } } else { OpenTK.Vector3 p1 = new Vector3(s.data[1], s.data[2], s.data[3]); p1 = UtilOld.platformToVRPoint(ref mScene, p1); //((Geometry.GeometryStroke2)printStroke).addPoint(p1); ((Geometry.RobotPrintStroke)printStroke).addEdge(((Geometry.RobotPrintStroke)printStroke).mPoints[((Geometry.RobotPrintStroke)printStroke).mPoints.Count - 1], p1); printStrokeSN.geometry = printStroke; } } break; case SparrowHawkSignal.ESparrowHawkSigalType.CutType: string guidStr = s.strData; Guid delId = new Guid(guidStr); UtilOld.removeRhinoObjectSceneNode(ref mScene, delId); //removePrintStroke and show the model again ((Geometry.RobotPrintStroke)printStroke).removePoint(); //mScene.tableGeometry.remove(ref printStrokeSN); //already remove Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); settings.ObjectTypeFilter = Rhino.DocObjects.ObjectType.Brep; foreach (Rhino.DocObjects.RhinoObject rhObj in mScene.rhinoDoc.Objects.GetObjectList(settings)) { if (rhObj.Attributes.Name.Contains("aprint")) { SceneNode sn = mScene.BiDictionaryRhinoVR.GetByFirst(rhObj.Id); Material.LambertianMaterial show_m = new Material.LambertianMaterial(((Material.LambertianMaterial)sn.material).mColor.R, ((Material.LambertianMaterial)sn.material).mColor.G, ((Material.LambertianMaterial)sn.material).mColor.B, .3f); sn.material = show_m; } } mScene.rhinoDoc.Views.Redraw(); break; case SparrowHawkSignal.ESparrowHawkSigalType.EncoderType: //for rhino object OpenTK.Matrix4 currentRotation = mScene.platformRotation; float theta = (float)(s.data[0] / 360f * 2 * Math.PI); mScene.rhinoTheta = theta; Rhino.RhinoApp.WriteLine("Theta = " + theta); Matrix4.CreateRotationZ(-theta, out mScene.platformRotation); mScene.platformRotation.Transpose(); //rotate Rhino objects OpenTK.Matrix4 rotMRhino = mScene.platformRotation * currentRotation.Inverted(); mScene.transM = new Transform(); for (int row = 0; row < 4; row++) { for (int col = 0; col < 4; col++) { mScene.transM[row, col] = rotMRhino[row, col]; } } /* * Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); * settings.ObjectTypeFilter = Rhino.DocObjects.ObjectType.Brep; * foreach (Rhino.DocObjects.RhinoObject rhObj in mScene.rhinoDoc.Objects.GetObjectList(settings)) * { * if (mScene.brepToSceneNodeDic.ContainsKey(rhObj.Id) && !rhObj.Attributes.Name.Contains("planeXY") && !rhObj.Attributes.Name.Contains("planeXZ") * && !rhObj.Attributes.Name.Contains("planeYZ")) * { * //SceneNode sn = mScene.brepToSceneNodeDic[rhObj.Id]; * //mScene.brepToSceneNodeDic.Remove(rhObj.Id); * * Guid newGuid = mScene.rhinoDoc.Objects.Transform(rhObj.Id, mScene.transM, true); * Rhino.RhinoApp.WriteLine("transM " + mScene.transM.ToString()); * mScene.rhinoDoc.Views.Redraw(); * * //mScene.brepToSceneNodeDic.Add(newGuid, sn); * //mScene.SceneNodeToBrepDic[sn.guid] = mScene.rhinoDoc.Objects.Find(newGuid); * } * * }*/ //rotate the current interaction curve as well /* * foreach(Curve iCurve in mScene.iCurveList) * { * iCurve.Transform(transM); * * } * if (mScene.peekInteraction().GetType() == typeof(Interaction.EditPoint2)) * { * mScene.peekInteraction().init(); * }*/ break; } }
/***************************************************/ // Build CalculiX input file. public virtual void BuildGmshFile(Rhino.RhinoDoc doc, MeshUtil.GmshParams gmshParams) { doc.Views.RedrawEnabled = false; // Hide all existing Rhino objects. Rhino.DocObjects.ObjectEnumeratorSettings all; all = new Rhino.DocObjects.ObjectEnumeratorSettings(); all.ObjectTypeFilter = Rhino.DocObjects.ObjectType.AnyObject; foreach (Rhino.DocObjects.RhinoObject ro in doc.Objects.GetObjectList(all)) { doc.Objects.Hide(ro.Id, true); } // Add bar curves to Rhino. for (int i = this._bars.Count - 1; i >= 0; i--) { doc.Objects.Add(this._bars[i].Curve); } // Add panel surfaces to Rhino. for (int i = this._panels.Count - 1; i >= 0; i--) { doc.Objects.Add(this._panels[i].Surface); } // Export the geometry to .iges files. string curveFilePath = this.GetModelFilePath() + "_Curves.iges"; string surfaceFilePath = this.GetModelFilePath() + "_Surfaces.iges"; if (File.Exists(curveFilePath)) { File.Delete(curveFilePath); } if (File.Exists(surfaceFilePath)) { File.Delete(surfaceFilePath); } string exportCrvCom = "-_export _selcrv _enter \"" + curveFilePath + "\" _enter"; string exportSrfCom = "-_export _selsrf _enter \"" + surfaceFilePath + "\" _enter"; Rhino.RhinoApp.RunScript(exportCrvCom, false); Rhino.RhinoApp.RunScript(exportSrfCom, false); Rhino.RhinoDoc.ActiveDoc.Views.RedrawEnabled = true; string name = this._name; if (this._directory == GuanacoUtil.TempDir) { name += this.GetTempSuffix(); } System.IO.TextWriter tw = new System.IO.StreamWriter(this.GetModelFilePath(GuanacoUtil.FileType.geo)); foreach (String s in MeshUtil.GmshInput(name, doc.ModelAbsoluteTolerance, gmshParams)) { tw.WriteLine(s); } tw.Close(); this._GmshFileBuilt = true; }
protected override Result RunCommand(RhinoDoc doc, RunMode mode) { String[] matName = new String[] { "WhiteGold_18ct", "YellowGold_18ct", "RedGold_18ct", "RodiumBlack_18ct", "Silver_925", "Platinum_960", "Ruby", "Emerald", "Saphir", "Paraiba", "Granat", "Amethyst", "Morganite", "Diamond" }; Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); settings.VisibleFilter = true; System.Collections.Generic.List <Guid> ids = new System.Collections.Generic.List <Guid>(); List <string> allItems = new List <string>(); List <string> metalItems = new List <string>(); List <string> stoneItems = new List <string>(); List <double> circleStones = new List <double>(); List <int> quantCirclesStones = new List <int>(); foreach (Rhino.DocObjects.RhinoObject rhObj in doc.Objects.GetObjectList(settings)) { var objType = rhObj.ObjectType; Guid objGuid = rhObj.Id; Rhino.DocObjects.ObjRef objref = new Rhino.DocObjects.ObjRef(objGuid); if (objType == Rhino.DocObjects.ObjectType.Curve) { Curve curveRadius = objref.Curve(); Circle circleRadius = new Circle(); var circlefound = curveRadius.TryGetCircle(out circleRadius, doc.ModelAbsoluteTolerance); if (circlefound) { double diamStone = Math.Round(circleRadius.Diameter, 2, MidpointRounding.AwayFromZero); int match = circleStones.IndexOf(diamStone); if (match == -1) { circleStones.Add(diamStone); quantCirclesStones.Add(1); } else { int currVal = quantCirclesStones[match]; quantCirclesStones[match] = currVal + 1; } } } Rhino.DocObjects.Material mat = rhObj.GetMaterial(true); var objMatName = mat.Name; int pos = Array.IndexOf(matName, objMatName); if (pos == -1) { continue; } switch (pos) { //18ctGold case int n when(n < 4): double gold18ct = 0.016; CalMat(doc, gold18ct, objType, objref, metalItems, matName, pos, " g"); break; //Silver case 4: double silver = 0.0105; CalMat(doc, silver, objType, objref, metalItems, matName, pos, " g"); break; //Platinum case 5: double platinum = 0.0203; CalMat(doc, platinum, objType, objref, metalItems, matName, pos, " g"); break; //ColorStones ruby=4g Emerald=2.65g saphr=4g Paraiba=3g Granat=3.9g Amethyst=2.65 Morganite=2.65 case 6: double ruby = 0.02; CalMat(doc, ruby, objType, objref, stoneItems, matName, pos, " ct"); break; case 7: double emerald = 0.0133; CalMat(doc, emerald, objType, objref, stoneItems, matName, pos, " ct"); break; case 8: double saphir = 0.02; CalMat(doc, saphir, objType, objref, stoneItems, matName, pos, " ct"); break; case 9: double paraiba = 0.015; CalMat(doc, paraiba, objType, objref, stoneItems, matName, pos, " ct"); break; case 10: double granat = 0.0195; CalMat(doc, granat, objType, objref, stoneItems, matName, pos, " ct"); break; case 11: double amethyst = 0.0133; CalMat(doc, amethyst, objType, objref, stoneItems, matName, pos, " ct"); break; case 12: double morganite = 0.0133; CalMat(doc, morganite, objType, objref, stoneItems, matName, pos, " ct"); break; //Diamond case 13: double diamond = 0.02; CalMat(doc, diamond, objType, objref, stoneItems, matName, pos, " ct"); break; } } metalItems.Sort(); stoneItems.Sort(); allItems.Add("------Metals(g)/Stones(ct) from solids-------"); for (int i = 0; i < materials.Length; i++) { if (materials[i] == 0) { continue; } allItems.Add(matName[i] + ": " + materials[i]); } /* * allItems.Add("--------------Metals--------------"); * for (int i = 0; i < metalItems.Count; i++) * { * allItems.Add(metalItems[i]); * } * * allItems.Add("--------------Stone---------------"); * for (int i = 0; i < stoneItems.Count; i++) * { * allItems.Add(stoneItems[i]); * } */ allItems.Add("-----------------------------------------------"); allItems.Add(""); allItems.Add("-----------Brillants from circles------------"); double totalCt = 0.0; for (int i = 0; i < circleStones.Count; i++) { double ct; ct = Math.Round((circleStones[i] * circleStones[i] * circleStones[i] * 0.6 * 0.0061), 4, MidpointRounding.AwayFromZero); allItems.Add("Brill: " + quantCirclesStones[i] + " x " + circleStones[i] + " mm " + ct + " ct Total: " + ct * quantCirclesStones[i] + " ct"); totalCt = totalCt + ct * quantCirclesStones[i]; } allItems.Add("Total brillant weight: " + totalCt + " ct"); allItems.Add("-----------------------------------------------"); String clipboardString = ""; foreach (String o in allItems) { clipboardString = clipboardString + o + "\n"; } Clipboard.SetText(clipboardString); if (open > 0) { Dialogs.ShowMessage("At least one object is not closed. Weights might be false.", "Warning!"); } Dialogs.ShowListBox("Report", "This data is copied to your clipboard \n Use Ctrl+V to paste", allItems); materials = new double[14]; open = 0; return(Result.Success); }
/// <summary> /// Shorthand tool to obtain Polygon_Scene object. /// </summary> /// <param name="Rel_Humidity">in percent</param> /// <param name="AirTempC">in degrees C.</param> /// <param name="AirPressurePa">in Pascals</param> /// <param name="AirAttenMethod"></param> /// <param name="EdgeFreq">Use edge frequency correction?</param> /// <returns></returns> public static Environment.Polygon_Scene Get_Poly_Scene(double Rel_Humidity, double AirTempC, double AirPressurePa, int AirAttenMethod, bool EdgeFreq) { Rhino.DocObjects.ObjectEnumeratorSettings settings = new Rhino.DocObjects.ObjectEnumeratorSettings(); settings.DeletedObjects = false; settings.HiddenObjects = false; settings.LockedObjects = true; settings.NormalObjects = true; settings.VisibleFilter = true; settings.ObjectTypeFilter = Rhino.DocObjects.ObjectType.Brep & Rhino.DocObjects.ObjectType.Surface & Rhino.DocObjects.ObjectType.Extrusion; List<Rhino.DocObjects.RhinoObject> RC_List = new List<Rhino.DocObjects.RhinoObject>(); foreach (Rhino.DocObjects.RhinoObject RHobj in Rhino.RhinoDoc.ActiveDoc.Objects.GetObjectList(settings)) { if (RHobj.ObjectType == Rhino.DocObjects.ObjectType.Brep || RHobj.ObjectType == Rhino.DocObjects.ObjectType.Surface || RHobj.ObjectType == Rhino.DocObjects.ObjectType.Extrusion) { RC_List.Add(RHobj); } } if (RC_List.Count != 0) { return new Environment.Polygon_Scene(RC_List, AirTempC, Rel_Humidity, AirPressurePa, AirAttenMethod, EdgeFreq, false); } return null; }