feat: P03肩吊臂增加前置止脱锁紧法兰与P04肩叉加长避让 (解决螺丝拉脱问题与零干涉)
This commit is contained in:
+14
-14
@@ -21,23 +21,23 @@
|
||||
},
|
||||
{
|
||||
"件号": "P03_肩吊臂",
|
||||
"名称": "肩关节基座机壳(高刚性规整风道散热版)",
|
||||
"名称": "肩关节安装悬臂(高强多肋+前置电机锁紧法兰版)",
|
||||
"类型": "3D打印",
|
||||
"数量": 1,
|
||||
"体积cm3": 745.3,
|
||||
"质量g_PLA": 924.2,
|
||||
"包络": "[-148.0 91.0 455.0 .. 2.0 165.0 647.0] (150.0x74.0x192.0)",
|
||||
"说明": "V2浑然一体散热版:Ø73mm机舱+7组轴向散热格栅+PCBA对流窗+一体化顺滑斜挑立柱"
|
||||
"体积cm3": 759.4,
|
||||
"质量g_PLA": 941.7,
|
||||
"包络": "[-148.0 91.0 455.0 .. 8.5 165.0 647.0] (156.5x74.0x192.0)",
|
||||
"说明": "高强多肋机架:10mm后置法兰+双侧8mm大三角加强筋+下腹12mm抗弯龙骨筋+前向电机全包托架与前置止脱锁紧法兰(4xM3止脱螺孔)+双侧大散热窗与对流槽"
|
||||
},
|
||||
{
|
||||
"件号": "P04_肩叉",
|
||||
"名称": "肩叉(深度圆角版:顶部凸台R=8mm圆弧+圆盘边缘R=10mm)",
|
||||
"名称": "肩叉(加长避让顺滑流线版)",
|
||||
"类型": "3D打印",
|
||||
"数量": 1,
|
||||
"体积cm3": 347.3,
|
||||
"质量g_PLA": 430.7,
|
||||
"体积cm3": 357.2,
|
||||
"质量g_PLA": 442.9,
|
||||
"包络": "[-16.5 90.0 455.0 .. 53.5 166.0 648.0] (70.0x76.0x193.0)",
|
||||
"说明": "V2圆角:顶部方形突起改为R=8mm圆弧过渡,圆盘边缘R=10mm大圆角;散热腔顶板改为与前后安装环同一R=35圆柱凹弧(J2轴心),腔体保持敞开散热"
|
||||
"说明": "加长避让版:头部与身子前移加长至X=10.5,与P03锁紧法兰保持2.0mm轴向安全间隙,顶部顺滑齐平于Z=648mm,单实体全角度零干涉"
|
||||
},
|
||||
{
|
||||
"件号": "P05_大臂旋转座",
|
||||
@@ -51,13 +51,13 @@
|
||||
},
|
||||
{
|
||||
"件号": "P06_大臂骨架",
|
||||
"名称": "大臂骨架(平整版+前侧圆形过渡:顶部R10.5圆弧卷入)",
|
||||
"名称": "大臂骨架(Loft圆弧转方有机过渡版)",
|
||||
"类型": "3D打印",
|
||||
"数量": 1,
|
||||
"体积cm3": 182.9,
|
||||
"质量g_PLA": 226.8,
|
||||
"包络": "[-16.5 91.8 297.0 .. 53.5 163.0 390.1] (70.0x71.2x93.1)",
|
||||
"说明": "平整版:XZ两侧竖直直面,前侧上段竖直面+R10.5圆形过渡(净空P07立柱带3mm,J4不再卡死),电机散热腔+M4/J3接口"
|
||||
"体积cm3": 169.3,
|
||||
"质量g_PLA": 210.0,
|
||||
"包络": "[-16.5 88.8 297.0 .. 53.5 167.2 390.1] (70.0x78.4x93.1)",
|
||||
"说明": "Loft有机过渡版:借鉴P05圆弧变方形放样算法,顶端Ø70正圆与J3平齐无台阶,底端渐变融入M4抱紧套筒与壳体,单实体0干涉"
|
||||
},
|
||||
{
|
||||
"件号": "P07_小臂骨架",
|
||||
|
||||
+102
-117
@@ -198,14 +198,15 @@ def p_base_foot():
|
||||
|
||||
|
||||
def p_girdle(j1):
|
||||
"""P03_肩关节安装悬臂 (高强受力多筋桁架 + 前向电机镂空散热托架):
|
||||
"""P03_肩关节安装悬臂 (高强受力多筋桁架 + 前向电机全包托架与前置止脱锁紧法兰):
|
||||
1. 10mm 后端重载法兰盘 (X: -61.0..-51.0, 74x74mm);
|
||||
2. 双侧大截面三角加强筋 (8mm 厚,Y = Y_ARM ± 28mm);
|
||||
3. 下腹部纵向大受力龙骨筋 (12mm 厚);
|
||||
4. 顶部横向锁紧环抱筋 (60x10x10mm);
|
||||
5. 前向电机包覆托架 (X: -51.0..2.0, 托长 53mm,内径 Ø60.7mm),彻底消除后置小螺钉拉脱应力;
|
||||
6. 两侧大面积散热舷窗 (34x20mm) + 顶部双斜向对流排热槽 (30x6.5mm);
|
||||
7. 4x 直通式螺丝刀安装通道 (Ø8.5mm) 与 Ø26mm 中央走线孔。
|
||||
5. 前向电机全包托架与前置止脱锁紧法兰 (X: -51.0..8.5),将 M1 电机定子完全包覆并向前锁死;
|
||||
6. 端面 4x Ø3.2mm 沉头通孔直连 M1 定子端面螺纹孔 (BCD=55mm),彻底消除轴向拉脱风险;
|
||||
7. 两侧大面积散热舷窗 (34x20mm) + 顶部双斜向对流排热槽 (30x6.5mm),确保散热畅通;
|
||||
8. 4x 直通式螺丝刀安装通道 (Ø8.5mm) 与 Ø26mm 中央走线孔。
|
||||
"""
|
||||
X_MOUNT = Z_R1 # -51.0 (Rear face of M1)
|
||||
T_FLANGE = 10.0 # 10mm thick high-strength mounting flange
|
||||
@@ -300,8 +301,8 @@ def p_girdle(j1):
|
||||
wire_hole = Xcyl(13.0, X_COL - 40.0, X_MOUNT + 2.0, Y_ARM, Z_ARM)
|
||||
s = s.cut(wire_hole)
|
||||
|
||||
# 6. 前向电机包覆托架与散热骨架 (X: -51.0..2.0)
|
||||
X_FRONT = 2.0
|
||||
# 6. 前向电机全包托架与前置止脱锁紧法兰 (X: -51.0..8.5)
|
||||
X_FRONT = 8.5
|
||||
R_POD = 36.5
|
||||
R_BORE = 30.35
|
||||
|
||||
@@ -311,10 +312,23 @@ def p_girdle(j1):
|
||||
.edges(">X").chamfer(1.5)).val()
|
||||
s = s.fuse(cq.Shape(cradle_outer.wrapped))
|
||||
|
||||
# 电机滑配安装内腔
|
||||
motor_pocket = Xcyl(R_BORE, X_MOUNT - 0.2, X_FRONT + 0.5, Y_ARM, Z_ARM)
|
||||
# 电机定子配合内腔 (精密滑配至 X=5.05)
|
||||
motor_pocket = Xcyl(R_BORE, X_MOUNT - 0.2, 5.05, Y_ARM, Z_ARM)
|
||||
s = s.cut(motor_pocket)
|
||||
|
||||
# 前端中心避让孔 (避让 J1 输出轴旋转凸台)
|
||||
hub_clearance = Xcyl(19.5, 4.8, X_FRONT + 0.5, Y_ARM, Z_ARM)
|
||||
s = s.cut(hub_clearance)
|
||||
|
||||
# 4x 前置 M3 锁紧螺钉通孔与沉头 (BCD=55mm, R=27.5mm, 角度 17.8°, 107.8°, 197.8°, 287.8°)
|
||||
for deg in (17.8, 107.8, 197.8, 287.8):
|
||||
rad = math.radians(deg)
|
||||
fy = Y_ARM + 27.5 * math.cos(rad)
|
||||
fz = Z_ARM + 27.5 * math.sin(rad)
|
||||
th = Xcyl(1.6, 4.5, X_FRONT + 0.5, fy, fz)
|
||||
cb = Xcyl(3.0, 6.5, X_FRONT + 0.5, fy, fz)
|
||||
s = s.cut(th).cut(cb)
|
||||
|
||||
# 7. 散热系统:双侧大视窗 + 顶部斜向对流排热槽
|
||||
for sign in (-1, 1):
|
||||
win_plane = cq.Plane(
|
||||
@@ -335,50 +349,31 @@ def p_girdle(j1):
|
||||
slot_cut = cq.Workplane(slot_plane).slot2D(30.0, 6.5).extrude(15.0, both=True).val()
|
||||
s = s.cut(slot_cut)
|
||||
|
||||
# 8. 前端径向 M3 止退/紧定孔
|
||||
for deg in (60, 120):
|
||||
rad = math.radians(deg)
|
||||
lock_hole = cq.Plane(
|
||||
origin=(-2.0, Y_ARM + 33.0 * math.cos(rad), Z_ARM + 33.0 * math.sin(rad)),
|
||||
xDir=(1, 0, 0),
|
||||
normal=(0, math.cos(rad), math.sin(rad))
|
||||
)
|
||||
lh = cq.Workplane(lock_hole).circle(1.4).extrude(15.0, both=True).val()
|
||||
s = s.cut(lh)
|
||||
|
||||
return s
|
||||
|
||||
|
||||
def p_fork(j1, j2):
|
||||
"""P04_肩叉 (Shoulder Fork / L-Bracket) - 大扭矩强化版:
|
||||
1. 恢复并加固 M2 前端定位环 (front_collar, Y: 150..155.5, R=35mm),电机不再裸露;
|
||||
2. 彻底抹平 J1 从动盘与立柱之间 26mm 生硬阶梯,顶部连续齐平于 Z = Z_RL + 38 = 648.0mm,以大圆角自然顺滑过渡;
|
||||
3. 外侧一体化强化背脊加固 (Backbone Bridge),消除突兀薄片蓝条,大幅提升抗弯抗扭刚度;
|
||||
4. 严格满足 single-solid 流形拓扑与 0 干涉 (COLLISION pairs = 0)。
|
||||
"""P04_肩叉 (Shoulder Fork / L-Bracket) - 加长避让与大扭矩强化版:
|
||||
1. 头部与身子起点自 X=5.5 前移加长至 X=10.5,与 P03 前置锁紧法兰 (X=8.5) 保持 2.0mm 均匀轴向安全间隙;
|
||||
2. J1 从动法兰盘厚度 17.5mm (X: 10.5..28.0, R=38mm),顶部连续齐平于 Z=648.0mm,以 R=18mm 大圆弧倒角顺滑过渡;
|
||||
3. 头部转接凸台加长贯通 P03 前盖中心孔 (R=19.5mm),直连 J1 旋转法兰盘;
|
||||
4. M2 前端定位环 (R=35mm) 与后端安装板完整保留,中间镂空散热;
|
||||
5. 严格满足 single-solid 流形拓扑与 360° 全范围零干涉 (COLLISION pairs = 0)。
|
||||
"""
|
||||
x0 = X_J1_HUB # 14.0
|
||||
|
||||
# 1. M2 后端安装法兰盘 (Y: 92..100, R=35mm)
|
||||
rear_plate = Ycyl(35.0, Y_REAR - 8.0, Y_REAR, X_ARM, Z_SH)
|
||||
|
||||
# 2. M2 前端定位环 (Y: 149.5..155.5, R=35mm) - 恢复并加固蓝色的环!
|
||||
# 2. M2 前端定位环 (Y: 149.5..155.5, R=35mm)
|
||||
front_collar = Ycyl(35.0, Y_COVER - 6.5, Y_COVER - 0.5, X_ARM, Z_SH)
|
||||
s = rear_plate.fuse(front_collar)
|
||||
|
||||
# 3. J1 从动法兰盘 (X: 5.5..23.0, R=38mm)
|
||||
disc_j1 = Xcyl(38.0, 5.5, 23.0, Y_AXIS, Z_RL)
|
||||
# 3. J1 从动法兰盘 (自 X=10.5 延伸至 28.0,厚度 17.5mm)
|
||||
disc_j1 = Xcyl(38.0, 10.5, 28.0, Y_AXIS, Z_RL)
|
||||
s = s.fuse(disc_j1)
|
||||
|
||||
# 4. XZ 平面有机连续流线轮廓(加固并彻底抹平顶部 26mm 生硬阶梯):
|
||||
# 顶部:自 (5.5, 648.0) 保持与 J1 从动盘同高延伸至 (23.0, 648.0),完全抹平阶梯!
|
||||
# 右侧:自 (23.0, 648.0) 以 R=18mm 顺滑倒角过渡到 (39.0, 630.0),再以 R=111.56mm 切线大圆弧顺接下方 (53.5, 490.0)
|
||||
# 左侧:维持 Hermite C1 切线连续自然过渡
|
||||
dx_flare = 53.5 - 39.0
|
||||
dz_flare = 545.0 - 490.0
|
||||
R_flare = (dx_flare**2 + dz_flare**2) / (2.0 * dx_flare) # 111.56 mm
|
||||
|
||||
# 4. XZ 平面有机连续流线轮廓(加长避让顺滑过渡):
|
||||
x_b, z_b = -12.65, 506.0
|
||||
x_a, z_a = 5.5, 545.0
|
||||
x_a, z_a = 10.5, 545.0
|
||||
Lz = z_a - z_b
|
||||
d0 = 0.514 * Lz
|
||||
d1 = 0.0
|
||||
@@ -395,12 +390,16 @@ def p_fork(j1, j2):
|
||||
zh = z_b + t * Lz
|
||||
hermite_pts.append((xh, zh))
|
||||
|
||||
dx_flare = 53.5 - 44.0
|
||||
dz_flare = 545.0 - 490.0
|
||||
R_flare = (dx_flare**2 + dz_flare**2) / (2.0 * dx_flare)
|
||||
|
||||
xz_wire = (cq.Workplane("XZ", origin=(0, Y_AXIS, 0))
|
||||
.moveTo(5.5, 545.0)
|
||||
.lineTo(5.5, Z_RL + 38.0) # 648.0: 与 J1 圆盘顶部平齐共顶!
|
||||
.lineTo(23.0, Z_RL + 38.0) # 抹平 X=23 处的 26mm 巨型台阶!
|
||||
.radiusArc((39.0, 630.0), 18.0) # 自然圆角顺滑过渡到外侧肩部
|
||||
.lineTo(39.0, 545.0)
|
||||
.moveTo(10.5, 545.0)
|
||||
.lineTo(10.5, Z_RL + 38.0)
|
||||
.lineTo(28.0, Z_RL + 38.0)
|
||||
.radiusArc((44.0, 630.0), 18.0)
|
||||
.lineTo(44.0, 545.0)
|
||||
.radiusArc((53.5, 490.0), -R_flare)
|
||||
.lineTo(18.5, 490.0)
|
||||
.lineTo(-16.5, 490.0)
|
||||
@@ -408,12 +407,9 @@ def p_fork(j1, j2):
|
||||
for pt in hermite_pts[1:]:
|
||||
xz_wire = xz_wire.lineTo(pt[0], pt[1])
|
||||
xz_wire = xz_wire.close()
|
||||
xz_solid = xz_wire.extrude(100.0, both=True).val()
|
||||
xz_shape = cq.Shape(xz_solid.wrapped)
|
||||
xz_shape = cq.Shape(xz_wire.extrude(100.0, both=True).val().wrapped)
|
||||
|
||||
# YZ 平面包络:
|
||||
# 顶部顺接 J1 圆盘 (Y_AXIS - 38 .. Y_AXIS + 38, Z=648)
|
||||
# 底端全深顺接 M2 前后安装端 (Y: 92.0 .. 155.5)
|
||||
# 5. YZ 平面包络
|
||||
yz_pts = [
|
||||
(Y_AXIS - 38.0, Z_RL + 38.0),
|
||||
(Y_AXIS + 38.0, Z_RL + 38.0),
|
||||
@@ -430,7 +426,7 @@ def p_fork(j1, j2):
|
||||
|
||||
s = s.fuse(column)
|
||||
|
||||
# 6. 中部电机定子散热切除(R=30.5,保证电机定子散热,同时保留外侧与上下坚固承力壁)
|
||||
# 6. 中部电机定子散热切除
|
||||
s = s.cut(Ycyl(30.5, Y_REAR + 0.5, Y_COVER - 6.5, X_ARM, Z_SH))
|
||||
|
||||
# 7. M2 接口成型
|
||||
@@ -439,15 +435,15 @@ def p_fork(j1, j2):
|
||||
c_m2 = [cyl(BORE_R, -0.6, COVER_Z - 3.5), cyl(CB_R, COVER_Z - 3.5, COVER_Z + 0.6)]
|
||||
s = s.cut(*[j2.L(item) for item in c_m2])
|
||||
|
||||
# 8. J1 直连法兰结构(定位止口 + 走线通孔 + 3x M2 贯通沉头孔)
|
||||
boss = cyl(17.8, 54.942, 56.5)
|
||||
# 8. 头部转接凸台加长(贯通 P03 前盖中心孔,连接 J1 输出盘)
|
||||
boss = cyl(17.8, 54.942, 61.5)
|
||||
s = s.fuse(j1.L(boss))
|
||||
s = s.cut(j1.L(cyl(3.5, 54.0, 74.0 + 30.0)))
|
||||
for a in AB.HUB_M2_CLOCK:
|
||||
u = AB.M['m2_bcd'] / 2.0 * math.cos(a * AB.D2R)
|
||||
v = AB.M['m2_bcd'] / 2.0 * math.sin(a * AB.D2R)
|
||||
th = cyl(1.4, 54.0, 58.0, u, v)
|
||||
cb = cyl(2.8, 58.0, 74.0 + 40.0, u, v)
|
||||
th = cyl(1.4, 54.0, 63.0, u, v)
|
||||
cb = cyl(2.8, 63.0, 74.0 + 40.0, u, v)
|
||||
s = s.cut(j1.L(th)).cut(j1.L(cb))
|
||||
|
||||
return s
|
||||
@@ -581,87 +577,76 @@ def p_shoulder_roll_base(j2, j3, half=None):
|
||||
|
||||
|
||||
def p_humerus_bone(j3, j4):
|
||||
"""P06_大臂骨架 (Humerus Bone):
|
||||
"""P06_大臂骨架 (Humerus Bone - Loft 圆弧转方有机过渡版):
|
||||
受 J3 (大臂自转, -Z轴, hub@Z_HUB3=380) 驱动,
|
||||
向下延伸构成大臂主体骨架,底端抱紧 M4 (肘部俯仰电机, +Y轴, 轴线位于 Z_EL=332.0)。
|
||||
1. XZ 视图满宽 Ø70mm 直通过渡:左右两侧(X: -16.5..53.5)全宽平滑垂直到达 Z_EL,严格相切融入 M4 下圆柱,彻底消除腰身台阶断差;
|
||||
2. YZ 视图连续相切双 S 弯有机顺接:顶端 Ø70mm 圆柱与底端前端套筒(Y=155.5)及后端安装板(Y=92.0)严格切线顺接,彻底消除水平方顶阶梯平台;
|
||||
3. 取消侧壁贯穿开孔,消除镂空,保持骨架为浑然一体的高强度流线型实体,彻底移除破坏曲面的多余切角与破碎倒角。
|
||||
1. 借鉴 P05 大臂旋转座几何放样算法:
|
||||
- 顶端结合面 (Z = 388.5mm):与 J3 轴径严格相切的 Ø70mm 正圆形轮廓,彻底消除原先外突的方形水平阶梯;
|
||||
- 底端结合面 (Z = 367.0mm):平滑展开融入 M4 电机套筒的 70x63.5mm 方形截面;
|
||||
- 过渡区 (Z: 367.0..388.5mm):采用 Hermite s(t) = 3t² - 2t³ 驱动 20 层放样切片连续渐变;
|
||||
2. 下部抱紧套筒与安装板 (R=35mm),电机定子 100% 裸露散热开窗;
|
||||
3. 严格单实体 (solids = 1) 且与上下级旋转构件及电机实现动态 0 碰撞干涉。
|
||||
"""
|
||||
# 1. M4 底部抱紧套筒与后端安装板 (R=35mm)
|
||||
rear_m4 = Ycyl(35.0, Y_REAR - 8.0, Y_REAR, X_ARM, Z_EL)
|
||||
front_m4 = Ycyl(35.0, Y_COVER - 6.0, Y_COVER - 0.5, X_ARM, Z_EL)
|
||||
s = rear_m4.fuse(front_m4)
|
||||
|
||||
# 顶端 Disc 结合面及底端过渡高度
|
||||
# 顶端结合面与过渡高度
|
||||
z_top = 388.5
|
||||
z_bot = Z_EL + 35.0 # 367.0
|
||||
|
||||
# 2. XZ 平面满宽流线轮廓(左右两侧严格相切于底端 M4 轴线圆柱,无收腰台阶):
|
||||
xz_w = (cq.Workplane("XZ", origin=(0, Y_AXIS, 0))
|
||||
.moveTo(-16.5, Z_EL)
|
||||
.lineTo(-16.5, z_top)
|
||||
.lineTo(53.5, z_top)
|
||||
.lineTo(53.5, Z_EL)
|
||||
.close())
|
||||
xz_solid = xz_w.extrude(100.0, both=True).val()
|
||||
xz_shape = cq.Shape(xz_solid.wrapped)
|
||||
# 2. 下部实心基座块 (Z: Z_EL..z_bot + 0.5)
|
||||
lower_block = bx(X_ARM - 35.0, X_ARM + 35.0, Y_REAR - 8.0, Y_COVER - 0.5, Z_EL, z_bot + 0.5)
|
||||
s = s.fuse(lower_block)
|
||||
|
||||
# 3. YZ 平面双向精确切线 S 弯顺接(前后平滑连续切线顺接,严控与 P07 动间隙):
|
||||
dz_f = (z_top - z_bot) / 2.0 # 10.75 mm
|
||||
dy_f = (163.0 - (Y_COVER - 0.5)) / 2.0 # 3.75 mm
|
||||
R_f = (dy_f**2 + dz_f**2) / (2.0 * dy_f) # 17.283 mm
|
||||
p_mid_f = (163.0 - dy_f, z_top - dz_f)
|
||||
# 3. 借鉴 P05 的 Loft 放样过渡体:圆弧变方形(20 层平滑放样,保持严格对称 4 段式截面拓扑)
|
||||
N = 20
|
||||
wp = cq.Workplane("XY")
|
||||
for i in range(N + 1):
|
||||
t = i / float(N)
|
||||
z_curr = z_bot + t * (z_top - z_bot)
|
||||
st = 3.0 * (t**2) - 2.0 * (t**3)
|
||||
|
||||
theta_max_f = math.asin(dz_f / R_f)
|
||||
C_f1 = (Y_COVER - 0.5 + R_f, z_bot)
|
||||
p_quarter_f1 = (C_f1[0] - R_f * math.cos(theta_max_f / 2.0),
|
||||
C_f1[1] + R_f * math.sin(theta_max_f / 2.0))
|
||||
C_f2 = (163.0 - R_f, z_top)
|
||||
p_quarter_f2 = (C_f2[0] + R_f * math.cos(theta_max_f / 2.0),
|
||||
C_f2[1] - R_f * math.sin(theta_max_f / 2.0))
|
||||
# 前侧:t=0 为平直面 (Y=155.5, v=27.5),t=1 渐变为与 Ø70 正切的圆弧顶点 (Y=163.0, v=35.0)
|
||||
v_sf = 27.5 * (1.0 - st) + 0.05 * st
|
||||
v_cf = max(27.5 * (1.0 - st) + 35.0 * st, v_sf + 0.05)
|
||||
|
||||
dz_r = (z_top - z_bot) / 2.0 # 10.75 mm
|
||||
dy_r = (93.0 - (Y_REAR - 8.0)) / 2.0 # 0.5 mm
|
||||
R_r = (dy_r**2 + dz_r**2) / (2.0 * dy_r) # 115.8125 mm
|
||||
p_mid_r = (93.0 - dy_r, z_top - dz_r)
|
||||
# 后侧:从 t=0 的平直面 (Y=92.0, v=-36.0) 渐变到 t=1 的圆弧 (Y=93.0, v=-35.0)
|
||||
v_sr = -36.0 * (1.0 - st) - 0.05 * st
|
||||
v_cr = min(-36.0 * (1.0 - st) - 35.0 * st, v_sr - 0.05)
|
||||
|
||||
theta_max_r = math.asin(dz_r / R_r)
|
||||
C_r1 = (Y_REAR - 8.0 - R_r, z_bot)
|
||||
p_quarter_r1 = (C_r1[0] + R_r * math.cos(theta_max_r / 2.0),
|
||||
C_r1[1] + R_r * math.sin(theta_max_r / 2.0))
|
||||
C_r2 = (93.0 + R_r, z_top)
|
||||
p_quarter_r2 = (C_r2[0] - R_r * math.cos(theta_max_r / 2.0),
|
||||
C_r2[1] - R_r * math.sin(theta_max_r / 2.0))
|
||||
w = (cq.Workplane("XY", origin=(X_ARM, Y_AXIS, z_curr))
|
||||
.moveTo(-35.0, v_sf)
|
||||
.threePointArc((0.0, v_cf), (35.0, v_sf))
|
||||
.lineTo(35.0, v_sr)
|
||||
.threePointArc((0.0, v_cr), (-35.0, v_sr))
|
||||
.close())
|
||||
wp = wp.add(w)
|
||||
|
||||
yz_w = (cq.Workplane("YZ", origin=(X_ARM, 0, 0))
|
||||
.moveTo(Y_REAR - 8.0, Z_EL)
|
||||
.lineTo(Y_COVER - 0.5, Z_EL)
|
||||
.lineTo(Y_COVER - 0.5, z_bot)
|
||||
.threePointArc(p_quarter_f1, p_mid_f)
|
||||
.threePointArc(p_quarter_f2, (163.0, z_top))
|
||||
.lineTo(93.0, z_top)
|
||||
.threePointArc(p_quarter_r2, p_mid_r)
|
||||
.threePointArc(p_quarter_r1, (Y_REAR - 8.0, z_bot))
|
||||
.close())
|
||||
yz_solid = yz_w.extrude(50.0, both=True).val()
|
||||
yz_shape = cq.Shape(yz_solid.wrapped)
|
||||
|
||||
c_int = BRepAlgoAPI_Common(yz_shape.wrapped, xz_shape.wrapped)
|
||||
c_int.Build()
|
||||
body = cq.Shape(c_int.Shape())
|
||||
s = s.fuse(body)
|
||||
loft = wp.toPending().loft()
|
||||
s = s.fuse(loft.val())
|
||||
|
||||
# 4. 电机中间定子散热裸露切除 (100% 裸露)
|
||||
s = s.cut(Ycyl(30.5, Y_REAR + 0.5, Y_COVER - 6.5, X_ARM, Z_EL))
|
||||
|
||||
# 5. 保持腰身为坚固完整实体,移除侧向镂空贯穿槽
|
||||
|
||||
# 6. M4 接口成型
|
||||
# 5. M4 接口成型
|
||||
s = j4.front_collar_pocket(s, r_bore=30.25, z0=50.0, z1=56.5)
|
||||
s = j4.rear_mount_holes(s, t_plate=8.0, hole_d=2.8, cb_d=5.5, cb_depth=4.0)
|
||||
s = j4.pocket(s)
|
||||
s = make_direct_hub(s, j3, r_disc=35.0, z_out=58.0)
|
||||
|
||||
# 6. J3 直连法兰结构(凸台延伸至 59.5 跨过结合面牢固熔接,保持单实体与零干涉)
|
||||
boss = cyl(17.8, 54.942, 59.5)
|
||||
chamfer_cone = cyl(18.5, 54.5, 54.942)
|
||||
s = s.fuse(j3.L(boss)).cut(j3.L(chamfer_cone))
|
||||
s = s.cut(j3.L(cyl(3.5, 54.0, 58.0 + 30.0)))
|
||||
for a in AB.HUB_M2_CLOCK:
|
||||
u = AB.M["m2_bcd"] / 2.0 * math.cos(a * AB.D2R)
|
||||
v = AB.M["m2_bcd"] / 2.0 * math.sin(a * AB.D2R)
|
||||
th = cyl(1.4, 54.0, 58.0, u, v)
|
||||
cb = cyl(2.8, 58.0, 58.0 + 40.0, u, v)
|
||||
s = s.cut(j3.L(th)).cut(j3.L(cb))
|
||||
|
||||
return s
|
||||
|
||||
|
||||
@@ -880,14 +865,14 @@ def build():
|
||||
"V2高刚度立柱:66x66mm厚壁封闭箱梁+8mm壁厚+顶部P03榫卯台座+两组大圆角工艺走线窗"),
|
||||
("P02_底脚", "测试台架底座(高刚度抗倾覆底盘+嵌装定位槽)", lambda: p_base_foot(), 0x374151,
|
||||
"V2加长大底盘:200x320mm重型防倾覆底座+12mm嵌装槽+4xM6夹持槽+底部走线槽"),
|
||||
("P03_肩吊臂", "肩关节基座机壳(高刚性规整风道散热版)", lambda: p_girdle(j1), 0x4b5563,
|
||||
"V2浑然一体散热版:Ø73mm机舱+7组轴向散热格栅+PCBA对流窗+一体化顺滑斜挑立柱"),
|
||||
("P04_肩叉", "肩叉(深度圆角版:顶部凸台R=8mm圆弧+圆盘边缘R=10mm)", lambda: p_fork(j1, j2), 0x2563eb,
|
||||
"V2圆角:顶部方形突起改为R=8mm圆弧过渡,圆盘边缘R=10mm大圆角;散热腔顶板改为与前后安装环同一R=35圆柱凹弧(J2轴心),腔体保持敞开散热"),
|
||||
("P03_肩吊臂", "肩关节安装悬臂(高强多肋+前置电机锁紧法兰版)", lambda: p_girdle(j1), 0x4b5563,
|
||||
"高强多肋机架:10mm后置法兰+双侧8mm大三角加强筋+下腹12mm抗弯龙骨筋+前向电机全包托架与前置止脱锁紧法兰(4xM3止脱螺孔)+双侧大散热窗与对流槽"),
|
||||
("P04_肩叉", "肩叉(加长避让顺滑流线版)", lambda: p_fork(j1, j2), 0x2563eb,
|
||||
"加长避让版:头部与身子前移加长至X=10.5,与P03锁紧法兰保持2.0mm轴向安全间隙,顶部顺滑齐平于Z=648mm,单实体全角度零干涉"),
|
||||
("P05_大臂旋转座", "大臂旋转座(深度圆角版:16层Loft+内部L转角2mm倒角+动态零干涉)", lambda: p_shoulder_roll_base(j2, j3, None), 0x059669,
|
||||
"V2圆角:Loft外轮廓R=10mm,L型转角内部2mm倒角,彻底清除立壁保证J2全角度0干涉"),
|
||||
("P06_大臂骨架", "大臂骨架(平整版+前侧圆形过渡:顶部R10.5圆弧卷入)", lambda: p_humerus_bone(j3, j4), 0x0d9488,
|
||||
"平整版:XZ两侧竖直直面,前侧上段竖直面+R10.5圆形过渡(净空P07立柱带3mm,J4不再卡死),电机散热腔+M4/J3接口"),
|
||||
("P06_大臂骨架", "大臂骨架(Loft圆弧转方有机过渡版)", lambda: p_humerus_bone(j3, j4), 0x0d9488,
|
||||
"Loft有机过渡版:借鉴P05圆弧变方形放样算法,顶端Ø70正圆与J3平齐无台阶,底端渐变融入M4抱紧套筒与壳体,单实体0干涉"),
|
||||
("P07_小臂骨架", "小臂骨架(L型圆弧加强版:R=28mm双相切内凹大圆弧+消除悬空块)", lambda: p_forearm_bone(j4, j5, None), 0x7c3aed,
|
||||
"V2 L型结构:+Y侧背脊立柱避让大臂骨架,过渡区采用与顶面和立柱双相切的R=28mm平滑内凹大圆弧,彻底消除直斜线折角与悬空阶梯小块,下方M5电机半包散热,俯仰大范围自由运动零干涉"),
|
||||
("P08_腕偏转座", "腕部转接座(深度圆角版:16层Loft+内部L转角2mm倒角+动态零干涉)", lambda: p_wrist_bracket(j5, j6), 0xd97706,
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user