3D: OpenSCAD, seznam dílů

Wasper

  • ***
  • 120
    • Zobrazit profil
    • E-mail
3D: OpenSCAD, seznam dílů
« kdy: 14. 09. 2022, 17:51:05 »
Zdravím,
před letu tu bylo dost pokročilých uživatelů, tak bych se rád zeptal, jestli z těch co zůstali někdo neřešil podobný problém.
Používám OpenSCAD na to si nakreslit nějaký budoucí projekt (reálně jsou to jednodušší konstrukce z kovu, ale pro popis problému to zjednoduším na příkladu).

Jednotlivé prvky jsou v samostatné knihovně jako moduly, např.
Kód: [Vybrat]
module spejle(delka, polomer) {
    cylinder(r=polomer, l=delka);
}
module prkynko(x,y,tloustka) {
    cube([x,y,tlousktka]);
}
....
a samotný projekt je pak nepřehledný mix difference-union--- v modulu (+funkční podcelky v dalších modulech) stylu
Kód: [Vybrat]
module jerab() {
    diference() {
        union() {
             prkynko(30,30,2);
             translate([...]) rotate([...]) spejle();
             ....
        }
        translate([...]) dira(4);     // cylinder
    }
}
No a teď k vlastnímu problému. Těch dílů je reálně víc, a je potřeba je objednat. To je celkem jednoduché, do modulu spejle() se prostě přihodí něco jako echo("Kup spejli ", r=r, l=l);, a v horším případě se to copypastne z console v GUI, v lepším se to spustí z command line s patřičným outputem.

Ale teď je tu problém druhý - potřeboval bych jednotlivé díly vidět (==hodit na papír a vzít do dílny). Fajn, přeparsovat ty echa do .scad je triviální, ale to problém neřeší. Co ve skutečnosti v našem modelovém případu je potřeba dostat "na papír" tu desku, ale včetně díry (opět, v reálu tomu odpovídají věci jako tady navrtat, tady vyříznout závit, tady vypálit do plechu díru, u složitějších tvarů via vytisknout na 3d šablonu, podle které se to objede plasmou). A pokud možno to nedělat ručně (těch dílů tam může být několik desítek. A každý díl může být v nějakém difference, takže prosté oremování by mělo dost nehezké následky).
Zpracovat to přímo z té knihovny nevím jak - tam vím, jak je prvek velkej, ale už nevidím, jak moc je otočený/posunutý, takže udělat intersekci jednoho prvku (který jsem získal tím echem) z celým modelem nepůjde.
Co bohužel taky nepůjde je v knihovně počítat, kolikátý prvek to je (ano, v procedurálním jazyce není nic snadnějšího než něco jako if (displej && displej != global_count++) return; a pouštět to postupně openscad -D displej=$n -output prvek$n.stl ale jak tohle udělat v funkcionálním opravdu netuším).
Napadá mě snad jedině každé součástce přihodit ID jako parametr a pak to projet nějakým preprocesorem, ale to už je čuňárna docela veliká i na mě, i když by to fungovalo.
Nemáte někdo vymyšlené něco jednoduššího?


Re:3D: OpenSCAD, seznam dílů
« Odpověď #1 kdy: 14. 09. 2022, 18:44:01 »
S OpenSCADem jsem si hrál před více lety a to jen tak povrchně, takže asi nenavrhnu nic převratného a už vůbec elegantního. Nicméně, napadá mě určité řešení - pokud mi neuniká něco podstatného z rozsahu celého problému. Co těm "nadmodulům", které tvoří jednu konrétní součást (např. "prkýnko s dírou tady a ještě tady"), přidat nějaký prefix do názvu? Tím by se dalo identifikovat, co je samostatný stavební prvek, ale ne třeba díra nebo větší dílčí celek, a zároveň bys tam nemusel vymýšlet konkrétní ID (což, jak jsi uvedl, se ti nelíbí a to samozřejmě chápu :). To by pak i mohlo fungovat, pokud bys již na vyšší úrovni s použitím těchto "součástek" nedělal další průniky nebo sjednocení, ale jen je lepil k sobě.

Wasper

  • ***
  • 120
    • Zobrazit profil
    • E-mail
