Skip to content

Ueki-sum/KeySLD_Generator

Repository files navigation

Key SLD Generator

石化プラント向け電気系統図(Single Line Diagram, SLD)を自動生成するデスクトップアプリです。

React 19 + TypeScript + Vite + Tailwind CSS v4 で実装され、Electron によりデスクトップアプリとして配布できます。


特徴

  • 自動モード:負荷リストを入力するだけで、Switchgear / MCC / 変圧器などを含む SLD を自動生成
  • 手動エディタ:自動生成結果を修正、またはゼロから SLD を描画
  • 電気室レイアウト:生成した機器を電気室の平面レイアウトに配置
  • 短絡電流計算:IEC 60909 に基づく三相短絡電流を母線ごとに算出
  • 盤サイズ計算:HV/LV の SG・MCC の列数・幅を自動算出
  • プロジェクト保存/読込:JSON 形式で設定・負荷・SLD を一括保存

起動方法

# 依存インストール
npm install

# 開発モード(ブラウザで確認)
npm run dev

# Electron デスクトップアプリとして起動
npm run dev           # ターミナル 1
npm run electron      # ターミナル 2(別ターミナル)

# Windows インストーラーをビルド
npm run dist          # release/ フォルダに出力

ディレクトリ構成

src/
├── App.tsx                    メイン画面(モード切替・状態管理)
├── components/
│   ├── SLDCanvas.tsx          SLD 描画キャンバス
│   ├── ManualSLDEditor.tsx    手動エディタ
│   ├── LayoutTab.tsx          電気室レイアウト(iframe ラッパー)
│   ├── PanelSizingTab.tsx     盤サイズ計算タブ
│   ├── LoadTable.tsx          負荷リスト入力表
│   ├── EquipmentDetail.tsx    機器詳細表示
│   ├── EquipmentListPanel.tsx 機器リスト
│   ├── ConnectionsPanel.tsx   接続情報
│   ├── LoadAssignmentPanel.tsx 負荷割当変更
│   ├── LoadSummaryBar.tsx     下部負荷サマリー
│   ├── symbols/               SLD 描画用シンボル(CB/変圧器/モーター等)
│   └── ui/                    汎用 UI(NumericInput / ResizeHandle)
├── engines/
│   ├── equipmentDesign.ts     負荷から機器構成を設計
│   ├── sldLayout.ts           SLD 自動レイアウト
│   ├── shortCircuit.ts        短絡電流計算(IEC 60909)
│   ├── loadCalculation.ts     負荷集計
│   ├── panelSizing.ts         盤サイズ計算
│   ├── sldToLayout.ts         SLD → 電気室レイアウト変換
│   └── connectionEdit.ts      接続編集
├── types/                     TypeScript 型定義
└── data/                      サンプルデータ・既定値

public/layout-engine/
└── electric-room-layout.html  電気室レイアウトエンジン(iframe で読込)

electron/
└── main.js                    Electron エントリポイント

使い方

詳細な操作方法は HELP.md を参照してください。


ライセンス

Private.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages