Positionnement relatif

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
TeeJay
Posts: 8
Joined: Wed Jan 11, 2017 12:13 pm

Positionnement relatif

Post by TeeJay »

Bonjour,

la question semble avoir déjà été posée sur le forum anglo-saxon, mais je n'ai pas trouvé de réponse claire : est-il possible dans FreeCad - et plus particulièrement dans l'atelier Arch - de positionner un objet directement par rapport à un autre, sans passer par les coordonnées absolues ?

Deux exemples pour illustrer mon pb : sur un mur, j'ai positionné une première fenêtre. Je veux placer une deuxième fenêtre à 50 cm à droite de la première, et 30 cm plus bas. Ou encore, je veux positionner une porte à 2 m du coin inférieur droit d'un mur. Je peux bien sûr calculer les coordonnées absolues de chacun de ces éléments, mais avec de nombreuses portes et fenêtres, ça devient vite galère et surtout source d'erreurs.

Pour être plus clair, venant de LibreCad, je cherche l'équivalent de la fonction "Set relative zero position" (qui facilite considérablement le travail !).

Merci pour vos suggestions.

OS: Linux Mint 17.3 Rosa
Word size of OS: 32-bit
Word size of FreeCAD: 32-bit
Version: 0.17.9822 (Git)
Build type: None
Branch: master
Hash: 0df4af4ba5e6edce825af6ecf6d024c704292633
Python version: 2.7.6
Qt version: 4.8.6
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
User avatar
nemesis
Posts: 373
Joined: Tue Mar 25, 2014 11:24 pm
Location: France, Lyon

Re: Positionnement relatif

Post by nemesis »

Bonjour,
C'est possible oui, notamment en utilisant les expressions.
regarde l'exemple de ce post
dans ce fichier j'utilise un spreadsheet pour définir la taille d'un cube1, le Cube2 est positionner par rapport a ces dimension. si tu change les valeurs dans la feuille param, tu verras que la taille de cube1 change et que cube2 continu de le suivre.
https://forum.freecadweb.org/viewtopic. ... 30#p152226
TeeJay
Posts: 8
Joined: Wed Jan 11, 2017 12:13 pm

Re: Positionnement relatif

Post by TeeJay »

Bonjour Nemesis,

Merci pour ta réponse, et j'espère que la mienne ne va pas te mettre en colère... ;)

J'ai regardé ton exemple de spreadsheet, et j'ai même réussi à créer 2 cubes complètement séparés dont l'un suit les dimensions de l'autre. Le wiki étant particulièrement frugal en explications, ça m'a pris un petit moment pour comprendre ce qu'il fallait faire pour que ça fonctionne. Mais au final, ça n'est pas ce que je cherche.

Pour suivre les recommandations de Yorik dans son tuto "Arch tutorial", j'ai dessiné les plans d'un bâtiment sous LibreCad avant de passer sous FreeCad pour sa représentation en 3D.

Sur des plans de bâtiment, les cotations indiquent les dimensions des objets qui s'y trouvent (murs, portes, fenêtres, canalisations...), mais pas leur position en x, y ou z par rapport à l'origine du dessin (sinon, il faudrait une ligne de cotation par objet...). Je peux bien sûr calculer la position d'un élément en faisant la somme des dimensions de tous les éléments qui le précèdent depuis le point origine (0,0,0), mais c'est un peu lourd - et ça devient même très lourd lorsque des murs ne se croisent pas à angle droit.

J'ai une option de secours qui consiste à importer les lignes de construction depuis LibreCad, mais ça n'est pas très élégant.

Donc, ce que je cherche, c'est une commande qui me permette de redéfinir temporairement le point origine de mon dessin (soit graphiquement de préférence en s'aidant des outils d'accrochage, soit en entrant ses coordonnées dans le repère absolu). À partir de là, les choses deviennent très simples puisque je n'ai plus qu'à me préoccuper que de la position du nouvel objet par rapport à un point quelconque d'un objet de référence.

