Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
projets:infini:mecanique:accueil [2016/11/18 18:33] resonance [06/2016 Double rail] |
projets:infini:mecanique:accueil [2016/11/25 12:20] (Version actuelle) resonance [Modélisation infini] |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
===== Modélisation " | ===== Modélisation " | ||
+ | * Fichiers : {{: | ||
+ | |||
+ | |||
+ | <WRAP group> | ||
+ | <WRAP half column> | ||
+ | |||
+ | < | ||
+ | <iframe src=" | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <WRAP half column> | ||
+ | |||
+ | < | ||
+ | <iframe src=" | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | ++++ Code Python : générateur du .stl (développé par Guillaume Gay merci!) | | ||
+ | <code python> | ||
+ | import numpy as np | ||
+ | import argparse | ||
+ | |||
+ | def generate_curve(n_segments=120, | ||
+ | """ | ||
+ | Generate a Moebius curve in 3D | ||
+ | |||
+ | Parameters | ||
+ | ---------- | ||
+ | n_segments: int | ||
+ | the number of segments (higher -> higher definition) | ||
+ | a: float | ||
+ | amplitude of the curve in the x,y plane | ||
+ | b: float | ||
+ | amplitude of the curve along z | ||
+ | obj_file: str | ||
+ | name / path to the output obj file | ||
+ | """ | ||
+ | t = np.linspace(-np.pi/ | ||
+ | |||
+ | xx = np.sqrt(2 * a**2 * np.cos(2*t)) * np.cos(t) | ||
+ | yy = np.sqrt(2 * a**2 * np.cos(2*t)) * np.sin(t) | ||
+ | xx = np.concatenate([-xx[:: | ||
+ | yy = np.concatenate([-yy[:: | ||
+ | |||
+ | zz = b * np.sin(2*t) | ||
+ | zz = np.concatenate([zz[:: | ||
+ | verts = np.vstack([xx, | ||
+ | faces = np.array([np.arange(verts.shape[0])], | ||
+ | |||
+ | obj_text = ''' | ||
+ | # Wavefront OBJ file | ||
+ | # Created by glyg. | ||
+ | # | ||
+ | # unnamed object | ||
+ | |||
+ | ''' | ||
+ | obj_text += '# {} vertices, no textcoords, no normals, 1 faces\n' | ||
+ | verts.shape[0]) | ||
+ | for v in verts: | ||
+ | obj_text += 'v {:.10f} {:.10f} {: | ||
+ | for f in faces: | ||
+ | indices = ' ' | ||
+ | obj_text += 'f ' | ||
+ | |||
+ | with open(obj_file, | ||
+ | of.write(obj_text) | ||
+ | |||
+ | |||
+ | if __name__ == ' | ||
+ | parser = argparse.ArgumentParser() | ||
+ | parser.add_argument(" | ||
+ | parser.add_argument(" | ||
+ | parser.add_argument(" | ||
+ | parser.add_argument(" | ||
+ | args = parser.parse_args() | ||
+ | generate_curve(n_segments=args.nb, | ||
+ | |||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | Dans Blender, importer le stl, le transformer en " | ||
==== En 2D ==== | ==== En 2D ==== | ||
Ligne 24: | Ligne 110: | ||
==== 11/2016 Ruban ==== | ==== 11/2016 Ruban ==== | ||
- | //Esquisse pour voir si c'est faisable de réaliser une structure découpée au laser// | + | //Esquisse pour voir si c'est faisable de réaliser une structure |
- | **En papier** | + | |
+ | |||
+ | **En papier** | ||
{{: | {{: | ||
{{: | {{: | ||
- | **En dibond** | + | Celle verticale a plus d' |
+ | |||
+ | \\ | ||
+ | |||
+ | **En dibond** | ||
{{: | {{: | ||
{{: | {{: | ||
Ligne 37: | Ligne 129: | ||
{{: | {{: | ||
+ | La structure est en dibond (minces couches d' | ||
+ | |||
+ | **Devis pour la découpe de la boucle (sans les pieds, les renforts, etc., juste le symbole infini) ** \\ | ||
+ | * ACIER 3MM (DKP - 3) : 100,24 + 20.048 ~ 120€ | ||
+ | * ACIER 4MM (DKP - 4) : 128,46 + 25,692 ~ 150€ | ||
+ | * INOX 3MM (304L - 3) : 376, | ||
+ | * INOX 4MM (304L - 4) : 537.92+107.584 ~ 650€ | ||
==== 06/2016 Double rail ==== | ==== 06/2016 Double rail ==== |