《计算机辅助制造实践——Python实现三维打印路径规划》实现Python+3D打印CAM技术

3D打印软件设计算法
2021
04/01
10:31
分享
评论
​南极熊导读:浙江大学博士写的这本书《计算机辅助制造实践——Python实现三维打印路径规划》,是市面上非常难得的一本关于3D打印路径规划软件类的专业书籍​。强烈推荐业内人士阅读(文末有联系方式)。

计算机辅助制造(CAM)是计算机辅助设计(CAD)和数控加工(CNC)的中间环节,主要负责将三维模型转化(翻译)为数控加工设备可以识别的NC代码,是机械制造领域重要研究课题之一。《计算机辅助制造实践——Python实现三维打印路径规划》旨在介绍CAM刀具路径生成相关底层算法的设计、开发、应用及实践。为方便读者理解、学习和实践,本书以三维打印为例,涵盖三维打印CAM模型载入、切片生成、路径生成与优化、支撑生成与优化等各环节,提出了一系列通用、简洁、高效、易于理解和实现的CAM算法。本书选用Python作为算法讲解和实现语言,方便读者上手,读者只需掌握基础数学知识,便能读懂此书,练习书中算法。本书相关CAM路径规划算法可推广至数控车削、铣削、磨削以及激光加工等其他数控加工场合。

Jietu20210401-095654.jpg

出版信息
书名:《计算机辅助制造实践——Python实现三维打印路径规划》
作者:林志伟、傅建中 著
出版社:浙江科技出版社
定价:66.00元

该书特色
  • 趣味性。基于Python这门语法简单、极易上手的“网红”编程语言,面向当下热门的三维打印应用,以生动、风趣的语言,介绍并实现三维打印路径规划方法,所见即所得。

Jietu20210401-095701.jpg

图. Python + 3D打印路径规划

  • 系统性。从搭建基础计算几何库及三维几何实体可视化平台着手,涵盖三维打印路径规划涉及的:STL模型切片截交、截交线段拼接、STL模型拓扑切片、轮廓平行路径生成、方向平行路径生成、填充方向优化、打印支撑生成、打印支撑优化、模型端面识别及NC代码生成等各环节,提出了一系列通用、简洁、高效的路径规划算法。

Jietu20210401-095707.jpg

图. 三维打印CAM系统需要解决的问题

  • 基础性。涵盖:计算几何中点、向量、矩阵等基础类型的构建以及空间几何实体相交、包含等关系的判断方法,扫描线或扫描平面快速截交算法,字典序概念及基于字典序排序的线段快速拼接算法,半边结构及基于拓扑模型的追踪切片方法,平面曲线偏置算法及基于偏置的轮廓路径生成方法,平面轮廓布尔运算、平面区域填充线生成方法等。

Jietu20210401-095743.jpg

图. 三维打印路径规划中的计算几何基础概念和算法

  • 科学性。在路径规划过程中提出了一系列高效、稳定、实用的算法,如:基于层高匹配的STL模型快速截交算法、基于字典查询法的截交线段快速拼接算法、平面曲线包含关系快速确定方法、基于凹峰点的轮廓区域分区方法、最少跳刀填充方向优化方法、基于改进粒子群算法的打印支撑量优化方法、基于布尔运算的模型端面识别方法等。

Jietu20210401-095754.jpg

图. 三维打印路径规划核心算法

  • 实践性。该书中涉及的计算几何基础库及所有三维打印路径规划方法都已使用Python语言实现,读者只需具备基础数学知识即可读懂此书,并在个人电脑上实践及优化书中相关算法,最后在三维打印机上验证算法及路径。建议有C++基础的读者使用C++重构书中算法。

Jietu20210401-095802.jpg

图. 三维打印路径规划算法实践结果(使用VTK显示)

  • 拓展性。该书涉及的相关路径规划算法具有一定的拓展性,只要稍加改进,便能推广至数控车铣削路径规划、工业机器人路径规划、激光加工路径规划以及其他通用路径规划应用(如扫地机器人路径规划、AGV路径规划等)。

Jietu20210401-095808.jpg

图. 本书路径规划算法推广应用


目标读者
  • 高校机械类专业高年级本科生或研究生
  • 高校计算机类、电气类、控制类等专业学生
  • 数控或三维打印从业人员
  • 计算机辅助设计及制造软件开发人员
  • 路径规划算法研发人员
  • 对三维打印或Python编程感兴趣的读者


