引言
最近结合一下工作之余的实例,基于参数化设计这个概念做一下个人阶段理解归纳。当然这些实例是自己在非工作时间的个人学习实例,因此可以拿出来说说。
参数化设计的好处在于:
1、它既严谨又灵活,能实现精确性和效率的双重提升。
2、可将基于理论和原理的抽象应用于设计中,确保功能的准确实现。
3、基于数学和逻辑变化的可以在复杂设计中寻找规律性,可以推导或简化实现过程。
同时也会出现的问题:
1、参数多重嵌套反而容易使灵活度下降,容易频繁报错和失败。
2、参数化设计实现的顺利基于前期对参数的理解和反复验证,而且过分追求参数化,反而容易忽略其是否实用。
3、数学和逻辑的底层基础难度较高,过于追求参数化反而容易使实际落地难度增加。
总的来说,参数化设计用的最多的就是Creo类软件的参数化建模,不论是画图过程中的尺寸设定和约束,还是基于参数和关系的输入进行画图,都是参数化的一种体现。这在实例1、2中体现;参数化设计不只是在设计过程中输入参数进行控制,而是在设计整个阶段,特别是要在前期阶段进行参数的抽象、求解以及设定范围,使参数化前置于建模阶段,满足功能上的需求。这在实例3、4中有所体现;另外参数化概念也在设计的流程本身所体现,比如通过将原有若干手工的步骤转变为规律性的参数/公式变换,通过批量的特征处理操作替代繁杂的手工建模过程,这个在实例5中有所体现。
以下是自己亲历学习体会的几个实例:
实例1、齿轮的参数化建模
对于齿轮这一类零件的3D建模,网上有很多分享和教程,多数以实现渐开线为主。大多情况下也足够,因为除了用于精确的仿真分析外,其实齿轮3D准确轮廓建模的实用意义并不大,因为齿轮的成型是由工艺决定(例如范成法)而非2D/3D数模上绘制的形状。
对齿轮进行参数化设计,可以说是Creo中“参数”和“关系”的经典应用,比如模数、齿数、压力角、顶隙、变位等参数,并基于参数和关系得到分度圆、基圆、齿顶齿根圆等数值,再用渐开线方程绘制渐开线,综合上述信息关联到建模的各个尺寸。其更多意义是在于加深对齿轮理论和工艺的理解,如齿轮参数、渐开线、摆线的数学原理和方程等,或者在装配中做空间布局。当然也能用它进行渐开线齿轮组和摆线针轮等的快速设计验证,比如基于范成法得出的齿根过渡曲线和根切情况。对齿轮这类基础零件来说,设计参数让步于其对应的工艺参数,以及工艺中的其他关键细节,如修形要求。而建模过程中看似经典的参数化设计实例,其实用性并没有因为过程的严谨和高效而有所增加。
齿轮各圆、渐开线及齿根过渡方程线的绘制——通过曲线-来自方程-绘制
摆线方程曲线的绘制
齿条滚刀的范成法(滚齿)运行路径模拟,可以看到除渐开线外的齿根过渡曲线,以及根切情况。用creo草绘阵列的完整渐开线齿形,是遵循工艺通过齿条滚刀沿范成法滚齿的运动路径对齿轮坯的切除得到。它也可以作为各种绘制齿形公式的验证。
渐开线齿轮组合
简易针轮摆线减速器
实例2、摩托车侧边盖的改装设计
去年协助朋友做了他摩托车侧边盖改装的设计,目标是在不改变原车离地间隙的前提下改善停车双脚着地情况,以增加舒适性。大方向是对边盖外廓进行收窄。由于测量条件只是卡尺,也没有原车数据和逆向条件,因此反复几次试装修改后才获取车主可接受的效果。具体设计步骤是测量原边盖尺寸形状和安装位,粗估内部空间(车架管、进气口和线束等),设定改善的外廓值,在Creo中基于这些限定重建立面组、壳体和安装位。然后根据车主反馈和要求进行调整。这个过程中虽没用到“参数”和“关系”工具,但其实很多数值在绘制阶段进行了限定和定义,从而可以快速调整,避免多次修改影响时间。
钉位和面组的参数设定
边缘的修剪
整体造型
试装效果
虽完实现了装车应用和所需功能,但因基于Creo设计,虽然参数控制的还好,但作为装饰类零件在造型上比较欠缺,对于外观细节其实还有很大的提升空间,基于太多参数去做造型设计,往往因此容易限制住。因而后续要在局部固化的尺寸基础上,用其他造型软件去改善面型和轮廓,增加些局部特征。
实例3、自行车后避震结构_指标参数
这个是以前的一个尝试,用Creo的机构运动来简单进行一些后避震车架的运动指标分析。参数化设计不只是在建模过程中进行参数化,而是在建模之前去抽象、理解、掌握并确定好模型重要的参数,然后可以在建模过程中贯穿它们。
软尾自行车常见的指标包括Wheel rate、Leverage Ratio、Anti-Squat、Anti-Rise、Pedal Kickback等。软尾后避震车一般是单转点或者多连杆式的结构。单转点的分析相对简单一些,多连杆类型需要通过瞬心法去确定一些指标,然后对整个行程的机构运动仿真得到离散的数值结果。
实际设计和验证阶段,需要在这些参数锁定的Layout架构基础上进行。所以它需要始终在整个设计阶段去贯彻。造型设计不要逾越参数的限制,否则对产品功能会产生负面的影响。
举其中一个Anti-Squat“反蹲”参数为例,先去理解它:发力时,一方面在重心处产生一个与驱动力方向相反的向后的惯性力,它的运动瞬心是前轮的接地点A,惯性力绕A点的力矩产生使车子产生下沉压迫后避震的趋势(因而在骑行的感受中体现出泄力感,在汽车中也有因重心下沉而有抬头的感觉)。另一方面,驱动力作用于后轮接地点B,其虚拟连杆BP2在A点的作用点是BP2的延长线与A点和前轮轴心O1的连杆延长线的交点P3处。驱动力作用在绕A上的力矩转化到产生一个与惯性力相反的力矩,它使其抬升抵抗下沉趋势。驱动力和惯性力数值相等,于是二者力臂的长度比成为Anti-Squat的量化指标。
通过上述参数分析,可在输入不同的尺寸后基于计算得到的各个指标值去评估功能,最后做出车架一些尺寸的选择、确定或修改。
实例4、自行车变速中后拨链器的空间运动轨迹仿真建模
在去年9-10月尝试基于Matlab这类工具,对自行车的后拨做了运动机构的空间和物理约束的解读,对其运动的空间轨迹进行了一个多体数学模型的建模和实现了一个仿真和量化分析尝试,后面基于现有几个后拨的测量和实际运动进行了测算和验证,效果还行。
以S家的Cues后拨为例,可以看到与个别对应的飞轮链轮配合后,其各档位的多体位置空间、连杆角度以及链条包络情况。
整个过程的运算步数和复杂程度都超出了原来的想象。运算涉及到多重的方程组,其中包括几个超越方程。
Matlab这类数学软件很强悍,不论是通过运动学的线性代数和解析几何分析空间运动关系,还是以拉格朗日动力学状态空间方程做分析力学的测算和求解,实用性都非常强。作为经常接触运动机构和数理分析的工程师来说,理论上它可以作为具体建模之前的早期的分析架构和后期的验证工具,设置建模所必须的参数,以达到功能。这虽然不是建模过程中,但也是设计工作中参数化的前置工作。
实例5、3D打印镂空坐垫的建模,刷新参数化设计的认知
关于参数化,原本我一直以为它是Creo这类软件相对设计造型软件的优势,但随着增进了解,其实不然。确实在传统主流模具成型和机加工等减材工艺制造领域,Creo这类软件的造型设计流程非常严谨(如曲面),也有许多基于于这类工艺的可制造性进行优化的操作(如拔模角度、干涉分析、公差控制、图纸输出等),并且精度较高,在数据转换和使用中不易出错。
但随着增材制造如3D打印的普及应用,很多造型和结构都大大超出了原有的局限,基于变形或减材制造的设计流程反而会成为思路和效率上的禁锢。增材制造虽然局部精度要求相对不高、设计发挥更为自由,但也使设计细节骤增,比如纹理、镂空和晶格细节本身的增加。用Creo便难以进行这类细节处理,同时大量的设计细节产生的规律性和可调整要求,又具有参数化的需要。
这时原本以为不够严谨的造型设计软件Rhino,结合了Grasshopper,成为自己曾严重低估的参数化设计方法。可以说Rhino+Grassopper组合将参数化提高到了一个甚至连一些工业软件都很难达到的高度。它融入了很多数理逻辑的、图形空间的、以及数据结构的运算,可以基于此打造复杂且规律性的造型设计,以至于包括了自定义和机器学习的部分,可以说是一扇全新的大门。其实这个参数化设计组合早已经在建筑设计中发展了许久,只是行业跨度大没有太关注。现在观察很多线面造型复杂且有序的现代建筑(如新的机场、写字楼、标志性建筑等)的细节和造型规律时,就会领会它们的设计原点。
还是回到3D打印镂空自行车坐垫产品为例,如采用传统的结构设计软件方法,那工作量和设计细节极不现实,以至于硬件处理上都难以支持,以原有的工程思路看,实体如此多的镂空,会产生极多的面组,不止是细部造型,仅仅去处理圆角都是一件不太现实的事。当然Creo这类软件也具有晶格工具,但其大多基于规则结构出发(如规则立方体晶格、随机和基于力学仿真后的晶格),对造型来说并不友好,当然也因为我还没有发现它的灵活性。即便Creo也有灵活的“造型”、“柔性建模”以及“阵列”等功能,但其仍然与Rhino这类软件在造型上的灵活度有明显差别。
在这个实例中,采用Rhino+Grassopper的工作流程,通过规律性的将实体转化为一定规律性和带有设计感的闭合的点、线和面的组合网络分布,再通过造型工具沿着线框分布管状实体,通过平滑处理后就可以完成一个用于3D打印的镂空产品造型设计示例,最后也可以通过修改各步骤的参数快速修改细节(如分布的密度、粗细等)。当然这其中的实际详细步骤有比较多的模块要参与才能实现较好的设计效果,前期基于人机尺寸和功能需求并且针对后续流程进行面组建模很重要。中间的参数化处理流程对空间和数理逻辑的理解要求非常高,想要把简单的形状转化为目标设计这个过程的步骤非常难,其中不仅关系到点线面的处理,还有数据结构和逻辑处理,需要反复的推敲步骤。在这里以上只给出一个抽象的思路,而非具体操作流程。
在Rhino中的造型建模
转化为晶格单元分布所基于的点/网格
生成连续的网络特征
完成设计细节
小结
以上通过最近的5个学习和实例总结了参数化设计的特点,以及自己对这种设计思路的了解和更新。仅仅代表个人观点。当然上面的实例也是有限的时间精力下学习后的简单尝试,背后依然存在的问题也很多,也就打住不做深入了。很多领域可以说真的是学无止境,往往都在以为差不多就这样了的时候突然发现还有知识和认知的空白。不仅仅是对事对物,对人对己亦是如此。
PF
2024/6/10