当前位置: 首页 > news >正文

b3dkit 生成连接器

from build123d import * from b3dkit import dovetail from b3dkit import Point def split_with_b3dkit_point(): # 创建零件 part = Part() + Box(100, 50, 30) # 使用 b3dkit 的 Point 类 start_point = Point(0, -25) end_point = Point(0, 25) try: # 所以需要额外指定 Z 范围或者使用不同的调用方式 part1 = dovetail.dovetail_subpart(part=part, start=start_point, end=end_point, section=dovetail.DovetailPart.TAIL, style=dovetail.DovetailStyle.SNUGTAIL, slot_count=2, depth=3, tolerance=0.2) part2 = part - part1 export_stl(part1, "part1.stl") export_stl(part2, "part2.stl") return part1, part2 except Exception as e: print(f"Point 方式失败: {e}") return None if __name__ == "__main__": # 显示可用函数,帮助调试 print("\n可用的 dovetail 模块函数:") available_funcs = [f for f in dir(dovetail) if not f.startswith('_')] for func in available_funcs[:10]: # 只显示前10个 print(f" - {func}") print("\n开始拆件...\n") result = split_with_b3dkit_point() print("\n完成!")

生成卡扣:

from build123d import * from b3dkit import dovetail, Point # 1. 创建或导入你的模型 part = Part() + Box(100, 50, 30) # 2. 使用 dovetail 做基础切割(这里只是切开,不加榫卯) # 你可以调整 style 或参数来实现简单切割 start_point = Point(-50, -25) end_point = Point(50, 25) # 使用 dovetail 只是为了切开,这里可以不使用 SNUGTAIL,或者后续再调整 part1 = dovetail.dovetail_subpart( part=part, start=start_point, end=end_point, section=dovetail.DovetailPart.TAIL, style=dovetail.DovetailStyle.TRADITIONAL, # 用传统方式先切开 slot_count=1, depth=5, tolerance=0.2 ) part2 = part - part1 # 3. 手动为两个零件添加卡扣特征 # 获取切割面(这里需要根据你的零件实际情况调整面的选取逻辑) # 假设 part1 和 part2 的切割面是面索引为 0 的面 face1 = part1.faces()[0] face2 = part2.faces()[0] # 在面中心添加一个圆柱形卡扣(Pin) pin = Cylinder(radius=2, height=5, align=(Align.CENTER, Align.CENTER, Align.MIN)) pin = Cylinder(2, 5) # ✅ 正确写法:直接调用 locate 方法 pin_part = pin.locate(Location(face1.center())) part1_with_pin = part1 + pin_part # 在另一个零件上添加对应的孔(Socket) hole = Cylinder(radius=2.2, height=5, align=(Align.CENTER, Align.CENTER, Align.MAX)) hole_part = hole.locate(Location(face2.center())) part2_with_hole = part2 - hole_part # 导出最终带卡扣的零件 export_stl(part1_with_pin, 'part1_with_click.stl') export_stl(part2_with_hole, 'part2_with_click.stl')

http://www.cnnetsun.cn/news/2503116.html

相关文章:

  • ElevenLabs高棉文语音私有化部署终极方案(含Docker+Khmer IPA音素映射表),仅限前200位技术负责人获取
  • Allen-Bradley 280D-F12Z-10B-CR启动控制模块
  • 【RK3588-AI-004】RK3588 AI专属依赖环境预装(Python、OpenCV、基础编译工具)
  • 3.url编码
  • 18.Linux进程退出和进程等待机制详解
  • 前端状态管理方案:从简单到复杂的演进
  • 13. 模块系统
  • 太突然!IPO紧要关头,Karpathy加入Anthropic
  • 探索C/C++程序从源码到可执行文件的编译之旅
  • 嘉立创EDA:原理图到PCB学习总结
  • 用Claude Code做了一件事,现在AI比我还了解我?
  • CVPR 2026 预讲会54位讲者云集| 6大方向+5个专场
  • 留学生遭遇大厂 PIP 晴天霹雳?2026 北美科技圈绩效提升计划深度解码与生存闭环
  • 多代理RTL漏洞检测系统:原理、实践与优化
  • 离子原生QAOA算法:量子优化新突破
  • AI Agent Runtime 正在成为新基础设施层
  • Multi-Head Latent Attention(MLA)原理与工程实践全解析
  • 机器学习评估指标实战指南:业务、数据与工程的决策逻辑
  • Neural Code Search:代码语义搜索原理与工程落地
  • 激活函数为什么是神经网络的非线性开关?
  • Determined AI分布式训练实战:突破算法与编码偏差治理
  • MoE混合专家架构原理与工程实践:解密大模型稀疏计算真相
  • 2026年5月降AI率保姆级避坑指南:知网维普AI率5%上岸
  • GPT-4参数真相:1.8万亿与2%稀疏激活的技术本质
  • TensorFlow 2迁移学习实战:图像分类快速上手指南
  • VMPDump:突破性动态脱壳与智能导入表修复技术方案
  • 【从零到一】一篇文章让你彻底玩转Spearman相关性矩阵
  • Cloud-Device Collaborative Learning for Multimodal Large Language Models
  • Sa-Token客户端ID校验失败的原理与修复指南
  • OpenSSH 9.6p1紧急升级全解析:CVE-2023-51385漏洞修复实战指南