# andisaifulkohir/rc-strain-diagram-calculator architecture

> Architecture diagram of the GitHub repository andisaifulkohir/rc-strain-diagram-calculator, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/andisaifulkohir/rc-strain-diagram-calculator
- Repository: https://github.com/andisaifulkohir/rc-strain-diagram-calculator

## Overview

RC Strain Diagram Calculator solves reinforced-concrete strain/crack-length geometry and presents it through browser and desktop workflows. The web path gathers inputs, solves the triangle, shows an SVG preview, and exports an AutoLISP drawing script; the desktop path uses exact fractions, a Tkinter preview, and can send geometry directly to an open AutoCAD. README capability descriptions establish these branches; only sampled source excerpts support the detailed calls shown.

Main entry points: [`strain_input_form.py`](https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/strain_input_form.py) (Tkinter form), [`RCSD-calculator.js`](https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/RCSD-calculator.js) (Solve and interact), [`index.html`](https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/index.html) (Calculator interface)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Browser calculator"]
  node_web_ui["Calculator interface<br/>[index.html]"]
  node_web_logic["Solve and interact<br/>[RCSD-calculator.js]"]
  node_web_preview["SVG preview<br/>[RCSD-calculator.js]"]
  node_web_export["AutoLISP export<br/>[RCSD-calculator.js]"]
end

subgraph group_desktop["Desktop calculator"]
  node_desktop_form["Tkinter form"]
  node_desktop_math["Exact solve"]
  node_desktop_preview["Canvas preview"]
  node_desktop_cad["AutoCAD sender"]
end

subgraph group_cad["AutoCAD output"]
  node_autocad["Running AutoCAD"]
end

node_web_user(("Web user"))
node_desktop_user(("Desktop user"))

node_web_user -->|"enters values"| node_web_ui
node_web_ui -->|"provides inputs"| node_web_logic
node_web_logic -->|"draws diagram"| node_web_preview
node_web_logic -->|"builds script"| node_web_export
node_web_user -->|"enters values"| node_desktop_form
node_desktop_form -->|"solves inputs"| node_desktop_math
node_desktop_form -->|"opens preview"| node_desktop_preview
node_desktop_form -->|"sends drawing"| node_desktop_cad
node_desktop_cad -->|"draws geometry"| node_autocad
node_web_user -->|"downloads script"| node_web_export
node_web_export -.->|"runs in AutoCAD"| node_autocad

click node_web_ui "https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/index.html"
click node_web_logic "https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/RCSD-calculator.js"
click node_web_preview "https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/RCSD-calculator.js"
click node_web_export "https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/RCSD-calculator.js"
click node_desktop_form "https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/strain_input_form.py"
click node_desktop_math "https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/strain_input_form.py"
click node_desktop_preview "https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/strain_input_form.py"
click node_desktop_cad "https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/strain_input_form.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web_ui,node_web_logic,node_web_preview,node_web_export,node_web_user,node_desktop_user toneBlue
class node_desktop_form,node_desktop_math,node_desktop_preview,node_desktop_cad toneAmber
class node_autocad toneMint
```

## Components

### Browser calculator

- [Calculator interface](https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/index.html): `index.html`
- [Solve and interact](https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/RCSD-calculator.js): `RCSD-calculator.js`
- [SVG preview](https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/RCSD-calculator.js): `RCSD-calculator.js`
- [AutoLISP export](https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/RCSD-calculator.js): `RCSD-calculator.js`

### Desktop calculator

- [Tkinter form](https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/strain_input_form.py): `strain_input_form.py`
- [Exact solve](https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/strain_input_form.py): `strain_input_form.py`
- [Canvas preview](https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/strain_input_form.py): `strain_input_form.py`
- [AutoCAD sender](https://github.com/andisaifulkohir/rc-strain-diagram-calculator/blob/main/strain_input_form.py): `strain_input_form.py`

### AutoCAD output

- **Running AutoCAD**

### Other components

- **Web user**
- **Desktop user**

## Connections

- Web user → Calculator interface: enters values (evidence: `README.md`)
- Calculator interface → Solve and interact: provides inputs (evidence: `RCSD-calculator.js`)
- Solve and interact → SVG preview: draws diagram (evidence: `RCSD-calculator.js`)
- Solve and interact → AutoLISP export: builds script (evidence: `RCSD-calculator.js`)
- Web user → Tkinter form: enters values (evidence: `README.md`)
- Tkinter form → Exact solve: solves inputs (evidence: `strain_input_form.py`)
- Tkinter form → Canvas preview: opens preview (evidence: `strain_input_form.py`)
- Tkinter form → AutoCAD sender: sends drawing (evidence: `README.md`)
- AutoCAD sender → Running AutoCAD: draws geometry (evidence: `strain_input_form.py`)
- Web user → AutoLISP export: downloads script (evidence: `RCSD-calculator.js`)
- AutoLISP export → Running AutoCAD: runs in AutoCAD (evidence: `README.md`)
