FreeCAD-Doc/localwiki/Mesh_Scripting-sv.html
2018-07-19 18:47:02 -05:00

106 lines
6.8 KiB
HTML

<html><head><title>Mesh Scripting/sv</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link type='text/css' href='wiki.css' rel='stylesheet'></head><body><h1>Mesh Scripting/sv</h1></div>
<div id="mw-content-text" lang="sv" dir="ltr" class="mw-content-ltr"><hr/>
<div class="mw-parser-output"><div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Introduktion"><span class="tocnumber">1</span> <span class="toctext">Introduktion</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#Skapande_och_laddning"><span class="tocnumber">2</span> <span class="toctext">Skapande och laddning</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="#Modellering"><span class="tocnumber">3</span> <span class="toctext">Modellering</span></a></li>
<li class="toclevel-1 tocsection-4"><a href="#Unders.C3.B6kning_och_testning"><span class="tocnumber">4</span> <span class="toctext">Undersökning och testning</span></a></li>
<li class="toclevel-1 tocsection-5"><a href="#Skriv_dina_egna_algoritmer"><span class="tocnumber">5</span> <span class="toctext">Skriv dina egna algoritmer</span></a></li>
<li class="toclevel-1 tocsection-6"><a href="#Exportera"><span class="tocnumber">6</span> <span class="toctext">Exportera</span></a></li>
<li class="toclevel-1 tocsection-7"><a href="#Gr.C3.A4nssnittsrelaterade_saker"><span class="tocnumber">7</span> <span class="toctext">Gränssnittsrelaterade saker</span></a></li>
<li class="toclevel-1 tocsection-8"><a href="#Special"><span class="tocnumber">8</span> <span class="toctext">Special</span></a></li>
</ul>
</div>
<h3><span class="mw-headline" id="Introduktion">Introduktion</span></h3>
<p>Först av allt så måste du importera Nätmodulen:
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>import Mesh</pre></div>
<p>Efter det så har du åtkomst till Nätmodulen och Nätklassen Mesh class som ger åtkomst till funktionerna i FreeCAD's C++ Mesh-Kernel.
</p>
<h3><span class="mw-headline" id="Skapande_och_laddning">Skapande och laddning</span></h3>
<p>För att skapa ett tomt nätobjekt använd standardkonstruktören:
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>mesh = Mesh.Mesh()</pre></div>
<p>Du kan också skapa ett objekt från en fil
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>mesh = Mesh.Mesh('D:/temp/Something.stl')</pre></div>
<p>Vilka filformat du kan använda för att bygga upp ett nät är <a href="/wiki/Feature_list/sv#IO" title="Feature list/sv">här</a>.
</p><p>Eller skapa det från ett set av trianglar, beskrivna av dess hörnpunkter:
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>planarMesh = [
# triangle 1
[-0.5000,-0.5000,0.0000],[0.5000,0.5000,0.0000],[-0.5000,0.5000,0.0000],
#triangle 2
[-0.5000,-0.5000,0.0000],[0.5000,-0.5000,0.0000],[0.5000,0.5000,0.0000],
]
planarMeshObject = Mesh.Mesh(planarMesh)
Mesh.show(planarMeshObject)</pre></div>
<p>Mesh-Kernel tar hand om skapandet av en topologiskt korrekt datastruktur genom att sortera sammanfallande punkter och kanter tillsammans.
</p><p>Senare kommer du att se hur du kan testa och undersöka nät data.
</p>
<h3><span class="mw-headline" id="Modellering">Modellering</span></h3>
<p>För att skapa reguljärageometrier så kan du används Python skriptet BuildRegularGeoms.py.
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>import BuildRegularGeoms</pre></div>
<p>Detta skript ger metoder att definiera enkla rotationskroppar som sfärer, ellipsoider, cylindrar, toroider och koner. Och det har även en metod för att skapa en enkel kub.
</p><p>För att till exempel skapa en toroid, så kan du göra enligt följande:
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>t = BuildRegularGeoms.Toroid(8.0, 2.0, 50) # list with several thousands triangles
m = Mesh.Mesh(t)</pre></div>
<p>De första två parametrarna definierar toroidens radier och den tredje parametern är en sub-sampling faktor för hur många trianglar som skapas. Ju högre värde på denna faktorn, desto jämnare blir kroppen.
</p><p>Nät klassen har ett set med booleska funktioner som kan användas för modelleringsändamål. Den erbjuder förening, skärning och skillnad mellan två nätobjekt.
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>m1, m2 # are the input mesh objects
m3 = Mesh.Mesh(m1) # create a copy of m1
m3.unite(m2) # union of m1 and m2, the result is stored in m3
m4 = Mesh.Mesh(m1)
m4.intersect(m2) # intersection of m1 and m2
m5 = Mesh.Mesh(m1)
m5.difference(m2) # the difference of m1 and m2
m6 = Mesh.Mesh(m2)
m6.difference(m1) # the difference of m2 and m1, usually the result is different to m5</pre></div>
<p>Slutligen, ett komplett exempel som beräknar skärningen mellan en sfär och en cylinder som skär sfären.
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>import Mesh, BuildRegularGeoms
sphere = Mesh.Mesh( BuildRegularGeoms.Sphere(5.0, 50) )
cylinder = Mesh.Mesh( BuildRegularGeoms.Cylinder(2.0, 10.0, True, 1.0, 50) )
diff = sphere
diff = diff.difference(cylinder)
d = FreeCAD.newDocument()
d.addObject("Mesh::Feature","Diff_Sphere_Cylinder").Mesh=diff
d.recompute()</pre></div>
<h3><span class="mw-headline" id="Unders.C3.B6kning_och_testning">Undersökning och testning</span></h3>
<h3><span class="mw-headline" id="Skriv_dina_egna_algoritmer">Skriv dina egna algoritmer</span></h3>
<h3><span class="mw-headline" id="Exportera">Exportera</span></h3>
<p>Du kan även skriva nätet till en python modul:
</p>
<div class="mw-highlight mw-content-ltr" dir="ltr"><pre>m.write("D:/Develop/Projekte/FreeCAD/FreeCAD_0.7/Mod/Mesh/SavedMesh.py")
import SavedMesh
m2 = Mesh.Mesh(SavedMesh.faces)</pre></div>
<h3><span class="mw-headline" id="Gr.C3.A4nssnittsrelaterade_saker">Gränssnittsrelaterade saker</span></h3>
<h3><span class="mw-headline" id="Special">Special</span></h3>
<p>En extensiv, fast svåranvänd, källa för Nätrelaterade skript är Nätmodulens enhetstestskript.
I detta enhetstest så kallas samtliga metoder och samtliga egenskaper/attribut ändras.
Så om du är tillräckligt modig, ta en titt på <a rel="nofollow" class="external text" href="http://free-cad.svn.sourceforge.net/viewvc/free-cad/trunk/src/Mod/Mesh/App/MeshTestsApp.py?view=markup">Unit Test module</a>.
</p><p>See also <a href="Mesh_API.html" title="Mesh API">Mesh API</a>
</p>
<div style="clear:both"></div>
</div>
</div>
</div><div class="printfooter">
Online version: "<a dir="ltr" href="https://www.freecadweb.org/wiki/index.php?title=Mesh_Scripting/sv&amp;oldid=143824">http://www.freecadweb.org/wiki/index.php?title=Mesh_Scripting/sv&amp;oldid=143824</a>"</div>
<div id="catlinks" class="catlinks" data-mw="interface"></div><div class="visualClear"></div>
</div>
</div>
<div id="mw-navigation">
<h2>Navigation menu</h2>
</body></html>