[Résolu] Je galere pour tourner une piece

Forum destiné aux questions et discussions en français
Forum rules
Règles du forum et informations utiles.

VEUILLEZ LIRE CECI AVANT DE DEMANDER DE L'AIDE
fran6t
Posts: 354
Joined: Tue Jul 15, 2014 9:29 am
Location: Montauban
Contact:

[Résolu] Je galere pour tourner une piece

Postby fran6t » Mon Jul 13, 2015 9:10 pm

Help, je deviens fou

Je n'arrive pas a orienter une piece en gros il faudrait que je lui fasse faire 90 degre dans l'axe X puis 90 degre dans l'axe Y

Je vous met un photomontage de l'orientation de la piece que je souhaite (entourée en rouge).

De ce que j'ai compris, mais qui ne doit pas etre bon je devrais saisir angle 90 puis 1 dans X et 1 dans Y
pb-rotation.jpg
pb-rotation.jpg (184.61 KiB) Viewed 3399 times
emplacement-endstop.jpg
emplacement-endstop.jpg (105.29 KiB) Viewed 3399 times
endstop-v1-2-makerbot.fcstd
(117.06 KiB) Downloaded 138 times
Probleme de parse error avec le fichier dans lequel je veux placer le endstop alors je l'ai mis en hebergee chez moi
00-assemblage-total.fcstd

Pour ceux que cela interresse j'ai trois macro simulant le deplacement X, Y, Z que j'ai recup sur le net et adapté un peu.
Last edited by fran6t on Mon Jul 13, 2015 10:16 pm, edited 1 time in total.
User avatar
rockn
Posts: 1669
Joined: Wed Sep 28, 2011 10:39 am
Location: Toulouse, France
Contact:

Re: Je galere pour tourner une piece

Postby rockn » Mon Jul 13, 2015 9:23 pm

Ton objet final est issue d'une esquisse tu ne peux donc pas le déplacer sans déplacer l'esquisse. Mais ton esquisse est appliqué à une face donc tu ne peux pas la déplacer. :mrgreen:
Donc il va falloir créer un copie de l'étape final (Part : Copie Simple ou Affiner la forme, OpenSCAD : Refine Shape, Draft Clone) que tu pourras déplacer à ta guise.
Tu pourras faire le déplacement avec la boite de dialogue déplacement et en cochant Appliquer les modifications incrémentielles au placement de l'objet.
90° selon Y
puis
-90 ° selon Z
Formations et tutoriels FreeCAD en Français, soutenez moi : https://www.tipeee.com/formations-freecad
fran6t
Posts: 354
Joined: Tue Jul 15, 2014 9:29 am
Location: Montauban
Contact:

Re: Je galere pour tourner une piece

Postby fran6t » Mon Jul 13, 2015 9:43 pm

Je vais de ce pas essayer,

tu m'éclaires bien sur le fait que dès fois j'arrivais a déplacer une piece et d'autre fois je galerais je pensais que je faisais mal le copier coller ou la selection.

Merci encore
fran6t
Posts: 354
Joined: Tue Jul 15, 2014 9:29 am
Location: Montauban
Contact:

Re: Je galere pour tourner une piece

Postby fran6t » Mon Jul 13, 2015 10:16 pm

SUPER MERCI

Maintenant je pense avoir bien compris le placement des pièces, j'avais été jusqu'a modifier les pièces d'origines pour pouvoir ensuite les faire tourner selon un seul axe.

La macro qui permet de faire deplacer l'imprimante selon l'axe Z

Pour l'arreter il faut taper dans la console python animation.stop()

Et là je me rend compte qu'il faut que je positionne mon capteur X différement car il bute en haut et je perd ainsi de la hauteur d'impression.
Je pense aussi que les import et from ne sont pas forcement correct je me pencherai la dessus plus tard, il doit aussi y avoir moyen de faire
une fusion ou groupage des elements mobile selon leurs axes mais jeverrais plus tard.

Si vous voulez pas polluer votre freecad avec une macro specifique, il suffit de faire un copier coller de ce qui est dessous dans la
console python

Code: Select all

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

