はじめに
Step1
入力部分
今回も少しずつ形作ろうと思います。まずは、入力部分まで作成していくことにします。
「Visual Studio」を起動し、いつもどおり「Windowsフォームアプリケーション(.NET Framework)」を選択し「次へ」ボタンを押します。
画面が開いたら、イメージ図だけとりあえず貼り付けました。
入力データは、計12個ありますので、頑張ってそれに対するテキストボックスとコンボボックスを作成します。
鉄筋径のコンボボックスに選択項目を追加します。
プロパティの「Items」を選択し、そこに選択項目を入力します。
これで、起動時に鉄筋径を選べる状態になります。
コンクリート条件入力のコンボボックスに選択項目を追加します。
プロパティの「Items」を選択し、そこに選択項目を入力します。
これで、起動時に設計基準強度を選べる状態になります。
これまで作ってきたソフト同様、数字のみしか入力できないように制限をします。
各テキストボックスボックスのプロパティで「イベント」(カミナリボタン)を押して「KeyPress」をダブルクリックします。
そこに、画像に示す内容を書きます。
今回は、textBox1からtexBox7までは小数の入力が可能とし、textBox8、9は整数のみの入力しかできないようにします。
Step2
全角から半角に変換する準備
全角を半角に変換できる命令文が書けるようにその準備をします。
ソリューションエクスプローラーの「参照」を右クリックします。
そうするとメニューが表示されるので「参照の追加」をクリックします。
「参照マネージャー」ダイアログが表示されますので、「アセンブリ」を選択し、表示されるアセンブリの一覧から 「Microsoft.VisualBasic」を選択し「OK」ボタンをクリックします。
コードを書く画面に移動し一番上の方に「using Microsoft.VisualBasic;」を追加します。
これで、全角を半角にする命令文が書けるようになります。
Step3
少しずつ計算(その1)
まず、「計算実行」ボタンを作成します。
ツールボックスから「Button」を選択し、フォームに貼り付けます。
プロパティの「Text」を「計算実行」にします。
「計算実行」ボタンをダブルクリックしコードが書ける画面にします。
まずは、画像のとおり入力漏れがあった場合の処理をします。
入力データを取得します。
全角から半角に変換するため、ここでは文字列として取得します。
全角文字がある場合、半角文字に変換します。
コードは画像のとおりです。
文字列を数字に変換します。
コードは画像のとおりです。
変数rebarAreaP、CとrebarPerimeterP、Cを宣言します。
次に鉄筋径のコンボボックスで選択された値を変数selectedItemPとCの宣言と同時に選択項目を格納しています。
そして、selectedItemPとCに格納されたいる値に対してswitch文を適用し、変数rebarAreaPとCおよびrebarPerimeterP
とCにそれに対応する鉄筋面積および周長を格納しています。
画像は、まず、許容応力を格納する変数を宣言しています。ここで、鉄筋の許容引張応力度はコンクリート強度に関係なく一定の ため、変数を設けていません。
次に、コンクリート条件入力の設計基準強度のコンボボックスで選択された値を変数selectedItemCoの宣言と同時に格納しています。
後は、switch文でコンクリート強度で変わる許容応力を各変数に格納します。
鉄筋量と周長の合計を計算します。
フォームに計算結果を表示するテキストボックスを貼り付けます。
画像は、鉄筋量と周長の合計を計算するコードです。
計算後、各々の計算結果をフォームに表示するようにしています。
また、ここで幅1000mmあたりに換算してそれぞれの鉄筋量と周長を計算しています。
Step4
少しずつ計算(その2)
まずは中立軸を求める必要があるようです。
中立軸を求める式は画像のとおりです。これまた、難解でかなり手強そうです。
とにかく少しずつ打破していくしかありません。
まずは、計算間違いがないようにxを求める式の係数部分を計算しようと思います。
それぞれ、変数をcoefficient1、2、3とします。
係数の計算結果をフォームに表示したいと思います。
フォームにテキストボックスを貼り付けます。
係数を計算するコードです。
計算の中で「6.0*15.0/1000.0」としていますが、なぜかこうしないと計算結果が0になってしますので
小数表記にしています。
係数の計算ができたので、あとはxを計算するのみとなります。
「計算実行」ボタンの続きで入力してもよいのですが、ここで新たな試みとして独自の関数を作成してみます。
関数の作成方法は、付けたい関数の名前と、その後に()をつければ作成できます。
早速作成してみます。「計算実行」ボタンと同じ層(下層だと参照できないようです。)に新たに「private double Xkai(double a,double b,double c,double d,double x0){}」
というコードを入力します。これで、関数を宣言できたことになります。ここで「double Xkai」としているのは,
Xkaiという関数名は小数ですという意味になります。
また、()内の変数は、「計算実行」ボタン内の変数等を受け取り、各々の変数に格納する役割になります。
関数内のコードの中身ですが、おいさんも良くわかりません。だけれどもこのコードで計算できるようです。
また、「double[] coff=new double[3];」は配列というものらしく、この場合coff[0]、coff[1]、coff[2]の3つの変数を作成しているようです。
その他に「while (true){}」は{}内を無限にループするようで、「break;」によってそのループから抜けれるようです。
ファーム上にxの計算結果を表示するテキストボックスを用意します。
ここではtextBox16になります。
「計算実行」のコード内に戻り、関数を実行するコードを追加します。
実行方法は、単純に関数名を書きます。さらに今回の場合は関数に渡す変数等を( )内に書く必要があります。
また、計算結果を変数「xaxis」に格納しています。
Step5
少しずつ計算(その3)
中立軸の計算ができたので、コンクリートの曲げ圧縮応力を求めます。
求める式は画像のとおりとなります。まあまあ長いです。
コンクリートの曲げ圧縮応力の計算結果を表示するテキストボックスをフォーム上に用意します。
また、判定用のラベルも併せて用意しています。
コンクリートの曲げ圧縮応力度の計算コードです。
「計算実行」ボタン内のコードの続きになります。
併せて、判定用のコードも書いています。計算結果はテキストボックスに出力し、判定はラベルで表示するようにしています。
鉄筋の各応力度を求めます。
圧縮側と引張側の応力度の計算式は画像のとおりとなります。
せん断力と付着力の計算式は以前と同様ですので割愛します。
鉄筋応力の計算結果と判定を表示するテキストボックスとラベルをフォーム上に追加します。
鉄筋の応力度を計算するコードと判定用のコードになります。
鉄筋のせん断力と付着力を求めるコードになります。
併せて判定用のコードも書いています。
ここで一旦実行してみます。
無事計算ができていて判定もできています。 よかった。
最後に判定用のラベルを起動時には消しておくようにするため、コードを追記します。
フォームをダブルクリックしてその中に画像のコードを入力します。
以上で、全コードの入力完了になります。今回も長かった。
Step6
画面の調整
コンボボックスにキー入力ができないようにしたり、テキストボックスの表示を右寄せにしたり、
フォームの最大化を制限をかけたりと、画面の調整をします。
以上で完成になります。
前回、RC断面にせん断力と曲げモーメントが作用した場合の必要鉄筋本数と断面検討を行うソフトを作成しました。
今回は、さらに軸力が作用した場合のソフトを作成したいと思います。