步驟1:螺旋樣條線
此步驟中使用的腳本是 SpiralSpline 和 SpiralSweepSolids ,可在此處找到https://github.com/sterlingcrispin/Fusion360API/
SpiralSpline .py
第一個草圖是通過點創(chuàng)建API樣本從Sketch樣條線改編而來的,其想法是從像樣條線這樣的簡單元素開始,并開始增加一些復(fù)雜性。
第6行:
導(dǎo)入數(shù)學(xué)庫以獲得三角函數(shù)
import math
作為與提供的API示例的第一個偏差,我嵌套了 points.add 函數(shù)在for循環(huán)中,該函數(shù)使用三角函數(shù)在XY平面上的圓上創(chuàng)建點,然后簡單地在Z方向上前進(jìn)以形成螺旋樣條。
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)
下一步將其環(huán)繞,以創(chuàng)建一系列隨強(qiáng)度變化的螺旋樣條,
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
在此螺旋形樣條曲線集合的基礎(chǔ)上,此草圖在每個樣條線的開頭創(chuàng)建一個圓,并沿該樣條線向下掃掠以創(chuàng)建新實體
# 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:重構(gòu)和播放
SpiralSweepSolidsAlt.py
這時,我停止清理一些變量,例如 xstep,length 一個d radius ,因此可以分別調(diào)整它們并探究代碼的當(dāng)前參數(shù)空間。還有一個名為 taper 的新變量,隨著管數(shù)的增加,螺旋線會向下傾斜。與其繼續(xù)在此指令中內(nèi)嵌代碼,不如我切換到diffchecker.com的屏幕快照,該屏幕快照將僅顯示已更改的內(nèi)容。像以前所有這些代碼都可以在我的github上找到一樣。
其中一些圖像還使用了代碼運行后手動完成的操作,例如對稱形式的 Create》 Mirror 。
步驟4:倒角和草圖平面
SpiralSweepXY.py
與之前的代碼一樣,可從https://github.com/sterlingcrispin/Fusion360API獲得
問題:
我想在第一組樣條中運行第二組樣條線,以創(chuàng)建一種編織網(wǎng)格,通過創(chuàng)建網(wǎng)格可以輕松實現(xiàn)zX平面上的第二個草圖,但是這些形狀的交點看起來很粗糙。對邊緣進(jìn)行倒角似乎是一個很好的解決方案,但是“掃掠”功能導(dǎo)致形狀嚴(yán)重變形并使倒角失敗。
解決方案:
Fusion360 API中包含的 Pipe.py 示例中的代碼,并創(chuàng)建了垂直于樣條線(面向樣條線的方向)的草圖平面。我真的很喜歡此函數(shù)的輸出,它看起來更像Fusion360中的 Create》 Pipe 功能。
SweepNormalToSpline 是第一個函數(shù),給定樣條曲線,半徑和文檔的根組件,該函數(shù)創(chuàng)建一個面向樣條線方向的新構(gòu)造平面,繪制指定半徑的圓,將圓向下掃到樣條線,并返回一個掃描對象供您使用。再次從 Pipe.py 大量借用了這段代碼,但是我發(fā)現(xiàn)將其創(chuàng)建為函數(shù)確實很有幫助。
ChamferSweep 是第二個函數(shù),非常簡單明了,它遍歷掃掠的每個面,然后遍歷每個邊緣,創(chuàng)建一組邊緣,然后將其倒角。編寫此類內(nèi)容時,打開Fusion360 API參考有助于查找確切的倒角命令作為參數(shù)(邊的對象集合)以及如何從掃掠中獲取那些邊(嵌套循環(huán))
我發(fā)現(xiàn)的另一個有用的提示是將設(shè)計設(shè)置為“直接設(shè)計類型” ,該記錄將停止記錄時間軸中的每個動作,這大大加快了腳本計算時間,而我沒有
步驟5:重構(gòu)和播放
在這一點上我感覺像代碼真的開始變得有趣起來,因此我更改了控制基本形式的變量,例如長度,管數(shù),樣條線段和半徑,以了解到目前為止,什么樣的形式會從參數(shù)空間中出來。如果您正在閱讀并繼續(xù)學(xué)習(xí),建議您做同樣的事情,看看可以找到什么以及對您而言有趣的東西。
我開始注意到這種弧形拔罐形狀,這讓我想到了碗或花瓶。
步驟6:查找表格
SpiralSweepBowl.py
在對代碼進(jìn)行實驗后,我以為可以形成一個碗并編輯原始樣條代碼以形成一個空腔,但是我認(rèn)為它清楚地表明該腳本是
第7步:3D打印或渲染!
我使用Fusion360和Nylon-6-6材質(zhì)設(shè)置在本地制作了這些渲染圖。如果您想對此表格進(jìn)行3D打印,我會將其從93mm放大到150mm或您喜歡的任何尺寸。您可以在建模模式下使用 Modify》 Combine 工具將所有管組合到一個實體中進(jìn)行3D打印,然后將其導(dǎo)出為STL
責(zé)任編輯:wv
-
軟件
+關(guān)注
關(guān)注
69文章
5154瀏覽量
89224
發(fā)布評論請先 登錄
評論