ReproMania.NET - Pro lepší zvuk
http://repromania.net/domains/repromania.net/forum/

Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)
http://repromania.net/domains/repromania.net/forum/viewtopic.php?f=22&t=7062
Stránka 2 z 4

Autor:  Zelený [ 15 bře 2017 12:32 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

mabat: Zkoušel jsem to v Rhinocerosu/Grasshopperu. Já je moc nepoužívám, tak mé možnosti něco v nich naprogramovat jsou dost omezené, ale nic jiného pro algoritmické modelování nemám. Hned jsem narazil na problém s tím, že Grasshopper neumí jednoduše vytvořit potřebnou plochu jako spojení mezi výchozími plochami. Rhino to sice umí, ale když to děláš celé v jednom kroku jako spojení pouhých dvou ploch, tak se to chová nevhodně. Ono se to celkem logicky pokouší výslednou plochu vytvořit jako spojení NURB křivek vycházejících z NURB křivek definujících výchozí plochy. Výsledek ovlivňuje vedle nastavení G a vektorů koncových bodů i směr UV os na výchozích plochách. Tudy cesta k matematicky dokonalému a zároveň jednoduše vygenerovanému zvukovodu nepovede.
Takže bych šel asi cestou spojení přesně definovaných řezů, nebo cestou pospojování několika ploch (u zakulaceného obdélníku s kružnicí asi 8 ks). To první by bylo matematicky čisté řešení a asi bych mu dal přednost, pokud by se ta tvorba zautomatizovala třeba v Grasshopperu.
Něco jsem se pokusil nadefinovat v GH, ale není to úplně snadná úloha. Pokouším se to celé rozebrat do matematickými rovnicemi generovaných řezů a ty následně spojovat do plochy. Zatím mám generátor řezů (podle nastavení to tvoří kruhové, eliptické, nebo supereliptické řezy) a z nich mi to dělá plochu. Teď tomu ještě schází matematická definice, která určí změny jednotlivých řezů, aby to sedělo na správné křivce, která by provázala ty dvě výchozí plochy tečným napojením. Pokud by se to povedlo, tak už není problém do toho vložit měření povrchu výsledné plochy a pak si pohrát s nastavením parametrů. Pokud by lépe vyhovoval zakulacený obdélník, tak se může doplnit i ten, ale myslím, že superelipsa je dost fajnová křivka :-) Podle akustiky superelipsu zdůvodněnou nemám, to je čistě intuice :lol: a lenost, protože se mi nechtělo matematicky definovat zakulacené obdélníky :lol: Že se tak ptám, co má být výsledkem? Prostě jen zvukovod s jiným tvarem vyústění?

Autor:  mabat [ 15 bře 2017 14:48 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

Nečekal jsem, že tě to tak zaujme.

Bylo by to na dlouhé povídání. Ideální zvukovod by byl kónický, ale na jeho vstupu by musela být pulzující koule jako sférický zdroj zvuku, což se blbě vyrábí. Takže je třeba se spokojit s vlnou rovinnou (kmitající píst). Pak už ten optimální tvar není konus, ale v profilu hyperbola (1). Ta hyperbola je v takovém případě, a teď upřímně řečeno stále nevím, do jaké míry jen shodou okolností, nejmenší povrch pro takto dané okrajové podmínky. Ale jelikož to má některé drobné mouchy (ale i prostě proto, že člověka baví si hrát), chtěl bych v tomto duchu vyzkoušet i jiný tvar vyústění, než kruh, který právě způsobuje ty mouchy - je to příliš symetrické, takže každá drobná vada (akustické difrakce), která by se jinak úplně ztratila, tady vyleze v ose rotace dost na povrch. Od menší symetrie vyústění si slibuji eliminaci projevu těchto neduhů - difrakce jako takové tam zůstanou, ale tak výrazně se neposčítají. Chtěl bych ale zachovat všechny dobré vlastnosti.

Superelipsa vypadá dobře, pro ty vyšší mocniny. A máš pravdu, bude s tím i míň práce.

(1) r(x) = sqrt(R^2 + 2*tg(A)*x + [x*tg(B)]^2)
r je poloměr profilu, x vzdálenost od hrdla po ose, R poloměr hrdla, A vstupní úhel, B výstupní úhel (úhly od osy ke stěně)

Autor:  Zelený [ 15 bře 2017 17:02 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

mabat: Asi se budu ptát blbě, tomuhle fakt vůbec nerozumím. Takže ty se chceš odrazit od hyperbolického profilu. Jen by to nebyl rotační hyperboloid, ale nějaký patvar přecházející od kruhového hrdla k nekruhovému vyústění. Plocha jednotlivých řezů by se měnila stejně, jako plocha řezů pro čistě kruhový zvukovod s hyperbolickým profilem? Pokud to tak je, tak mi nejsou jasné ještě dvě věci (zatím jen dvě :-) 1) Podle čeho by se řídila rychlost změny profilu z kruhu na patvar? Při stejné ploše může být řez kruhový, ale klidně i 100% obdélník (elipsa, SE, zaoblený obdélník, cokoliv). 2) Jak může být řez zvukovodem ve tvaru hyperboly a zároveň se otevřít na 180° při přechodu do čelní desky ozvučnice? Ten výstupní úhel přece musí být spíš něco jako na tomhle obrázku (Rhino+GH. Výstup superelipsa)
Příloha:
SEWG.jpg

