Sketcher Exemples

From FreeCAD Documentation
Revision as of 14:15, 8 May 2023 by David69 (talk | contribs)

Cette documentation n'est pas terminée. Merci de nous aider et de contribuer à la documentation.

Modèle GuiCommand explique comment les commandes doivent être documentées. Parcourez Category:UnfinishedDocu pour voir d'autres pages incomplètes comme celle-ci. Voir Category:Command_Reference pour toutes les commandes.

Voir Écrire une page Wiki pour apprendre à éditer les pages du wiki, et aller à Contribuer à FreeCAD pour apprendre d'autres façons de contribuer.
Other languages:

Introduction

Je pense que l' atelier Sketcher a besoin de quelques exemples qui ne sont pas des tutoriels détaillés ou des vidéos...

Charnière film=

Une charnière film est le petit morceau de plastique pliable qui relie les deux côtés d'un objet moulé par injection, tel qu'un conduit avec un couvercle, ou les deux moitiés d'un boîtier de bouchon protégeant de la poussière.

Cet exemple utilise une sorte d'esquisse principale pour empiler des esquisses dépendantes. Il montre également comment attacher et animer un simple clip basé sur les fonctions de PartDesign et les contraintes de Sketcher. L'utilisation des expressions comme décrit ci-dessous nécessite FreeCAD V 0.21 ou plus.

Esquisse de base

En général, un objet est modélisé dans un environnement fermé. Plus tard, la partie mobile doit être retournée de 180° pour être moulée à l'état ouvert.
La bande pliable est représentée par un arc de cercle pour l'état fermé et par une ligne droite pour l'état ouvert, les deux ayant le même point de départ.
Le point médian d'une ligne reliant les deux extrémités indique la position de l'axe de retournement, qui est normal au plan de l'esquisse. (Il est placé sur l'origine de l'esquisse afin que l'axe global normal au plan de l'esquisse puisse être utilisé comme axe de basculement).