作者介绍
图片1.jpg

林志伟,博士,博士后。2014年获浙江大学机械制造及其自动化专业工学博士学位。2014年至2017年在浙江大学控制科学与工程博士后流动站从事博士后研究工作,2017年留校工作。近几年来,承担国家自然科学基金项目1项、浙江省自然科学基金项目1项、博士后面上及特别资助各1项。林志伟博士致力于计算机辅助制造(CAM)、三维打印、智能制造等方向研究,在曲面造型、机床误差、三轴/五轴刀具路径规划等方面具有扎实的理论基础和实践经验,已在Computer-Aided Design (CAD)、International Journal of Machine Tools & Manufacture (IJMT&M)等国际知名期刊杂志上发表论文20余篇,授权发明专利10余项。

图片2.jpg

傅建中,博士、教授、博士生导师,中组部“万人计划”创新创业人才,国家科技部科技创新创业领军人才,浙江省优秀科技工作者。现任浙江大学制造技术及装备自动化研究所所长,智能制造技术研究中心主任,浙江省三维打印工艺与装备重点实验室主任。担任国家重点研发计划“增材制造与激光制造”重点专项总体组专家,“十二五”浙江省高端装备制造技术重大专项专家组组长,浙江省智能制造专家委员会委员,浙江省机械工程学会副理事长,中国机械工程学会机械工业自动化分会副主任委员,中国仪器仪表学会精密机械分会副理事长,中国机械工程学会生产工程分会机床专业委员会常务理事。近年来,主持国家支撑计划项目1项,国家自然科学基金项目4项,国家自然科学基金两化融合联合基金项目1项,863重点项目1项,承担国家科技专项“高档数控机床及基础制造装备”子课题3项,在国际及国内期刊上发表SCI收录的学术论文100余篇,获得省部级科技进步奖3项,授权国家发明专利100多项。主要研究方向为智能制造技术与装备,包括智能CAM/CNC技术、三维打印技术、机器人协同智能制造技术等。


以新一代信息技术与制造业深度融合为特征的智能制造正在全球引发新一轮工业革命。“工欲善其事,必先利其器。器欲尽其能,必先得其法。”在“人工智能+制造技术”的时代来临之际,我们首先需要掌握人工智能的理论方法和编程工具,并将之应用于先进制造技术中。

本书是“人工智能+制造技术”系列丛书中的一本实战性书籍,读者能够从人工智能编程语言Python入手,对计算机辅助制造中三维路径规划进行实践,并应用于三维打印实战中,使读者在学习掌握了计算机辅助制造知识的同时,也学会了Python编程。

Python是人工智能首选的编程语言,也是数据科学和机器学习领域最受欢迎的语言,它也被用于Web开发和后端编程,并逐渐发现到移动应用开发领域,甚至已经开始步入嵌入式系统领域。Python很容易上手学习,而且第三方库极为丰富,这两种特性对于想要在智能制造领域有所作为的人来说是很有吸引力的。

广义上的计算机辅助制造(CAM)可以包括使用计算机应用程序为工装设计、计算机辅助设计 (CAD) 模型准备、计算机数控(CNC)编程、坐标测量机 (CMM) 检测编程、模拟仿真或后处理定义制造计划,然后在一个生产环境中执行该计划。

在CAM中,根据计算机三维模型创建工具(刀具)的三维路径规划是其重要的核心技术,初学者一般“只知其然,而不知其所以然”,这就为进一步掌握和开发CAM系统带来了困难。而现有学习CAM的书籍和资料很少有涉及三维路径规划生成的编程方法介绍,更少有指导CAM路径生成实践的教程。

作者的初衷是设计一套实践教程能够使读者融会贯通计算机辅助制造、Python编程语言、三维打印这三种智能制造必备的知识,通过本书的学习可以为掌握“人工智能+制造技术”打下扎实的理论和实践基础。

本书是作者多年从事智能制造技术教学与研究工作的总结,也是作者探索新工科教学实践改革的一个尝试,希望通过人工智能与制造技术交叉融合的实战,能够为国家培养更多的智能制造人才。

——浙江大学制造技术及装备自动化研究所  傅建中教授、所长

前言
计算机辅助制造(Computer-Aided Manufacturing,CAM)是一门制造工程技术和计算机技术紧密结合、相互渗透而发展起来的综合性学科,是计算机辅助设计(Computer-Aided Design,CAD)的后道工序,是国民经济及国防军工的基础支撑技术,其发展水平直接体现了一个国家的制造业现代化水平。广义的计算机辅助制造是指利用计算机手段完成产品从原材料到成品的整个生产制造过程;而在学术界,计算机辅助制造一般特指刀具路径规划,即输入零件和工艺信息,输出刀具运动轨迹和相应数控程序(如G代码)。中国是一个制造业大国,相应的,中国也是一个CAM技术需求和应用大国。

目前,国内CAM技术的发展尚处于起步阶段。常用的CAM软件大都从国外引进,如PowerMILL、Cinatron、MasterCAM、UG、CATIA等,这些软件功能强大、性能稳定,但价格昂贵,且核心技术受制于人。值得庆幸的是,近年来,国内也涌现了一批优秀的国产CAM软件,但由于种种原因,这些软件尚未普及,用户接受程度不高。

高校是培养计算机辅助制造应用和研发方面人才的摇篮。目前,国内各大高校的机械类专业都已将计算机辅助制造课程纳入培养计划,将其设置为专业必修或选修课程。课程体系及配套教材大致涵盖计算机辅助制造基础概念讲解、机械零件建模、CAM软件应用、数控工艺与加工实践等内容,但极少涉及CAM路径规划实现算法层面的内容。当前国内高校在计算机辅助制造教学方面的不足之处在于过分侧重职业技能培训,无法满足国内对机械人才、特别是CAM软件研发方面人才的培养需求。

本书的定位是计算机辅助制造底层算法的设计、开发、应用及实践。面向读者为计算机辅助制造从业人员,尤其面向高校机械类专业老师、高年级本科生或研究生。本书试图引导读者运用所学的代数、几何等数学理论,以及机械制造、数控、计算机编程等技术,针对数控车床、数控铣床、三维打印机、工业机器人等对象,研究刀具路径规划关键算法,独立开发一套小型实用CAM系统,最后在数控设备上对CAM系统及生成的路径进行加工验证。为方便读者理解、学习和实践,本书以三维打印这一当下时髦的数控设备为例,针对三维打印路径规划流程,从切片生成、路径生成、支撑生成到代码生成等环节,提出了一系列通用、简洁、高效、易于理解和实现的CAM算法。

本书的特色之一是选用Python作为路径规划算法的编程实现语言。这在本书写作之初其实是一个相当艰难的抉择!一方面,Python语言本身具有语法简单、容易上手、免费开源等特点,随着云计算、网络爬虫、人工智能等技术发展,Python这门小众语言摇身一变,成为众多编程语言中的“网红”,近年来异常火爆。另一方面,Python语言又经常被人诟病运行速度慢,这是Python与生俱来的缺陷,主要是由它的动态性和多功能性决定的。CAM路径规划是一项计算密集型任务,需要处理大量的矩阵相乘、几何求交、搜索查询等计算,消耗大量计算资源,这对Python语言来说,似乎是一个巨大的挑战。

但是我们毅然决然地选择了Python!这其实是出于两个方面的考虑:一方面,如上所述,Python语法简单、易于上手,因此我们不必要求读者必须具备编程基础,他(她)只要掌握基础数学和机械知识即可读懂此书;另一方面,Python接近伪代码的语言风格可以方便我们以非常直观地方式展示路径规划算法原理和流程,同时这种展示方式是直接可执行的,所见即所得。

值得一提的是,为了提升使用Python实现的路径规划算法效率,我们在算法本身的效率优化上下了不少功夫,以保证大部分路径规划算法能在可接受的时间内(如几秒钟)执行完成,这其实是对算法优化的一种反向促进。尽管如此,我们仍然建议那些有编程基础的读者使用C、C++等效率更高的编程语言重构本书涉及的相关算法。

本书章节内容安排如下:第一、二、三章为基础章节,其中第一章介绍Python语法和开发环境,第二章介绍如何搭建一个基础计算几何库,第三章介绍如何使用VTK库显示三维几何实体。第四、五、六、七章主要介绍三维打印切片算法,其中第四章介绍切片基本概念和基础算法,第五章介绍两种平面和三维模型的优化截交算法,第六章介绍两种截交线段的优化拼接算法,第七章介绍基于拓扑模型的三维模型切片算法,从逻辑上来说,第五章加第六章内容和第七章平行。第八、九章主要介绍三维打印路径生成方法,其中第八章介绍轮廓平行路径生成方法,第九章介绍方向平行路径生成方法。第十章主要介绍模型支撑区域生成与支撑路径规划方法,同时以支撑量为目标,介绍粒子群优化算法。第十一章主要介绍切片端面识别和打印代码生成方法,该章最终输出打印代码,为本书收关章节。

