Skip to main content

Python wrapper for SAP2000 structural analysis software API with LangChain AI agent support

Project description

PySap2000

PyPI version Python 3.8+ License: MIT

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

✨ 特性

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

📦 安装

基础安装

pip install pysap2000

安装 AI Agent 功能

pip install pysap2000[agent]

安装全部功能

pip install pysap2000[all]

🚀 快速开始

基础用法

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 智能助手

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 智能助手
logger 日志管理
config 配置管理
utils 工具函数(Result, deprecated等)

📥 导入说明

注意: 包目录名为 PySap2000(大写),PyPI 包名为 pysap2000(小写)

# 安装(小写)
pip install pysap2000

# 导入(大写)
from PySap2000 import Application
from PySap2000.structure_core import Point, Frame

配置管理

from PySap2000.config import config

# 查看/修改配置
config.log_level = "DEBUG"
config.agent.max_history_rounds = 20

# 通过环境变量配置
# export PYSAP_LOG_LEVEL=DEBUG
# export PYSAP_AGENT_MAX_HISTORY=20

日志系统

from PySap2000.logger import logger, setup_logger

# 使用默认日志器
logger.info("Connected to SAP2000")

# 自定义配置
setup_logger(level="DEBUG", log_file="pysap2000.log")

批量操作

from PySap2000.structure_core import Frame

# 批量计算重量(性能优化)
weights = Frame.calculate_weights_batch(model)
total = sum(weights.values())

# 批量创建
frames = [Frame(no=f"F{i}", ...) for i in range(100)]
succeeded, failed = Frame.create_batch(model, frames)

⚙️ 环境要求

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

🔑 AI Agent 配置

支持多种 LLM 提供商:

# 通义千问(推荐)
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

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📧 联系

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysap2000-2.0.16.tar.gz (317.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysap2000-2.0.16-py3-none-any.whl (435.2 kB view details)

Uploaded Python 3

File details

Details for the file pysap2000-2.0.16.tar.gz.

File metadata

  • Download URL: pysap2000-2.0.16.tar.gz
  • Upload date:
  • Size: 317.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for pysap2000-2.0.16.tar.gz
Algorithm Hash digest
SHA256 134055a412f5b366b26f4fd916551661388ce39189eb1fd8363647874a4f3d64
MD5 c969c1572022784b2b3e1bec0659b043
BLAKE2b-256 070b9ac46e898079a0c51fd3874865f1e2b563631599f2343f864341cb220362

See more details on using hashes here.

File details

Details for the file pysap2000-2.0.16-py3-none-any.whl.

File metadata

  • Download URL: pysap2000-2.0.16-py3-none-any.whl
  • Upload date:
  • Size: 435.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for pysap2000-2.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 08751e737bdeb8984ad57fa0a035e9726a6ce524894c7f22d54df99b0887f188
MD5 d35176ceec4f82b0e2f9d138126bf0c3
BLAKE2b-256 b382547a110a50ab3842acefddb11681cbc6bfe98f13399afac9c1c749ff9a6b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page