Une question d'absolu et de relatif !...

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
User avatar
Lou_Papet
Posts: 26
Joined: Sat Aug 09, 2014 9:57 pm
Location: Marseille
Contact:

Une question d'absolu et de relatif !...

Post by Lou_Papet »

Bonjour à tous,

J'ai peut-être dû mangé une étape dans la lecture de la documentation car je me heurte à une petit problème de cordonnées absolues et relatives et je n'ai trouvé aucune réponse dans mes recherches, même sur le forum. Voici donc ce dont il s'agit. C'est un exemple réduit, reproduit de ce qu'il se passe dans mon script d'animation d'un ensemble mécanique à engrenages (CVT) :

En créant la nomenclature
Image
j'ai obtenu l'image
Image
où les deux cylindres "Cylindre" et "Cylindre003" à z=50 (1er point rouge) sont des broches qui doivent d'emboîter dans des évidements du parallélépipède rectangle en z=100 (2ème point rouge)

Pas de problème pour manipuler dans un script Python les coordonnées absolues de ces deux cylindres de base.

La modélisation du parallélépipède rectangle composite "Cut001" prépositionné aux coordonnées absolues (x=-30,y=12,z=100) a été effectuée sans problème en faisant des soustractions successives des duplications "Cylindre001" et "Cylindre002" repositionnées des deux cylindres "Cylindre" et "Cylindre003" au niveau du parallélépidède. Les propriétés de ce parallélépipède sont données par l'image ci-dssous :
Image
et... oh, surprise !... on n'y retrouve pas les coordonnées absolues (x=-30,y=12,z=100), elles sont toutes à zéro et toutes spécifications de coordonnées causent un déplacement par rapport à l'emplacement de modélisation !!!... Jouer avec Axis n'apporte rien.

Ennuyeux, car, pour résoudre cet aspect, on est contraint de modéliser l'élément composite à l'origine du système d'axe ce qui est génant quand il faut faire correspondre des pièces comme des broches et des évidements. C'est ce qui a été fait avec le oône ajouré, modélisé comme le parallélépidède mais à l'origine :
Image
et là, on peut spécifier des coordonnées absolues.

Cette réaction me surprend mais ce phénomène est-il voulu donc normal ?

Comment donc forcer le logiciel à ne prendre que des coordonnées absolues pour les pièces composites ?

Quand j'arrête mon script Python, je cherche à repositionne ma modélisation dans son état d'origine et là, je n'y arrive pas car je ne sais pas dans quel état elle se trouve à ce moment-là et il n'y a que les coordonnées absolues qui permettent de s'y retrouver.

Par ailleurs, avec cette modélisation à l'orgine, je pense que mon script n'est pas pérenne et qu'il ne fonctionnera plus à la prochaine version du système !...

Merci pour votre éclairage.
Cordialement.
Lou Papet


 
Pourquoi fait simple quand on peut faire encore plus simple !...
Le plus simple est de ne pas faire.... seulement si c'est possible !...
mario52
Veteran
Posts: 4673
Joined: Wed May 16, 2012 2:13 pm

Re: Une question d'absolu et de relatif !...

Post by mario52 »

bonjour
Lou_Papet wrote:Quand j'arrête mon script Python, je cherche à repositionne ma modélisation dans son état d'origine et là, je n'y arrive pas car je ne sais pas dans quel état elle se trouve à ce moment-là et il n'y a que les coordonnées absolues qui permettent de s'y retrouver.
en début de programme il faut aller chercher les données, j'ai fait une petite macro d'animation d'un ressort au début de la macro j'enregistre les données d'origine et je les restitues à la fin de la macro (vous devez décommenter les deux dernières lignes pour la restitution d'origine)

vous ouvrez les deux fichiers dans FreeCAD (Spring.FCMacro et Spring.FCStd) vous faites "Fenêtre mosaïque" vous cliquez dans la fenêtre de la macro et appuyez sur F6 (mode debug) et vous voyez l'animation et revient à sa position d'origine à la fin de la macro scripting animations?
pour votre macro, faites la même chose avec "Placement"
mario
Maybe you need a special feature, go into Macros_recipes and Code_snippets, Topological_data_scripting.
My macros on Gist.github here complete macros Wiki and forum.
User avatar
Lou_Papet
Posts: 26
Joined: Sat Aug 09, 2014 9:57 pm
Location: Marseille
Contact:

Re: Une question d'absolu et de relatif !...

Post by Lou_Papet »

Bonjour Mario52,

Merci pour votre réponse. J'ai bien entendu fait tourner votre exemple qui ne porte que sur deux propriétés. Ramené à mon projet, la solution me parraît fastidieuse car il comporte un bon nombre de pièces comme le montre l'image ci-dessous, des plus simples à modéliser puisqu'il n'est fait appel qu'à des cylindres mais beaucoup moins à animer :
Image
J'avais opté pour la solution simple, radicale et des plus fiables qui consiste à fermer le projet sans le sauvegarder et à restaurer le projet initial par les commande que propose FreeCAD dans sa console :

Code: Select all

#*** Fermeture du projet sans sauvegarde :
	App.closeDocument("Diametroid")
	App.setActiveDocument("")
	App.ActiveDocument=None
	Gui.ActiveDocument=None

#*** Ouverture du projet initial :
	FreeCAD.open("D:/Site_Jean-Pierre/Automobile/Technique/Diametroid/Diametroid.FCStd")
	App.setActiveDocument("Diametroid")
	App.ActiveDocument=App.getDocument("Diametroid")
	Gui.ActiveDocument=Gui.getDocument("Diametroid")
La solution aurait été parfaite si j'avais pu trouver la méthode qui me permette de récupérer le chemin d'accès complet au projet ouvert par FreeCAD pour la coder dans l'instruction "FreeCAD.open(...). En effet, mon projet peut se trouver dans des répertoires différents correspondant à des phases d'élaboration.

Mais ce n'est pas le plus important.

Je n'ai pas compris pourquoi et pour quelle raison technique FreeCAD attribue à un objet composite sa position à l'endroit de sa modélisation ce qui transforme des coordonnées absolues en coordonnées relatives alors que ce n'est pas le cas pour les objets de base. Ceci m'oblige à modéliser les objets toujours à l'origine et à les positionner ensuite.

Comment demander à FreeCAD de ne travailler qu'en coordonnées absolues à partir desquelles il est des plus aisées de travailler en coordonnées relatives ?

En vous remerciant bien sincèrement pour votre aide.
Cordialement.
Lou Papet
Pourquoi fait simple quand on peut faire encore plus simple !...
Le plus simple est de ne pas faire.... seulement si c'est possible !...
mario52
Veteran
Posts: 4673
Joined: Wed May 16, 2012 2:13 pm

Re: Une question d'absolu et de relatif !...

Post by mario52 »

bonjour
Comment demander à FreeCAD de ne travailler qu'en coordonnées absolues à partir desquelles il est des plus aisées de travailler en coordonnées relatives ?
je crois que votre demande est en rapport à cette discussion Reset Origin function needed
pour l'animation vous pouvez créer une boucle qui déplace chaque objet séparément je pense que ce n'est pas compliqué
mario
Maybe you need a special feature, go into Macros_recipes and Code_snippets, Topological_data_scripting.
My macros on Gist.github here complete macros Wiki and forum.
Post Reply