Drawing Workbench/fr

L'atelier de mise en plan (Drawing) vous permet de coucher sur papier votre projet 3D, en mettant des vues de votre modèle dans une fenêtre 2D et en insérant cette fenêtre dans une mise en plan (page). Celle-ci pourra avoir une bordure, un titre et un logo, et cette page pourra ensuite être imprimée. L'atelier de mise en plan est pour le moment en construction et consiste plus ou moins en un aperçu technologique !

Outils graphiques
Le Module Draft a son propre module de dessin qui place les objets du projet sur papier. Il a quelques fonctionnalités supplémentaires sur les outils de dessin standards et prend en charge les objets spécifiques tels que les dimensions.



La capture d'écran ci-dessus montre les concepts principaux de l'atelier de Mise en plan. Le document contient un objet (Schenkel) que nous voulons extraire dans une mise en plan. Une « Page » est donc créée. Une page est générée depuis un gabarit, dans ce cas le gabarit « A3_Landscape ». Ce gabarit est un document SVG qui peut contenir un cadre de page, un cartouche avec votre logo se conformant à vos normes.

Dans cette page peuvent être insérées une ou plusieurs vues. Chaque vue a une position sur la page (Propriétés X,Y), une échelle (Propriété d'échelle) et des propriétés additionnelles. Chaque fois que la page, la vue ou l'objet référencé subit une modification, la page est regénérée et l'affichage mis à jour.

Script
Pour l'instant la méthodologie de travail par l'interface graphique est sévèrement limitée, l'API de script est plus intéressante. Voici quelques exemples démontrant l'utilisation de l'API de script dans l'atelier de mise en plan.

Ici un script qui permet de remplir facilement le cartouche de la feuille originele A3_Landscape de FreeCAD.

Exemples simples
Vous devez en premier lieu charger les modules Pièce (Part) et Mise en plan (Drawing) : Créez une petite pièce Projection directe. G0 veut dire arête vive, G1 est une tangente continue. Tout est projeté sur le plan Z : Un autre vecteur de projection Projeter en format SVG

La méthode paramétrique
Créer le corps Insérer un objet Page et assigner un modèle Créer une vue de votre objet "Shape", définir la position et l'assigner à la page Créer une seconde vue de l'objet, le but ici est de faire une rotation de 90 degrés Créer une troisième vue de votre objet ici une vue isométrique. Nous activons "hidden lines" pour les rendre invisibles. Changements et mise à jour. La mise à jour modifie les vues et la page.

Accéder aux objets et détails
Obtenir des fragments SVG d'une vue Obtenir toute la page (dans un fichier et dans le répertoire temporaire avec uniquement le droit en lecture) Important : libérer le fichier ! Insérer une vue avec votre propre contenu : Ce qui donne le résultat suivant :



Généralité sur les Dimensions et les Tolérances
Dessiner les dimensions et les tolérances est encore en cours de développement, mais vous pouvez accéder à des fonctionnalités de base avec un peux de travail.

En premier, pour le faire vous devez accéder au module Python gdtsvg (ATTENTION: le lien pourrait être rompu à tout moment!)

https://github.com/jcc242/FreeCAD

Pour obtenir un cadre de contrôle de cette fonctionnalité, essayez ce qui suit : Voici une bonne répartition du contenu d'un cadre de contrôle : http://www.cadblog.net/adding-geometric-tolerances.htm

The parameters to pass to control frame are:
 * 1) X-coordinate in SVG-coordinate system (type string)
 * 2) Y-coordinate in SVG-coordinate system (type string)
 * 3) The desired geometric characteristic symbol (tuple, svg string as first, width of symbol as second, height of symbol as third)
 * 4) The tolerance (type string)
 * 5) (optional) The diameter symbol (tuple, svg string as first, width of symbol as second, height of symbol as third)
 * 6) (optional) The condition modifying material (tuple, svg string as first, width of symbol as second, height of symbol as third)
 * 7) (optional) The first datum (type string)
 * 8) (optional) The first datum's modifying condition (tuple, svg string as first, width of symbol as second, height of symbol as third)
 * 9) (optional) The second datum (type string)
 * 10) (optional) The second datum's modifying condition (tuple, svg string as first, width of symbol as second, height of symbol as third)
 * 11) (optional) The third datum (type string)
 * 12) (optional) The third datum's material condition (tuple, svg string as first, width of symbol as second, height of symbol as third)

The ControlFrame function returns a type containing (svg string, overall width of control frame, overall height of control frame)'''

To get a dimension, try out the following: Inputs for linear dimension are:
 * 1) point1, an (x,y) tuple with svg-coordinates, this is one of the points you would like to dimension between
 * 2) point2, an (x,y) tuple with svg-coordinates, this is the second point you would like to dimension between
 * 3) textpoint, an (x,y) tuple of svg-coordinates, this is where the text of your dimension will be
 * 4) dimensiontext, a string containing the text you want the dimension to say
 * 5) linestyle, a string containing svg (i.e. css) styles, using the getStyle function to retrieve a preset string, for styling the how the lines look
 * 6) arrowstyle, a string containing svg (i.e. css) styles, using the getStyle function to retrieve a preset string, for styling how the arrows look
 * 7) textstyle, a string containing svg (i.e. css) styles, using the getStyle function to retrieve a preset string, for styling how the text looks

With those two, you can proceed as above for displaying them on the drawing page. This module is very buggy and can be broken at any given moment, bug reports are welcome on the github page for now, or contact jcc242 on the forums if you post a bug somewhere else.

Templates
FreeCAD comes bundled with a set of default templates, but you can find more on the Drawing templates page.

Extending the Drawing Module
Some notes on the programming side of the drawing module will be added to the Drawing Documentation page. This is to help quickly understand how the drawing module works, enabling programmers to rapidly start programming for it.