Skip to main content

A simplified CAD modeling Python API based on CADQuery

Project description

CAD建模形式化Python API设计与实现


简介

本项目旨在使用CadQuery的occ impl.shapes中提供的方法,编写一套命令式的Python API,以简化通过代码进行CAD建模的过程。API设计遵循开放封闭原则,核心类型封闭,所有的操作和扩展都通过新建函数实现。 同时兼容Numpy库,允许用户在几何体上进行高效的数学运算和变换。

详细文档

Document

基础类型

图元类型

图元类型和OCP的TopoDS_Shape类型一一对应,主要包括以下几种:

  • Solid: 实体类型,表示封闭的三维几何体。
  • Face: 面类型,表示单个表面。
  • Edge: 边类型,表示曲线边界。
  • Vertex: 顶点类型,表示几何体的点。
  • Wire: 线类型,表示边的集合。

坐标系类型

坐标系类型用于定义三维空间中的位置和方向,我们对于世界坐标系的定义是:一个右手坐标系,原点在(0, 0, 0),默认X轴向前,Y轴向右,Z轴向上。坐标系类型包括:

  • SimpleWorkplane: 工作平面类型,表示一个二维平面,本质上统计一个原点和一个法向量和一个X轴方向向量。作为一个上下文变量,可以通过with语法包裹操作,那么这些操作就会在这个工作平面下进行。允许嵌套定义Workplane,那么嵌套定义的平面将在上一个平面的基础上进行变换。

API命名风格

  • 所有函数名使用小写字母和下划线分隔(snake_case),要求使用动词开头,表示操作或行为,同时需要包含API的返回类型(因为同名API可能会重载为返回不同类型的对象,但我们想要避免这一点),例如:make_circle_rwire, make_circle_redge, make_circle_rface, extrude_rsolid
  • 类名使用驼峰命名法(CamelCase)
  • 函数和类的文档字符串使用Google风格,包含参数、返回值和异常说明
  • 所有函数和类都应有类型注解,确保代码的可读性和可维护性
  • 所有函数和类都应有详细的文档字符串,描述其功能、参数、返回值和异常
  • 所有函数和类都应有示例代码,便于用户理解和使用
  • 所有的代码实现都要有严格且详细的try catch和异常抛出,异常抛出的内容中要求明确指出错误原因,以及用户应当如何在调用层做出怎样的改进可能可以避免这个问题。

扩展原则

开放封闭原则,核心类型封闭,所有的操作和扩展都通过新建函数实现。我们可以通过利用现有的函数和操作来组合出新的高级操作并封装为函数来实现功能的扩展。

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

simplecadapi-1.0.3.tar.gz (914.5 kB view details)

Uploaded Source

Built Distribution

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

simplecadapi-1.0.3-py3-none-any.whl (45.9 kB view details)

Uploaded Python 3

File details

Details for the file simplecadapi-1.0.3.tar.gz.

File metadata

  • Download URL: simplecadapi-1.0.3.tar.gz
  • Upload date:
  • Size: 914.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for simplecadapi-1.0.3.tar.gz
Algorithm Hash digest
SHA256 351c46a08154516aa1fe29838f81874a59c990592a58a3303acb2767e0c22871
MD5 316b1bd6bb1823b7b4579d01e1690314
BLAKE2b-256 f93cb1a5f373b7d1b713ffdacf67c236b914ff080dd329189e26650913df1835

See more details on using hashes here.

File details

Details for the file simplecadapi-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: simplecadapi-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 45.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for simplecadapi-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 89e0d49a9755f4500571a9bf03d133a61e16173b0c4c10fc118c18f527f02980
MD5 b7343f51468886124de8c6707ce5ceed
BLAKE2b-256 c46b4d3fe354d999e63f0991ab57e1114cb858c11f828effc9215dce1ed7ab00

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