使用 MechanicsSketch 生成技术工程力学草图(梁、支座、力、力矩、尺寸、坐标系),可导出为 PDF/PNG/SVG 格式。
机械Sketches Skell. 您可以使用机械Sketches Python 库程序化生成工程力学素描.是一项面向实际任务的技能,主要用于Setup. 通过 pip:1. 或安装依赖性 ma 来安装库。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
你可以使用 MechanicsSketches Python 库以编程方式生成工程力学示意图。
通过 pip 安装该库:
pip install git+https://github.com/MatthiasHBusch/MechanicsSketches.git
或手动安装依赖项,并将其路径添加到 PYTHONPATH 中:
pip install matplotlib PyQt5 export PYTHONPATH="/path/to/parent/of/MechanicsSketches:$PYTHONPATH"
创建一个 Python 脚本,用于构建示意图并渲染输出:
from MechanicsSketches import *
import os
sketch = create_sketch("My Sketch")
S = 30.0 # 缩放因子(推荐值:20–40)
# 添加组件
add_beam(sketch, ax=0, ay=0, bx=10*S, by=0, scale_factor=S)
add_pinned_support(sketch, cx=0, cy=0, angle_deg=0, scale_factor=S)
add_roller_support(sketch, cx=10*S, cy=0, angle_deg=0, scale_factor=S)
add_force(sketch, cx=5*S, cy=0, angle_deg=0, scale_factor=S, annotation=r"$F$")
# 渲染
script_dir = os.path.dirname(os.path.abspath(__file__))
render(sketch, filename=os.path.join(script_dir, "output.pdf"), dpi=300)
然后运行:python my_sketch.py
你也可以使用配套的辅助脚本来从 JSON 文件生成示意图:
python scripts/generate_sketch.py input.json output.pdf
S)所有坐标位置和尺寸均应为 S 的整数倍(通常取 30.0),以确保各组件之间比例一致。
angle_deg=0 → 默认朝向(支撑与力方向向上,尺寸标注方向水平)| 函数 | 说明 | 关键参数 |
|---|---|---|
add_beam(sketch, ax, ay, bx, by, scale_factor) |
矩形梁 A→B | 端点坐标、缩放因子 |
add_truss(sketch, ax, ay, bx, by, scale_factor) |
杆件(直线段)A→B | 端点坐标、缩放因子 |
add_pinned_support(sketch, cx, cy, angle_deg, scale_factor) |
固定支座(三角形) | 中心点、角度、缩放因子 |
add_roller_support(sketch, cx, cy, angle_deg, scale_factor) |
可动支座(滚动支座) | 中心点、角度、缩放因子 |
add_fixed_support(sketch, cx, cy, angle_deg, scale_factor) |
固支(嵌固)支座 | 中心点、角度、缩放因子 |
add_hinge(sketch, cx, cy, scale_factor) |
铰接节点(圆形) | 中心点、缩放因子 |
add_force(sketch, cx, cy, angle_deg, scale_factor, annotation, ...) |
力矢量箭头 | 作用点、角度、缩放因子、标注文本 |
add_moment(sketch, cx, cy, angle_deg, scale_factor, annotation, ...) |
弯矩(圆弧形)箭头 | 作用点、角度、缩放因子、标注文本 |
add_dimension_arrow(sketch, cx, cy, length, angle_deg, scale_factor, annotation, ...) |
双向尺寸标注箭头 | 中心点、长度、角度、缩放因子、标注文本 |
add_dimension_thickness(sketch, cx, cy, thickness, angle_deg, scale_factor, annotation, ...) |
向内尺寸标注箭头 | 中心点、厚度、角度、缩放因子、标注文本 |
add_coordinate_system(sketch, cx, cy, angle_deg, scale_factor, ax1, ax2, ax3, ...) |
x-y-z 坐标轴系统 | 原点、角度、缩放因子、各轴标签 |
add_text(sketch, x, y, text, fontsize, name, rotation) |
文本注释 | 位置、文本内容、字体大小 |
力、弯矩及尺寸标注类函数支持以下参数:
annotation — LaTeX 字符串(例如:r"$F$"、r"$M_A$")fontsize_scale — 相对字体大小(默认为 1.0)offsetx、offsety — 标注文本相对于基准点的偏移量rotate_annotation — 是否随组件一同旋转标注文本(默认为 False)如需自定义图形,可使用以下函数构造基本图元:
make_line(x0, y0, x1, y1, linewidth, layer, edgecolor)make_circle(x, y, r, linewidth, layer, facecolor, edgecolor)make_polygon(points, linewidth, layer, facecolor, edgecolor)make_arc(x, y, width, height, theta1, theta2, angle, linewidth, layer)make_text(x, y, text, fontsize, layer, color, ha, va, rotation)make_rectangle(x0, y0, x1, y1, ...)通过 add_to_sketch(sketch, primitive) 将图元添加至示意图中。
translate(obj, dx, dy) — 沿指定偏移量平移对象rotate(obj, cx, cy, angle_deg) — 绕指定点旋转对象scale(obj, cx, cy, factor) — 以指定点为中心缩放对象所有变换函数均返回新对象(非破坏性操作),支持链式调用。
render(sketch, filename="output.pdf", dpi=300) # Qt 渲染器(默认,推荐) mpl_render(sketch, filename="output.pdf") # Matplotlib 回退方案(已弃用,存在文字缩放问题)
支持的输出格式:.pdf、.png、.jpg、.svg
S = 30.0r"$F$"、r"$M_0$"、r"$ell$"references/api_reference.mdrender() 函数必须指定 filename 参数,它不会以交互方式显示图像mpl_render() —— 因其存在文字缩放问题已被弃用。请始终使用 render()。本技能不发起任何网络请求,全部处理均在本地完成。
scripts/generate_sketch.py)仅读取用户指定的输入文件,并将结果写入用户指定的输出路径。本技能由 MatthiasHBusch 开发与维护,源代码完全开源,采用 MIT 许可证发布。所有功能均在本地运行,除标准 Python 包(matplotlib、PyQt5)外,不依赖任何外部服务或库。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习