Ceci étant, il est possible aussi que je m'y prenne comme un manche, et que ma démarche ne soit pas la bonne ; dans ce cas, je suis preneur de toute suggestion - pour autant que sa mise en œuvre ne passe pas par Python (j'ai déjà la learning curve de Freecad devant moi, je ne vais pas rajouter celle-là maintenant...)
mario52
Veteran
Posts: 4692
Joined: Wed May 16, 2012 2:13 pm

Re: Positionnement relatif

Post by mario52 »

Bonjour
peut être essayer cette macro Macro_Delta_xyz qui donne des renseignements entre 2 points,

il y a aussi cette macro Macro_CloneConvert qui crée une copie ou un clone d'un objet aux coordonnées voulues à parti de 0,0,0 ou à partir de l'endroit ou se trouve l'objet original

dites moi si cela correspond à votre recherche

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
nemesis
Posts: 373
Joined: Tue Mar 25, 2014 11:24 pm
Location: France, Lyon

Re: Positionnement relatif

Post by nemesis »

TeeJay wrote:B
Ceci étant, il est possible aussi que je m'y prenne comme un manche
ça doit être ça .... #Humour! :lol:
TeeJay wrote:Pour être plus clair, venant de LibreCad, je cherche l'équivalent de la fonction "Set relative zero position"
connais peu libreCAD désolé ....
TeeJay wrote:Deux exemples pour illustrer mon pb : sur un mur, j'ai positionné une première fenêtre. Je veux placer une deuxième fenêtre à 50 cm à droite de la première, et 30 cm plus bas. Ou encore, je veux positionner une porte à 2 m du coin inférieur droit d'un mur.
A priori tu peux essayer de projeter les axes de ta premiere fenêtre dans l'esquisse de la deuxième fenêtre via le macro WorkFeature, pour ne pas avoir de dépendance circulaire.
il faut aussi noté que la propriété "move with Host" des fenêtre ne marche pas

sinon tu fait ça :
1 mur
une fenêtre sur le mur inclus dans l'hôte (donc tu as Wall et Wall01)
edition de l'esquisse de la fenêtre
suppression de la dernière contrainte de coincidence qui correspond a une coincidence avec l'origine.
affichage du premier mur "Wall"
reference externe par rapport au bord qui t'intéresse
positionnement de l'esquisse comme tu veux
ajout d'un porte sur Wall001
meme vacccins que précédemment mais avec wall001 pour utiliser la premiere fenêtre en référence externe.
si tu veux bouger le mur, il faut déplacer "wall" et tous le monde suit!
voir fichier :
testArch.FCStd
(22.68 KiB) Downloaded 53 times
testArch.png
testArch.png (35.18 KiB) Viewed 2955 times
TeeJay
Posts: 8
Joined: Wed Jan 11, 2017 12:13 pm

Re: Positionnement relatif

Post by TeeJay »

Bonjour,

à Mario52 : merci pour vos suggestions. La Macro_Delta_xyz pourra m'être utile par la suite ; la Macro_CloneConvert se rapproche de ce que je cherche, mais suppose que je fasse une copie d'un objet. Je ne l'ai pas encore testée pour voir si je peux modifier l'objet copié, pour transformer une porte en fenêtre, par exemple.

à Némésis : en m'inspirant de ta méthode, j'ai une solution qui fonctionne. Bien moins simple que ce que j'espérais au départ, et je perds l'avantage des fenêtres et portes prédéfinies dans Arch, mais au moins je ne vais pas vagabonder dans des bidouillages :

je crée un mur à partir d'une ligne dans Arch
dans sketcher, je dessine sur une face du mur l'emprise de ma fenêtre et je crée immédiatement un pocket ;
je crée un nouveau sketch pour l'objet suivant (porte, fenêtre) que je positionne par référence externe aux arêtes de l'objet précédent et je crée immédiatement un pocket ;
et ainsi de suite.

Bon, il reste à habiller les portes et les fenêtres... :cry:

Ça me fait un arbre des dépendances parfaitement linéaire, et quand je bouge la ligne de base, tout bouge avec.

Ceci dit, le bâtiment que je modélise a été construit il y a plus de soixante ans, à une époque où manifestement, le béton ne devait pas coûter bien cher. L'idée de bouger des murs ne m'a même pas effleurée...

Merci de tes suggestions !

