ST_FUNC開発日記

建築構造設計Excelアドイン開発の記録

マニフェストの修正

あまり見ないようにしていた本丸?であるマニフェストを見直していく。 learn.microsoft.com こちらを参考にしつつ。 Id:プロジェクト固有のid。とりあえず放置 Version:バージョン。ゼロ始まりって可能なのかな?開発中ということでゼロにしてみある。 Pr…

タスクパネルの変更

アドインのテンプレートでデフォルトでタスクパネルがついている。 パネルが表示され、Runを押すとセルが黄色く塗られるものだが、このアドインでは必要ないので修正する。 しかし、せっかくパネルがあるので、ヘルプ的なパネルにしておく。 スタイルは特に…

Excelデスクトップアプリでのアドインテスト

今まではずっとExcel Onlineでテストしていたが、このアドインはデスクトップアプリでも使えるはずなので実験してみる。 このサイトを参考にする。 ネットワーク共有からテストするための Office アドインをサイドロードする - Office Add-ins | Microsoft L…

サーバーへ設置のテスト

ある程度機能ができてきたので、ローカルテストではなく、サーバーで起動するてすとを行ってみようと思う。 node.jsを動かす必要があるから、しっかりしたレンタルサーバーが必要だな。 あまりお金はないし、ConoHa VPSあたりかな? 月1000円くらいだと趣味…

平鋼、丸鋼の断面性能

前回に引き続き、平鋼と丸鋼の断面性能関数secFlatBarとsecRoundBarを作成した。 シンプルな断面なのでよりコードがすっきり。 平鋼で気を付けるのは、 「幅」方向を「鉄骨断面の基準方向」とする。 とあるので、Z方向が幅方向となる。 H鋼や角形鋼管だと幅…

円形鋼管の断面性能

円形鋼管の断面性能を作成した。 ここでエラーが出た数値の桁は13桁なら特に問題はなかったので、それで実践することにした。 計算式で表すと、小数点以下の桁数は という感じかな。 パラメータが少ないとコードが短くなって楽。 内容としても、ほかの断面の…

鉄骨断面基底クラスの設定

断面の数が増えてくると、共通の処理が増えてくる。 例えば、断面によらない単位質量、断面二次半径の算出やアドインでの出力単位の処理など。 これらで共通部分の処理は共通に書くことができるように、鉄骨断面の基底クラスを作成し、 SecBuildHやSecBuildB…

組立角形鋼管の断面性能

ビルドHができたので、同様にビルドBOXについても作ってみる。 ビルドHのソースコードを角形鋼管の計算式に変えていくだけ。プロパティも一緒なので割と簡単。 角形鋼管については、Z軸まわりはY軸まわりの場合とせいと幅を入れ替えれば同じ計算式でよいので…

断面係数と断面二次半径の追加

H形鋼の断面性能で、曲げの検討に重要な断面係数と、圧縮の検討に重要な断面二次半径を追加する。 それぞれの英語名は前に見たページを参考に。 断面係数はI/(H/2)とかでもよかったが、直接計算させた。 断面二次半径はで計算する。こちらは、ほかの断面にも…

ドキュメントの作成

とりあえず関数が1つできたので、ドキュメントを整備してみる。 ドキュメントは書くのが楽+数式が書きやすいのでmarkdownで書くことにする。 関数のドキュメントなんだからTypeDocで書けよという話もある気がするけど、 詳しい説明を書くとソースコードが…

クラスのプロパティの追加

今後のことも考えて、断面の情報をインスタンスで受け渡せるように、ビルドH断面にプロパティを設定する。 プロパティはSTBに合わせて作成する。 さて、ここで初期化を楽にするためにコンストラクタを作成しようとしたのだが、いろいろ苦戦してしまった。 鉄…

関数等の名称修正等

コードを見返しているとちょっと視認性が悪いので記述量を減らす。 試行錯誤しながら作っているので迷走している・・・。 SectionPropertyType→SecPropertyType 他のところでSecBuildHとか使っているので、Sec=Sectionが基本スタンスだよね、ということで簡…

単位質量算定の追加

単位変換関数ができたので、あらためて単位質量を実装する。 前に紹介したページで英語名を見てみると・・・mass per metre。なんかそのまんまだな。 関数名にメートルと入るのは若干嫌な気もするが・・・、まあいいか。 単位質量は断面積に密度をかければよ…

メソッド名の修正

コードを見返していて2点気づいたので修正。 typescriptのメソッドはキャメルケースが標準っぽいけどスネークケースで書いてしまっていたので、キャメルケースに修正(最近python書いてたから癖で書いちゃったのかな?) 単位変換のときに長ったらしく書きた…

単位変換関数の作成