import FreeCAD as App, FreeCADGui as Gui, Part, time, sys, math, Draft, DraftGeomUtils
from PyQt4 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()
mario52
Posts: 3217
Joined: Wed May 16, 2012 2:13 pm

Re: [Résolu] Je galere pour tourner une piece

Postby mario52 » Fri Jul 24, 2015 6:08 pm

bonjour fran6t
est ce que je peux mettre votre macro comme exemple dans la section Macros_recipes#Animation du wiki ?
mario
Maybe you need a special feature, go into Macros_recipes and Code_snippets, Topological_data_scripting, Dialog creation. My macros on Gist.github.
fran6t
Posts: 354
Joined: Tue Jul 15, 2014 9:29 am
Location: Montauban
Contact:

Re: [Résolu] Je galere pour tourner une piece

Postby fran6t » Fri Jul 24, 2015 7:50 pm

Oui bien sur, l'ideal faudrait que je retrouve d'ou elle vient afin de citer l'auteur original car je n'ai fais que quelques modifs.

Je recherche et je viens reposter
fran6t
Posts: 354
Joined: Tue Jul 15, 2014 9:29 am
Location: Montauban
Contact:

Re: [Résolu] Je galere pour tourner une piece

Postby fran6t » Fri Jul 24, 2015 8:06 pm

J'ai retrouvé l'auteur il s'agit de Javier Martínez García et j'ai récupéré son bout de code dans sa vidéo tuto ici
https://www.youtube.com/watch?v=KynMmsLJXV0 et son blog ici http://linuxforanengineer.blogspot.com.es/p/me.html
mario52
Posts: 3217
Joined: Wed May 16, 2012 2:13 pm

Re: [Résolu] Je galere pour tourner une piece

Postby mario52 » Mon Jul 27, 2015 9:49 am

Bonjour
Voila la page Macro Assemblage Imprimante 3D et ici pour dire à JMG que sa macro a été utilisée est tourne très bien.
mario
Maybe you need a special feature, go into Macros_recipes and Code_snippets, Topological_data_scripting, Dialog creation. My macros on Gist.github.
fran6t
Posts: 354
Joined: Tue Jul 15, 2014 9:29 am
Location: Montauban
Contact:

Re: [Résolu] Je galere pour tourner une piece

Postby fran6t » Tue Jul 28, 2015 7:04 am

mario52 wrote:Bonjour
Voila la page Macro Assemblage Imprimante 3D et ici pour dire à JMG que sa macro a été utilisée est tourne très bien.
mario
Bravo pour cette page wiki, quand j'ai une minute je compte decortiquer la macro Work Feature pour comprendre comment implementer une partie graphique.
Le peu d'essai que j'ai pu faire avec la page d'explication wiki ici http://www.freecadweb.org/wiki/index.ph ... reation/fr et Qt4 designer n'ont pas été concluant des choses ont changé depuis la réalisation de cette page wiki et mes connaissances python étant nulle je n'avais pas réussi.

L'idée c'est que la macro ouvre une fenetre dialog avec dedans un bouton pour lancer le deplacement X, le Y ou le Z et un bouton pour stopper.
mario52
Posts: 3217
Joined: Wed May 16, 2012 2:13 pm

Re: [Résolu] Je galere pour tourner une piece

Postby mario52 » Tue Jul 28, 2015 7:30 am

Bonjour
les exemples ont été mis à jour depuis l'utilisation de PySide et sont fonctionnels

dans l'exemple "Ici la même fenêtre mais avec un icône sur chaque bouton. "vous devez juste mettre vos icônes dans :

Code: Select all

#        path = FreeCAD.ConfigGet("UserAppData") # chemin utilisateur > user . . . 
        path = FreeCAD.ConfigGet("AppHomePath") # ou chemin de l'installation > c:\FreeCAD . . . .
à vous de choisir et les nommer (ici) icone01.png , icone02.png , icone03.png

je vais modifier la page et ajouter les icônes

mario
Maybe you need a special feature, go into Macros_recipes and Code_snippets, Topological_data_scripting, Dialog creation. My macros on Gist.github.