From 7e040fc7664521f62ecfbf640efa0006de2faa0e Mon Sep 17 00:00:00 2001 From: cbb <2625274797@qq.com> Date: Thu, 15 Oct 2026 02:23:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor(paths):=20=E8=B7=AF=E5=BE=84=E6=94=B9?= =?UTF-8?q?=E7=94=B1=20=5F=5Ffile=5F=5F=20=E6=8E=A8=E5=AF=BC=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E5=86=99=E6=AD=BB=20G:/Robot=5Fv2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit armcore.py 里 ROOT/WORKSPACE/OUT/WEB/DOCS 与三个外部 STEP 输入原本是硬编码 绝对路径,仓库换个盘符就全断。改成由本文件位置推出(REPO.parent 即原 G:/Robot_v2,行为逐字不变),并留 ARM_WORKSPACE / ARM_ROOT / ARM_MODEL_ROOT 三个覆盖入口。保持正斜杠输出,因为 strength_check.py:162 的 OUT.replace("/out", "/web") 依赖这个形状(该写法本身也在这次重构中清掉)。 实测关卡:连续两次 python src/arm_model.py 产物逐字节相同; travel/collide/screws 三个 JSON 与基线 md5 一致。 同时加 pyproject.toml 声明元数据与运行依赖(不装包,入口用 python -m)。 --- pyproject.toml | 15 +++++++++++++++ src/armcore.py | 14 +++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..9141d34 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,15 @@ +# 本仓库不走安装步骤:入口一律从仓根以 `python -m arm.xxx` 运行。 +# `python -m` 会把仓根放进 sys.path,包内 import 因此直接可解析,不需要 pip install -e。 +# 这里只声明元数据与运行依赖,供环境搭建和新同事阅读。 +# 模型版本另由环境变量 ARMVER 控制(见 arm/build_model.py),与下面的包版本无关。 + +[project] +name = "arm" +version = "2.0" +description = "6 自由度人形机械臂:CadQuery 参数化建模、行程/碰撞扫描、制造文件导出与三维查看器" +requires-python = ">=3.11" +dependencies = [ + "cadquery>=2.5", # 建模内核(含 OCP / pythonocc 绑定) + "numpy", + "scipy", # sweep_v2 的干涉判定 +] diff --git a/src/armcore.py b/src/armcore.py index eea91bc..8c6b0c7 100644 --- a/src/armcore.py +++ b/src/armcore.py @@ -20,11 +20,15 @@ from OCP.TopAbs import TopAbs_FACE, TopAbs_REVERSED, TopAbs_SOLID from OCP.TopoDS import TopoDS V = cq.Vector -ROOT = r"G:/Robot_v2" -SRC_STEP = ROOT + r"/Model/Solidworks/电机.STEP" -HALF_STEP = ROOT + r"/Model/Solidworks/配件/端面齿半联轴器_相同件x2.STEP" -CLAMP_STEP = ROOT + r"/Model/Solidworks/配件/端面齿联轴器_抱箍_两片装配.STEP" -WORKSPACE = ROOT + r"/机器人手臂" + +# 路径全部由本文件位置推出,仓库可以整体搬迁;三个环境变量是临时覆盖入口。 +_HERE = os.path.dirname(os.path.abspath(__file__)).replace("\\", "/") +WORKSPACE = os.environ.get("ARM_WORKSPACE") or os.path.dirname(_HERE) +ROOT = os.environ.get("ARM_ROOT") or os.path.dirname(WORKSPACE) +MODEL = os.environ.get("ARM_MODEL_ROOT") or (ROOT + r"/Model/Solidworks") +SRC_STEP = MODEL + r"/电机.STEP" +HALF_STEP = MODEL + r"/配件/端面齿半联轴器_相同件x2.STEP" +CLAMP_STEP = MODEL + r"/配件/端面齿联轴器_抱箍_两片装配.STEP" OUT = WORKSPACE + r"/out" WEB = WORKSPACE + r"/web" DOCS = WORKSPACE + r"/docs"