void SysCADParamsTable::BuildDataFields(MDataDefn &DD) { /*DD.MatrixBegin(TableName, TableName, ncols, nrows, 8, 0, "X", "Y", 0); for (int r=0; r<nrows; r++) { DD.GridRowStart(); DD.MatrixElementStart(0, r); for (int c=0; c<ncols; c++) { DD.Double(c==0 ? Col0Name : Col1Name, "", &(val[r*ncols+c]), MF_RESULT|MF_NO_FILING, MC_None); } } DD.MatrixEnd();*/ DD.Text("------------------------------------------------------------"); CString Txt,T1; Txt.Format("Data table:%s", TableName); DD.Text(Txt); Txt.Format(" %s(%s) | %s(%s)", Col0Desc, Col0Name, Col1Desc, Col1Name); DD.Text(Txt); DD.GridBegin(TableName, ncols, nrows); Txt.Format("%s//%s", Col0Name, Col1Name); DD.GridColumnHeader(Txt, 6, 0, 0); DD.GridColumnHeader(Col0Name, 10, 0); DD.GridColumnHeader(Col1Name, 10, 0); for (int r=0; r<nrows; r++) { T1.Format("%s[%i]", TableName, r); DD.GridRowHeader(T1); //does not work!!! DD.GridRowStart(); for (int c=0; c<ncols; c++) { Txt.Format("%s[%i].%s", TableName, r, c==0 ? Col0Name : Col1Name); DD.Double(Txt, "", &(val[r*ncols+c]), MF_PARAMETER, MC_None); } } DD.GridEnd(); }
mi_A[6] = 0.066; mi_A[7] = 0.053; mi_A[8] = 0.043; mi_A[9] = 0.035; mi_A[10] = 0.028; mi_A[11] = 0.022; mi_A[12] = 0.018; mi_A[13] = 0.015; mi_A[14] = 0.012; mi_A[15] = 0.01; mi_A[16] = 0.008; mi_A[17] = 0.006; mi_A[18] = 0.004; mi_A[19] = 0.003; mi_A[20] = 0.002; mi_A[21] = 0.0015; mi_A[22] = 0.0010; mi_A[23] = 0.0005; } //==================================================================================== void CMill_Ball::BuildDataFields(MDataDefn &DB) { DB.ObjectBegin("TS_Ball", "Ball"); DB.Page("Ball Mill Parameters"); DB.Text("Simulated Mill"); // NUMBER OF PARALLEL MILLS DB.Long("NMills", "", &mi_NParrallelMills , MF_PARAMETER ); //DIAMETER (INSIDE LINERS, METRES) OF MILL BEING SIMULATED. DB.Double("Dsim", "", &mi_DiameterSim , MF_PARAMETER , MC_L); // LENGTH (INSIDE LINERS, METRES) OF MILL BEING SIMULATED. DB.Double("Lsim", "", &mi_LengthSim , MF_PARAMETER , MC_L); // FRACTION CRITICAL SPEED OF MILL BEING SIMULATED. DB.Double("CSsim", "", &mi_FracCriticalSpeedSim , MF_PARAMETER , MC_Frac); // LOAD FRACTION (SEE ABOVE) OF MILL BEING SIMULATED. DB.Double("LFsim", "", &mi_FracLoadSim , MF_PARAMETER , MC_Frac); // WORK INDEX OF ORE FED TO MILL BEING SIMULATED. DB.Double("WIsim", "", & mi_WorkIndexSim , MF_PARAMETER , MC_WI ); // Units?? // Simulated Mill Ball Top Size DB.Double("BallSizesim", "", & mi_BallTopSizeSim , MF_PARAMETER , MC_L ); // MODEL PARAMETERS // ~~~~~~~~~~~~~~~~ DB.Text("Original Mill"); // MILL DIAMETER (INSIDE LINERS, METRES) OF MILL FROM // WHICH MODEL PARAMETERS ARE DERIVED. DB.Double("Dfit", "", &mi_DiameterDerived , MF_PARAMETER , MC_L); // FRACTION OF CRITICAL SPEED OF MILL FROM WHICH MODEL // PARAMETERS ARE DERIVED. DB.Double("CSfit", "", &mi_FracCriticalSpeedDerived , MF_PARAMETER , MC_Frac); // LOAD FRACTION (I.E. FRACTION OF MILL OCCUPIED BY // STATIONARY LOAD, INCLUDING VOIDS) OF MILL FROM // WHICH MODEL PARAMETERS ARE DERIVED. DB.Double("LFfit", "", &mi_FracLoadDerived , MF_PARAMETER , MC_Frac); // ORE WORK INDEX OF MILL FROM WHICH MODEL PARAMETERS ARE // DERIVED. DB.Double("WIfit", "", & mi_WorkIndexDerived , MF_PARAMETER , MC_WI); // Units?? DB.Double("BreakageRateFactor", "", & mi_K , MF_PARAMETER ); // Mill Ball Top Size DB.Double("BallSizefit", "", & mi_BallTopSizeDerived , MF_PARAMETER , MC_L ); DB.Page("Rate/Discharge Function"); DB.Long("NSplineKnots", "", &mi_NumSplineKnots , MF_PARAMETER ); if (mi_NumSplineKnots<3) mi_NumSplineKnots = 3; if (mi_NumSplineKnots > 30) mi_NumSplineKnots = 30; DB.Text("Size - Enter in units of um"); DB.Text("Size"); for (int i = 0; i < (mi_NumSplineKnots+1); i++) { char buff[20]; sprintf(buff,"K%d_Size",i); DB.Double( buff , "", &mi_KnotSize[i] , MF_PARAMETER , MC_L ); } DB.Text("Ln R/D* (meas)"); for (int i = 0; i < (mi_NumSplineKnots+1); i++) { char buff[20]; sprintf(buff,"K%d_LnRDm",i); DB.Double( buff , "", &mi_KnotLnRDStar[i] , MF_PARAMETER ); } DB.Text("Ln R/D* (calc)"); for (int i = 0; i < (mi_NumSplineKnots+1); i++) { char buff[20]; sprintf(buff,"K%d_LnRDc",i); DB.Double( buff , "", &mo_KnotLnRDStar[i] , MF_RESULT ); } DB.Page("Appearance Data"); for (int i = 0; i < 31; i++) { char buff[20]; sprintf(buff,"A%d",i);
void CSeperator_EfficiencyCurve::BuildDataFields(MDataDefn &DB) { DB.ObjectBegin("TS_EffCurve", "EffCurve"); DB.Text("Efficiency Curve"); //DB.StructBegin("TS_Top", "Top" ); DB.StructBegin("Top"); DB.Double("Alpha" , "", &m_dTopAlpha , MF_PARAMETER , MC_None); DB.Double("Beta" , "", &m_dTopBeta , MF_PARAMETER , MC_None); DB.Double("BetaStar" , "", &m_dTopBetaStar , MF_RESULT , MC_None); DB.Double("D50" , "", &m_dTopD50 , MF_PARAMETER , MC_L("mm")); DB.Double("C" , "", &m_dTopC , MF_PARAMETER , MC_None); DB.Double("WaterSplitToUS" , "", &m_dTopWaterSplitToUS, MF_PARAMETER , MC_Frac("%")); DB.StructEnd(); //DB.StructBegin("TS_Bottom", "Bottom" ); DB.StructBegin("Bottom" ); DB.Double("Alpha" , "", &m_dBottomAlpha , MF_PARAMETER , MC_None); DB.Double("Beta" , "", &m_dBottomBeta , MF_PARAMETER , MC_None); DB.Double("BetaStar" , "", &m_dBottomBetaStar , MF_RESULT , MC_None); DB.Double("D50" , "", &m_dBottomD50 , MF_PARAMETER , MC_L("mm")); DB.Double("C" , "", &m_dBottomC , MF_PARAMETER , MC_None); DB.Double("WaterSplitToUS" , "", &m_dBottomWaterSplitToUS , MF_PARAMETER , MC_Frac("%")); DB.StructEnd(); // // Outputs // DB.Page("Top Deck Partition"); CString Tg; for (int i=(m_TopEu.GetSize()-1); i>=0; i--) { Tg.Format("Top.I%02d", i); DB.Double((char*)(const char*)Tg, "", &m_TopEu[i], MF_RESULT, MC_Frac("%")); } DB.Page("Bottom Deck Partition"); for (int i=(m_BottomEu.GetSize()-1); i>=0; i--) { Tg.Format("Bottom.I%02d", i); DB.Double((char*)(const char*)Tg, "", &m_BottomEu[i], MF_RESULT, MC_Frac("%")); } DB.ObjectEnd(); }
void CLimn_ModelData_Base::BuildDataFields(MDataDefn & DD) { const int ArrayDbg=0; DD.Text("Parameters..."); //DD.Text(""); CString GridTxt; bool InArray=false; bool GridBusy=false; int m_ColCount=0; int m_ValCount=0; int m_iCol=0; int m_iRow=0; for (int i=0; i<DataCount(); i++) { if (m_Defs[i]) { CLimn_ModelData_ParmDef & D = *m_Defs[i]; for (int j=0; j<D.m_Hdrs.GetCount(); j++) { CLimn_ModelData_ParmHdr & H=D.m_Hdrs[j]; CString Txt(H.m_Text); if (H.m_nRows>1 && H.m_nCols>1) { Txt= "Matrix: "; m_ColCount=H.m_nCols; m_ValCount=H.m_nRows*H.m_nCols; m_iCol=0; m_iRow=0; } else if (H.m_nRows>1 || H.m_nCols>1) { Txt= "Vector: "; m_ColCount=H.m_nCols; m_ValCount=H.m_nRows*H.m_nCols; m_iCol=0; m_iRow=0; } Txt+=H.m_Text; DD.Page(H.m_Text, true); GridTxt=D.m_Tag; //DD.Text(Txt); } if (!D.m_Hide) { MD_Flags F=MF_PARAMETER; bool StartRow=false; bool EndRows=false; if (m_ValCount>0) { if (m_iCol==0) StartRow=true; if (++m_iCol>=m_ColCount) { m_iCol=0; m_iRow++; } if (--m_ValCount==0) { EndRows=true; } } if (D.m_ArrayBegin) { InArray=true; //CString Cls; //Cls.Format("DW_%s",D.m_Class); DD.ArrayBegin(D.m_Class, D.m_Tag, D.m_ArrayLen,0); if (ArrayDbg) gs_Dbg.PrintLn("ArrayBegin %s %s %i >>>>>>>>>>>", D.m_Class, D.m_Tag, D.m_ArrayLen); } if (StartRow) { if (!GridBusy) { DD.GridBegin(GridTxt, m_ColCount, m_ValCount/m_ColCount, 10, 0); GridBusy=true; } DD.GridRowStart(); } if (InArray) { if (D.m_iIndex>=0) DD.ArrayElementStart(D.m_iIndex, 0); else DD.ArrayElementStart(D.m_sIndex, 0); if (ArrayDbg) gs_Dbg.PrintLn("ArrayEle %s %i %s", D.m_Tag, D.m_iIndex, D.m_sIndex); //if (m_iCol==0) // DD.Text("XXXXXX"); CString S; //S.Format("%s[%s]", D.m_Tag, D.m_Index); //S=D.m_Index; S="V"; if (D.m_IsBool) DD.Bool (S, "", 1+i, F); else DD.Double(S, "", 1+i, F, D.m_Cnv); DD.ArrayElementEnd(0); } else { if (D.m_IsBool) DD.Bool (D.m_Tag, "", 1+i, F); else DD.Double(D.m_Tag, "", 1+i, F, D.m_Cnv); } if (EndRows) { DD.GridEnd(); GridBusy=false; } if (D.m_ArrayEnd) { DD.ArrayEnd(0); if (ArrayDbg) gs_Dbg.PrintLn("ArrayEnd %s %s <<<<<<<<<<<", "", ""); InArray=false; } } } } };