====== Mécanique ====== * Référants : Jean-Paul Perrier, Patrick Labache, Louis André * Classe : ... ===== Modélisation "infini" ===== * Fichiers : {{:projets:infini:mecanique:fichiers_infini.zip|}} ++++ Code Python : générateur du .stl (développé par Guillaume Gay merci!) | import numpy as np import argparse def generate_curve(n_segments=120, a=2, b=0.5, obj_file='test.obj'): """ 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/4, np.pi/4, n_segments//2) 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[::-1], xx]) yy = np.concatenate([-yy[::-1], yy]) zz = b * np.sin(2*t) zz = np.concatenate([zz[::-1], zz]) verts = np.vstack([xx, yy, zz]).T 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'.format( verts.shape[0]) for v in verts: obj_text += 'v {:.10f} {:.10f} {:.10f}\n'.format(v[0], v[1], v[2]) for f in faces: indices = ' '.join(str(idx+1) for idx in f) obj_text += 'f '+indices+'\n' with open(obj_file, 'w+') as of: of.write(obj_text) if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument("nb", help="number of segments", type=int) parser.add_argument("amplitude", help="amplitude in meter", type=float) parser.add_argument("width", help="width in meter", type=float) parser.add_argument("f", help="output OBJ file") args = parser.parse_args() generate_curve(n_segments=args.nb, a=args.amplitude, b=args.width, obj_file=args.f) ++++ Dans Blender, importer le stl, le transformer en "curve" (alt-c), ajouter une forme mesh circle ou plane, transformé également en curve. Sélectionner le stl, aller dans le menu "curve properties" (icône d'une courbe) et dans Bevel object choisissez le cercle ou le carré. En redimensionnant cette forme, cela modifie tout l'objet. ==== En 2D ==== Lemniscate de Bernouilli : https://fr.wikipedia.org/wiki/Lemniscate_de_Bernoulli {{youtube>-znDMqdKWbk}} ==== En 3D ==== * x(t)=sqrt(2*a^2*cos(2*t))*cos(t); * y(t)=sqrt(2*a^2*cos(2*t))*sin(t); a est une constante qui fixe la taille de la courbe ; le paramètre t varie de -Pi/4 à +Pi/4 ; on obtient alors la moitié (une boucle du 8) de la lemniscate. L'autre moitié s'en déduit par symétrie par rapport à l'origine, c'est-à-dire en y adjoignant les points de coordonnées (-x(t),-y(t)). Pour la déformer en 3D afin d' éviter que les deux boucles se croisent, on passe en 3D en rajoutant la coordonnée * z(t)=b*sin(2*t); Le paramètre b sert à ajuster l'écartement (pour b=0, cet écartement est nul et on retrouve la lemniscate plane ci-dessus). A nouveau, le paramètre t varie de -Pi/4 à +Pi/4 et l'on n'a qu'une moitié de la courbe. L'autre moitié s'obtient en y adjoignant les points de coordonnées (-x(t),-y(t),+z(t)). ===== Structure "infini" ===== ==== 11/2016 Ruban ==== //Esquisse pour voir si c'est faisable de réaliser une structure métal découpée au laser. Possibilité d'utiliser de l'acier ou de l'inox.// **En papier** \\ {{:projets:infini:mecanique:infini-papier-ruban-mobius.jpg?200 |}} {{:projets:infini:mecanique:infini-papier-ruban-vertical.jpg?200|}} Celle verticale a plus d'avantages : elle semble plus réalisable, mécaniquement plus stable et représente exactement le symbole infini. \\ **En dibond** \\ {{:projets:infini:mecanique:infini-ruban-dibond-img_9911.jpg?200 |}} {{:projets:infini:mecanique:infini-ruban-dibond-img_9913.jpg?200 |}} {{:projets:infini:mecanique:infini-ruban-dibond-img_9914.jpg?200 |}} {{:projets:infini:mecanique:infini-ruban-dibond-img_9915.jpg?200 |}} {{:projets:infini:mecanique:infini-ruban-dibond-img_9916.jpg?200|}} La structure est en dibond (minces couches d'aluminium avec du plastique à l'intérieur) et les pieds en PVC. Test pour voir les torsions sur le métal et les angles de ces torsions qui se répercutent sur les pieds. **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,58+75,316 ~ 450€ * INOX 4MM (304L - 4) : 537.92+107.584 ~ 650€ ==== 06/2016 Double rail ==== {{:projets:infini:mecanique:img_20160622_110135.jpg?200 |}} {{:projets:infini:mecanique:img_20160622_110144.jpg?200 |}} {{:projets:infini:mecanique:img_20160530_123631.jpg?200|}} // // ==== 03/2016 Double rail (Patrick et Louis) ==== {{:projets:infini:mecanique:structure_patrick_05.jpg?200 |}} {{:projets:infini:mecanique:structure_patrick_06.jpg?200 |}} {{:projets:infini:mecanique:structure_patrick_07.jpg?200 |}} {{:projets:infini:mecanique:structure_patrick_08.jpg?200 |}} {{:projets:infini:mecanique:structure_patrick_09.jpg?200 |}} {{:projets:infini:mecanique:structure_patrick_10.jpg?200|}} // // ==== 03/2016 Monorail (Jean Paul) ==== {{:projets:infini:mecanique:jean_paul_14.jpg?200|}} ==== 02/2016 Monorail (Jean Paul) ==== {{:projets:infini:mecanique:structure_jeanpaul_07.jpg?200 |}} {{:projets:infini:mecanique:structure_jeanpaul_08.jpg?200 |}} {{:projets:infini:mecanique:structure_jeanpaul_09.jpg?200 |}} {{:projets:infini:mecanique:structure_jeanpaul_10.jpg?200 |}} {{:projets:infini:mecanique:structure_jeanpaul_11.jpg?200 |}} {{:projets:infini:mecanique:structure_jeanpaul_12.jpg?200 |}} {{:projets:infini:mecanique:structure_jeanpaul_13.jpg?200 |}} {{:projets:infini:mecanique:ahdiifhd.png?200 |}} {{:projets:infini:mecanique:hiejiged.png?200|}} // // ==== 01/2016 Monorail (Jean Paul) ==== {{:projets:infini:mecanique:structure_jeanpaul_01.jpg?200 |}} {{:projets:infini:mecanique:structure_jeanpaul_02.jpg?200 |}} {{:projets:infini:mecanique:structure_jeanpaul_03.jpg?200 |}} {{:projets:infini:mecanique:structure_jeanpaul_04.jpg?200 |}} {{:projets:infini:mecanique:structure_jeanpaul_05.jpg?200 |}} {{:projets:infini:mecanique:structure_jeanpaul_06.jpg?200|}} // // ==== 01/2016 Double rails (Patrick) ==== {{:projets:infini:mecanique:structure_patrick_01.jpg?200 |}} {{:projets:infini:mecanique:structure_patrick_02.jpg?200 |}} {{:projets:infini:mecanique:structure_patrick_03.jpg?200 |}} {{:projets:infini:mecanique:structure_patrick_04.jpg?200|}} ==== 16/10/15 : vues 3D ==== * Simulation Blender : {{:projets:infini:mecanique:inifinynews.blend|}} {{:projets:infini:mecanique:infini-vue-profil.png?600|}}\\ {{vimeo>142630372?large}} \\ {{vimeo>142630371?large}} {{:projets:infini:mecanique:inf-1.png?600|}} {{:projets:infini:mecanique:inf-2.png?600|}} {{:projets:infini:mecanique:inf-3.png?600|}} {{:projets:infini:mecanique:inf-4.png?600|}} {{:projets:infini:mecanique:inf-5.png?600|}} ==== 6/10/2015 ==== * Fichier Blender : {{:projets:infini:mecanique:infini.blend|}} {{:projets:infini:mecanique:untitled.png?300|}} ==== 5/10/2015 ==== {{:projets:infini:mecanique:img_20151005_101536.jpg?300 |}} {{:projets:infini:mecanique:img_20151005_102059.jpg?300 |}} {{:projets:infini:mecanique:img_20151005_135702.jpg?300|}} \\ ===== Robot ENG ===== * Emotion News Gathering (https://fr.wikipedia.org/wiki/Satellite_news_gathering) {{:projets:infini:8-module.jpg?150|}}