/* */ /* ' ########################################################### ' 小形コチ選定計算用JS ' Create 2013.08.30 J.Ito ' Modyfy ----.--.-- -------- ' ########################################################### */ var ST_INIT = "init" var ST_PROV_RESULT = "provisory_result" var ST_CONFIRM_LOAD = "confirm_load" var ST_REAL_CALC = "real_calc" var ST_REAL_CALC_RESULT = "real_calc_result" var m_arr; // DBから取得した値を格納 var m_sDebug = ""; var m_dG = 9.80665; var m_df1 = 0; // 摩擦係数 var m_dV = 0; // 入力値:搬送速度 var m_dKv = 0; // 速度係数 var m_dL = 0; // 入力値:水平方向距離 var m_dH = 0; // 入力値:垂直方向距離 var m_dC = 0; // 入力値:軸間距離 var m_dC2 = 0; // 入力値:軸間距離2 水平・傾斜搬送用 var m_dAttOtherW = 0; // 入力値:その他アタッチメント重量 var m_iAttSpanLink = 0; // 入力値:アタッチメント取付間隔 var m_dChainW1m = 0; // 入力値:チェーン1mあたりの重量 var m_dPitch = 0; // ピッチ var m_dMJ = 0; // 入力値:運行部治具の質量 var m_dM = 0; // 運行部質量(チェーン本体+治具質量) var m_dW = 0; // 入力値:搬送物質量 var m_dF = 0; // 作用張力 var m_dF_Para = 0; // 〃 並列 // 搬送形態の選択ボタンクリック時処理 function SelectConveyorType() { var $this = $( this); var sTbId = ""; var sImg = ""; var sImgSel = ""; var sL_Note = ""; var sH_Note = ""; var sC_Note = ""; var sC2_Note = ""; $( "#R_C").removeClass( "ReadOnly"); switch( $this.attr( "id")) { case "BtnHr": sTbId = "#ParamHr"; sImg = "cnvy_hr.jpg"; sImgSel = "cnvy_hr_sel.jpg"; sL_Note = "Center distance between sprockets L"; ShowDbgFormula( "DbgTblHR"); break; case "BtnVt": sTbId = "#ParamVt"; sImg = "cnvy_vt.jpg"; sImgSel = "cnvy_vt_sel.jpg"; sH_Note = "Center distance between sprockets H"; ShowDbgFormula( "DbgTblVT"); break; case "BtnSl": sTbId = "#ParamHr, #ParamVt, #ParamSl"; sImg = "cnvy_sl.jpg"; sImgSel = "cnvy_sl_sel.jpg"; sL_Note = "Base L"; sH_Note = "Height H"; sC_Note = "Center distance between sprockets C"; $( "#R_C").prop( "readonly", true); // 傾斜搬送はC自動計算 $( "#R_C").addClass( "ReadOnly"); ShowDbgFormula( "DbgTblSL"); break; case "BtnHrsl": sTbId = "#ParamHr, #ParamVt, #ParamSl, #ParamHrsl"; sImg = "cnvy_hrsl.jpg"; sImgSel = "cnvy_hrsl_sel.jpg"; sL_Note = "Base L1"; sH_Note = "Height H"; sC_Note = "Center distance between sprockets (horizontal point) C1"; sC2_Note = "Center distance between sprockets (inclined point) C2"; $( "#R_C").prop( "readonly", false); ShowDbgFormula( "DbgTblHRSL"); break; } // 入力欄を非表示にし、ボタンを元に戻す $( "#ParamHr, #ParamVt, #ParamSl, #ParamHrsl").hide(); $( "p.Btn").removeClass( "BtnSel"); // 水平搬送 $( "#BtnHr").children( "img").attr( "src", "./img/cnvy_hr.jpg"); $( "#ParamHr p:first").html( sL_Note); // 垂直搬送 $( "#BtnVt").children( "img").attr( "src", "./img/cnvy_vt.jpg"); $( "#ParamVt p:first").html( sH_Note); // 傾斜搬送 $( "#BtnSl").children( "img").attr( "src", "./img/cnvy_sl.jpg"); $( "#ParamSl p:first").html( sC_Note); // 水平・傾斜搬送 $( "#BtnHrsl").children( "img").attr( "src", "./img/cnvy_hrsl.jpg"); $( "#ParamHrsl p:first").html( sC2_Note); var $p = $this.parent( "p"); // ラジオボタンクリック $p.prev().children( ":radio").prop( "checked", true); // スプロケット中心距離テキストボックス表示 $( sTbId).show(); // ボタンを凹ます $p.addClass( "BtnSel"); $this.children( "img").attr( "src", "./img/" + sImgSel); HideArea( ST_REAL_CALC); } // 傾斜搬送、水平傾斜搬送の斜辺を自動計算 function CalcHypotenuse() { // 水平搬送、垂直搬送はリターン var sConveyor = $( ":radio[name=ConveyorType]:checked").val(); if( sConveyor == "HR" || sConveyor == "VT"){ return;} if( sConveyor == "SL"){ $( "#R_C").val( ""); }else if( sConveyor = "HRSL"){ $( "#R_C2").val( ""); } var sBuf = trimzen( $( "#R_L").val()); if( sBuf == ""){ return;} if( !IsNumeric( sBuf)){ return;} var dL = parseFloat( sBuf); sBuf = trimzen( $( "#R_H").val()); if( sBuf == ""){ return;} if( !IsNumeric( sBuf)){ return;} var dH = parseFloat( sBuf); var dC = Math.sqrt( Math.pow( dL, 2) + Math.pow( dH, 2)); dC = RoundUpDecimal( dC, 2); if( sConveyor == "SL"){ $( "#R_C").val( dC); }else if( sConveyor = "HRSL"){ $( "#R_C2").val( dC); } } // 搬送速度ロストフォーカス時処理 // 速度係数の決定 function DispKv() { SetInputParam(); SetSpeedFactor(); $( "#Kv").html( m_dKv); } function DispFrictionFactor() { SetFrictionFactor(); $( "#f1").html( m_df1); // 仮選定結果以下を非表示 HideArea( ST_INIT); } // 摩擦係数のセット function SetFrictionFactor() { var sRoller = $( "#Roller").val(); var sLube = $( "#Lube").val(); var sFigure = $( "#Figure").val(); var bGuideRollerOn = $( "#Guide_RollerOn").prop( "checked"); var bLubeMeth = $( "#LubeMeth_Y").prop( "checked"); m_df1 = 0; if( bGuideRollerOn){ // ローラがレール上を転がる時 // 潤滑・ローラ仕様 switch( sLube) { case "STANDARD": // 標準 if( sRoller == "R" && bLubeMeth == false){ m_df1 = 0.12;} if( sRoller == "R" && bLubeMeth == true) { m_df1 = 0.08;} if( sRoller == "S" && bLubeMeth == false){ m_df1 = 0.21;} if( sRoller == "S" && bLubeMeth == true) { m_df1 = 0.14;} break; case "LMC": // ラムダ case "LMCX": // 長寿命ラムダ if( sRoller == "R"){ m_df1 = 0.08;} if( sRoller == "S"){ m_df1 = 0.14;} break; case "P": case "PKV": if( sRoller == "R" && bLubeMeth == false){ m_df1 = 0.08;} break; case "PSN": if( sRoller == "R" && bLubeMeth == false){ m_df1 = 0.1;} break; } // 形状・仕様 switch( sFigure) { case "NB": case "NBH": case "NC": m_df1 = 0.21; break; } }else{ // プレートがレール上を滑る時 switch( sLube) { case "PC": // プラコンビチェーン m_df1 = 0.25; break; default: if( bLubeMeth){ // 潤滑有り m_df1 = 0.3; }else{ // 潤滑無し m_df1 = 0.3; } break; } } } // 摩擦係数のセット。仮選定のチェーンサイズ変更した時に係数を決定 function SetFrictionFactorByChainSize() { // RS25、RS35はローラなしのブシュのみのため係数変更 var sChainSize = $( "#ChainSize").val(); if( sChainSize == "RS25" || sChainSize == "RS35"){ m_df1 = 0.3; }else{ m_df1 = parseFloat( $( "#f1").html()); } } // 潤滑・ローラ仕様「ラムダ」選択時に材質・処理「コーティングNP」→「コーティングNP(NEP)」に変更 function ChangeDispLamda( obj) { // 潤滑・ローラ仕様のみ if( $( obj).attr( "name") != "Lube"){ return;} $( "#MaterialCoatingNP_Area").hide(); $( "#MaterialCoatingNP_ForLamdaArea").hide(); if( $( "#Lube").val() == "LMC"){ $( "#MaterialCoatingNP_ForLamdaArea").show(); }else{ $( "#MaterialCoatingNP_Area").show(); } } // 仮選定入力値チェック function CheckInputProvisory() { // 必須入力チェック if( !CheckCompulsoryInput( "Type")){ return false;} if( !CheckCompulsoryInput( "Roller")){ return false;} if( !CheckCompulsoryInput( "Lube")){ return false;} if( !CheckCompulsoryInput( "Figure")){ return false;} if( !CheckCompulsoryInput( "Material")){ return false;} if( !CheckCompulsoryInput( "V")){ return false;} if( !CheckCompulsoryInput( "W")){ return false;} // 数値チェック if( !CheckNumeric( "V")){ return false;} if( !CheckNumeric( "W")){ return false;} // 搬送速度は120m/minまで var dV = parseFloat( $( "#V").val()); if( dV > 120){ alert( "Conveying speed exceeds the allowable rate (120m/min). "); $( "#V").select(); return false; } return true; } // 本選定入力値チェック function CheckInputRealCalc() { // 必須入力 if( !CheckCompulsoryInput( "R_L")){ return false;} if( !CheckCompulsoryInput( "R_H")){ return false;} if( !CheckCompulsoryInput( "R_C")){ return false;} //if( !CheckCompulsoryInput( "R_C2")){ return false;} // その他選択時のみ if( !CheckCompulsoryInput( "R_AttachOtherW")){ return false;} if( !CheckCompulsoryInput( "R_AttachSpanLink")){ return false;} if( !CheckCompulsoryInput( "R_MJ")){ return false;} // 数値チェック if( !CheckNumeric( "R_L")){ return false;} if( !CheckNumeric( "R_H")){ return false;} if( !CheckNumeric( "R_C")){ return false;} //if( !CheckNumeric( "R_C2")){ return false;} if( !CheckNumeric( "R_AttachOtherW")){ return false;} if( !CheckNumeric( "R_AttachSpanLink")){ return false;} if( !CheckNumeric( "R_MJ")){ return false;} return true; } // 必須入力チェック function CheckCompulsoryInput( sId) { var sMsg = ""; switch( sId) { case "Type": sMsg = "Select a type. "; break; case "Roller": sMsg = "Select roller. "; break; case "Lube": sMsg = "Select lubrication & roller type. "; break; case "Figure": sMsg = "Select shape & series. "; break; case "Material": sMsg = "Select material & treatment. "; break; case "V": sMsg = "Input conveying speed. "; break; case "R_L": // 垂直搬送以外 if( $( ":radio[name=ConveyorType]:checked").val() != "VT") sMsg = "Input L. "; break; case "R_H": // 水平搬送以外 if( $( ":radio[name=ConveyorType]:checked").val() != "HR") sMsg = "Input H. "; break; case "R_C": // 水平・傾斜の時だけ if( $( ":radio[name=ConveyorType]:checked").val() == "HRSL") sMsg = "Input C1. "; break; case "R_C2": // 水平・傾斜のみ if( $( ":radio[name=ConveyorType]:checked").val() == "HRSL") sMsg = "Input C2. "; break; case "W": sMsg = "Input total mass of conveyed objects. "; break; case "R_AttachOtherW": if( $( ":radio[name=R_Attach]:checked").val() == "OTHER") sMsg = "Input mass when selecting 'Other' for attachment type. "; break; case "R_AttachSpanLink": sMsg = "Input attachment spacing. "; break; case "R_MJ": sMsg = "Input jig mass of moving areas. "; break; } if( sMsg == ""){ return true;} if( trimzen( $( "#" + sId).val()) == ""){ $( "#" + sId).focus(); alert( sMsg); return false; } return true; } // 入力値の数値チェック function CheckNumeric( sId) { var sMsg = ""; switch( sId) { case "V": sMsg = "Input a value for conveying speed. "; break; case "W": sMsg = "Input a value for total mass of conveyed objects. "; break; case "R_L": sMsg = "Input a value for L. "; break; case "R_H": sMsg = "Input a value for H. "; break; case "R_C": sMsg = "Input a value for C1. "; break; case "R_C2": sMsg = "Input a value for C2. "; break; case "R_AttachOtherW": if( $( ":radio[name=R_Attach]:checked").val() == "OTHER") sMsg = "Input a value for mass of attachment 'Other'. "; break; case "R_AttachSpanLink": sMsg = "Input a value for attachment spacing. "; break; case "R_MJ": sMsg = "Input a value for jig mass of moving areas. "; break; } if( sMsg == ""){ return true;} if( trimzen( $( "#" + sId).val()) == ""){ return true;} if( !IsNumeric( $( "#" + sId).val())){ $( "#" + sId).focus(); $( "#" + sId).select(); alert( sMsg); return false; } return true; } // アタッチメント種類ラジオクリック時処理 function onClickAttach() { // その他を選択した時、質量入力欄を表示する if( $( this).attr( "id") == "R_Attach_Other"){ $( "#AttachOtherArea").show(); $( "#R_AttachOtherW").focus(); }else{ $( "#AttachOtherArea").hide(); } // 「アタッチメント無し」を選択した時、アタッチメント取付間隔欄を非表示にする $( "#AttachSpanLinkArea").show(); if( $( this).val() == "NONE"){ // リンク数には1を入力。必須入力チェックを避けるため。 // アタッチメント無しはアタッチメント重量0kgになるのでリンク数は何個でもアタッチメント重量が0kgとなる。 $( "#R_AttachSpanLink").val( "1"); $( "#AttachSpanLinkArea").hide(); } HideArea( ST_REAL_CALC); } // 本選定を行う function CalcConveyorChain() { $( "#ResultRealCalcNoDataArea").hide(); $( "#ResultRealCalcExistDataArea").hide(); $( "#ResultArea").hide(); // 基本形番と仕様を取得 var arChain; $.ajax( { type: "GET" , cache: false , url: "calc_csc_getspec_listbox.asp" , data: "size=" + $( "#ChainSize").val() + "&type=" + $( "#Type").val() + "&roller=" + $( "#Roller").val() + "&lube=" + $( "#Lube").val() + "&fig=" + $( "#Figure").val() + "&mate=" + $( "#Material").val() + "&tens=" + m_dF + "&kv=" + m_dKv , async: false , dataType: "text" , success: function(dt){ arChain = eval( dt); } } ); ///// var sDebugUrl = "http://temold/tecs/calc/csc/calc_csc_getspec_listbox.asp?" ///// + "size=" + $( "#ChainSize").val() ///// + "&type=" + $( "#Type").val() ///// + "&roller=" + $( "#Roller").val() ///// + "&lube=" + $( "#Lube").val() ///// + "&fig=" + $( "#Figure").val() ///// + "&mate=" + $( "#Material").val() ///// + "&tens=" + m_dF ///// + "&kv=" + m_dKv; var sDebugUrl = "http://tt-net/tecs/calc/csc/calc_csc_getspec_listbox.asp?" + "size=" + $( "#ChainSize").val() + "&type=" + $( "#Type").val() + "&roller=" + $( "#Roller").val() + "&lube=" + $( "#Lube").val() + "&fig=" + $( "#Figure").val() + "&mate=" + $( "#Material").val() + "&tens=" + m_dF + "&kv=" + m_dKv; DebugPrint( m_dKv, "速度係数"); DebugPrint( sDebugUrl, "本選定形番取得URL(単列)"); if( arChain == ""){ // NoData表示 $( "#ResultRealCalcNoDataArea").show(); // 選定結果を非表示 $( "#S_Kata").html(""); $( "#S_AlwTens").html(""); $( "#S_TensRate").html(""); $( "#S_RolAlwLoad").html(""); $( "#ReqPowVal").html(""); $( "#ResultArea").hide(); // ボタンを表示と「お待ちください」非表示 $( "#R_BtnExecArea").show(); $( "#R_BtnParamClearArea").show(); $( "#R_WaitForCalcArea").hide(); return; } // 選定結果を表示(作用張力、所要動力を除く) var sUrl = GetUrlProductInfo( arChain[0].ChainNo); $( "#S_Kata").html( "" + arChain[0].ChainNo + ""); $( "#S_AlwTens").html( arChain[0].MaxAlwT_kN); // 張力余裕率 var dRate = parseFloat( arChain[0].MaxAlwT_kN / $( "#S_WorkTens").html()); $( "#S_TensRate").html( AddDecimalKeta( String( RoundDecimal( dRate, 3)), 3)); $( "#S_RolAlwLoad").removeClass(); var bRolAlCommentShow = false; var sLoad = ""; if( arChain[0].AlwRolLoad_kN == null){ if( arChain[0].ChainNo == "RS25" || arChain[0].ChainNo == "RS35"){ sLoad = "※"; bRolAlCommentShow = true; $( "#ResultCautionRolAlwLoadArea").show(); }else{ sLoad = "-"; } $( "#S_RolAlwLoad").addClass( "AlignC"); }else{ sLoad = arChain[0].AlwRolLoad_kN; $( "#S_RolAlwLoad").addClass( "AlignR"); $( "#ResultCautionRolAlwLoadArea").hide(); } $( "#S_RolAlwLoad").html( sLoad); if( $( ":radio[name=RunType]:checked").val() == "Single") $( "#ResultRunType").html( "Single strand "); else $( "#ResultRunType").html( "Double strand "); // 「選定結果をご確認ください」表示 $( "#ResultRealCalcExistDataArea").show(); $( "#ResultArea").show(); // ボタンを表示と「お待ちください」非表示 $( "#R_BtnExecArea").show(); $( "#R_BtnParamClearArea").show(); $( "#R_WaitForCalcArea").hide(); } // 入力値を変数にセット function SetInputParam() { m_dV = parseFloat( $( "#V").val()); // 搬送速度 m_dW = parseFloat( $( "#W").val()); // 搬送物総質量 m_dL = parseFloat( $( "#R_L").val()); // スプロケット間距離(幅) m_dH = parseFloat( $( "#R_H").val()); // 〃(高さ) // 傾斜部の斜辺を自動計算 switch( $( ":radio[name=ConveyorType]:checked").val()) { case "SL": if( $( "#R_C").val() == "") $( "#R_H").blur(); break; case "HRSL": if( $( "#R_C2").val() == "") $( "#R_H").blur(); break; } m_dC = parseFloat( $( "#R_C").val()); // 〃(傾斜または水平傾斜の水平部分) m_dC2 = parseFloat( $( "#R_C2").val()); // 〃(水平傾斜の傾斜部分) m_iAttSpanLink = parseFloat( $( "#R_AttachSpanLink").val()); // アタッチメント取付間隔 ○リンクにつき△個の○の方 m_dMJ = parseFloat( $( "#R_MJ").val()); // 治具質量 } // 速度係数の決定 function SetSpeedFactor() { DebugPrint( m_dV, "搬送速度"); m_dKv = 0; if( m_dV <= 15){ m_dKv = 1;} else if( m_dV <= 30){ m_dKv = 1.2;} else if( m_dV <= 50){ m_dKv = 1.4;} else if( m_dV <= 70){ m_dKv = 1.6;} else if( m_dV <= 90){ m_dKv = 2.2;} else if( m_dV <= 110){ m_dKv = 2.8;} else if( m_dV <= 120){ m_dKv = 3.2;} } // 作用張力の計算 function CalcWorkingTension() { // 1メートル当たりのアタッチメント質量を返す var GetAttWt1m = function(){ $( "#DbgPitch").html( m_dPitch); // 1mあたり何リンクか(切り上げ) var iLink = Math.ceil( 1000 / m_dPitch); $( "#DbgAttW_PerKo").html( dAttW); $( "#DbgLink").html( iLink); // 1m当たりリンク数 / アタッチメント取付間隔 * 1個当たりのアタッチメント質量 var ret = iLink / m_iAttSpanLink * dAttW; if( $( ":radio[name=RunType]:checked").val() == "Parallel"){ // 並列の場合は、チェーン質量とアタッチメント質量は2倍 ret *= 2; } $( "#DbgAttW").html( ret); return ret; } // 作用張力(単列時、並列時)を表示 var DispWorkTension = function(){ var sWT = String( RoundDecimal( m_dF * m_dKv, 3)); $( "#S_WorkTens").html( AddDecimalKeta( sWT, 3)); $( "#Dbg_WT_F").html( m_dF); $( "#Dbg_WT_Kv").html( m_dKv); } // 静的最大張力値を設定する var SetTension = function(){ // 並列時の作用張力は、単列時の0.6倍 if( $( ":radio[name=RunType]:checked").val() == "Parallel"){ m_dF *= 0.6; } } // ボタンを非表示と「お待ちください」表示 $( "#R_BtnExecArea").hide(); $( "#R_BtnParamClearArea").hide(); $( "#R_WaitForCalcArea").show(); // アタッチメント質量取得 var dAttW = 0; if( $( "#R_Attach_Other").prop( "checked") == true){ // アタッチメント種類「その他」選択 dAttW = parseFloat( trimzen( $( "#R_AttachOtherW").val())); }else{ var sKey = "W_ATT_"; var sAttach = $( ":radio[name=R_Attach]:checked").val(); sKey += sAttach; if( sAttach == "ASA" || sAttach == "KKA"){ var sFig = $( "#Figure").val(); var sMate = $( "#Material").val(); if( sFig != "NB"){ // ステンレス仕様。NBはステンレス仕様のレコードを持っているため、ここでは除外 if( sMate == "SS" || sMate == "AS" || sMate == "NS") sKey += "_SS"; } } if( sAttach == "NONE"){ dAttW = 0; }else{ dAttW = m_arr[ sKey]; } } /* var m_df1 = 0; // 摩擦係数 var m_dV = 0; // 入力値:搬送速度 var m_dKv = 0; // 速度係数 var m_dL = 0; // 入力値:水平方向距離 var m_dH = 0; // 入力値:垂直方向距離 var m_dC = 0; // 入力値:軸間距離 var m_dC2 = 0; // 入力値:軸間距離2 水平・傾斜搬送用 ※var m_dM = 0; // 入力値:運行部分の質量 var dAttW = 0; // 選択値:アタッチメント重量/個 var m_iAttSpanLink = 0; // 入力値:アタッチメント取付間隔 var m_dMJ = 0; // 入力値:運行部治具の質量 var m_dPitch = 0; // ピッチ数 var m_dW = 0; // 入力値:搬送物質量 var m_dFHR = 0; // 作用張力 水平搬送 var m_dFHRpara = 0; // 〃 水平搬送並列 var m_dFVT = 0; // 〃 垂直搬送 var m_dFVTpara = 0; // 〃 垂直搬送並列 var m_dFSL = 0; // 〃 傾斜搬送 var m_dFSLpara = 0; // 〃 傾斜搬送並列 var m_dFHRSL = 0; // 〃 水平・傾斜搬送 var m_dFHRSLpara = 0; // 〃 水平・傾斜搬送並列 m_dM --> チェーン質量+治具質量(m_dMJ) 作用張力は静的最大張力×速度係数(カタログP123参照) */ // チェーン質量/m + アタッチメント質量/m + 治具質量/m m_dM = m_dChainW1m + GetAttWt1m() + m_dMJ; $( "#DbgM").html( m_dM - m_dMJ); $( "#DbgMC_PerMeter").html( m_dChainW1m); // デバッグ表示用に最大張力(F)、F×0.6、F×Kv、F×Kv×0.6の計算結果を表示 var CalcTensForDebug = function( sConveyorType) { var dF = m_dF; if( $( ":radio[name=RunType]:checked").val() == "Parallel"){ // 並列の場合は、張力を0.6倍する前に戻す dF = dF / 0.6; } $( "#DbgMaxT_F_" + sConveyorType).html( dF); $( "#DbgMaxT_F06_" + sConveyorType).html( dF * 0.6); $( "#DbgMaxT_F_Kv_" + sConveyorType).html( dF * m_dKv); $( "#DbgMaxT_F06Kv_" + sConveyorType).html( dF * 0.6 * m_dKv); $( "#TR_DbgMaxT_F06_" + sConveyorType).hide(); $( "#TR_DbgMaxT_F_Kv_" + sConveyorType).hide(); $( "#TR_DbgMaxT_F06Kv_" + sConveyorType).hide(); if( $( ":radio[name=RunType]:checked").val() == "Parallel"){ // 並列 $( "#TR_DbgMaxT_F06_" + sConveyorType).show(); $( "#TR_DbgMaxT_F06Kv_" + sConveyorType).show(); }else{ // 単列 $( "#TR_DbgMaxT_F_Kv_" + sConveyorType).show(); } }; switch( $( ":radio[name=ConveyorType]:checked").val()) { case "HR": m_dF = (m_dW + 2.1 * m_dM * m_dL) * m_df1 * m_dG / 1000; // 最大張力の計算結果をデバッグ用に表示 CalcTensForDebug( "HR"); // m_dF(静的最大張力値)を設定。作用張力計算の前に行う //SetTension(); $( "#DbgMaxT_W_HR").html( m_dW); $( "#DbgMaxT_M_HR").html( m_dM); $( "#DbgMaxT_L_HR").html( m_dL); $( "#DbgMaxT_f1_HR").html( m_df1); $( "#DbgMaxT_MC_HR").html( m_dM - m_dMJ); $( "#DbgMaxT_MJ_HR").html( m_dMJ); DispWorkTension(); break; case "VT": // 垂直搬送 m_dF = (m_dW + m_dM * m_dH) * m_dG / 1000; // 最大張力の計算結果をデバッグ用に表示 CalcTensForDebug( "VT"); //SetTension(); $( "#DbgMaxT_W_VT").html( m_dW); $( "#DbgMaxT_M_VT").html( m_dM); $( "#DbgMaxT_H_VT").html( m_dH); $( "#DbgMaxT_f1_VT").html( m_df1); $( "#DbgMaxT_MC_VT").html( m_dM - m_dMJ); $( "#DbgMaxT_MJ_VT").html( m_dMJ); DispWorkTension(); break; case "SL": if( (m_dL * m_df1 - m_dH) < 0){ m_dF = ((m_dW + m_dM * m_dC) * (m_dL * m_df1 + m_dH) / m_dC + 1.1 * m_dM * 0) * m_dG / 1000; }else{ m_dF = ((m_dW + m_dM * m_dC) * (m_dL * m_df1 + m_dH) / m_dC + 1.1 * m_dM * (m_dL * m_df1 - m_dH)) * m_dG / 1000; } // 最大張力の計算結果をデバッグ用に表示 CalcTensForDebug( "SL"); //SetTension(); $( "#DbgMaxT_W_SL").html( m_dW); $( "#DbgMaxT_M_SL").html( m_dM); $( "#DbgMaxT_H_SL").html( m_dH); $( "#DbgMaxT_C_SL").html( m_dC); $( "#DbgMaxT_L_SL").html( m_dL); $( "#DbgMaxT_f1_SL").html( m_df1); $( "#DbgMaxT_MC_SL").html( m_dM - m_dMJ); $( "#DbgMaxT_MJ_SL").html( m_dMJ); DispWorkTension(); break; case "HRSL": if( (m_dL * m_df1 - m_dH) < 0){ m_dF = (((m_dW / (m_dC + m_dC2)) + 2.1 * m_dM) * m_dC * m_df1 + ((m_dW / (m_dC + m_dC2)) + m_dM) * (m_dL * m_df1 + m_dH) + 1.1 * m_dM * 0) * m_dG / 1000; }else{ m_dF = (((m_dW / (m_dC + m_dC2)) + 2.1 * m_dM) * m_dC * m_df1 + ((m_dW / (m_dC + m_dC2)) + m_dM) * (m_dL * m_df1 + m_dH) + 1.1 * m_dM * (m_dL * m_df1 - m_dH)) * m_dG / 1000; } // 最大張力の計算結果をデバッグ用に表示 CalcTensForDebug( "HRSL"); //SetTension(); $( "#DbgMaxT_W_HRSL").html( m_dW); $( "#DbgMaxT_C1_HRSL").html( m_dC); $( "#DbgMaxT_C2_HRSL").html( m_dC2); $( "#DbgMaxT_M_HRSL").html( m_dM); $( "#DbgMaxT_H_HRSL").html( m_dH); $( "#DbgMaxT_L1_HRSL").html( m_dL); $( "#DbgMaxT_f1_HRSL").html( m_df1); $( "#DbgMaxT_MC_HRSL").html( m_dM - m_dMJ); $( "#DbgMaxT_MJ_HRSL").html( m_dMJ); DispWorkTension(); break; } } // 所要動力の計算 function CalcRequiredPower() { var sWarnPow = "
The mechanical transmission efficiency of the drive area is calculated as 1.
"; var dPower = 0; // 所要動力(計算用) var sNum = ""; var sPower = ""; // 所要動力(表示用) var iEta = 1; // 伝達機械効率 // 確認用計算式の非表示 $( "#DbgTbl_kW_HR").hide(); $( "#DbgTbl_kW_VT").hide(); $( "#DbgTbl_kW_SL").hide(); $( "#DbgTbl_kW_HRSL").hide(); switch( $( ":radio[name=ConveyorType]:checked").val()) { case "HR": // 水平搬送 dPower = m_dF * m_dV / 60 * 1 / iEta; sNum = String( RoundDecimal( dPower, 3)); sPower = "" + AddDecimalKeta( sNum, 3) + "
"; sPower += sWarnPow; $( "#DbgTbl_kW_HR").show(); $( "#Dbg_kw_HR_F").html( m_dF); $( "#Dbg_kw_HR_V").html( m_dV); break; case "VT": // 垂直搬送 dPower = m_dW * m_dV / 60 * m_dG / 1000 * 1 / iEta; sNum = String( RoundDecimal( dPower, 3)); sPower = "" + AddDecimalKeta( sNum, 3) + "
"; sPower += sWarnPow; $( "#DbgTbl_kW_VT").show(); $( "#Dbg_kw_VT_W").html( m_dW); $( "#Dbg_kw_VT_V").html( m_dV); break; case "SL": // 傾斜搬送 if( (m_dH - m_dL * m_df1) < 0){ dPower = m_dV / 60 * (m_dF - m_dM * 0 * m_dG / 1000) * 1 / iEta; }else{ dPower = m_dV / 60 * (m_dF - m_dM * (m_dH - m_dL * m_df1) * m_dG / 1000) * 1 / iEta; } sNum = String( RoundDecimal( dPower, 3)); sPower = "" + AddDecimalKeta( sNum, 3) + "
"; sPower += sWarnPow; $( "#DbgTbl_kW_SL").show(); $( "#Dbg_kw_SL_V").html( m_dV); $( "#Dbg_kw_SL_F").html( m_dF); $( "#Dbg_kw_SL_M").html( m_dM); $( "#Dbg_kw_SL_H").html( m_dH); $( "#Dbg_kw_SL_L").html( m_dL); $( "#Dbg_kw_SL_f1").html( m_df1); break; case "HRSL": // 水平・垂直搬送 if( (m_dH - m_dL * m_df1) < 0){ dPower = m_dV / 60 * (m_dF - m_dM * 0 * m_dG / 1000) * 1 / iEta; }else{ dPower = m_dV / 60 * (m_dF - m_dM * (m_dH - m_dL * m_df1) * m_dG / 1000) * 1 / iEta; } sNum = String( RoundDecimal( dPower, 3)); sPower = "" + AddDecimalKeta( sNum, 3) + "
"; sPower += sWarnPow; $( "#DbgTbl_kW_HRSL").show(); $( "#Dbg_kw_HRSL_V").html( m_dV); $( "#Dbg_kw_HRSL_F").html( m_dF); $( "#Dbg_kw_HRSL_M").html( m_dM); $( "#Dbg_kw_HRSL_H").html( m_dH); $( "#Dbg_kw_HRSL_L1").html( m_dL); $( "#Dbg_kw_HRSL_f1").html( m_df1); break; } $( "#ReqPow").html( sPower); } // ログの書き出し function PutLog(){ var sLogStr; sLogStr = $( "#R_ChainType").html() // タイプ + "__tab__" + $( "#R_Roller").html() // ローラ形式 + "__tab__" + $( "#R_Lube").html() // 仕様1 + "__tab__" + $( "#R_Figure").html() // 仕様2 + "__tab__" + $( "#R_Material").html(); // 仕様3 switch($( ":radio[name=RunType]:checked").val()){ // 並列・単列 case "Parallel": sLogStr = sLogStr + "__tab__" + "2本並列"; break; case "Single": sLogStr = sLogStr + "__tab__" + "単列"; break; } sLogStr = sLogStr + "__tab__" + $( "#R_V").html().replace( " m/min", "") // 搬送速度 V + "__tab__" + $( "#R_W").html().replace( " kg", "") // 搬送物総質量 W + "__tab__" + $( "#R_Guide").html() // ガイド方式 + "__tab__" + $( "#R_LubeMeth").html() // ローラ・ブシュ間の潤滑 + "__tab__" + $( "#R_Kv").html() // 速度係数 Kv + "__tab__" + $( "#R_f1").html() // 摩擦係数 f1 + "__tab__" + $( "#ChainSize").val(); // 仮選定したサイズ switch($( ":radio[name=ConveyorType]:checked").val()){ // コンベヤタイプ case "HRSL": sLogStr = sLogStr + "__tab__" + "水平・傾斜搬送"; break; case "SL": sLogStr = sLogStr + "__tab__" + "傾斜搬送"; break; case "VT": sLogStr = sLogStr + "__tab__" + "垂直搬送"; break; case "HR": sLogStr = sLogStr + "__tab__" + "水平搬送"; break; } sLogStr = sLogStr + "__tab__" + $( "#R_L").val() // 底辺 L1 + "__tab__" + $( "#R_H").val() // 高さ H + "__tab__" + $( "#R_C").val() // スプロケット中心距離(水平箇所) C1 + "__tab__" + $( "#R_C2").val(); // スプロケット中心距離(傾斜箇所) C2 switch($( ":radio[name=R_Attach]:checked").val()){ // アタッチメント種類 case "ASA": sLogStr = sLogStr + "__tab__" + "A・SA"; break; case "KKA": sLogStr = sLogStr + "__tab__" + "K・SK"; break; case "EP": sLogStr = sLogStr + "__tab__" + "EP"; break; case "AASAA": sLogStr = sLogStr + "__tab__" + "AA・SAA"; break; case "KKSKK": sLogStr = sLogStr + "__tab__" + "KK・SKK"; break; case "WAWSA": sLogStr = sLogStr + "__tab__" + "WA・WSA"; break; case "WKWSK": sLogStr = sLogStr + "__tab__" + "WK・WSK"; break; case "OTHER": sLogStr = sLogStr + "__tab__" + "その他"; break; case "NONE": sLogStr = sLogStr + "__tab__" + "無し"; break; } sLogStr = sLogStr + "__tab__" + $( "#R_AttachSpanLink").val() // アタッチメント取付間隔 + "__tab__" + $( "#R_MJ").val() // 1メートル当たりの治具質量 + "__tab__" + $( "#S_WorkTens").html(); // 作用張力 kN if($( "#S_KataStr")[0]){ sLogStr = sLogStr + "__tab__" + $( "#S_KataStr").html(); // 品名 }else{ sLogStr = sLogStr + "__tab__張力不足"; // 仮選定形番では張力不足の場合 } sLogStr = sLogStr + "__tab__" + $( "#S_AlwTens").html() // 許容張力 kN + "__tab__" + $( "#S_TensRate").html() // 張力余裕率 + "__tab__" + $( "#S_RolAlwLoad").html() // ローラ許容負荷 kN + "__tab__" + $( "#ReqPowVal").html(); // 所要動力 kW $.ajax( { type: "GET" , cache: false , url: "/tecs/calc/calc_putlog.asp" // , data: "mode=cc" , data: "logfp=d:\\wwwroot\\tecs\\calc\\csc\\log\\CSCAccessLog.txt" + "&val4log=" + sLogStr , async: false // , dataType: "text" // , success: function(dt){ // arChain = eval( dt); // } } ); } // 静的最大張力から該当するチェーンサイズを仮選定する function ProvisionalDecisionChainSize() { // 入力値チェック if( !CheckInputProvisory()){ return;} // 仮選定結果以下を非表示 HideArea( ST_INIT); $( "#WaitForProvisoryArea").show(); // 静的最大張力(F)を求める // F(kN)=W×f1×Kv×G/1000 var dW = parseFloat( $( "#W").val()); var dKv = parseFloat( $( "#Kv").html()); var df1 = parseFloat( $( "#f1").html()); var dG = parseFloat( $( "#G_Forces").html()); var dF = dW * df1 * dKv * dG / 1000; // 並列走行の張力は単列の0.6倍 if( $( ":radio[name=RunType]:checked").val() == "Parallel") dF *= 0.6; // Fを満たす最小の許容張力を持つチェーンサイズ決定 - ① // 形番パターンの生成 var sType = $( "#Type").val(); var sRoller = $( "#Roller").val(); var sKataMatch = GetMatchKata( sType + "___PERCENT___[0-9]" + sRoller); // 条件に合うチェーンの形番、最大許容張力、重量などを格納する配列 var arChain; // 生成した形番パターンをキーにtecs_csc_tens、tecs_csc_tensテーブル検索 // ①の最大許容張力、概略質量、ピッチを取得 - ② $.ajax( { type: "GET", cache: false, // キャッシュを読み込まない url: "calc_csc_getchain.asp", data: "kata=" + sKataMatch + "&F=" + dF, // url先に渡すデータ async: false, // 同期する(url処理が終わるまで待つ) dataType: "text", // 結果を受け取る型 success: function(dt){ // 処理成功時に行う処理 arChain = eval( dt); } } ); ///// var sDebug = "http://temold/tecs/calc/csc/calc_csc_getchain.asp?" ///// + "kata=" + sKataMatch ///// + "&F=" + dF; var sDebug = "http://tt-net/tecs/calc/csc/calc_csc_getchain.asp?" + "kata=" + sKataMatch + "&F=" + dF; DebugPrint( sDebug, "仮選定用SQL"); //DebugPrint( sKataMatch, "形番パターン"); if( arChain == "" || dF == 0){ // 該当なし $( "#ResultProvisoryNoDataArea").show(); // 静的最大張力 $( "#StaticTension").html( RoundDecimal( dF, 3)); // チェーンサイズ AddListChainSize( null, "", ""); // 最大許容張力 $( "#AllowableTension").html( "-"); // 概略質量 $( "#ChainWeight").html( "-"); // ピッチ $( "#ChainPitch").html( "-"); }else{ DebugPrint( dF, "静的最大張力"); // データあり // ②を結果に表示 $( "#StaticTension").html( RoundDecimal( dF, 3)); AddListChainSize( arChain, sType, sRoller); $( "#AllowableTension").html( arChain[0].MaxAlwT_kN); $( "#ChainWeight").html( arChain[0].Weight); $( "#ChainPitch").html( arChain[0].DimP); // ピッチ、チェーン質量/mを変数にセット m_dPitch = parseFloat( arChain[0].DimP); m_dChainW1m = parseFloat( arChain[0].Weight); if( $( ":radio[name=RunType]:checked").val() == "Parallel"){ // 並列の場合は、チェーン質量とアタッチメント質量は2倍 m_dChainW1m *= 2; } $( "#DbgPitch").html( m_dPitch); $( "#DbgMC_PerMeter").html( m_dChainW1m); // 選択した形番と同シリーズの許容負荷を全て取得 var arLoad; $.ajax( { type: "GET", cache: false, url: "calc_csc_getload.asp", data: "kata=" + sKataMatch , async: false, dataType: "text", success: function(dt){ arLoad = eval( dt); } } ); // 前回の仮選定分を消去 $( "#TblRollerAL tbody tr").remove(); // 許容負荷の確認欄を表示 var bRolAlCommentShow = false; for( var i=0; i < arLoad.length; i++) { var sRow = "