Autor:  mabat [ 15 bře 2017 20:06 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

Plocha příčných řezů mě dá se říct nezajímá, podstatu spatřuji v profilu podélných řezů, takže vycházím spíš z toho. Chová se mi to tak, že se to poměrně rychle směrem od hrdla tvaruje do koncového tvaru vyústění, což by snad i odpovídalo - ta hyperbola se taky poměrně rychle přimyká ke konusu. Nevím, ale každopádně bych něco takového chtěl zkusit zrealizovat.

Na vyústění se to samozřejmě musí ještě nějak zaoblit do roviny čela ozvučnice. K tomu by zas měla být vhodná Eulerova spirála (přechodnice - klotoida, i tu už tam mám). Teď jen zvolit finální celkovou velikost (určuje frekvenční rozsah) a tvar. Musí to být každopádně spíš blíž čtverci, než výrazně placatému obdélníku - to by se celkově nechovalo moc hezky.

Autor:  Zelený [ 15 bře 2017 20:27 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

mabat: Takže ten zaoblený přechod do desky už může být ve všech místech definovaný stejnou křivkou? Prostě vygenerovat zvukovod z té GH definice, pak z toho posledního (největšího) příčného řezu vygenerovat ofsetem ve vhodné vzdálenosti novou křivku a posunout ji dál. Tím vznikne po celém obvodu stejná mezera. Do té mezery vygenerovat klotoidu a pak ji použít pro vytvoření spojovací plochy (tažením klotoidy po hraničních křivkách obou ploch).
Ta GH definice co jsem použil pro vytvoření obrázku umožňuje nastavit samostatně úhel horizotálně i vertikálně, takže se to může vygenerovat i jako "čtvercová superelipsa".

Autor:  mabat [ 15 bře 2017 20:47 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

To zaoblení nebude všude stejná křivka, resp. bude v každém bodě po obvodu jiná, až na nějakou symetrii. Celé to lze v podstatě zadat jako souřadnice profilu, závislém na úhlu "kolem dokola", ale nemám ponětí, jak to zadat třeba v GH. Akorát včetně té klotoidy to stejně nepůjde jako nějaký jednoduchý analytický popis, klotoida samotná se počítá přes Fresnelovy integrály. Ty řezy každopádně mám hotové, podélné i příčné.

Autor:  mabat [ 15 bře 2017 21:19 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

Taky jsem chvíli uvažoval, že pokud by se to udělalo na výstupu jako ostrý obdélník (tj. v podstatě ve tvaru pyramidy), mohlo by se to možná vyfrézovat jen z tlustých desek, samostatně horní, dolní, levý a pravý "trojúhelníkový" díl a pak to jen slepit, k tomu zezadu nějaký montážní díl pro reprák. Akorát by se ty stěnové díly musely obrábět z obou stran, což nevím, jak moc velká je komplikace, aby se to dalo udělat rozumně přesně.

Asi by to nebylo ve výsledku tak dobré, jako ta superelipsa, ale mohlo by to ušetřit dost práce s výrobou polotovarů.

Autor:  Zelený [ 15 bře 2017 21:30 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

mabat: a v čem ty řezy vytváříš? Jestli je máš hotové, tak z nich tu plochu vytvoříme.
Nějakou definici pro klotoidu v GH jsem našel, ale naroubovat to na zvukovod to už bude horší. Musím se na to mrknout, tohle už je na mé GH a matematické znalosti hodně složité.

Autor:  mabat [ 15 bře 2017 21:31 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

Generuju to přímo svým algoritmem napsaným v C++ do textového skriptu, který spustím v DraftSight, a z toho to můžu uložit třeba jako DXF nebo DWG. To je pro mě momentálně cesta nejmenšího odporu.

A k tomu to mám samozřejmě možnost uložit jako souřadnice bodů v textových souborech (které taky vím, že běžně jdou v CAD nějak importovat). Profily i řezy budu mít hotové včetně zaoblení, v tom problém fakt není. Jen v žádném CAD jsem nikdy pořádně nedělal a ani nemám moc chuť a nakonec ani možnosti věnovat tomu teď ten čas se to učit...

Ale mohu se tím výstupem pokusit maximálně ti následnou práci s tím zjednodušit, když řekneš, jak by to bylo pro tebe nejvhodnější.

Autor:  Zelený [ 15 bře 2017 22:45 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

mabat: Tak ono by to šlo z DWG, DXF i z textového souboru obsahujícího souřadnice. U texťáku by mi to načetlo jen body a musel bych je spojit do křivek. Na druhou stranu by to mohlo být v 3D a to by zase nedokázal DWG a DXF. Musel bych vyzkoušet co bude pohodlnější. Jinak GH umí i pracovat i s C# a VB skripty, takže by se to v případě potřeby dalo spojit a tak. Až budou řezy, tak to vyzkoušíme.

Autor:  Zelený [ 16 bře 2017 01:57 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

Tak jsem trochu hledal našel Super Elliptical Oblate Spheroid Waveguide zde:
http://www.avsforum.com/forum/155-diy-s ... -here.html

Autor:  mabat [ 16 bře 2017 09:32 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

Na to bych už skoro zapomněl. Jak je to konkrétně konstruované ale nevím. Možná, že to bude ve výsledku hodně podobné, třeba to dělají i stejně, vypadá to každopádně sympaticky, akorát to pořád dělají na můj vkus s dost vysokým poměrem stran.

Zatím to vidím přibližně na čtverec, který bude na dolní straně "obtékat" basák. Mám už algoritmus, který to umí, tak je třeba to využít. Pro začátek bych to asi zkusil u něčeho menšího, tak k 8" - 10", pro ověření. Pokud by to vycházelo slibně, přišlo by na řadu něco ultimativnějšího :)

Ale mám to vyloženě jako zábavu na občasnou volnou chvíli, takže to bude ještě trochu trvat.

Autor:  Zelený [ 16 bře 2017 11:37 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

mabat: Jestli máš hotová data se stejnou strukturou, ale pro nějaký jiný zvukovod (třeba OSWG), tak se zatím můžu mrknout na nějaký způsob jak to importovat do 3D CADu.

Autor:  mabat [ 16 bře 2017 12:05 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

OK, jakmile se k tomu dostanu, něco sem hodím. Jen otázka - když dostaneš soustavu 2D (X,Y) řezů, můžeš to pak nějak jednoduše (jednou operací) rozhodit do různých hladin v Z? Abych věděl, jestli se snažit nějak optimalizovat počet těch řezů (jen pro větší změny křivosti), nebo to prostě vzít v pevném rastru, což by pro mě bylo samozřejmě jednodušší. Těch řezů tam budou muset být tak jako tak odhadem desítky.

Celkově nemám moc představu, jak z toho budeš dělat jednu plochu. Ale ten princip si můžeš vyzkoušet na čemkoliv, co tě napadne.

Autor:  Zelený [ 16 bře 2017 13:40 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

mabat: Do většiny CAD programů lze načíst z textového souboru body v nějakém XYZ formátu. Tím ale ta podpora textových formátů končí. Neumí to načíst křivky. Křivky už se musí nějak ručně poskládat z těch bodů.Maximálně to propojí body do jedné křivky, ale schází tam informace který bod patří ke které křivce, takže víc křivek z jednoho txt to neumí. Pokud půjde o stovky křivek a tisíce bodů, tak už by to chtělo ty body nějak zorganizovat. Tedy do txt uložit ve formátu, který by GH načetl jako organizovaná data. Nebo je načíst jako mrak bodů a zase to prohnat skrz nějakou definici v GH, která by to roztřídila podle hodnoty v ose Z do jednotlivých skupin bodů. Jak budou skupiny bodů pro každou vrstvu definované, tak z toho vytvořit křivky a z těch křivek plochu.

Ještě se podívám jaké možnosti importu z textů má Rhino, SurfCam a SolidWorks.
Pokud by pro tebe nebyl problém udělat výstup formátovaný, tak by to bylo nejlepší. Například, když si GH napíchnu definici a vytáhnu si data bodů tvořících křivky, tak to má formát něco jako toto:
{0;0;0}
0. {7.853552, -24.170746, 0.0}
1. {0.0, -25.414627, 0.0}
2. {-7.853552, -24.170746, 0.0}
3. {-14.938343, -20.560865, 0.0}
4. {-20.560865, -14.938343, 0.0}
5. {-24.170746, -7.853552, 0.0}
{0;0;1}
0. {10.423716, -31.636253, 19.999995}
1. {6.0547e-10, -32.205305, 19.999995}
2. {-10.423716, -31.636253, 19.999995}
3. {-20.308082, -27.829806, 19.999995}
4. {-27.829806, -20.308082, 19.999995}
5. {-31.636253, -10.423716, 19.999995}
{0;0;2}
0. {15.722602, -47.055713, 39.99999}
1. {-5.6076e-11, -47.227002, 39.99999}
2. {-15.722602, -47.055713, 39.99999}
3. {-31.181395, -42.704057, 39.99999}
4. {-42.704057, -31.181395, 39.99999}
5. {-47.055713, -15.722602, 39.99999}
{0;0;3}
0. {22.047562, -65.065646, 59.999984}
atd. atd.
6 bodů na každou křivku.

Autor:  mabat [ 16 bře 2017 13:57 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

Super. Takový textový formát je pro mě to nejmenší, stačí si říct. Co tam znamená to {0;0;0}, {0;0;1} atd.? Jen nějaká pořadová čísla? Že to má podobu souřadnic (i když teď vidím, že je tam středník).

Stejně tak to můžeš dostat jako uzavřené křivky v jednom DXF nebo DWG (ani nevím, jaký je mezi tím rozdíl).

PS. Občas se obecně pro oddělení jednotlivých skupin dat používá v textovém formátu prázdný řádek, pokud tam jsou jinak jen surová čísla, ale netuším, jak tady.

Autor:  Zelený [ 16 bře 2017 14:14 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

Sakra, ono si to ten formát samo rozhodí při načtení. Tak ani takhle formátovaná data by to nenačetlo. Musím najít jinou cestu.

Autor:  Zelený [ 16 bře 2017 21:29 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

mabat: {0;0;0}, {0;0;1} Je vlastně taková adresa dat v GH. Data jsou uložená jako položka v listu a listy jsou organizované do stromové struktury. Díky tomu může být na listu sada bodů patřících do jedné křivky. Takových listů je na nadřazené úrovni sromu zase několik (např. několik křivek řezů). Díky tomu má GH velice silné nástroje pro manipulaci s daty a dají se s tím dělat velice zajímavé věci. Teď jsem si zkoušel vyexportovat souřadnice bodů z vygenerovaného zvukovodu do textového souboru (bez další struktury). Tu jsem načetl a prohnal malou GH definicí a prostě to rozložil do sady listů porostým rozdělením původního listu na několik menších (na ty řezy) podle počtu bodů v řezu. Z každého listu jsem pak vygeneroval jednu křivku řezu. Funguje to bez problému. Takže by mi stačilo udělat každý řez se stejným počtem bodů a je to. Pokud by byl v každém řezu jiný počet bodů, tak bych ten list musel nějak rozdělit podle hodnot v Z souřadnici. Pokud bude pro všechny body v jednom řezu stejná hodnota v Z, tak by to šlo také.
Stačí mi tedy textový soubor s X,Y,Z a pokud to nebude chaotický mrak bodů, tak si z toho ty řezy v GH složím docela snadno. Z řezů pak zase snadno vygeneruju plochu. Pro tebe by neměl být problém splnit obě podmínky zároveň. Tedy vyexportovat pro každý řez stejný počet bodů a řezat to tak, aby bylo v jednom řezu pro všechny body stejné Z. Vlastně by ještě bylo dobré řadit body tak jak jdou za sebou na křivce rovnou při tom exportu, abych to nemusel ještě nějak řadit po načtení.

To co jsem teď načítal mělo tuhle strukturu:
{7.853552, -24.170746, 0.0}
{0.0, -25.414627, 0.0}
{-7.853552, -24.170746, 0.0}
{-14.938343, -20.560865, 0.0}
{-20.560865, -14.938343, 0.0}
{-24.170746, -7.853552, 0.0}
{-25.414627, 0.0, 0.0}
{-24.170746, 7.853552, 0.0}
{-20.560865, 14.938343, 0.0}
{-14.938343, 20.560865, 0.0}
{-7.853552, 24.170746, 0.0}

Autor:  mabat [ 16 bře 2017 21:46 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

Díky za to úsilí, hezky se to rýsuje. Jak to píšeš, s tím nebude žádný problém to tak dodat (i interně to tak samozřejmě mám). Super a ještě jednou díky.

Autor:  Yarmil [ 25 bře 2017 19:29 ]
Předmět příspěvku:  Re: Vytvoření 3D modelu ze soustavy řezů (CAD/CNC)

A až to bude spočítané,nechat to udělat na 3D tiskárně a nabízet tuná.Na Repromanii..
Vůbec tomu nerozumím,ale čte se to hezky.

Stránka 2 z 4 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/