关于CST STUDIO SUITE中bend操作的参数方程的备忘。
前些天试着把宏代码丢给网页版AI去研究参数方程,结果可能是变量少了加上不够智能,生成的曲线总是不跟相切曲面一起移动。今天闲下来单独建模,把所有数据全部参数化,用Qoder分析了一番,给出的曲线完美同步移动,不再错位。
新代码只把三个量参数化了,公式结构完全不动:
| 原来 | 现在 |
|---|---|
圆柱半径 20(= 不动面半径 (\rho_f)) |
helix_d2/2 |
带子外半径 22(上表面) |
helix_d1/2 |
板长 100 |
L2-L1 |
起点 y=0(旋转中心那个端点) |
L1 |
注意 Brick.Zrange "helix_d2/2","helix_d1/2" 的底面正好等于圆柱半径,所以 helix_d2 是内径(贴柱面)、helix_d1 是外径,两者的差 /2 就是厚度。旋转中心仍在 y 的下端,即 L1 那条边。
填入 Create Analytical Curve
| 字段 | 填入 |
|---|---|
| U(t) | helix_d1/2*sin(2*(L2-L1)*t*sin(theta*pi/180)/helix_d2) |
| V(t) | L1+(L2-L1)*t*cos(theta*pi/180) |
| W(t) | helix_d1/2*cos(2*(L2-L1)*t*sin(theta*pi/180)/helix_d2) |
| Min(t) | 0 |
| Max(t) | 1 |
对照上一版验证一下退化关系(把它代回去应该完全等价):L2-L1=100、helix_d2=40、helix_d1=44 时,
2*100*t*sinθ/40 = 5t·sinθ、系数 44/2 = 22、V = 0 + 100t·cosθ —— 就是你验证通过的那一组。
三个自检
- 半径恒定:(\sqrt{U^2+W^2}\equiv \texttt{helix_d1}/2)(若这里得到
helix_d2/2,说明外径内径写反了)。 - t=0:
(0, L1, helix_d1/2)—— 旋转中心边正上方,柱面起始端。 - t=1:弧角 (\psi_{end}=\dfrac{2(L_2-L_1)\sin\theta}{helix_d2}) 弧度,(V=L_1+(L_2-L_1)\cos\theta)。θ=0 时应退化成
(0, L1+(L2-L1)t, helix_d1/2)的直线。
两个可能用得上的变体
- 要内表面的中心线(贴柱面上那条):把 U(t)、W(t) 里的
helix_d1/2换成helix_d2/2,V(t) 不变 —— 因为卷曲是沿径向映射的,内外表面的中心线方位角相同、只有半径不同,只要径向缩放即可。 - 要中面中心线:系数换成
(helix_d1+helix_d2)/4。
一个需要留意的地方
现在公式全用参数名写,改参数时曲线会自动跟着变,这是好事;但 L1 出现的位置很关键——它是旋转中心的 y 坐标。如果哪天你把 brick 的 Yrange 改成不和旋转中心边重合(或者 L1 > L2 造成上下翻转),V(t) 的平移项就要跟着改,不能只改 L2-L1。判据很简单:看 Transform 那一步的旋转中心落在哪条边上,就把那个边的 y 值填进 L1 的位置。
另外宽度 helix_l 不出现在中心线公式里(它只决定带子的宽边位置),所以改带宽不会影响这条曲线——如果哪天曲线和带子错位了,问题一定出在方位/端点相位上,不在宽度上。