在本书的示例代码中,我们使用了3个第三方Python库。一是VTK库,这是一个强大的计算机图形可视化开源库,它的底层使用C++编写,提供Python调用接口,我们在书中用它来显示三维模型和生成的路径。二是Clipper库,这是一个用于平面几何图形的布尔运算开源库,同时提供曲线偏置功能,它的底层同样使用C++编写,也提供Python调用接口,我们在书中用它来裁剪和偏置多边形轮廓。三是pyserial库,这是一个Python调用系统串口、读写串口的库,我们用它来向三维打印机发送打印代码,实现打印机控制。在此,我们对这三个库的作者表示感谢!

购买渠道
微信商城:
Jietu20210401-095833.jpg

来电咨询:13588743905(微信同号),357504083(QQ),林老师

章节安排
第1章 Python简介
1.1. Python语言概述
1.2. Python解释器安装及运行
1.3. Python第三方库安装
1.4. Python集成开发环境
1.5. Python语法简介
1.6. Python模块
第2章 基础计算几何库搭建
2.1. 点、向量、矩阵
2.2. 直线、射线、线段
2.3. 多段线
2.4. 平面
2.5. 几何算法

第3章 几何可视化平台搭建
3.1. VTK概述
3.2. Hello VTK
3.3. VTK可视化流程
3.4. VTK适配器构建
3.5. VTK模型变换

第4章 STL模型切片轮廓计算基础
4.1. STL模型加载
4.2. 空间三角形和平面求交算法
4.3. STL模型截交计算
4.4. 截交线段拼接计算
4.5. 轮廓方向识别与调整
4.6. 切片数据存取
4.7. SliceModel模块

第5章 STL模型截交计算优化
5.1. 暴力截交存在的问题
5.2. 扫描平面法截交优化
5.3. 层高匹配法截交优化
5.4. 算法测试比较

第6章 截交线段拼接计算优化
6.1. 暴力拼接存在的问题
6.2. 链接点数据结构
6.3. 字典序排序法拼接优化
6.4. 字典查询法拼接优化
6.5. 算法测试比较

第7章 基于拓扑模型的切片轮廓计算
7.1. STL模型存在的问题
7.2. 拓扑关系表示
7.3. STL拓扑模型重建
7.4. 拓扑模型切片
7.5. 算法测试比较

第8章 轮廓平行填充路径生成
8.1. 常用填充路径概述
8.2. 轮廓偏置基础方法简介
8.3. 基于裁剪的轮廓偏置
8.4. Clipper适配器构建
8.5. 轮廓路径生成与连接
8.6. 轮廓路径生成测试

第9章 方向平行填充路径生成
9.1. 扫描线法填充线生成
9.2. 基于裁剪的填充线生成
9.3. 填充区域分区
9.4. 平行路径生成与连接
9.5. 最少跳刀填充方向优化
9.6. 平行路径生成与优化测试

第10章 支撑生成与优化
10.1. 支撑生成概述
10.2. 支撑区域识别
10.3. 支撑路径生成
10.4. 支撑量优化

第11章 端面封闭与代码生成
11.1. 端面识别与切片分区
11.2. 打印代码生成

附1. FDM三维打印机控制方法
附2. 本书封装的路径规划类和函数



上一篇:SHINING3D Design高端三维设计软件试用通道开启!
下一篇:nTopology在FDM夹具生成器中推出掩膜夹具模块
回复

使用道具 举报

2021-4-1 16:38:07 来自手机 | 显示全部楼层
值得学习啊,简单容易掌握的语言,让3d打印软件更多人来做
回复 支持 反对

使用道具 举报

2021-4-1 16:39:19 来自手机 | 显示全部楼层
python 以后很多人都会使用
回复 支持 反对

使用道具 举报

推动3D打印

关注南极熊

通知

联系QQ/微信9:00-16:00

392908259

南极熊3D打印网

致力于推动3D打印产业发展

Copyright © 2024 南极熊 By 3D打印 ( 京ICP备14042416号-1 ) 京公网安备11010802043351
快速回复 返回列表 返回顶部