/// <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) { DroidPaths dPath = new DroidPaths(); DroidParameters dPara = new DroidParameters(); List <string> head = new List <string>(); List <string> foot = new List <string>(); if (!DA.GetData(0, ref dPath)) { return; } if (!DA.GetData(1, ref dPara)) { return; } if (!DA.GetDataList(2, head)) { return; } if (!DA.GetDataList(3, foot)) { return; } List <string> gcode = new List <string>(); List <string> info = new List <string>(); DroidGCode output = new DroidGCode(dPath.printList); gcode = output.Execute(dPara, head, foot); info = output.Info(dPara); DA.SetDataList(0, gcode); DA.SetDataList(1, info); }
/// <summary> /// This is the method that actually does the work. /// </summary> /// <param name="DA">The DA object can be used to retrieve data from input parameters and /// to store data in output parameters.</param> protected override void SolveInstance(IGH_DataAccess DA) { // Inputs List <Mesh> dSlice = new List <Mesh>(); DroidVolume vol = null; DroidParameters para = null; if (!DA.GetDataList(0, dSlice)) { return; } if (!DA.GetData(1, ref para)) { return; } if (!DA.GetData(2, ref vol)) { return; } // Initialise Polylines[] brimSkirtPaths; Polylines[] contourPaths; Polylines[] shellPaths; List <Polylines[]> fillCapPaths; DroidMesh dMesh; foreach (Mesh x in dSlice) { if (x == null) { return; } } dMesh = new DroidMesh(); dMesh.AssignParameters(para.layerHeight, para.scale, para.nozzle); contourPaths = dMesh.Contour(dSlice); shellPaths = dMesh.Offset(para.shellNumber); brimSkirtPaths = dMesh.BrimSkirt(para.brimSkirtInt, para.brimSkirt); fillCapPaths = dMesh.DroidBoolPaths(para.infillPercent, para.capTopThickness, para.capBotThickness, para.shellNumber); // Initialising Wrapper DroidPaths myDroid = new DroidPaths(contourPaths, shellPaths, fillCapPaths[0], brimSkirtPaths, fillCapPaths[1]); // Output DA.SetData(0, myDroid); DA.SetDataList(1, myDroid.wrapperList[1]); DA.SetDataList(2, myDroid.wrapperList[2]); DA.SetDataList(3, myDroid.wrapperList[3]); DA.SetDataList(4, myDroid.wrapperList[0]); DA.SetDataList(5, myDroid.wrapperList[4]); }
/// <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) { // Inputs double layerHeight = new double(); double firstLayerHeight = new double(); int scale = new int(); double nozzle = new double(); int infillPercent = new int(); int shellNumber = new int(); bool brimSkirt = new bool(); int brimSkirtInt = new int(); int capTopThickness = new int(); int capBotThickness = new int(); int printSpeed = new int(); int travelSpeed = new int(); bool retraction = new bool(); double retractionDistance = new double(); int rectractionSpeed = new int(); double filamentDiameter = new double(); double flowRate = new double(); if (!DA.GetData(0, ref layerHeight) | (layerHeight <= 0)) { return; } if (!DA.GetData(1, ref firstLayerHeight) | (firstLayerHeight <= 0)) { return; } if (!DA.GetData(2, ref scale) | (scale <= 0)) { return; } if (!DA.GetData(3, ref nozzle) | (nozzle <= 0.0)) { return; } if (!DA.GetData(4, ref infillPercent) | (infillPercent < 0) | (infillPercent > 99)) { return; } if (!DA.GetData(5, ref shellNumber) | (shellNumber <= 0)) { return; } if (!DA.GetData(6, ref brimSkirt)) { return; } if (!DA.GetData(7, ref brimSkirtInt) | (brimSkirtInt < 0)) { return; } if (!DA.GetData(8, ref capTopThickness) | (capTopThickness < 0)) { return; } if (!DA.GetData(9, ref capBotThickness) | (capBotThickness < 0)) { return; } if (!DA.GetData(10, ref printSpeed) | (printSpeed < 0)) { return; } if (!DA.GetData(11, ref travelSpeed) | (travelSpeed < 0)) { return; } if (!DA.GetData(12, ref retraction)) { return; } if (!DA.GetData(13, ref retractionDistance) | (retractionDistance < 0)) { return; } if (!DA.GetData(14, ref rectractionSpeed) | (rectractionSpeed < 0)) { return; } if (!DA.GetData(15, ref filamentDiameter) | (filamentDiameter < 0)) { return; } if (!DA.GetData(16, ref flowRate) | (flowRate < 0)) { return; } DroidParameters parameters = new DroidParameters(); parameters.layerHeight = layerHeight; parameters.firstLayerHeight = firstLayerHeight; parameters.scale = scale; parameters.nozzle = nozzle; parameters.infillPercent = infillPercent; parameters.shellNumber = shellNumber; parameters.brimSkirt = brimSkirt; parameters.brimSkirtInt = brimSkirtInt; parameters.capTopThickness = capTopThickness; parameters.capBotThickness = capBotThickness; parameters.printSpeed = printSpeed; parameters.travelSpeed = travelSpeed; parameters.retraction = retraction; parameters.rectractionDistance = retractionDistance; parameters.retractionSpeed = rectractionSpeed; parameters.filamentDiameter = filamentDiameter; parameters.flowRate = flowRate; DA.SetData(0, parameters); }