第一个草图是通过点创建API样本从Sketch样条线改编而来的,其想法是从像样条线这样的简单元素开始,并开始增加一些复杂性。
第6行:
导入数学库以获得三角函数
importmath
作为与提供的API示例的第一个偏差,我嵌套了points.add函数在for循环中,该函数使用三角函数在XY平面上的圆上创建点,然后简单地在Z方向上前进以形成螺旋样条。
foriinrange(10):
#from0toTWOPIradiansasiincreases
p=(i/9)*math.pi*2
points.add(adsk.core.Point3D.create(math.cos(p),math.sin(p),i))
#Createasplinealongthosepoints
spline=sketch.sketchCurves.sketchFittedSplines.add(points)
下一步将其环绕,以创建一系列随强度变化的螺旋样条,
forjinrange(10):
#scaledinintensitybyeachspline
p=p*(j/9)
#sothesplinesaren‘tontopofoneanother
xstep=j*2
points.add(adsk.core.Point3D.create(math.cos(p)+xstep,math.sin(p),i))
#deleteanyoldpointssothesplinesdon’tbecomeconnected
points=adsk.core.ObjectCollection.create()
步骤2:将样条扫入实体
SpiralSweepSolids.py
在此螺旋形样条曲线集合的基础上,此草图在每个样条线的开头创建一个圆,并沿该样条线向下扫掠以创建新实体
#Createacircleatthebeginningofthespline
circles=sketch.sketchCurves.sketchCircles
circle1=circles.addByCenterRadius(points[0],j/(tubeCount-2)+0.1)
#Createasweepinput
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一个dradius,因此可以分别调整它们并探究代码的当前参数空间。还有一个名为taper的新变量,随着管数的增加,螺旋线会向下倾斜。与其继续在此指令中内嵌代码,不如我切换到diffchecker.com的屏幕快照,该屏幕快照将仅显示已更改的内容。像以前所有这些代码都可以在我的github上找到一样。
其中一些图像还使用了代码运行后手动完成的操作,例如对称形式的Create》Mirror。
步骤4:倒角和草图平面
SpiralSweepXY.py
问题:
我想在第一组样条中运行第二组样条线,以创建一种编织网格,通过创建网格可以轻松实现zX平面上的第二个草图,但是这些形状的交点看起来很粗糙。对边缘进行倒角似乎是一个很好的解决方案,但是“扫掠”功能导致形状严重变形并使倒角失败。
解决方案:
Fusion360API中包含的Pipe.py示例中的代码,并创建了垂直于样条线(面向样条线的方向)的草图平面。我真的很喜欢此函数的输出,它看起来更像Fusion360中的Create》Pipe功能。
SweepNormalToSpline是第一个函数,给定样条曲线,半径和文档的根组件,该函数创建一个面向样条线方向的新构造平面,绘制指定半径的圆,将圆向下扫到样条线,并返回一个扫描对象供您使用。再次从Pipe.py大量借用了这段代码,但是我发现将其创建为函数确实很有帮助。
ChamferSweep是第二个函数,非常简单明了,它遍历扫掠的每个面,然后遍历每个边缘,创建一组边缘,然后将其倒角。编写此类内容时,打开Fusion360API参考有助于查找确切的倒角命令作为参数(边的对象集合)以及如何从扫掠中获取那些边(嵌套循环)
步骤5:重构和播放
在这一点上我感觉像代码真的开始变得有趣起来,因此我更改了控制基本形式的变量,例如长度,管数,样条线段和半径,以了解到目前为止,什么样的形式会从参数空间中出来。如果您正在阅读并继续学习,建议您做同样的事情,看看可以找到什么以及对您而言有趣的东西。
我开始注意到这种弧形拔罐形状,这让我想到了碗或花瓶。
步骤6:查找表格
SpiralSweepBowl.py
在对代码进行实验后,我以为可以形成一个碗并编辑原始样条代码以形成一个空腔,但是我认为它清楚地表明该脚本是
第7步:3D打印或渲染!
我使用Fusion360和Nylon-6-6材质设置在本地制作了这些渲染图。如果您想对此表格进行3D打印,我会将其从93mm放大到150mm或您喜欢的任何尺寸。您可以在建模模式下使用Modify》Combine工具将所有管组合到一个实体中进行3D打印,然后将其导出为STL