ST_FUNC開発日記

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

2024-01-01から1年間の記事一覧

断面形状図に縮尺の表示

断面の図の描画はオートスケールにしている。建築士としては、図に縮尺がないのは気持ち悪いので、縮尺を表示してみたい。 といっても、モニターのppiが違ったら正しい値にはならないのであくまで目安。 DrawingDataクラスにscaleの数値があるのでこれを1/30…

断面性能の計算の残りを実装

他の断面性能計算を実装 現状A,mしか計算していなかったので、ほかの数値についても実装した。 結果がNaNのときは非表示 数値を入力する前は結果がNaNになってしまうので非表示にした。 断面の種類を切り替えたときの処理 断面形状を切り替えたときに前の数…

コンソールのエラーメッセージ対応

デバッグしようと思って開発者ツールを開いてみたらエラーメッセージが出ていたので対処する。 キーを持て Warning: Each child in a list should have a unique "key" というエラーが。そういえば、サンプルコードとかでもkeyという属性が設定されたりして…

断面形状の描画 その2

前回作った断面形状描画部分を拡張しやすいように修正していく。 LineData LineDataに関しては、x1,y1,x2,y2といちいち書いていくといまいちなので、点データをもたせて、それを結ぶ仕組みとした。 また、多角形のデータを1本1本持たせるのは面倒なので、点…

断面形状の描画 その1

数値を入力しただけだと地味なので、断面形状を描画できるようにしたい。 さっそくChatGPTに相談してみる。 reactのフロントエンドアプリを作っており、図形を描画したい旨をいろいろ聞いてみたら、下記のようなコードを提案された。 import React, { useSta…

計算結果が一歩遅れるのの解消

数値を更新したらすぐ結果が反映させる仕様にしたが、よく見ると表示結果が1つ前の計算結果だった。 細かい仕組みはしっかり認識していないが、レンダリングと数値更新のタイミングの問題らしい? CharGPTに相談したら、ボタンで計算させましょうとか、タイ…

WEBアプリの断面性能計算部分の整理

これまでに出てきた技術を見ながら、拡張しやすいように改良してく。 断面形状タイプのenumを作成 断面形状の切り替えに文字列リテラルのユニオンを使っていたが、 モードの数が増えてくるとユニオンをいちいち書くのが面倒なので、enum型を使うことにした。…

WEBアプリで他の断面性能も計算する仕組みを作る

ファイル名の修正他 とりあえずCalculatorのままだといまいちなので、ファイル名やコンポーネント名などを修正 断面性能計算のクラス名を修正 · st-func/st-func-web@d164fcd · GitHub ほかの断面性能 現在断面積の結果しか表示されないが、ほかの断面性能も…

断面性能の座標軸の変更

最近のReactの話からちょっと変わるが、断面性能関数の設計方針で 強軸、弱軸をX,Yとするか、Y,Zとするか。 前者は断面をXY平面と見たもの。後者は、線材をイメージして材軸方向をXとしたもの。 今回はStbAnaSectionに準じて、強軸をY、弱軸をZとすることに…

Reactの中身の検証

前回作った記事では、ChatGPTの結果を何も考えずにそれっぽく修正しただけなので、実際に何をしているのか検索しながら見ている。 importの{}の有無 impoerするときに{}があったりなかったりするのは何だろう? 【JavaScript/TypeScript】import/export from…

WEBアプリに断面性能計算機能を追加

まずは、作ったst-func-tsをインストールする。 $ npm install ..\st-func-ts st-func-tsをインストール · st-func/st-func-web@d71db70 · GitHub さて、数字の和と積を求めるだけのCalculatorを断面積を求めるように書き換えてみる。 各コードの細かい意味…

Reactのテスト

サンプルプログラムをst-func用に書き換えていく。 まず、Home.tsxにタイトルと説明を記載。 import React from "react"; const Home: React.FC = () => { return ( <div> <h1>st-func-web</h1> <p>建築構造設計に用いる簡単な計算をするアプリケーションです。</p> </div> ); }; export…

ウェブアプリのデプロイ

さて、テストアプリケーションができたので、実際にサーバーに設置して動くかどうか試してみる。 $ npm start で実行すると、ローカルのhttpサーバーが立ち上がり、http://localhost:3000/でアプリにアクセスされる。 これはテスト用のものなので、ビルドす…

Reactサンプルプログラムの作成

色々調べながら作ってもいいのだが、ChartGPTさんがいることだし、さくっとサンプルのアプリケーションを作ってもらおう。 断面性能を計算するアプリケーションをイメージして以下のようなアプリケーションを作ってもらう。 Reactを利用して、簡単な計算を実…

フロントエンドウェブアプリ

ウェブアプリを開発してみたい st-func-tsを別のライブラリにしているが、現状特に分けている意味があまりない。 また、Excelへのアドインインストールがサイドロードしかできない。 なんとなくもったいないので、せっかく作ったライブラリを活用できるよう…

htmlのタイトルを見出しにする

現在ドキュメントのhtml作成にmarkdownからhtmlの変換をかけているが、titleをファイル名にしていく。 しかしtitleがindexとかだと味気ないので、最初の見出しをタイトルにしてみえる。 まず、楽しようと思ってchatGPTに聞いてみる。 PythonでMarkdown形式の…

metaデータにhelpurlの追加

前に関数を作ったときはまだドキュメントのHPを用意していなかったが、作成したので 前回はスルーしたhelpurlメタデータを追加する。 learn.microsoft.com シンプルにhelpurlというタグを入力するだけ。 /** * 組立角形鋼管の断面性能。 * @customfunction s…

TypeDocによるドキュメントの作成

アドインのほうは丁寧に書きたいため手動ででドキュメントを作成したが、 ライブラリの関数については、自動生成してみてもいいかと思うので、下記ページを見ながら自動生成を試みる。 qiita.com まず、TypeDocのインストール。 ライブラリに含める必要はな…

mdからhtmlの変換 その4

htmlができたので、ロリポップにアップロードしてみたら、htmlが文字化けしてしまっていた。 なんでかなと思ってみていたら、meta charsetのところで、"が全角になってしまっていた。 ということで、修正。 また、htmlフォルダの中にさらにhtmlフォルダがで…

mdからhtmlの変換 その3

前回の下記の問題点を解決する 単純にそのまま変換するので、ヘッダーとかがない 表が変換されていない 数式が変換されていない ハイパーリンクが機能しない 画像が表示されない。 ヘッダー等の作成 htmlのテンプレートを用意し、bodyのみ置き換えることにす…

mdからhtmlの変換 その2

環境準備が整ったので、変換のコードを書く。 qiita.com こちらのコードを使わせていただく。 convert_md_to_html関数が実際の変換の部分。 def convert_md_to_html(input_path, output_path): with open(input_path, "r", encoding="utf-8") as md_file: md…

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…