<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=CS link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Moc pěkný:-)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Normálně mám z kódu představu, jak bude objekt asi vypadat, ale tady ani ťuk:-) Musel jsem si to zkopírovat a udělat preview.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Co to vlastně bude?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>PH</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal style='border:none;padding:0cm'><b>Od: </b><a href="mailto:jaroslav.buchta@hascomp.cz">Jaroslav Buchta</a><br><br><o:p></o:p></p></div><p class=MsoNormal>Jj, hned jak jsem no poslal tak jsem to nasel ;-)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Jako reseni to zda se je, renderuje to i prekvapive rychle. Zatim </p><p class=MsoNormal>zkusebni program vypada takhle:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>function circlepts(xc, yc, a1, a2, r, segments, z) =</p><p class=MsoNormal>[for (i=[0:segments-1]) [</p><p class=MsoNormal>         xc + r*sin(a1 + (a2-a1)/(segments-1)*i),</p><p class=MsoNormal>         yc + r*cos(a1 + (a2-a1)/(segments-1)*i),</p><p class=MsoNormal>         z]</p><p class=MsoNormal>];</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>function basepts(z, ext) = concat(</p><p class=MsoNormal>         [[-ext,-ext,z]],</p><p class=MsoNormal>         circlepts(28-ext, 115+ext, -90, -30, 28, 30,z),</p><p class=MsoNormal>         circlepts(28+ext, 115+ext, 30, 60, 28, 30,z),</p><p class=MsoNormal>         circlepts(63.5+ext, 133+ext, 240, 180, 12, 20,z),</p><p class=MsoNormal>         circlepts(115, 116+ext, 0, 90, 5, 10,z),</p><p class=MsoNormal>         circlepts(115, 105, 90, 270, 5, 20,z),</p><p class=MsoNormal>         circlepts(102, 106, 90, 0, 8, 20,z),</p><p class=MsoNormal>         circlepts(91, 104, 0, -180, 10, 20,z),</p><p class=MsoNormal>         circlepts(115, 100, 250, 180, 20, 30,z),</p><p class=MsoNormal>         [[132+ext,80,z]],</p><p class=MsoNormal>         circlepts(122+ext, 75-ext, 90, 180, 10, 20,z),</p><p class=MsoNormal>         circlepts(90+ext, 30-ext, 0, -90, 35, 30,z),</p><p class=MsoNormal>         [[55+ext,0-ext,z]]</p><p class=MsoNormal>         );</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>module basepoly()</p><p class=MsoNormal>{</p><p class=MsoNormal>     ptsb = basepts(0, 0);</p><p class=MsoNormal>     ptst = basepts(20, 6);</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>     faceb = [[for (i=[0:len(ptsb)-1])i]];</p><p class=MsoNormal>     facet = [[for (i=[0:len(ptst)-1])2*len(ptsb)-i-1]];</p><p class=MsoNormal>     faces = [for (i=[0:len(ptsb)-1])[i + len(ptsb), i != len(ptsb)-1 ? </p><p class=MsoNormal>i + len(ptsb)+1 : len(ptsb), i != len(ptsb)-1 ? i+1 : 0, i]];</p><p class=MsoNormal>     echo ( concat(facet, faces, faceb));</p><p class=MsoNormal>     polyhedron(concat(ptsb, ptst), concat(facet, faces, faceb), 10);</p><p class=MsoNormal>}</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>basepoly();</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Dne 19.04.2020 v 18:07 Milan B. napsal(a):</p><p class=MsoNormal>> On 19.04.2020 16:52, Jaroslav Buchta wrote:</p><p class=MsoNormal>>> ale marne patram, jak zjistit velikost vektoru (jasne da se iterovat </p><p class=MsoNormal>>> pres vsechny prvky ale potrebuju index - no ono by to nakonec asi </p><p class=MsoNormal>>> takhle taky slo spocitat ale rovnak na ohejbak...)</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Toto nevyhovuje? </p><p class=MsoNormal>> https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Mathematical_Functions#len</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> a=[[1,2,4],[3,4,5],[5,6,7]];</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> n=len(a);</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> for (i=[0:n-1]) {</p><p class=MsoNormal>>     echo(sqrt(a[i].x*a[i].x+a[i].y*a[i].y+a[i].z*a[i].z));</p><p class=MsoNormal>> }</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>>> Dne 19.04.2020 v 14:07 Pavel Hudecek napsal(a):</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>> Napsal bych si program ve VB, kterej ten polyhedron vygeneruje.</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>> PH</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>> *Od: *Jaroslav Buchta <mailto:jaroslav.buchta@hascomp.cz></p><p class=MsoNormal>>>> *Odesláno:*neděle 19. dubna 2020 14:01</p><p class=MsoNormal>>>> *Komu: *hw-list@list.hw.cz <mailto:hw-list@list.hw.cz></p><p class=MsoNormal>>>> *Předmět: *Re: openscad - 3d z dvou ploch</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>> No jedna se o stovky bodu, je to nasledujici tvar - to je obrys </p><p class=MsoNormal>>>> spodni plochy, horni plocha by byla definovana podobne jen obrys </p><p class=MsoNormal>>>> vetsi ruzne na ruznych mistech, ale jak z toho udelat polyhedron mne </p><p class=MsoNormal>>>> nenapada...</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>> function circlepts(xc, yc, a1, a2, r, segments) =</p><p class=MsoNormal>>>> [for (i=[0:segments-1]) [</p><p class=MsoNormal>>>>         xc + r*sin(a1 + (a2-a1)/(segments-1)*i),</p><p class=MsoNormal>>>>         yc + r*cos(a1 + (a2-a1)/(segments-1)*i)]</p><p class=MsoNormal>>>> ];</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>> module basepoly()</p><p class=MsoNormal>>>> {</p><p class=MsoNormal>>>>     //translate([-132/2, -133/2])</p><p class=MsoNormal>>>>     polygon(points=concat(</p><p class=MsoNormal>>>>         [[0,0], [0,115]],</p><p class=MsoNormal>>>>         circlepts(28, 115, -90, -30, 28, 30),</p><p class=MsoNormal>>>>         circlepts(28, 115, 30, 60, 28, 30),</p><p class=MsoNormal>>>>         circlepts(63.5, 133, 240, 180, 12, 30),</p><p class=MsoNormal>>>>         [[115,121]],</p><p class=MsoNormal>>>>         circlepts(115, 116, 0, 90, 5, 10),</p><p class=MsoNormal>>>>         [[120,105]],</p><p class=MsoNormal>>>>         circlepts(115, 105, 90, 270, 5, 20),</p><p class=MsoNormal>>>>         circlepts(102, 105, 90, 0, 8, 20),</p><p class=MsoNormal>>>>         [[81,113]],</p><p class=MsoNormal>>>>         circlepts(91, 103, 0, -180, 10, 20),</p><p class=MsoNormal>>>>         circlepts(115, 100, 250, 180, 20, 30),</p><p class=MsoNormal>>>>         [[132,80], [132, 75]],</p><p class=MsoNormal>>>>         circlepts(122, 75, 90, 180, 10, 20),</p><p class=MsoNormal>>>>         [[90,65]],</p><p class=MsoNormal>>>>         circlepts(90, 30, 0, -90, 35, 30),</p><p class=MsoNormal>>>>         [[55,0]],</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>>         [[0,0]]</p><p class=MsoNormal>>>>         )</p><p class=MsoNormal>>>>     );</p><p class=MsoNormal>>>> }</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>> linear_extrude(height=20, convexity=10, scale=1.0, center = false)</p><p class=MsoNormal>>>>             basepoly();</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>> Dne 19.04.2020 v 13:52 Pavel Hudecek napsal(a):</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>>     Jestli je to nadefinované jako skupiny bodů, šlo by z toho udělat</p><p class=MsoNormal>>>>     polyhedron.</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>>     PH</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>>     *Od: *Jaroslav Buchta <mailto:jaroslav.buchta@hascomp.cz></p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>>     Dejme tomu, ze mam 2 skicy plochy slozitejsiho tvaru, jde provest</p><p class=MsoNormal>>>>     nejaka</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>>     transformace, ktera z toho udela 3D objekt ktery bude mit zakladnu</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>>     odpovidajici jedne a horni stranu druhe plose? Aby proste vznikly</p><p class=MsoNormal>>>>     sikme</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>>     steny (scale u linear_extrude nedava dobry vysledek, tvar neni</p><p class=MsoNormal>>>>     rozumne</p><p class=MsoNormal>>>><o:p> </o:p></p><p class=MsoNormal>>>>     centrovatelny)</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>