Ar kada nors susidūrėte su projektu, kuriame reikia atspausdinti daug vienodų detalių su skirtingais užrašais ant jų? Pavyzdžiui vardo korteles vestuvėms ar panašiai.
Man taip nutiko kuomet kartu žmona gaminome individualius Kalėdinius žaisliukus, o ant jų klientė paprašė sukurti pakabukus su skirtingais vardais. Žaisliukai buvo naudojami įmonės Kalėdinei šventei. Atsiųstas sąrašas buvo ilgesnis nei 50 vardų.
Kai tik išvydau užsakymą, pradėjau sukti galvoje mintis, kaip tai automatizuoti. Ieškojau internete informacijos ir susidūriau su bėda, kad modeliavimas, naudojant parametrinį tekstą gana ribotas. Jį aptikau tik Autodesk Inventor programoje, kuri yra mokama ir atsižvelgiant į atsiliepimus ne taip lengvai perprantama, kad spėčiau įgyvendinti užduotį.
Nusprendžiau imtis užduoties naudodamas tik savo turimus išteklius ir automatizuoti iki tokio lygio, kad poros klavišų paspaudimu įvesčiau vardą ir jau turėčiau spausdinimui paruoštą failą STL formatu.
Paaiškėjo, kad tam bus reikalinga šiek tiek programavimo ir gudrių metodų tekstui lygiuoti, kadangi programoje Fusion 360 tai ganėtinai keblu (be abejo, kol nesužinai sprendimo būdo).
PAMOKA
- Įsirašome programą Visual Studio Code
- Įsirašome python programavimo kalbos papildinį:
Atidarome VS Code programą 1
Keliaujame į papildinių skiltį (angl. extensions) 2, į paiešką įvedame “Python” 3, pasirenkame pirmąjį variantą 4, spaudžiame “Install” 5
SVARBU: Kad VS Code papildinys veiktų kartu su modeliavimo programa, reikalinga senesnė versija, kuri yra patikrinta ir puikiai veikianti. Todėl perkrauname papildinį 6, vėl keliaujame į papildinius 7, spaudžiame “Install Another Version…” 8, 9 ir įrašome versiją 2019.9.34911 10, 11
- Sukuriame naują Fusion 360 scenarijų (angl. script):
Atsidarome modeliavimo programą Fusion 360 , keliaujame į skiltį “Tools” 12, spaudžiame “Add-ins” 13. Sukuriame naują scenarijų 14: būtinai pasirenkame “Script” 15, tuomet “Python” 16, įrašome pavadinimą (šiuo atveju “TekstoKeitimas”) 17 ir spaudžiame sukurti 18.
Naujai sukurtą scenarijų 19 koreguojame 20.
Pasirenkame visą kodą 21, jį pakeičiame žemiau nurodytu kodu 22.
Sukuriame kompiuteryje naują aplanką, kuriame talpinsime automatiškai išsaugomus failus (pvz.: C:/Users/Linas/Desktop/STL failai/)
Kode koreguojame tik pažymėtą skiltį 23. Joje įrašome sukurto aplanko kelią. Nepamirškite išsaugoti kodo 24, 25. Tuomet išjungiame VS Code programą 26.
#Šablonas automatiniam teksto keitimui ir išsaugojimui STL formatu
#Programa Fusion 360
#3Dklase.lt / Linas Kesiūnas
import adsk.core, adsk.fusion, adsk.cam, traceback
def run(context):
ui = None
try:
app = adsk.core.Application.get()
ui = app.userInterface
design = app.activeProduct
rootComp = design.rootComponent
# Atidaro lentelę naujo teksto įvedimui.
(returnValue, cancelled) = ui.inputBox('Norimas tekstas:', '3Dklase.lt', )
# Automatiškai pasirenka brėžinį pavadinimu "KeistiTeksta" bei pirmą sukurtą teksto įrašą jame.
sk = rootComp.sketches.itemByName('KeistiTeksta')
skText = sk.sketchTexts.item(0)
# Pakeičia tekstą.
skText.text = returnValue
# Nurodome, kur norime išsaugoti naują failą. Pakoreguokite pagal jūsų aplanko kelią kompiuteryje.
folder = 'C:/--------------------KOREGUOTI----------------------------/'
# Sukuria failo pavadinimą.
filename = folder + skText.text + '.stl'
# Išsaugo failą.
exportMgr = adsk.fusion.ExportManager.cast(design.exportManager)
stlOptions = exportMgr.createSTLExportOptions(rootComp)
stlOptions.meshRefinement = adsk.fusion.MeshRefinementSettings.MeshRefinementMedium
stlOptions.filename = filename
exportMgr.execute(stlOptions)
except:
if ui:
ui.messageBox('Failed:\n{}'.format(traceback.format_exc()))
- Fusion 360 programos automatinis teksto scenarijus paruoštas. Lieka tik išbandyti, kaip jis paspartins mūsų darbą, susidūrus su dideliu užsakymu:
Pridedu video nuorodą, kaip greitai naudotis šiuo scenarijumi. Jame galite matyti visus klavišus, kuriuos spaudžiu. Taip pat siūlyčiau perskaityti patarimus, esančius po video įrašu:
- Programoje Fusion360 sukuriame naują objektą, kuriame sukuriame brėžinį (angl. sketch) pavadinimu “KeistiTeksta” (pavadinimas turi būti būtent toks). Jame patalpiname tik tekstą, kurį norėsime keisti.
- Kad pakeistas tekstas išsaugotų savo dabartinę padėtį, visada jį lygiuokite su apibūdinimu (angl. constraint) “Horizontal/Vertical”. Laikydami “Shift” mygtuką užeikite ant apatinės teksto linijos, per vidurį atsiras trikampis, indikuojantis, kad galime žymėti linijos centrinį tašką. Žymime jį, o tuomet liniją ar tašką, ties kurio norime lygiuoti tekstą.
- Greičiausias būdas keisti tekstą – naudoti klavišų derinį “Shift+S”, tuomet dukart paspausti ant mūsų naujai sukurto scenrijaus “KeistiTeksta”, įvestį norimą tekstą ir spausti “Enter”. STL failas iškart bus sugeneruotas ir išsaugotas prieš tai nurodytame aplanke (mano atveju <…>/Desktop/STL failai/).
REZULTATAs
3Dovanos projektą įgyvendino sėkmingai
Pamokoje naudota
Kaspino modelis:
Jei ieškote daugiau idėjų panašiems darbams, siūlau plačiau paskaityti, kur atsisiųsti daugiau 3D modelių.
3D modeliavimo programa: Fusion 360;
Vaizdo įrašas: Fusion 360 Screencast;
Komentarai
Dėkoju Fusion 360 forumo nariams “ekinsb” bei “rwillardphil” už jų pasidalintus Fusion 360 API programavimo pavyzdžius, kuriuos naudodamas galėjau sukurti bendrą automatizavimo kodą.
Taip pat, galbūt atsirastų norinčių prisidėti ir patobulinti šį procesą? Galbūt tiesiog turite idėjų ar minčių? Palikite komentarą, padiskutuosime.