问渠凸轮使用说明
互动版帮助(目录导航、案例、小计算器、试一试):https://wenquestrobotics.com/cam/help/,软件右上角“?帮助”直接打开对应一节;FreeCAD 版随工作台下载包。本页是文字版。
网址:https://wenquestrobotics.com/cam/(官网“解决方案 → 行业专用软件 → 凸轮设计与制造”,产品页 /cases/cam.html)。
演示不用登录;项目自动存在你自己的浏览器里,也可以“保存为文件”带走、“打开文件”接着做。开通了的企业登录后还可以把项目存到云端,同单位的人共用(第八节)。
一、从头设计一个凸轮(以缝纫机挑线槽凸轮为例)
- 点 新建,左上角改项目名称。
- 机构页:
- 从动件选“摆动”,接触选“滚子”,勾“槽凸轮(形封闭)”;
- 填基圆半径 r_b、滚子半径 r_r、中心距 a、摆杆长 L、接触宽度 b;
- 凸轮转向按实际选逆时针或顺时针。
- 运动程序页:一行一段,类型选“升 / 停 / 回”,填转角(度)、行程(摆动从动件是摆角,度),选运动规律。
- 所有段加起来必须是 360°,右下角“合计”变绿才算对;
- 不想用公式的,勾“用点表”,直接贴转角和位移两列(每行一个点,至少 8 个),按周期三次样条连起来。
- 载荷与材料页:转速、从动件当量质量(摆动的是转动惯量)、弹簧刚度和预压量、工作载荷、两种材料的弹性模量和泊松比。不填的项目,相关校核就是“未知”。
- 校核限值页:许用压力角(推程、回程)、许用接触应力、最小曲率半径。软件不替你编许用值。
- 中间看凸轮转动:播放 / 暂停,拖“凸轮转角”滑块,或者直接在下面任一条曲线上点、拖,凸轮跟着转到那个角度。红线是接触点法线,蓝虚线是从动件运动方向,两者夹角就是压力角。
- 右边 校核:每一项是 合格 / 不合格 / 未知 / 不适用,总体结论取最差的一项。“未知”下面有提示,告诉你缺什么。
- 压力角或根切不合格时,到“机构”页点 求最小基圆:按许用压力角和曲率要求求出最小基圆半径并填进去。
- 点 计算书:输入、运动程序(含 Cv、Ca)、校核、全部曲线、凸轮廓线、方法与依据排在一页里;点“打印 / 存为 PDF”,在浏览器打印对话框里选“另存为 PDF”。
二、校核项说明
| 校核 | 怎么算 | 需要填 |
|---|---|---|
| 无刚性冲击 / 无柔性冲击 | 段与段接头处速度、加速度是否连续 | — |
| 推程 / 回程最大压力角 | 接触点法线与从动件运动方向的夹角 | 许用压力角 |
| 不根切 | 理论廓线外凸处曲率半径大于滚子半径;槽凸轮两侧都查 | 滚子半径 |
| 实际廓线最小曲率半径 | 廓线一、二阶导数 | 可选:最小曲率半径限值 |
| 高速不跳离 | 弹簧力 + 载荷 + 惯性力始终大于 0,算出不跳离的最高转速;槽凸轮是形封闭,不适用 | 转速、质量、弹簧 |
| 滚子换侧次数(槽凸轮) | 接触力换向的次数,每次都在槽间隙处有冲击 | 转速、质量 |
| 最大接触应力 | 赫兹线接触 | 材料、接触宽度、许用接触应力 |
| 凸轮轴峰值力矩 | 接触力 × 类速度 | 转速、质量 |
三、制造(顶部“制造”)
- 选加工方式:磨削 X–C(凸轮磨床,凸轮随 C 轴转、砂轮沿 X 进退)、铣削 XY(加工中心)或慢走丝(只出 DXF 和点表)。
- 填刀具半径(砂轮或铣刀)和弦高公差(默认 0.001 mm)。槽凸轮的刀具半径不能大于滚子半径;等于时一刀同时磨出两侧。
- “机床设置”里的数值是示例:X 轴半径值还是直径值、磨削时凸轮转速、各遍留量、光磨圈数、程序号;铣削的主轴转速、进给、每层切深、安全高度、顺铣。请按本厂设备改。
- 中间看机床上的凸轮:磨削时凸轮按 C 转、砂轮在 X 轴上进退;铣削时刀具沿刀心轨迹走。红点是仿真里最大过切处,绿点是最大欠切(多肉)处。
- 右边校核:
- 不过切:凹处曲率半径必须大于刀具半径,否则会把凹处磨坏(大砂轮最常见);
- X–C 能走:刀心轨迹对凸轮中心不是“星形”时 X–C 走不了,改铣削或换小砂轮;
- 程序仿真偏差:软件把导出的程序文本重新读一遍,让刀具扫过毛坯,和设计廓线比;不超过弦高公差 + 0.1 µm 为合格(这只说明程序没问题,零件公差由企业自己定)。
- 下载:加工程序 .nc、廓线 .dxf(R12 多段线)、点表 .csv(每 0.5° 一行:升程和廓线坐标)、三维模型 .step。
- 外廓凸轮的厚度取接触宽度;槽凸轮要另填毛坯半径和盘厚,槽深取接触宽度。不画轴孔和键槽。
- 下载 STEP 时会显示 B 样条拟合的最大偏差(一般在 0.01 µm 量级)。
- 砂轮修整后没更新半径:填实际砂轮半径,点“算误差”,看用旧半径的程序磨出来廓线和升程各差多少。
四、测量与补偿(顶部“测量与补偿”)
- 选数据格式:
- 升程表(转角, 升程,每行一个点):用与设计相同的从动件,或把测量仪设成同样的滚子半径和偏距测得;摆动从动件的升程用度;
- 廓线 XY 点:凸轮坐标系下的廓线点(外廓或槽内侧壁)。
- 粘贴数据或选文件。想先看效果,点“载入合成测量数据(演示)”——这是软件按设计升程加上已知误差造出来的,只作演示。
- “自动对相位”:测量零位没和零件(键槽、销孔)对准时勾上,软件求相位差;零位已经对准时不要勾,结果更准(自动对相位会把一部分形状像“错开一点角度”的误差当成相位差)。
- 填转速(不填用设计转速)和许用加速度误差,点“分析”。看:
- 相位差、基圆 / 零点误差;
- 误差曲线、谐波柱状图(红 = 1 阶偏心和装夹,黄 = 低阶热处理变形等,蓝 = 高阶机床和颤振;低阶到第几阶可改);
- 误差引起的加速度误差曲线和峰值,以及“这样的误差最高能跑多少转”,表里还列出该转速下每阶允许的最大幅值(超了标红)。
- 补偿:选要修的阶次(例如 1–6),点“生成补偿程序”。软件把这些阶次的误差反向加到运动程序上,按“制造”里的刀具和机床重新出程序,并预测补偿后剩下的误差(就是没选的那些阶次)。下载补偿后的 .nc。
- 点“记下这次测量”,结果记在项目里(保存为文件时一起带走),同一批凸轮可以看趋势。
- 计算书里会多出“制造”和“测量与补偿”两节(做过才出现)。
五、凸轮系统(以加工中心换刀机构为例)
一台机器往往是一根凸轮轴上装几个凸轮,各管一个动作,彼此要错开。“示例…”里选“加工中心凸轮式换刀机构”:弧面分度凸轮转换刀臂(停—转 65°—停—转 180°—停—回 65°),槽凸轮 + 摆杆让换刀臂下拔、上插。
- 系统设计(顶部第一个)
- 左边按页签填:凸轮轴与驱动(转速、起动/制动转角、惯量、传动比、效率;电机额定值照样本填,不填就是“未知”)、每个凸轮(运动程序、尺寸、输出惯量和负载、弹性频率)、联锁与限值。
- 中间是时序图(凸轮轴转一圈各凸轮的位置,阴影是运动段,下面一行是时间;点或拖时序图可以选转角),凸轮轴转矩和电机转矩曲线。
- 右边是校核:联锁(前一个动时后一个必须停着)、电机峰值/均方根转矩和转速、弧面凸轮的压力角、啮合、筋厚、根切、接触应力,槽凸轮的各项。
- 下面是停歇段残余振动(每个停歇段开始时刀尖还在晃多少)和设计搜索:每种运动规律都试一遍;填了允许振动或电机额定值时,再求满足它们的最高转速。点“采用”换上那种规律。
- 三维与制造:整机动画(拖动旋转、滚轮缩放、可暂停和拖转角)。弧面凸轮的模型按加工方法生成(与滚子同尺寸的刀具沿每个滚子的路径扫过毛坯);可下载弧面凸轮 STL、四轴(A 凸轮 + B 转台)加工程序 .nc、换刀臂 STEP。
- CAE 分析:换刀臂的有限元强度、固有频率、疲劳寿命,以及整机多体动力学(MuJoCo)与本软件解析结果的对照。
- 没登录也能看示例的预先算好的结果;提交新的计算要用问渠企业账号登录,计算在问渠数字工厂的计算服务上排队,每个单位每天有用量上限。
- 注意:表里的“固有频率”是换刀臂本身(孔固定)的频率,系统振动用的是含传动链的整体频率,两者不同。
- 计算书:参数、运动程序、时序图、全部校核、转矩与振动、CAE 结果、方法与依据,可打印或存 PDF。
五之二、圆柱凸轮(第 8 步)
圆柱外面开一条槽,凸轮转一圈,槽推着滚子沿凸轮轴向往复(直动),或推着摆杆摆动(摆杆支点轴与凸轮轴垂直)。槽两侧形封闭,不用弹簧。
- 新建:顶栏“新建…”选“圆柱凸轮”;或在“示例…”里打开“自动机送料圆柱凸轮”“摆动拨叉圆柱凸轮”。
- 运动程序:和盘形凸轮一样,8 种运动规律拼成一圈;直动用毫米,摆动用角度(在“机构”里换从动件时自动换算)。
- 机构:从动件(直动 / 摆动)、滚子(圆柱 / 锥形)、节圆柱半径(滚子中点到凸轮轴线)、滚子半径(锥形取中点)、滚子在槽里的长度、槽侧间隙、滚子端到槽底间隙、凸轮长度;摆动还要摆杆长。
- 锥形滚子的锥顶在凸轮轴线上:停歇时纯滚动,运动时滑动也比圆柱滚子小。
- “求最小节圆柱半径”:在“校核限值”里先填许用压力角,软件找出压力角不超、不根切的最小节圆柱半径。
- 中间的图:“三维”是凸轮转动、滚子和从动件跟着走(鼠标拖动可转视角);“槽展开图”是把凸轮外圆展开,黄色是滚子当前位置,点一下就转到那个角度。
- 校核:压力角(沿槽深变化,槽底处最大,按槽底给结论)、根切、槽侧面最小曲率半径、接触应力(线接触,长度取滚子在槽里的长度)、凸轮轴力矩、滚子换侧次数、滚子滑动、槽到端面的壁厚。没填的限值结果是“未知”,不算合格。
- 计算书:有机构参数、运动程序、校核、曲线和槽展开图。
- 凸轮系统:系统文件里的凸轮可以是圆柱凸轮(
"type": "cylindrical"),时序、转矩、振动、设计搜索照用。 - 制造(四轴加工):顶部点“制造”。机床是带回转工作台的加工中心:A 转凸轮毛坯,X 沿凸轮轴线,刀轴沿半径(Z);摆动从动件的滚子轴线会横移,Y 也跟着走。
- 刀具半径不填 = 与滚子同样大小,沿滚子轴线一刀成槽,槽侧面就是滚子扫出的面;填小一号的刀,两侧各走一刀。锥形滚子只能用同样锥度、同样大小的锥度刀(锥顶在凸轮轴线上)。
- 点“生成程序并仿真”:程序按弦高公差布点,运动程序每段的起止处一定有点(停歇段就是一条精确的直线);程序读回来让刀具扫过毛坯,与精确槽侧面比法向偏差,过切不超过弦高公差才算合格。
- 可以下载四轴加工程序 .nc 和按加工方法生成的三维模型 .stl(毛坯减去刀具扫过的槽,与 FreeCAD 精确实体同一组曲面);计算书里加“四轴加工”一节。机床参数是示例值,请按本厂设备改。
- 有槽侧间隙时,程序两侧各走一刀,每侧槽侧离开滚子半个间隙。
- 摆动从动件的滚子轴线不过凸轮轴线,刀具也一样:沿凸轮轴线方向剖开看,槽底比槽口略宽(槽侧有一点倒扣),这是加工出来的真实形状,三维模型和 FreeCAD 实体都照实做出。
- FreeCAD:用网页版“保存为文件”存下项目,在 FreeCAD 的“问渠 → 凸轮”里打开:精确实体(槽侧面按啮合方程拟合,偏差 ≤ 0.25 µm)、滚子,属性 Angle(凸轮转角)让凸轮转、滚子跟着走;导出 STEP、工作图(端视图、侧视图、参数、运动程序、槽中心线展开坐标)和四轴程序。
- “测量与补偿”只对盘形凸轮开放。
六、在 FreeCAD 里用(第 5 步)
网页版里点“下载 → FreeCAD 工作台 .zip”(“三维与制造”和“制造”页都有)。
- 装 FreeCAD 1.1。把压缩包里的
Mod\WenQuest文件夹复制到 FreeCAD 的用户 Mod 目录,重启 FreeCAD: 目录在哪:在 FreeCAD 的 Python 控制台输入App.getUserAppDataDir()回车,显示的文件夹里的Mod(没有就新建)。 FreeCAD 1.1 一般是 Windows%APPDATA%\FreeCAD\v1-1\Mod,macOS~/Library/Application Support/FreeCAD/v1-1/Mod,Linux~/.local/share/FreeCAD/v1-1/Mod,以控制台显示的为准。 已经装过问渠数字工厂的宏包也没关系:解压到同一个 WenQuest 文件夹,两边的按钮都在。 - 工作台列表里选“问渠”,点“凸轮”,选网页版“保存为文件”存下的项目(
examples文件夹里有示例)。 - 软件用与网页版同一个计算内核重算校核,结果逐项相同(在“报告视图”里看摘要),并建出零件:
- 盘形 / 槽凸轮:与网页版 STEP 同一个实体。槽凸轮要在项目里填毛坯(半径、板厚),没填时只建示意件,不导出。
- 弧面分度凸轮:精确实体。工作面(滚子接触的两侧齿面)按啮合方程求出,偏差 ≤ 0.25 µm,与网页版的四轴程序对照在弦高公差内;槽底按刀具端面直径扫出,比平底刀实际加工最多多留约 0.7 mm 的料(非工作面,偏安全)。
- 换刀臂(凸轮系统里有换刀臂时)。
- 凸轮系统按时序装配:在模型树里选“凸轮系统”,改属性 Angle(凸轮轴转角),转塔和换刀臂按时序转、上下动。
- 导出:在 Python 控制台运行
import wq_cam; wq_cam.run_headless("项目.wqcam.json", "输出文件夹"),输出到指定文件夹:凸轮和换刀臂的 STEP(示意件不导出)、加工程序(弧面凸轮、圆柱凸轮的四轴程序;盘形凸轮在网页版“制造”里填了刀具时出程序)、 盘形 / 槽凸轮的点表 CSV、每个零件一张 A3 工作图(SVG,用浏览器打开可打印成 PDF;技术要求留给工程师填)。 - 缺 Python 包(scipy、shapely)时点“凸轮”会提示一条安装命令,整行粘贴到 FreeCAD 的 Python 控制台里运行(命令会自动找到 FreeCAD 自带的 Python,没有 pip 先补上,再装缺的包),装完重启 FreeCAD。弧面凸轮建模约一分钟。
七、AI 起草(第 6 步,要登录)
AI 只起草,判定全由代码;草稿要你点“采用”才进项目。每人每天 30 次(三项共用)。
- 一句话起草运动程序:在“运动程序”上方点“AI 起草”,写一句要求,例如“主轴转一圈:前 100° 用摆线规律推出 40 mm,停 80°,再用 120° 退回,其余停着”。
- 草稿表里黄色的格子是句子没给的数:软件不替你编,在句子里补上再起草,或采用后在表里填。
- AI 自己写了句子里没有的数,会被清空并提示;蓝色的数是代码补的(一圈剩下的停歇角、回到起点的行程、分度凸轮的净分度)。
- 草稿可用时,按当前机构先把全部校核算一遍给你看;满意再点“采用这个草稿”,不满意点“撤销采用”回到原来的程序。
- 运动规律是 AI 的建议(鼠标停在行上可看理由);句子里点名的规律照用。
- 校核解释:校核栏下点“AI 解释这些校核”,用白话说哪几项不合格或未知、可以怎么改。文字里的每个数都和校核结果核对过,含其他数的句子整句删掉。
- 计算书设计说明:打开计算书,“设计说明”一节可以自己写,也可点“AI 起草设计说明”再改;随项目保存,打印时只印文字。
- 国内服务器用 DeepSeek,美国服务器用 Claude;每次调用都留记录(谁、哪项、句子前 200 字、是否通过代码检查),不存项目全文。
八、云端项目(第 7 步,开通的企业账号)
和缝纫机设计软件是同一份企业开通:开通了的单位,成员登录后把项目存到云端,换台电脑、换个人都能接着做。没登录或没开通时一切照旧(浏览器里自动保存、保存为文件)。
- 登录:顶栏右边点“登录”,用问渠账号登录后回到凸轮页面;顶栏显示你的名字和单位。
- 存到云端:点顶栏“云端项目”→“存到云端…”,写个名称→“存为新项目”。单个凸轮和凸轮系统都能存;左下角显示“云端:名称,第几版”。
- 以后保存:照常改(改动先自动存在本机),改好了点“云端项目”→“保存到云端”,存成新的一版。想留一份不同的,用“另存一份…”。
- 打开:“云端项目”里“本单位的项目”列出名称、类型、版本、最后谁在什么时候存的;点一下就打开。打开示例、新建或打开文件,就和云端项目脱开(不会误存到别的项目上)。
- 两人同时改:不锁定。如果你打开之后同事已经存过新版,你再保存时会提示“某某在几点存过第几版……所以没有保存”,可以选:
- 把我的另存一份:你的修改存成一个新项目(名称后加“(我的)”,可以改),对方的版本不动;
- 打开对方的版本:换成对方存的内容(放弃你没存的修改)。
- 历史版本:每个项目保留最近 20 版,展开“历史版本”看每一版是谁、什么时候存的;点“恢复这一版”把它存成新的一版(不删除任何一版)。
- 删除:列表里点“删除”,再点一次“确定删除?”。谁建、谁存、谁恢复、谁删,平台都留记录。
- 限制:每家单位最多 500 个云端项目,单个项目 2 MB 以内(测量记录很多时可能超过,可先清理测量记录或存成文件)。
九、示例
“示例…”下拉里有六个虚构参数的示例:挑线槽凸轮、送布抬牙凸轮(5000 r/min 下跳离不合格,作反例)、包装机推料凸轮、加工中心凸轮式换刀机构(凸轮系统)、自动机送料圆柱凸轮(直动、锥形滚子)、摆动拨叉圆柱凸轮(摆动、圆柱滚子)。
网址后加 ?example=编号 直接打开某个示例,加 &embed=1 是只看动画和校核的嵌入版(产品页右边就是它)。
十、给维护的人
- 计算内核
services/cam/camkit/(纯 Python + numpy/scipy;制造mfg.py、STEPstep.py、测量measure.py),接口services/cam/app.py,网页apps/cam/(Vue 3 + Vite)。 - 镜像
services/cam/Dockerfile(在仓库根目录构建,先编网页再装内核),容器cam,Caddy 把主域名的/cam/去掉前缀转给它。 - 测试:
cd services/cam && pip install -r requirements-dev.txt && python -m pytest -q;部署工作流里也跑。 - 与开源
mechanism包的交叉对照:pip install mechanism && python tools/crosscheck_mechanism.py。 - STEP 用 OpenCASCADE 读回检查(只在本地):
pip install cadquery-ocp && python tools/crosscheck_step_occ.py <示例名> <文件.step>。 - 凸轮系统:内核
camkit/system.py(时序、转矩、振动)、globoidal.py(弧面凸轮)、globoid_mfg.py(模型与四轴程序)、atc_arm.py(换刀臂)、cae_setup.py(给 CAE 的模型)、system_opt.py(设计搜索);接口system_api.py,CAE 转发cae_bridge.py(经网关/api/v1/industry/me认身份,经数字工厂枢纽/api/design-sw/*提交,密钥WQ_FACTORY_CAE_KEY由部署脚本生成)。示例的 CAE 结果存在examples/atc-globoidal.cae.json。 - FreeCAD:工作台入口是数字工厂的
factory/digital/freecad/Mod/WenQuest/(InitGui.py只用顶层语句,代码在wq_workbench.py,与 freecad-ai-parts 同步);凸轮页services/cam/freecad/wq_cam.py(建模、装配、导出)和wq_cam_drawing.py(工作图);弧面凸轮精确实体camkit/globoid_solid.py(同一组曲面数据分别给 OpenCASCADE 和 FreeCAD 建实体)。包由凸轮服务/api/freecad.zip现打。本地验收:python tools/check_freecad.py <FreeCADCmd 路径>(每个示例逐项对比网页版结果,检查实体、装配中滚子与槽贴合不干涉;圆柱凸轮的滚子离槽侧正好半个槽侧间隙)。FreeCAD 1.0 起脚本用-c运行;FreeCAD 自带的 Python 要先装 shapely。 - 圆柱凸轮:内核
camkit/cylindrical.py(槽侧面由啮合条件闭式求出;analyse()见到"type": "cylindrical"就交给它),最小节圆柱半径接口/api/min-pitch-radius;四轴程序、仿真与模型camkit/cyl_mfg.py(/api/cyl/manufacture、/api/cyl/stl,测试tests/test_cyl_mfg.py);精确实体与网格camkit/cyl_solid.py(槽环:两侧壁 B 样条 + 槽底 + 槽顶,接缝处缝合;build_ocp给测试和本地检查,build_part给 FreeCAD,mesh_part用 manifold3d 出 STL,测试tests/test_cyl_solid.py);网页CylFields.vue(机构)、CylView.vue(三维与槽展开图);测试tests/test_cylindrical.py(与闭式解对照的标准题)。 - 云端项目:网关
services/gateway/app/cam_projects.py(/api/v1/cam/projects,数据<data_dir>/cam.db:项目、版本、记录三张表;开通沿用缝纫机的 licenses),凸轮服务projects_api.py转发登录 cookie(/api/me、/api/projects/*),网页apps/cam/src/cloud.js和components/CloudPanel.vue。测试:网关tests/test_cam_projects.py,凸轮服务tests/test_projects.py。 - 产品页由
tools/site_cases/cam_page.py生成:python3 tools/site_cases/build.py。