Metadata-Version: 2.1
Name: pysap2000
Version: 2.0.0
Summary: Python wrapper for SAP2000 structural analysis software API with LangChain AI agent support
Home-page: https://github.com/jiangyao/pysap2000
Author: jiangyao
Author-email: 631488424@qq.com
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: comtypes (>=1.1.0)

# PySap2000

[![PyPI version](https://badge.fury.io/py/pysap2000.svg)](https://badge.fury.io/py/pysap2000)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

**PySap2000** 是一个现代化的 SAP2000 结构分析软件 Python API 封装库，提供面向对象的接口和 AI 智能助手功能。

## ✨ 特性

- 🏗️ **面向对象设计** - 参考 dlubal.api 设计模式，提供简洁直观的 API
- 🤖 **AI 智能助手** - 集成 LangChain Agent，支持自然语言控制 SAP2000
- 📊 **完整功能覆盖** - 支持建模、分析、设计、结果提取等全流程
- 🔒 **安全操作** - 修改操作需确认，支持撤回功能
- 📚 **RAG 知识库** - 内置 SAP2000 API 文档搜索

## 📦 安装

### 基础安装
```bash
pip install pysap2000
```

### 安装 AI Agent 功能
```bash
pip install pysap2000[agent]
```

### 安装全部功能
```bash
pip install pysap2000[all]
```

## 🚀 快速开始

### 基础用法

```python
from PySap2000 import Application
from PySap2000.structure_core import Point, Frame
from PySap2000.global_parameters import Units, UnitSystem

# 连接 SAP2000
with Application() as app:
    # 设置单位
    Units.set_present_units(app.model, UnitSystem.KN_M_C)
    
    # 创建节点
    app.create_object(Point(no=1, x=0, y=0, z=0))
    app.create_object(Point(no=2, x=10, y=0, z=0))
    
    # 创建框架
    app.create_object(Frame(no=1, start_point=1, end_point=2, section="W14X30"))
    
    # 运行分析
    app.calculate()
```

### AI 智能助手

```python
from PySap2000.langchain_agent import SapAgent

# 创建 Agent（需要设置 DASHSCOPE_API_KEY 环境变量）
agent = SapAgent(provider="qwen")

# 自然语言控制
response = agent.chat("显示模型中所有杆件的截面信息")
print(response)

response = agent.chat("把上弦杆组的截面改成 H400x200x8x12")
# Agent 会请求确认后执行修改
```

## 📖 功能模块

| 模块 | 功能 |
|------|------|
| `Application` | SAP2000 连接和模型管理 |
| `structure_core` | Point, Frame, Material, Section |
| `loading` | LoadPattern, LoadCombination |
| `loads` | PointLoad, FrameDistributedLoad |
| `results` | PointResults, FrameResults |
| `design` | SteelDesign, ConcreteDesign |
| `langchain_agent` | AI 智能助手 |

## ⚙️ 环境要求

- **操作系统**: Windows（SAP2000 仅支持 Windows）
- **Python**: 3.8+
- **SAP2000**: v19.0+ (需要已安装并激活)

## 🔑 AI Agent 配置

支持多种 LLM 提供商：

```python
# 通义千问（推荐）
agent = SapAgent(provider="qwen")  # 需要 DASHSCOPE_API_KEY

# DeepSeek
agent = SapAgent(provider="deepseek")  # 需要 DEEPSEEK_API_KEY

# OpenAI
agent = SapAgent(provider="openai")  # 需要 OPENAI_API_KEY
```

## 📄 许可证

MIT License - 详见 [LICENSE](LICENSE)

## 🤝 贡献

欢迎提交 Issue 和 Pull Request！

## 📧 联系

- 作者: jiangyao
- 邮箱: 631488424@qq.com
- GitHub: [pysap2000](https://github.com/jiangyao/pysap2000)