Pour les développeurs de FreeCad : l'ajout d'une fonctionnalité du style "Set zero relative position" de LibreCad me semble être de nature à rendre le logiciel plus intuitif. Je sais, c'est facile à dire quand on n'est qu'utilisateur...
User avatar
nemesis
Posts: 373
Joined: Tue Mar 25, 2014 11:24 pm
Location: France, Lyon

Re: Positionnement relatif

Post by nemesis »

TeeJay wrote:en m'inspirant de ta méthode, j'ai une solution qui fonctionne. Bien moins simple que ce que j'espérais au départ, et je perds l'avantage des fenêtres et portes prédéfinies dans Arch
Pourqoi?
c'est exactement ce que j'ai fait.
j'ai utiliser des fenêtres et portes prédéfini dans freecad. La ou il faut être vigilant, c'est sur le solide sur lequel on récupère les références externes pour ne pas avoir de référence circulaire.
TeeJay wrote:Pour les développeurs de FreeCad : l'ajout d'une fonctionnalité du style "Set zero relative position" de LibreCad me semble être de nature à rendre le logiciel plus intuitif. Je sais, c'est facile à dire quand on n'est qu'utilisateur...
Je n'ai toujours pas compris a quoi ça correspondait.... il va falloir que j'aille voir Librecad :lol:
TeeJay wrote:Ceci dit, le bâtiment que je modélise a été construit il y a plus de soixante ans, à une époque où manifestement, le béton ne devait pas coûter bien cher. L'idée de bouger des murs ne m'a même pas effleurée...
j'ai le même problème chez moi :lol:
mais du coup si tu bouge la fenêtre, ça fait bouger la porte (dans mon exemple).
mario52
Veteran
Posts: 4692
Joined: Wed May 16, 2012 2:13 pm

Re: Positionnement relatif

Post by mario52 »

Bonjour
bonjour vous pouvez utiliser la commande "Déplacer" Image elle est très facile a utiliser
vous ramenez votre objet avec la souris sur le coin désiré puis répétez l'opération en donnant les coordonnées x,y manuellement

mais c'est vrais dans mon précédent programme de cao je pouvais déplacer le point 0 à un endroit donné et angle donné et tout ce que je faisait suivait ce point 0 c'était super pratique

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.
TeeJay
Posts: 8
Joined: Wed Jan 11, 2017 12:13 pm

Re: Positionnement relatif

Post by TeeJay »

Bonjour,
mario52 wrote:vous pouvez utiliser la commande "Déplacer" Image elle est très facile a utiliser
vous ramenez votre objet avec la souris sur le coin désiré puis répétez l'opération en donnant les coordonnées x,y manuellement
Excellent ! C'est effectivement ce qu'il y a de plus simple. Il faut juste penser préalablement à placer le plan de travail sur la face concernée, sinon les résultats sont... surprenants.
mario52 wrote:dans mon précédent programme de cao je pouvais déplacer le point 0 à un endroit donné et angle donné et tout ce que je faisait suivait ce point 0 c'était super pratique
Content de voir que je ne suis pas le seul à apprécier cette fonctionnalité :D
nemesis wrote:Pourqoi?
c'est exactement ce que j'ai fait.
Désolé, j'avais m..douillé dans ma manip avec les sketches des fenêtres. J'ai repris ça et effectivement, ta procédure fonctionne parfaitement.
Mais je préfère celle de mario52, qui est pour moi plus intuitive.
nemesis wrote:Je n'ai toujours pas compris a quoi ça correspondait.... il va falloir que j'aille voir Librecad
Je ne saurais trop te le conseiller. Le temps d'apprentissage de LibreCad pour sortir un dessin correct, c'est 10 mn. Tu ne perdras pas trop de temps... :lol:
Merci à tous les deux pour vos conseils.
rentlau_64
Posts: 181
Joined: Tue Oct 21, 2014 9:47 am
Location: Pau (France)

Re: Positionnement relatif

Post by rentlau_64 »

Bonjour,
Vous avez aussi une fonction de translation copie dans la macro Work Feature.
je prepare qqe tutorials pour cette macro.

Cordialement

Rentlau_64
Post Reply