Macro Assemblage Imprimante 3D/fr: Difference between revisions

From FreeCAD Documentation
mNo edit summary
mNo edit summary
Line 1: Line 1:
{{Macro/fr|Icon=Text-x-python|Name=Macro_Assemblage_Imprimante_3D|Name/fr=Macro Assemblage Imprimante 3D|Description=Simulates the motion of a 3D printer in the Z axis..|Author=fran6t|Version=1.0|Date=13/07/2015}}
{{Macro/fr|Icon=Text-x-python|Name=Macro_Assemblage_Imprimante_3D|Name/fr=Macro Assemblage Imprimante 3D|Description=Simulates the motion of a 3D printer in the Z axis..|Author=fran6t|Version=1.0|Date=2015-07-13}}


Simulation de mouvement d'une imprimante 3D dans l'axe Z.
Simulation de mouvement d'une imprimante 3D dans l'axe Z.

Revision as of 18:12, 29 September 2017

File:Text-x-python Macro_Assemblage_Imprimante_3D

Description
Simulates the motion of a 3D printer in the Z axis..

Version macro : 1.0
Date dernière modification : 2015-07-13
Auteur: fran6t
Auteur
fran6t
Téléchargement
None
Liens
Version Macro
1.0
Dernière modification
2015-07-13
Version(s) FreeCAD
None
Raccourci clavier
None
Voir aussi
None

Simulation de mouvement d'une imprimante 3D dans l'axe Z.

Utilisation

Téléchargez le fichier et ouvrez le dans FreeCAD

Copiez la macro dans le console Python de FreeCAD

Pour arrêter l'animation faites :

animation.stop()

Le fichier

00_assemblage_total.fcstd

Script

L'auteur du script est Javier Martínez García (JMG) et est adapté pour ce projet.

00-assemblage-total.FCMacro

# Mouvement va et vient du chariot et tete selon axe Z
#
# Pour arreter l'animation il faut taper animation.stop() dans la console

__author__ = "Javier Martínez García"

import FreeCAD as App, FreeCADGui as Gui, Part, time, sys, math, Draft, DraftGeomUtils

try:
    from PyQt4 import QtGui,QtCore
except Exception:
    from PySide import QtGui,QtCore

class Animation(object):
   def __init__(self):
      App.Console.PrintMessage('init')
      App.ActiveDocument.recompute()
      self.timer = QtCore.QTimer()
      QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.my_update)
      self.timer.start(50)

      self.an = 0
      self.Tige_Guide_X = 142
      self.X_End_Tendeur = 90
      self.X_Chariot = 102
      self.Nema_17_motor_X = 119
      self.Anti_Backslash_Z_Gauche = 88
      self.Jhead_droite = 126.5
      self.enstopX = 168
      self.sens = 1

   def my_update(self):
      if ( self.an == 0 ) :
         self.sens = 1
      if ( self.an == 245 ) :
         self.sens = -1
      self.an = self.an + self.sens
      self.Tige_Guide_X = self.Tige_Guide_X + self.sens
      self.X_End_Tendeur = self.X_End_Tendeur + self.sens
      self.X_Chariot = self.X_Chariot + self.sens
      self.Nema_17_motor_X = self.Nema_17_motor_X + self.sens
      self.Jhead_droite = self.Jhead_droite + self.sens
      self.Anti_Backslash_Z_Gauche = self.Anti_Backslash_Z_Gauche + self.sens
      self.enstopX = self.enstopX + self.sens

      #12-X-End-Moteur
      #FreeCAD.getDocument("_0_assemblage_total").getObject("Pocket013").Placement = App.Placement(App.Vector(-133,0,self.an),App.Rotation(App.Vector(0,0,1),0))
      FreeCAD.getDocument("_0_assemblage_total").getObject("refine002").Placement = App.Placement(App.Vector(0,0,self.an),App.Rotation(App.Vector(0,0,1),0))      
      #Tige-Guide-X      
      FreeCAD.getDocument("_0_assemblage_total").getObject("Pad025").Placement = App.Placement(App.Vector(-180,13.55,self.Tige_Guide_X),App.Rotation(App.Vector(0.57735,0.57735,0.57735),120))
      #14-X-End-Tendeur      
      FreeCAD.getDocument("_0_assemblage_total").getObject("Pocket011").Placement = App.Placement(App.Vector(236,0,self.X_End_Tendeur),App.Rotation(App.Vector(0,0,1),0))
      #13-X-Chariot
      FreeCAD.getDocument("_0_assemblage_total").getObject("Pocket014").Placement = App.Placement(App.Vector(-18,25,self.X_Chariot),App.Rotation(App.Vector(1,0,0),90))
      #Nema-17-motor-X
      FreeCAD.getDocument("_0_assemblage_total").getObject("Chamfer003").Placement = App.Placement(App.Vector(-205.2,63,self.Nema_17_motor_X),App.Rotation(App.Vector(1,0,0),90))
      #15-Anti-Backslash-Z-x2-1
      FreeCAD.getDocument("_0_assemblage_total").getObject("Pad012").Placement = App.Placement(App.Vector(-156,-15,self.Anti_Backslash_Z_Gauche),App.Rotation(App.Vector(0.999985,0.00555547,0),180))
      #Jhead-Droite
      FreeCAD.getDocument("_0_assemblage_total").getObject("Pocket015").Placement = App.Placement(App.Vector(-50.8,-4.4,self.Jhead_droite),App.Rotation(App.Vector(0,0,1),0))
      #Endstop X
      FreeCAD.getDocument("_0_assemblage_total").getObject("refine003").Placement = App.Placement(App.Vector(-154.2,15,self.enstopX),App.Rotation(App.Vector(0.57735,0.57735,-0.57735),120))
   def stop(self):
      self.timer.stop()     

animation = Animation()

Liens

La discussion sur le forum : Je galere pour tourner une piece

Le canal sur Youtube de l'auteur de la macro FreeCAD: Gear Animation Tutorial and its blog

Other languages: