Mat2Ansys, malzeme mühendislerinin günlük hayatındaki en can sıkıcı işi ortadan kaldırır: MatWeb'den ANSYS'e manuel veri girişi.
Bir malzeme sayfasındaki tüm metni kopyalayıp yapıştırmanız yeterli. Sistem otomatik olarak özellikleri çıkarır, birimleri SI'ya dönüştürür ve ANSYS Engineering Data'ya doğrudan import edilebilecek bir MatML 3.1 XML dosyası üretir.
Hesap açma yok. API anahtarı yok. Sadece yapıştır ve indir.
┌─────────────────────────────────────────────────────────────┐
│ │
│ 1. matweb.com → Malzemeyi bul → "Printer Friendly" │
│ ↓ │
│ 2. Tüm sayfayı Ctrl+A ile kopyala │
│ ↓ │
│ 3. Mat2Ansys'e yapıştır → Malzeme adını gir → Üret │
│ ↓ │
│ 4. .xml dosyasını indir → ANSYS Engineering Data'ya aktar│
│ │
└─────────────────────────────────────────────────────────────┘
Arka planda neler oluyor:
- Regex tabanlı ayıklama — yapılandırılmamış MatWeb metninden özellikler çıkarılır
- Otomatik birim dönüşümü — MPa, GPa, ksi, psi, g/cc → SI birimleri
- Türetilmiş özellikler — Bulk ve Shear Modülü, E ve ν'dan hesaplanır
- Çelik fallback değerleri — eksik veriler endüstri standardı değerlerle tamamlanır
- Şeffaf uyarı — hangi değerlerin varsayılan kullanıldığı kullanıcıya gösterilir
| Özellik | Detay |
|---|---|
| Smart Paste | Yapılandırılmış giriş gerekmez; tüm sayfayı yapıştır |
| Çoklu Birim Desteği | MPa, GPa, ksi, psi, g/cc, kg/m³, lb/in³ |
| Aralık Değerleri | 0.27 - 0.30 gibi değerler ortalaması alınarak işlenir |
| Türetilmiş Modüller | Bulk K = E / 3(1−2ν) · Shear G = E / 2(1+ν) |
| Çelik Standart Değerleri | E = 200 GPa · ν = 0.3 · ρ = 7850 kg/m³ |
| Şeffaf Uyarılar | Hangi değerlerin varsayılan kullanıldığı listelenir |
| Sunucusuz Mimari | Vercel uyumlu — hesap, veritabanı, API anahtarı gerektirmez |
| MatWeb Özelliği | ANSYS Parametresi | Birim |
|---|---|---|
| Density | Yoğunluk | kg/m³ |
| Tensile Strength, Yield | Çekme Akma Dayanımı | Pa |
| Tensile Strength, Ultimate | Nihai Çekme Dayanımı | Pa |
| Modulus of Elasticity / Tensile Modulus | Young Modülü | Pa |
| Poisson's Ratio / Poissons Ratio | Poisson Oranı | — |
| (türetilmiş) | Bulk Modülü | Pa |
| (türetilmiş) | Kayma Modülü | Pa |
┌──────────────┬────────────────────────────────────────────┐
│ Katman │ Teknoloji │
├──────────────┼────────────────────────────────────────────┤
│ Frontend │ Next.js 16 · TypeScript 5 · Tailwind 4 │
│ Backend │ FastAPI · Python 3.10+ · Pydantic │
│ XML │ xml.etree.ElementTree · MatML 3.1 │
│ Deploy │ Vercel (@vercel/python + @vercel/next) │
└──────────────┴────────────────────────────────────────────┘
- Python 3.10+
- Node.js 20+
git clone https://github.com/Alphyn12/Mat2Ansys.git
cd Mat2Ansyscd backend
# Sanal ortam oluştur
python -m venv .venv
# Aktive et
source .venv/bin/activate # macOS / Linux
# .venv\Scripts\activate # Windows
# Bağımlılıkları yükle
pip install -r requirements.txt
# Sunucuyu başlat
uvicorn main:app --reload --port 8000cd frontend
npm install
npm run devTarayıcıda aç → http://localhost:3000
| Değişken | Varsayılan | Açıklama |
|---|---|---|
ALLOWED_ORIGINS |
http://localhost:3000 |
İzin verilen CORS kaynakları |
SEARCH_CACHE_TTL_SEC |
86400 |
Önbellek geçerlilik süresi (saniye) |
DISABLE_CACHE |
0 |
1 yapılırsa önbellekleme devre dışı |
| Değişken | Varsayılan | Açıklama |
|---|---|---|
NEXT_PUBLIC_API_BASE |
otomatik tespit | Backend URL (Vercel'de gerekli değil) |
Ham MatWeb metnini ayrıştırır ve ANSYS uyumlu XML döndürür.
İstek:
{
"name": "AISI 4140 Steel",
"raw_text": "<MatWeb Printer Friendly sayfasının tam metni>"
}Yanıt: application/xml dosya indirme
Özel Yanıt Başlıkları:
| Başlık | Tür | Açıklama |
|---|---|---|
X-Mat2Ansys-Used-Defaults |
string (CSV) | Varsayılan kullanılan özellikler |
X-Mat2Ansys-Defaults-Count |
string (int) | Varsayılan kullanılan özellik sayısı |
X-Mat2Ansys-Missing-Or-Unparsed |
string (CSV) | Metinde bulunamayan özellikler |
{ "status": "ok", "version": "2.0.0" }Mat2Ansys/
│
├── backend/
│ ├── main.py ← FastAPI uygulaması (endpoint'ler, CORS)
│ ├── utils.py ← Regex ayıklama & birim dönüşümü
│ ├── xml_generator.py ← MatML 3.1 XML üreteci (şablon gömülü)
│ ├── db_handler.py ← JSON önbellek (atomik yazma, kilit yönetimi)
│ ├── security.py ← İstek doğrulama
│ ├── requirements.txt
│ └── tests/ ← pytest birim testleri
│
├── frontend/
│ ├── app/
│ │ ├── layout.tsx ← Kök düzen (fontlar, meta)
│ │ ├── page.tsx ← Ana SPA (form, API çağrısı, indirme)
│ │ └── globals.css ← Tasarım token'ları & bileşen stilleri
│ └── public/ ← Statik varlıklar (logo, rehber görselleri)
│
├── vercel.json ← Vercel monorepo yapılandırması
└── README.md
Repo bir monorepo olarak yapılandırılmıştır. Kök dizindeki vercel.json her şeyi yönetir:
/api/*→ Python backend (FastAPI)/*→ Next.js frontend
Adımlar:
- Repoyu fork'la veya klonla
- Vercel'e import et
ALLOWED_ORIGINSdeğişkenini Vercel domain'inle güncelle- Deploy et — başka yapılandırma gerekmez
cd backend
pytest# 1. Fork'la
# 2. Feature branch oluştur
git checkout -b feat/yeni-ozellik
# 3. Değişikliklerini commit'le
git commit -m "feat: yeni özellik açıklaması"
# 4. Pull request aç → master branch'eMIT — Özgürce kullan, dağıt, değiştir.
Mühendisler için, mühendisler tarafından.