前回話したように単位を変換する必要があるため、単位変換の関数を作成する。 ExcelにはConvert関数があるし、ほかにもライブラリはいろいろありそうだが、できるだけブラックボックスを減らすという方針なので、単位変換も自作する。 (個人的には自分で作…

単位についての考え方

今作ってきたsecBuildH関数は、単位がmm関係しか出てこなかったので、話題にしてこなかったが、単位をどうするかという問題がある。 構造設計は荷重や鉄骨量との戦いなので、断面性能関数には当然単位質量を出力したくなる。 単位質量は単位は通常kg/mを使う…

Enumを使った場合分け

現状、断面性能のタイプの場合分けはアドイン側のコードで行っているが、アドイン側はできるだけExcel処理に専念してもらい、数値計算についてはライブラリ側で行いたい。 そこで場合分けについてもライブラリへ移行することを考える。 アドインでは、人が入…

ユニットテストの実施

前回ミスで計算結果が間違うようになってしまった。計算ツールでこういうことがあると致命的なので、ユニットテストを導入する。 (この話に持っていくためにあえてミスしたように見えるが、純粋なミスだったりする) TypeScript npm testで検索して上に出て…

構造計算部分のライブラリ化 その2

引き続き下記サイトを参考に進めていく。 zenn.dev モジュールを実装する srcディレクトリを作り、中にindex.tsとsec/build-h-function.tsを作成する。 ファイル名がキャメルケース、チェーンケース、クラスと同じパスカルケース等いろいろな説があるんだけ…

構造計算部分のライブラリ化 その1

これまでの実装では、アドインのソースコードの中に実際の断面性能の計算関数を入れていたが、 Excelの処理と構造計算部分は分離したほうがいいような気がする。 (まあ、TypeScript用のライブラリを他で使いまわすとは思わないけど・・・) テストとかもパ…

VsCode拡張のインストール。

VsCodeの日本語化を忘れていた。 また、ソースコードのチェックと整形の設定をする。 なんかvscodeの右下にPrettier入れない?みたいな通知も出てくるし。 まずは日本語化 Visual Studio Codeで日本語化する方法[Windows] #VisualStudioCode - Qiita 検索し…

はてなブログで数式を扱うとき

前回の記事は数式を多用したのだが、tex数式がちゃんとビルドされないことが多かった。 で、どうやらmdとtexの記号がぶつかってしまうため、例えば「^」とかはエスケープが必要らしい。 構造計算関係だと累乗なんて頻出なので、エスケープなんていちいちやっ…

組立H形鋼の断面性能

まずビルドHの断面性能を表示する関数を作成してみる。 typescriptはswitch文が使えるようなので、型の文字列で分岐させる。 switchって便利でついつい使ってしまうので(C#のswitch式とか結構好き)、Python書くときはちょっとめんどくさく感じてしまう。 …

断面性能関数の設計方針

アドインを検索していたらこんなページが出てきた。 kenchiku-kozou.hatenablog.com 断面計算やねじれは要るよねーと思っていたけど、たしかに地耐力計算もシンプルだけど面倒なので関数ほしくなりそう。 さて、まずは基本である断面性能を計算する関数を作…

配列を返す関数のテスト

ドキュメントを読んでいるとこんな記事が カスタム関数から複数の結果を返す - Office Add-ins | Microsoft Learn そういえば、Excelは2020年あたりからスピルが使えるようになったんだった。 動的配列数式とスピル配列の動作 - Microsoft サポート スピルに…

建築構造設計用Excel Online アドイン計画

建築構造設計は計算用のプログラムがいろいろあるが、ちょっとした計算をするときに、Excelを使うことはよくある。 その時に断面性能や許容応力度を求める式は、数式だけでも十分作れるが、地味に面倒な計算もあったりするので(鉄骨のfbとか)それ用の関数…

オリジナル関数の作成テスト

クイックスタートがうまくいったので、チュートリアルの次の手順へ行ってみようとしたが、 いきなりWeb からデータを要求みたいな関数になった。 最初は基本の関数だけでいいので、こっちのチュートリアルを続ける必要はないかな。 関数については概要のとこ…

githubのリポジトリ名の修正

ふと気づいたが、リポジトリ名を間違えたorz 今後の構想では、計算の中身部分は別途パッケージにしてほかでも使えるようにし、アドイン部分のみをアドインのコードにする予定だった。 で、st_funcという名前はパッケージのほうに使うつもりだった。 リポジト…

キャッシュの削除

アドインのテストが終わって、アドインの実行もExcelのタブも閉じて、しばらくしてからExcelを開いたところ、なぜかリボンにアドインのアイコンが残っている。 (ただし、画像が読み込みエラーの表示) アドインが動いていないのでADD関数も動いていない。 …

アドインのビルド、実行

プロジェクトができたのでいよいよ実行してみる。 $ npm run build いろいろメッセージが出て、successfullyと表示された。 distというディレクトリができて、その中にビルドされたファイルがいっぱいできたようだ。 distフォルダは.gitignoreの設定に入って…