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