アドインを検索していたらこんなページが出てきた。
断面計算やねじれは要るよねーと思っていたけど、たしかに地耐力計算もシンプルだけど面倒なので関数ほしくなりそう。
さて、まずは基本である断面性能を計算する関数を作ってみる。ビルドHの断面積とか断面二次モーメントを算出するなど。
H、ボックス、パイプの断面性能算出があるだけでもそこそこ便利な気がするので、そこを目指す。
関数名はSTBを参考にして、例えばビルドHはStbSecBuild-Hなので、STF.secBuildHというような形にしていこうと思う。(エクセルだと全部大文字になっちゃうのでSTF.SECBUILDHだけど。)
2024/2/5追記
関数の表示名は小文字も指定できるらしい。
引数名なども、属性名などに準拠していく。
こんな感じにしないと英語が苦手な私は関数名で永遠に悩んでしまうので。
さて、関数の使用であるが、前記事で紹介した、stlibとx-funxはどのようになっているかを見てみると2通りのパターンがある。
stlibでは断面の性能一つ一つに関数が割り振られている。例えばパイプの断面積はpipeA、断面二次モーメントはpipeIなど。
一方X-FUNXではBuildPの様に断面性能の関数はまとまっていて、「型」という引数を文字列(またはid)で指定し、選んだ性能を返すという仕組みになっている。
前者の形式のメリットは、関数の実装がシンプルになるのと、文字列による指定を行わないために入力ミスが減る。一方で関数の数が膨大になる。
後者のメリットは、追加で計算したい断面性能などが出た時の追加がやりやすい。
前者にすると、似た名前の関数が増えてExcelのサジェストがちょっと鬱陶しくなる気がするのと、後者を使えば、将来的にスピルを利用して、複数の断面性能を一度に出力できたりしそうなので(型指定を"A,I"にするなど)後者の方式を使う方針とする。
型の位置についてだが、X-FUNXは引数が寸法パラメータ→型の順番になっている。しかし、いろいろな関数で型の引数の位置が異なるというのは共通処理を実装したりするときに不便になりそうなので、ST_FUNCでは型→寸法パラメータの順番にする。そうすれば寸法パラメータを可変にしたりいろいろ処理の幅が広がりそうな気がする。
もう一つ趣味が分かれそうなのは、部材座標軸の取り方がある。
強軸、弱軸をX,Yとするか、Y,Zとするか。
前者は断面をXY平面と見たもの。後者は、線材をイメージして材軸方向をXとしたもの。
今回はStbAnaSectionに準じて、強軸をY、弱軸をZとすることにする。
2024/4/13追記
記事断面の部材座標軸の変更で記載したが、
JISの断面性能表の表記に合わせて強軸X、弱軸Yとすることにした。
ということで、次回から実際の関数の実装にチャレンジしてみようと思う