(Quelques explications supplémentaires cachées et une description du flux de travail peuvent être développées ici. -->

Esquisse maître et charnière du film final animé (cliquez sur l'image si l'animation s'est arrêtée après quelques répétitions)

Pour un demi-cercle, la longueur de l'arc est le rayon multiplié par Pi (l = r * Pi). Le rayon est appelé NeutralRadius et la ligne est appelée DevelopedLength. Une expression pour la longueur développée relie les deux valeurs : .Constraints.NeutralRadius * pi

Dans la même esquisse, une expression commence par un . suivi de ValueType.ValueName pour traiter une autre valeur.

Esquisse intermédiaire

L'arc de cette charnière film a une longueur constante et un rayon variable. Une entrée est le NeutralRadius de l'esquisse de base. Pour l'avoir à portée de main dans cette esquisse, il est lié en tant que géométrie externe ayant une dimension de référence appelée ReferenceRadius.

Un quartier de géométrie de construction affiche la relation entre l'arc et le rayon pour un angle donné.
InputLength = ReferenceRadius * Pi
et
ArcLength = DynamicRadius * Pi * ArcAngle / 180°
de longueur constante se traduit par :
ReferenceRadius * Pi = DynamicRadius * Pi * ArcAngle / 180°
et avec Pi éliminé, nous obtenons :
ReferenceRadius = DynamicRadius * ArcAngle / 180° or DynamicRadius = ReferenceRadius * 180° / ArcAngle

L' expression pour la valeur DynamicRadius : .Constraints.ReferenceRadius * 180 ° / .Constraints.ArcAngle

Une charnière film étant généralement symétrique, un autre arc avec le même point central, appelé HalfArc, est utilisé pour la sortie et représente une moitié de l'arc de la charnière.

L' expression pour la valeur HalfArc : .Constraints.ArcAngle / 2

Esquisse intermédiaire montrant le DynamicRadius de l'arc de la charnière de 4 (mm) à un angle donné de 45° (et le demi-arc pour la sortie)

Esquisse de charnière film

Cette esquisse définit l'épaisseur et la géométrie adjacente de la charnière film. Par conséquent, nous chargeons le demi-arc de l'esquisse intermédiaire en tant que géométrie externe afin de l'utiliser comme base pour la partie film. (une fraction de 180° dans ce cas)

Cette charnière film est destinée à maintenir les parties connectées en contact l'une avec l'autre lorsqu'elles sont fermées. Pour ce faire, il suffit de calculer un arc de cercle de la longueur nécessaire, puis de créer une bande d'épaisseur constante et enfin d'appliquer des filets à l'endroit où la bande rencontre les moitiés de l'objet. La dernière étape raccourcit d'une certaine manière la boucle, mais dans le monde réel, ce n'est pas un problème, car l'arc ne sera jamais circulaire et les filets ont donc une influence sur la courbure de l'arc, mais pas sur sa fonctionnalité.

Esquisse de la charnière montrant le contour de la charnière sur la base de la géométrie extérieure à partir du demi-arc de cercle de l'esquisse intermédiaire.


A gauche : protrusion de la demi-charnière avec esquisse visible. A droite : demi-charnière avec ajout de congés


Demi-charnière avec plan de symétrie sélectionné → charnière film symétrisée


Conseil : Part Miroir n'accepte que les trois plans de base et ne peut donc pas être utilisé dans ce cas.

(Rétrospectivement, il était judicieux de commencer cet exemple avec la combinaison de PartDesign et de Sketcher).


Enfin, deux paramètres définissent la taille de la charnière film :

  • le NeutralRadius de l'esquisse de base
  • la valeur de l'épaisseur de l'esquisse intermédiaire

Fléchir la charnière film

L'angle de courbure est contrôlé par la contrainte ArcAngle de l'esquisse intermédiaire et peut être modifié dans son éditeur de propriétés.
Mais nous sommes de vrais concepteurs et nous avons nommé correctement les contraintes et les dimensions de nos esquisses, ce qui nous permet de contrôler l'angle de pliage via Python.
Quelques lignes de code de base à intégrer dans un contexte d'interface graphique pourraient ressembler à ceci :

doc=App.ActiveDocument
sketch=doc.getObjectsByLabel('IntermediateSketch')[0]
 ...
sketch.getDatum('ArcAngle')
 ...
sketch.setDatum('ArcAngle',App.Units.Quantity('50.000000 deg'))
doc.recompute(None,True,True)

Une brève explication :

  • doc = App.ActiveDocument : pour adresser le document actif par un alias appelé doc
  • sketch = doc.getObjectsByLabel('IntermediateSketch')[0] : pour adresser l'esquisse concernée par l'alias sketch.
  • : La méthode getObjectsByLabel() renvoie une liste d'objets et nous devons suffixer l'index Template:Valeur pour choisir le premier objet de la liste. (Nous ne nous attendons pas à ce qu'un autre objet ait le même label et nous n'avons donc pas à nous préoccuper des autres éléments de la liste).
  • sketch.getDatum('ArcAngle') : renvoie la valeur en cours de la contrainte dimensionnelle ArcAngle (dans la vue rapport).
  • sketch.setDatum('ArcAngle', App.Units.Quantity('50.0 deg')) : définit la valeur de ArcAngle à Template:Valeur
  • doc.recompute(None,True,True) : pour mettre à jour l'ensemble du document afin d'afficher également les modifications de la géométrie dépendante.

Connexion de la géométrie

Les deux moitiés du truc du clip attendent d'être fixées à la charnière, l'une du côté statique et l'autre du côté mobile.

Deux moitiés d'un simple clip

Le côté statique est facile :

  1. Activez le corps et ajustez les propriétés de position et d'orientation dans l'éditeur de propriétés jusqu'à ce qu'il corresponde à la charnière du film.
  2. Activez le corps de la charnière.
  3. Sélectionnez l' opération booléenne avec l'option (par défaut) Union.
  4. Dans la boîte de dialogue, appuyez sur le bouton Ajouter un corps.
  5. Sélectionnez le corps de la moitié statique du clip.
  6. Appuyez sur OK pour terminer et fermer la boîte de dialogue.

Charnière film et moitié statique en position de modélisation → charnière film avec la moitié statique repositionnée et unie

Mais le côté mobile est différent : la moitié concernée de la géométrie du clip doit se déplacer dans la bonne position avant que le (re)calcul d'une opération Union ne commence.

A ce stade, il me manque une fonction "Attachment with offset" comme celle d'Assembly3 pour attacher la géométrie du clip à l'une des faces mobiles. Mais après quelques expériences et ajustements, j'ai trouvé une solution :

While it is possible to use Attachment to align them, the attachment won't be parametrically linked.
  • Attachment can be applied to a PartDesign feature. This and features depending on it are repositioned according to the base geometry. But!:
    • Independent PartDesign features won't move and so it will change the resulting shape and break it in the end.
    • We are advised to keep features independent to avoid impacts due to the Topological naming problem.
  • PartDesign Clone creates a body with a single feature that can be use with Attachment.


With that in mind, a workflow could look like this:

  1. Select the body of the movable half.
  2. Use the Create a clone command.
  3. In the new body select the Clone object in the Tree view.
  4. Use the Part Attachment tool to add attachment properties to the Clone object.
  5. The Attachment dialog opens.
    • Select a vertex for the origin.
    • Select an edge for the first direction.
    • Select an edge for the second direction.
    • Probe the attachment modes to find the best fitting one.
    • Tweak rotation and coordinate values until until the geometry is in modelling position again.
  6. Press OK to close the dialog.
  7. With the hinge body still active select the PartDesign Boolean tool.
  8. In the dialog press the Add body button.
  9. select the body of the movable half .
  10. Press OK to finish and close the dialog.

The movable half will be attached to a corner of the movable hinge side (Map Mode OXZ: vertex, edge, edge)

In retrospect it would have been wiser to provide the attachment geometry with the IntermediateSketch to avoid another source of the Topological naming problem.

The clip so far and the movable half in modelling position → finished clip with attached and fused movable half

Now the result should be a single solid clip, that can be closed and opened by changing the ArcAngle of the film hinge. Allowed angles: 0.1° to 180°, the film section must not get straight, and more than closed doesn't make sense. (At 180° the object may get fused at tangent or overlapping areas, but a little extra gap could help if that is not acceptable.)

Clip almost closed → Clip half closed → Clip in mould condition