对于有一定经验的人来说,在 SOLIDWORKS 中对弹簧进行建模可能是一项相对基本的练习。这是 SOLIDWORKS 经销商智诚科技ICT提供的 Advanced Part Modeling 课程中的早期部分之一,只要您知道什么是扫描,并且您知道如何创建 Helix,您就差不多准备好了(如果您不知道,请考虑参加上面的课程)。
小型压缩弹簧与 SOLIDWORKS 中 2 分钟等效弹簧的照片。
现在,有很多方法可以使弹簧更加复杂。您可以向螺旋线添加锥度,可以创建越来越小的截面,在末端添加钩子以创建张力弹簧,使用“与曲面切割”创建“地面端点”。这个列表几乎是无穷无尽的,Jeff Setzer 在十多年前写了一篇文章,几乎涵盖了书中设计弹簧的所有技巧。所有这些最佳实践今天仍然适用,所以我鼓励你去看看那篇文章。
不过,我最常被问到的问题是,“我如何让我的春季秀动起来?事实是,这个问题非常简单,同时又非常复杂。因此,在本文中,让我们研究一下为什么会这样,并解释如何使用简单和更复杂的方法设计具有运动功能的弹簧。
简单方法:将 Instant3D 与普通的旧螺旋弹簧一起使用
信不信由你,即使是最基本的弹簧也内置了动态运动(技术上)。具体来说,SOLIDWORKS Instant3D 功能可用于实时修改和更新弹簧的长度,因此您可以看到线圈之间的间距在进行调整时增加和减少。
要创建基本弹簧,在您选择的平面上绘制并完全定义一个圆,确认草图,然后使用 CommandManager 的“特征”选项卡中的“曲线”下拉列表创建螺旋线。选择绘制的圆作为螺旋线的参考,然后根据需要调整螺旋线参数。
创建基本螺旋线。
对于SOLIDWORKS经验不足的用户,建议使用包含 Height 参数的“Defined By”选项之一。这将使调整弹簧长度的过程更加直观。
完成后,此螺旋线可用作扫描凸台特征的路径,使用圆形轮廓选项并提供直径以保持简单。
通过沿螺旋曲线扫掠圆形轮廓来创建弹簧。
创建弹簧后,您需要找到控制弹簧长度的尺寸(这将是一个明显的长度尺寸,除非在上一步中使用了 “Pitch and Revolution” 或 “Spiral” 选项来定义螺旋线)。在 FeatureManager 设计树中找到螺旋特征,然后单击一次( 不要双击)。螺旋线的尺寸应显示在屏幕上,如下所示:
显示尺寸的简单弹簧。
如果单击后尺寸没有出现,或者深蓝色的圆形手柄没有出现在尺寸的末端,如上图所示,则 Instant3D 可能被禁用。在这种情况下,导航到 Features (功能) 选项卡以找到 Instant3D 并启用它。
SOLIDWORKS启用 Instant3D 后,单击并拖动附加到弹簧长度尺寸末端的深蓝色圆形手柄。长度将自动更新,弹簧将根据新值实时拉伸或压缩。
使用 Instant3D 实时调整弹簧长度。
对于一些相对简单的应用程序,此方法可能足以完成工作。但对于大多数询问如何在弹簧中显示运动的人来说,他们正在寻找比这更多的功能。
这种方法有几个限制,但最明显的是:
它不能在动画或运动算例中动态使用。
在装配体中使用时,它不会自动调整。
更改它需要修改螺旋曲线的尺寸,这是生成几何体的 Sweep 的父特征(这可能会变得混乱)。
那么,假设您的需求超出了这个用例,我们该何去何从呢?Advanced 方法解决了这些限制中的每一个,但需要更多的工作。
高级方法:创建没有螺旋线或长度尺寸的弹簧
那么,为什么不能使用 Simple 方法来表示动态运动呢?最大的限制是,要改变弹簧的长度,我们必须改变隐藏在一系列作中的尺寸值。如果您遵循 Simple 方法,您的设计树将如下所示。
简单弹簧设计的特征树。
SOLIDWORKS扫描 特征创建弹簧的几何形状,但使用 螺旋 特征作为路径,而该路径又包含我们必须修改以更改弹簧长度的尺寸。一般来说,SOLIDWORKS 不喜欢通过多个级别的特征相关性传播设计更改,并且出于性能原因,在更改草图尺寸值后不会自动重建。
除此之外,我还想提醒您,尺寸值只是另一个约束,在装配体的上下文中,弹簧的长度应该驱动周围组件的位置的情况很少。相反,装配零部件的位置应驱动弹簧的长度。那么我们该怎么办呢?
去掉螺旋线和长度维度!
如果我们能够抑制或删除与螺旋线关联的长度/高度维度,那么大多数问题都可以假设地解决,但由于螺旋线是一个特征,而长度维度是特征所必需的,因此没有办法解决这个问题。所以拿出你的思考帽,是时候找个解决方法了!
弹簧的螺旋性质可以在没有螺旋线的情况下复制,方法是使用由未标注尺寸的垂直线路径构建的扫描凸台和从路径偏移构建的圆形轮廓,如图所示(这些应创建为单独的草图,否则扫描特征可能会因所需的选项而失败)。
表示弹簧路径的任意长度的直线和表示弹簧轮廓的圆。此处显示的 20mm 尺寸代表线圈的半径。
SOLIDWORKS创建此草图后,开始扫描 Boss 特征,选择圆作为轮廓,选择直线作为路径。最初您可能会注意到没有预览,这表明该功能将失败。
No Sweep preview(无扫描预览),表示使用给定参数时该功能将失败。
这是因为在当前选择项下,圆将沿着绘制它的同一平面扫掠,而无法扫掠任何体积。但是,Options (选项) 下拉列表允许我们手动指定 twist 值。
Profile Twist 选项可用于 Swept Boss 功能。
指定大于零度的扭曲值将导致轮廓绕直线路径旋转在扫描长度上指定的量,同时遵循草绘的偏移距离(在本例中为 20 毫米)。考虑将 Twist control 参数更改为 Revolutions,以便更轻松地定义创建的线圈数。
指定扭曲 10 转时的弹簧预览。
确认扫描特征以生成几何。现在弹簧没有长度维度,不依赖于螺旋线,可能性是无穷无尽的!只需在草图中拖动控制弹簧长度的线段,即可相应地自动重建它。这看起来与 Simple 方法非常相似,但重要的是,此方法与程序集兼容,只需多做一点工作。
您可能希望从沿弹簧长度的平面与其他参考特征的交点创建参考轴。这些可以简化装配体中的配合。
显示有参考平面和配对轴的无尺寸弹簧。
需要注意的是,简单地将此弹簧添加到组件并将其与现有组件配合不会显示您可能正在寻找的动态运动。默认情况下,添加到装配体的零部件的行为与刚体相同,即使它们在零件级的参数定义不足。在这里,我模拟了一个简单的注射器来说明这种效果。
一个完全定义的注射器组件,没有可用的运动。
事实上,在这种特殊情况下,弹簧的大小将柱塞组件拉到一个不可能的位置。为了纠正这种行为,我们的最后一步是将弹簧的一个配合替换为 in-context 关系,以使弹簧的长度取决于零部件的位置。
首先,我将在弹簧末端移除平面之间的重合配合,从而允许弹簧和柱塞自由移动。然后,右键单击弹簧零部件,并使用 Edit Part 命令开始在装配体的上下文中编辑零件。
注射器组件与 Edit Part 图标一起显示,该图标位于右键单击上下文菜单中。
根据您的系统设置,弹簧可能会变成蓝色,或者组件的其余部分可能会变成透明,或者它们之间的某种组合 - 但您现在应该处于“编辑零件”模式。从这里,我们可以编辑控制弹簧长度的草图,并将其附加到装配体中的另一个零部件,从而创建关联关系,该关系将允许弹簧长度在移动柱塞时动态更新。
编辑零件模式下的注射器组件,其中控制弹簧长度的草图处于选中状态。
根据您的设计方案,此步骤所需的关系会有所不同,但在大多数情况下,控制弹簧长度的线段的端点应使用重合关系连接到另一个零部件的面、边或顶点,如下所示:
通过草图关系连接到注射器管末端的线段端点。
提醒一下,这是重合草图关系,而不是装配体配合,因为我们正在装配体的上下文中编辑零件。完成后,只需确认草图,然后退出 Edit Part 模式,您就可以正式测试弹簧的动态行为了。
移动柱塞之前和之后的弹簧。
在重新定位零部件后(目前),更新弹簧长度仍需要重建,但周围的零部件现在应该完全控制弹簧的长度。这将设计灵活性提升到一个新的水平,以及可以直接保存为视频文件的动画和运动算例。
使用运动算例为弹簧制作动画。
其他想法
现在您已经掌握了创建动态弹簧的概念,有很多方法可以提高弹簧的真实感和功能。最后,我将介绍一些额外的要点,以便您了解下一步做什么。
如果长度真的很重要呢?
本文假设弹簧的长度是任意的,但这实际上取决于您的具体情况。如果愿意(或必要),您可以在此设计过程中从附加到线段的尺寸开始,该尺寸表示弹簧的自由长度(或您喜欢的任何长度)以提供初始状态,但必须删除尺寸才能允许动态运动。
为了更有效地控制弹簧的长度,请考虑在弹簧连接的零部件之间应用距离配合。此配合附带一个可动态调整的尺寸,类似于简单方法中使用的草图尺寸。它还会产生“真正的”动态行为,因为在调整之间不需要重建,并且可以与 Mate Controller 功能一起使用。
使用距离配合在装配体中动态调整弹簧长度。
此外,距离配合可根据需要切换为驱动或从动,允许您决定是否要设置弹簧长度并让零部件位置相应地响应(驱动)或反之(驱动)。
您可以通过改用 LimitDistance 配合来进一步提高设计的真实感,以确保控制弹簧长度的零部件仅在实际值范围内运行。
子装配体将使动态弹簧看起来不工作。
出于SOLIDWORKS性能原因,默认情况下,子装配体被设置为作为一组刚性零部件。如果您想在子组件级别看到动态弹簧运动,则需要在“设计树”中右键单击该子组件,然后使用上下文菜单中的“使子组件具有柔性”命令,从而将该子组件指定为柔性组件。图标如下所示:
Make Subassembly Flexible 图标。
这将允许您的弹簧即使在子组件级别也能动态运行,但应该注意的是,这可能会导致性能下降,具体取决于您的系统规格和柔性子组件的数量。
多个上下文可能会出现问题。
将 Spring 模型添加到组件并添加关联关系以控制其长度后,您实际上是在 Spring 和该特定组件之间创建依赖关系。如果您打算在多个组件中重用同一个弹簧模型,这可能会变得非常混乱,很快就会变得非常混乱,并且如果您不提前做好准备,可能会导致各种东西损坏。
实质上,弹簧模型将始终回顾创建关联关系的第一个装配体,并使用该信息来确定弹簧长度。这会产生模型上下文冲突的可能性,虽然有既定的最佳实践来处理这个问题,例如使组件变得灵活,但它们超出了本文的范围(这与如上所述使子装配体变得灵活不同)。
您可以在智诚科技ICT提供的装配体建模课程的自上而下装配体建模部分中了解更多信息。
最后的思考
从这里开始,您可以自定义弹簧模型,使其更真实或更适合您的设计需求。您可能希望使用“带曲面切割”特征来表示“接地端”,添加环来表示张力弹簧,以减小的螺距创建额外的线圈,或具有任意数量的其他特征。只要设计的 spring 部分保持其上下文关系,它就会随着设计的变化而继续拉伸和压缩。
简单的扫描和放样特征用于创建固定钩特征,同时保持动态弹簧运动。
本文中使用的上下文设计策略非常灵活,不仅适用于弹簧设计,但在使用它时需要跟踪很多内容。如果您不熟悉,请考虑进行一些研究或参加培训课程,以确保您遵循所有最佳实践。
获取正版软件免费试用资格,有任何疑问拨咨询热线:400-886-6353或 联系在线客服
未解决你的问题?请到「问答社区」反馈你遇到的问题,专业工程师为您解答!