步骤1:螺旋样条线
此步骤中使用的脚本是 SpiralSpline 和 SpiralSweepSolids ,可在此处找到https://github.com/sterlingcrispin/Fusion360API/
SpiralSpline .py
第一个草图是通过点创建API样本从Sketch样条线改编而来的,其想法是从像样条线这样的简单元素开始,并开始增加一些复杂性。
第6行:
导入数学库以获得三角函数
import math
作为与提供的API示例的第一个偏差,我嵌套了 points.add 函数在for循环中,该函数使用三角函数在XY平面上的圆上创建点,然后简单地在Z方向上前进以形成螺旋样条。
for i in range(10):
# from 0 to TWOPI radians as i increases
p = (i/9) * math.pi * 2
points.add(adsk.core.Point3D.create( math.cos(p), math.sin(p) , i ))
# Create a spline along those points
spline = sketch.sketchCurves.sketchFittedSplines.add(points)
下一步将其环绕,以创建一系列随强度变化的螺旋样条,
for j in range(10):
for i in range(10):
# from 0 to TWOPI radians as i increases
p = (i/9) * math.pi * 2
# scaled in intensity by each spline
p = p * (j/9)
# so the splines aren‘t on top of one another
xstep = j * 2
points.add(adsk.core.Point3D.create( math.cos(p) + xstep , math.sin(p) , i ))
# Create a spline along those points
spline = sketch.sketchCurves.sketchFittedSplines.add(points)
#delete any old points so the splines don’t become connected
points = adsk.core.ObjectCollection.create()
步骤2:将样条扫入实体
SpiralSweepSolids.py
在此螺旋形样条曲线集合的基础上,此草图在每个样条线的开头创建一个圆,并沿该样条线向下扫掠以创建新实体
# Create a circle at the beginning of the spline
circles = sketch.sketchCurves.sketchCircles
circle1 = circles.addByCenterRadius(points[0], j/(tubeCount-2) + 0.1)
# Create a sweep input
prof = sketch.profiles.item(j)
path = rootComp.features.createPath(spline)
sweeps = rootComp.features.sweepFeatures
sweepInput = sweeps.createInput(prof,path, adsk.fusion.FeatureOperations.NewBodyFeatureOperation)
步骤3:重构和播放
SpiralSweepSolidsAlt.py
这时,我停止清理一些变量,例如 xstep,length 一个d radius ,因此可以分别调整它们并探究代码的当前参数空间。还有一个名为 taper 的新变量,随着管数的增加,螺旋线会向下倾斜。与其继续在此指令中内嵌代码,不如我切换到diffchecker.com的屏幕快照,该屏幕快照将仅显示已更改的内容。像以前所有这些代码都可以在我的github上找到一样。
其中一些图像还使用了代码运行后手动完成的操作,例如对称形式的 Create》 Mirror 。
步骤4:倒角和草图平面
SpiralSweepXY.py
与之前的代码一样,可从https://github.com/sterlingcrispin/Fusion360API获得
问题:
我想在第一组样条中运行第二组样条线,以创建一种编织网格,通过创建网格可以轻松实现zX平面上的第二个草图,但是这些形状的交点看起来很粗糙。对边缘进行倒角似乎是一个很好的解决方案,但是“扫掠”功能导致形状严重变形并使倒角失败。
解决方案:
Fusion360 API中包含的 Pipe.py 示例中的代码,并创建了垂直于样条线(面向样条线的方向)的草图平面。我真的很喜欢此函数的输出,它看起来更像Fusion360中的 Create》 Pipe 功能。
SweepNormalToSpline 是第一个函数,给定样条曲线,半径和文档的根组件,该函数创建一个面向样条线方向的新构造平面,绘制指定半径的圆,将圆向下扫到样条线,并返回一个扫描对象供您使用。再次从 Pipe.py 大量借用了这段代码,但是我发现将其创建为函数确实很有帮助。
ChamferSweep 是第二个函数,非常简单明了,它遍历扫掠的每个面,然后遍历每个边缘,创建一组边缘,然后将其倒角。编写此类内容时,打开Fusion360 API参考有助于查找确切的倒角命令作为参数(边的对象集合)以及如何从扫掠中获取那些边(嵌套循环)
我发现的另一个有用的提示是将设计设置为“直接设计类型” ,该记录将停止记录时间轴中的每个动作,这大大加快了脚本计算时间,而我没有
步骤5:重构和播放
在这一点上我感觉像代码真的开始变得有趣起来,因此我更改了控制基本形式的变量,例如长度,管数,样条线段和半径,以了解到目前为止,什么样的形式会从参数空间中出来。如果您正在阅读并继续学习,建议您做同样的事情,看看可以找到什么以及对您而言有趣的东西。
我开始注意到这种弧形拔罐形状,这让我想到了碗或花瓶。
步骤6:查找表格
SpiralSweepBowl.py
在对代码进行实验后,我以为可以形成一个碗并编辑原始样条代码以形成一个空腔,但是我认为它清楚地表明该脚本是
第7步:3D打印或渲染!
我使用Fusion360和Nylon-6-6材质设置在本地制作了这些渲染图。如果您想对此表格进行3D打印,我会将其从93mm放大到150mm或您喜欢的任何尺寸。您可以在建模模式下使用 Modify》 Combine 工具将所有管组合到一个实体中进行3D打印,然后将其导出为STL
责任编辑:wv
-
软件
+关注
关注
69文章
4906浏览量
87361
发布评论请先 登录
相关推荐
评论