Návrh komponentov #
Pri návrhu vlastných konštrukcií často potrebujeme upraviť a modifikovať štandardné diely alebo vytvárať nové diely. Je zrejmé, že nie je možné vytvoriť univerzálny katalóg dielov, možnosti stavebnice Stemfie-X sú rozsiahle, a je preto vhodnejšie požadované diely a ich varianty vytvoriť “na mieru” pomocou programu.
Štruktúra knižnice #
Knižnicu Stemfie-X tvorí sada tried implementovaná pomocou knižnice CadQuery. Diely stavebnice je možné vytvárať v jednom kroku volaním funkcií s parametrami dielov, nové diely je možné tvoriť z iných dielov pomocou jednoduchých logických operácií (prienik, rozdiel, zjednotenie). Pre generovanie štandardných ako aj odvodených dielov stavebnice postačujú triedy knižnice Stemfie-X, pokročílí uživatelia ale môžu využiť všetky možnosti knižnice CadQuery a jazyka Python.
Pre tvorbu špeciálnych komponentov je možné triedy knižnice rozšírovať dedením a pridávaním ďalších špecifických vlastností. Štruktúru knižnice Stemfie-X zobrazuje nasledujúci diagram
Obr. 28 Štruktúra tried knižnice Stemfie-X#
Vytváranie objektov #
Pre generovanie podkladov pre 3D tlač štandardných komponentov je potrebné importovať knižnicu lib a vygenerovať želaný komponent vytvorením objektu danej triedy.
b1 = Brace(5) # vytvorenie nov0ho objektu
q1 = Beam([1/2, 3, 3])
w2 = Wheel(2)
Export objektov #
Export objektov do súborov typu .step alebo .stl pre generovanie podkladov pre 3D tlač je pomocou funkcií
object.export_step(file_name)
object.export_stl(file_name)
file_name - textový reťazec (string), bez prípony
Náhlad objektu vo formáte .png vygenerujeme pomocou funkcie
convert_to_image(object, file_name, ax, ay, az)
object - vygenerovaný stemfie komponent
file_name - textový reťazec (string), bez prípony
ax,ay,az - poloha view-pointu pre náhlad na objekt
Nasledujúci fragment programu ukazuje použitie funkcií pre export objektov
b1.export_step('brace_B_05')
q1.export_stl('beam_B_12_03_03_111')
convert_to_image(w2, 'wheel')
Transformácie objektov #
Pri vytváraní nových komponentov stavebnice alebo tvorbe zostáv potrebujeme s objektami manipulovať v 3D priestore. Metódy triedy Stemfie_X pre manipuláciu s objektami sú zjednodušenou formou operácií z knižnice CadQuery. Všeobecný formát transformácií má tvar
object = object.operation( <param ...> )
Každá transformáciu vracia referenciu na transformovaný objekt, takže je možné transformácie reťaziť
objec = object.operation_1(<param ...>).operation_2(<param>) ...
Posun #
Posuny objektu v smeroch osí súradnicovej sústavy
BU_Tx(n) # posun objektu v smere x,y,z v jednotkách BU
BU_Ty(n)
BU_Tz(n)
BU_Txy([x,y]) BU_Txy(x,y)
BU_Tyz([x,y]) BU_Tyz(y,z)
BU_Tzx([z,x]) BU_Tzx(z,x)
BU_T([x,y,z]) BU_T(x,y,z)
Tx(d) # posun objektu v jednotkách [mm]
Ty(d)
Tz(d)
T([x,y,z]) T(x,y,z)
Rotácia #
Rotácie objektu okolo osí súradnicivej sústavy. Veľkosť uhla je v stupňoch.
Rx(angle)
Ry(angle)
Rz(angle)
Zrkadlenie #
Zrkadlenie objektu podľa osí súradnicivej sústavy.
Mx() # zrkadlenie objektu
My()
Mz()
MKx() # zrkadlenie s kopírovaním
MKy()
MKz()
Logické operácie #
Pre vytváranie zložených objektov sú definované základné logické operácie.
U(c) U([c1,c2 ...]) union
D(c) D([c1,c2 ...]) difference
I(c) I([c1,c2 ...]) intersection
Použitie #
S využitím knižnice základných komponentov a transformačných metód môžeme vytvárať zložené objekty. Najskôr vytvoríme jednotlivé objekty, pomocou transformačných vzťahov ich posunieme do správnej pozícia a nakoniec ich logickou operáciou zjednotíme do finálneho objektu.
b1 = Brace(8, 1/4).BU_Tx(-(3+1/2)) # spojka v rovine XY a presun do stredu
c1 = BU_Cylinder(1).BU_Tz(1/2+1/4) # valec a presun nad spojku
c1= c1.BU_Tx(3+1/2) # presun valca na konec spojky
c2 = c1.MKy() # vytvorenie druheho valca zrkadlenim v osi Y s kopiou
b1.U([c1,c2]) # zjednotenie objektov
Obr. 29 Vygenerovaný zložený objekt.#