Re:3D: OpenSCAD, seznam dílů
« Odpověď #2 kdy: 14. 09. 2022, 19:20:04 »
S OpenSCADem jsem si hrál před více lety a to jen tak povrchně, takže asi nenavrhnu nic převratného a už vůbec elegantního. Nicméně, napadá mě určité řešení - pokud mi neuniká něco podstatného z rozsahu celého problému. Co těm "nadmodulům", které tvoří jednu konrétní součást (např. "prkýnko s dírou tady a ještě tady"), přidat nějaký prefix do názvu?
Hmm to by znamenalo upravit logiku jak je to dělané, a zamyslet se jestli tím nepřibude víc práce než to ušetří, ale možná by tudy cesta vedla.
(akorát tak jak to mám teď, tak ten "nadmodul" je třeba nějaký rám svařený z jeklů do kterého jsou pak if ($preview)  { nastrkané šrouby } else { vyvrtané díry} - až na to, že fakticky ty díry je potřeba vyvrtat do těch jeklů na začátku, protože svařené se to pak nevejde pod vrtačku. Ale možná by to nějak šlo.

Re:3D: OpenSCAD, seznam dílů
« Odpověď #3 kdy: 14. 09. 2022, 22:16:09 »
No jestli to dobre chapu tak je treba se na to podivat z hlediska vystupu.
vystupem je jednak model jerabu (jako navod jak to smontovat), ale taky model kazde jednotlive soucastky(kterou je potreba hodit na papir a odnest do dilny).

Takze podle me je potreba aby kazda soucastka (prkynko s dirou tady... a druhy prkno s dvema dirama.... atd.)
byla ve vlastnim modulu s vlastnim jmenem.

modul jerab uz by nemel mit zadny difference... diry uz musi byt v soucastce...
jerab by mel byt jen union ruzne otocenych a posunutych soucastek. (chapu, ze to ponese problemy s tim, ze bys chtel treba ditu udelat jednim valcem prez dve soucastky zaroven... ale tady to tak nepujde... bude potreba si diry pocitat u kazde soucastky zvlast...)

Jeste zminim, ze ja nepouzivam OpenSCAD primo, ale pouzivam clojure knihovnu scad-clj.
Funguje to tak, ze pisu clojure code a mam tam funkci, ktera mi z toho vyplivne .scad file.
A rikam to proto, ze si tady dovedu dobre predstavit, ze to v tom namodeluju... necham to spocitat a vypsat nakupni seznam... a necham to vygenerovat 30 .scad souboru ktery pak necham OpenSCAD namalovat a vytisknout...
Na druhou stranu chapu, ze by to byla velka investice neucit se a predelat workflow do novy technologie.. takze nic nenutim...

Karmelos

  • *****
  • 1 040
    • Zobrazit profil
    • E-mail
Re:3D: OpenSCAD, seznam dílů
« Odpověď #4 kdy: 15. 09. 2022, 09:50:02 »
Já teda nic proti openscadu, ale je to podle mě jen takové hobby udělátko na blbnutí ve 3D.
 
Na produkční nasazení je to imho naprosto nevhodné - potřeba kvalitní výkresové dokumentace to diskvalifikuje.
Jako proč nepoužívat freecad, ten umí i 3D a nativně výkresy.

Na druhou stranu, pokud bych to teda mermomocí chtěl nasadit, je nutné vytvořit dost striktní pravidla kreslení součástek - a tvůrce řádně proškolit a ty pravidla důsledně vyžadovat.   

Bastl kde se díry dělají po sloučení několika dílů bych dotyčnému "konstruktérovi" omlátil o hlavu. A stejně tak něco u čeho se nedá rozlišit a vykopírovat každá jednotlivá součástka zvlášť.
Gréta je nejlepší.


Wasper

  • ***
  • 120
    • Zobrazit profil
    • E-mail
Re:3D: OpenSCAD, seznam dílů
« Odpověď #5 kdy: 15. 09. 2022, 12:49:18 »
Já teda nic proti openscadu, ale je to podle mě jen takové hobby udělátko na blbnutí ve 3D.
Souhlas, přesně o takové nasazení mi jde, čistě hobby, kdy "projektant" = "dělník" = já. Celkem přirozená evoluce, na 3D tisk mi to plně dostačuje, a víceméně v tom umím a přístup výkres programovat mi celkem vyhovuje. A hlavní cíl cvičení je si nějakou věc předem naplánovat, aby se nestalo, že se zapomene někde díra, nebo že se tam něco nevejde, až když je hotovo.

 Na druhou stranu, to co píše Listoper je dobrá inspirace, psát si to v něčem jiném, a pak z toho teprve generovat scad zdroják(y) bude asi průchozí. Na rozdíl od parsování scad zdrojáku se tím docela elegantně vyřeší všechny ty veselosti, jak z toho jednou udělat šroub do preview, a současně díra do daného dílu apod.
 

Karmelos

  • *****
  • 1 040
    • Zobrazit profil
    • E-mail
Re:3D: OpenSCAD, seznam dílů
« Odpověď #6 kdy: 15. 09. 2022, 13:10:45 »
V tom případě doporučuju přístup podobný parametrickým cadům - každou součást si vymodelovat zvlášť a uložit do souboru a pak v separátním souboru - sestavě si tyhle moduly naincludovat a posunout na místo určení. Cokoliv bude potřeba doplnit, otevřít příslušný soubor a dodělat v něm.
Gréta je nejlepší.

Mudvy

Re:3D: OpenSCAD, seznam dílů
« Odpověď #7 kdy: 15. 09. 2022, 23:06:23 »
Ja tedy bohuzel nemohu poradit nic rozumneho protoze openscad nepouzivam. Mate vsak muj obdiv ze si takto tvorite modely. Mam zkusenosti z klasickych cadu jako solidwork, inventor nebo catie. Pokud se jedna o tvorbu vykresu existuje treba moznost model pouzit treba do librecadu ?

Milna

Re:3D: OpenSCAD, seznam dílů
« Odpověď #8 kdy: 18. 09. 2022, 14:24:48 »
Bastl kde se díry dělají po sloučení několika dílů bych dotyčnému "konstruktérovi" omlátil o hlavu. A stejně tak něco u čeho se nedá rozlišit a vykopírovat každá jednotlivá součástka zvlášť.

Neviděl bych to tak emotivně. Vždy se to přece dá zpracovat tak, aby z toho vznikl fyzický výrobek (několik samostatných součástí)...

Santa

Re:3D: OpenSCAD, seznam dílů
« Odpověď #9 kdy: 20. 09. 2022, 18:30:04 »
pozrel by sim sa na integraciu openSCADu vo freeCADe, a nasledne pracu s BOM