ST_FUNC開発日記

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

2024-02-01から1ヶ月間の記事一覧

mdからhtmlの変換 その1 環境の準備

アドインを設置するためにホームページのサーバーを作ったので、せっかくなのでドキュメントはそこに置こうと思う。 githubに飛ぶのもあまり美しくはないので。 ということで、mdをhtmlに変換することをやってみる。 md html変換で検索するとVsCodeなどでや…

その他の断面の配列出力の対応

試験的にBuildBoxでやっていた配列対応を、ビルドH、フラットバー、円形鋼管、丸鋼についても対応した。 過去2回分でやった処理のおかげでだいぶスッキリかけたかな。 secBuildH, secFlatBar, secPipe, secRoundBarについても配列出力に対応 · st-func/st_fu…

配列を使った断面性能関数のテストの共通化

前回記事で配列のテストを行ったが、各断面形状ごとに3パターンずつ書くのは面倒だし、寸法も3か所に書くのはミスの元なので、共通化を試みる。 各テストを別関数にくくって、断面性能の計算部分をデリゲート的に渡してあげればいいはず。 typescriptのデリ…

配列を使った断面性能関数のテストの追加

前回secBuildBox関数を配列対応にしたが、1x1のテストしかやらずに配列対応のテストを作っていなかったので、 それを実装する。 とりあえず、縦に並べた場合と横に並べた場合をforループで作ってみる。値は前回作った確認用の配列を流用。 test("SecBuildBox…

断面性能関数をスピル対応にする secBuilcBox

さて、公開の夢は立たれたが、引き続き開発は続けることにする。 やろうとしたらいろいろ詰まりまくって前回記事のような検証が必要だったけど、あらためてスピル対応をする。 オーバーロードを使ったりするとなかなかややこしいことが分かったので、シンプ…

配列を返す関数のテスト2

前に宣言した通り、断面性能関数をスピル対応にしようとしたら詰まってしまった。 ということで、配列の扱いをもう少し検証してみる。 前回は単に配列を返すだけだったので、今回は配列を受け取って配列を返すテスト。 /** * 配列を受け取り、配列を返すテス…

いざOfficeストアへ公開!と思ったら・・・

公開前にマニフェストの検証をする。 $ npm run validate でチェックができるようだ。 そうしたら Error #1: Manifest Version Too Low: The manifest has unsupported version number less than 1.0. とのこと。やっぱりバージョン0はだめですか。 というこ…

アイコンの作成

アイコンを作成してみた。 パワーポイントで300x300のスライドを作り適当に絵を作る。 作った絵をpng出力。 ペイントで開き、背景を削除する。 それにしても最近はペイントでもOfficeでも背景の削除が標準装備になってきたよね。 昔は背景消すの意外と大変で…

マニフェストの修正

あまり見ないようにしていた本丸?であるマニフェストを見直していく。 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の記号がぶつかってしまうため、例えば「^」とかはエスケープが必要らしい。 構造計算関係だと累乗なんて頻出なので、エスケープなんていちいちやっ…