<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>