Macro Wiring And Hoses/fr

De L'utilisateur: Piffpoof Remarque: certains changements entre v 0.14 et v 0.15 ont affecté cette macro qui retardera sa publication

Ces macros prennent en charge la création et la maintenance des fils et flexibles.



Contexte
Dans le cadre de nos autres projets FreeCAD, nous avions besoin d'un moyen de documenter le câblage et les tuyaux. Cet ensemble de macros a été développé pour répondre à ce besoin. Il y a beaucoup de choses que ce système ne fait pas, mais ce qu'il fait est de fournir une représentation visuelle du câblage et des tuyaux, soit en tant que système isolé, soit avec le câblage et les tuyaux dans le contexte d'un modèle FreeCAD. L'enregistrement de tous les fils et flexibles est conservé dans un fichier au format CSV en dehors de FreeCAD. Le fichier peut donc être chargé dans un tableur ou utilisé par un autre logiciel.

Description
Dans le cadre d'un projet de documentation, nous avons découvert que nous devions documenter les fils et les tuyaux. Nous avons essayé différents scénarios tels que la création de lignes ou de cylindres dans le cadre du modèle existant. En raison de problèmes d'utilisation ou de maintenance, nous avons décidé de conserver les informations dans un format différent et en dehors de FreeCAD. De cette façon, ils pourraient être créés seuls ou créés dans un document existant. Cette décision a permis à l'utilisateur de travailler avec le câblage et les tuyaux de la manière qui leur convenait. De plus, ils pouvaient travailler avec elle de différentes manières à différents moments selon les besoins.

Au départ, nous ne savions pas comment maintenir une liste de tuyaux et de fils et diverses approches ont été essayées. Le moyen le plus simple semblait être d'utiliser le format de fichier CSV qui existe depuis longtemps. Il y avait également des routines déjà écrites pour gérer les fichiers CSV à partir de Python. Certains des avantages étaient les suivants:


 * lisible par l'homme
 * peut être chargé dans n'importe quelle feuille de calcul
 * peut être maintenu à l'aide d'une feuille de calcul ou d'un simple éditeur de texte
 * une amélioration future possible serait de l'utiliser avec le tableur FreeCAD

Les décisions suivantes ont été "comment" définir de tels câbles. Notre objectif étant principalement la documentation, nous avons choisi d'exécuter des segments de ligne de point en point. Des problèmes tels que le rayon de virage ne sont pas traités. Le diamètre du câble n'est pas non plus manipulé. Un tableau des chemins de câbles est conservé dans le fichier CSV, mais des éléments tels que la proximité des câbles (pour les problèmes d'interférences électriques) et la longueur des câbles ne sont pas pris en charge (bien qu'il soit possible d'ajouter une longueur de câble rudimentaire assez facilement).

Cet ensemble de macros est essentiellement une "démonstration de faisabilité". Elle démontre quelques idées et leur faisabilité. Notre objectif principal était la documentation, et non la gestion physique de l'usine. Nous avons décidé de maintenir une structure de données de points, qui sont les points par lesquels passent les câbles et les tuyaux. Deuxièmement, nous avons mis en place une structure de données qui définit les câbles et les tuyaux en fonction des points qu'ils traversent. Un fil ne peut donc être acheminé que là où des points ont été définis pour lui.

Pour les 2 structures de données, nous avons choisi les noms suivants:
 * Nexus - un point par lequel un câble ou un tuyau peut passer (le pluriel est Nexi). Les Nexi ne sont que des points dans 3 espaces, pour faciliter la visualisation, le logiciel place des anneaux toroïdes autour de l'emplacement, mais uniquement pour une facilité d'utilisation. Les anneaux toroïdaux peuvent être désactivés ou activés en fonction des préférences de l'utilisateur
 * Flows - génériquement ce sont des routes composées de Nexi. Un code est associé à chaque type, les codes par défaut étant
 * W - fils électriques
 * C - conduits, destinés principalement aux fils mais pouvant contenir tout
 * H - tuyaux pour transporter une variété de liquides
 * G - conduites de gaz
 * K - un routage de caméra, c'est vraiment juste réservé pour une exploration future selon Tour camera animation

Nexi et Flows ont tous deux des noms attribués par l'utilisateur, de plus Nexi a des ID attribués en interne pour faciliter la gestion. Les points ou emplacements dans Nexi à 3 espaces n'ont pas de couleurs mais les Flows peuvent avoir l'une des 48 couleurs définies. L'accent mis sur les couleurs revient au but recherché, celui de la documentation.

Le workflow général est
 * définir et positionner Nexi
 * définir Flow(s) en terme de Nexi
 * à des fins de maintenance, modifiez Nexi et Flows visuellement à l'aide de l'interface graphique FreeCAD ou à l'aide d'une approche tabulaire et des définitions CSV

As the data file which holds both the Nexi and Flow definition is text based it can be used in any text editor or by any other program wishing to access the data.

Navigation Modes
As a large part of the work with these macros depends on manipulating the display of the model to place and verify the placement of point in 3-space, it is essential to be comfortable with the Navigational Modes of FreeCAD which are documented on the page Mouse Model. Being able to rotate the model in 3-space and then perform operations on a stationary model are essential.

Installation
The code for Wiring And Hoses is in multiple macros and a library. So installation is comprised of copying the code to the appropriate Macro directory and invoking the Build Utility from the Macro menu, the Python console or a toolbar button (the preferred method).


 * see How to install macros for information on how to install this macro code
 * see Customize Toolbars for information how to install as a button on a toolbar

Usage
There are really two different approaches to working with these macros: the nexi and flows can be defined on their own using 3-space coordinates; or an existing FreeCAD document can be used and the nexi and flows can be defined in the context of that document. This is not an 'either/or' decision but rather both approaches can be used when they are the most appropriate. As the definitions of the nexi and flows are kept in a CSV format file which is stored outside of FreeCAD, the presence or absence of a FreeCAD document does not affect working with the nexi and flow, it makes it easier by providing a visual context. For this description of usage the example will use a previously loaded FreeCAD document as a context as it is easier to place the

The usage of these macros really breaks down into 3 sections:
 * define nexi
 * define flows
 * edit the CSV format file to alter or add nexi and flows

There are alternative ways to perform some of the tasks outlined below and personal preference can decide. This example will apply electrical wiring and cold water plumbing to a house. Our empty house looks like this



and is waiting for cold water and electricity to be installed. For convenience of explanation all the electrical items are in yellow and the water in blue (aside from the 2 sinks).

Define Nexi
The first step is one of creating points in 3-space (called 'nexi' or 'nexus" in the plural). These points will be used in the next step to define a flow. We create these points by clicking on (i.e. selecting) a surface and then supplying a name for the nexi. This description is of defining the nexi for the water flow.

 This is asking if you would like to open and load a FreeCAD document which has the model which you wish to add nexi and flows to. It is not necessary to load one but for this example we will load our empty house
 * 1) click on 
 * 2) the following dialog will appear:

 
 * 1) select a surface by clicking on it, it will be highlighted in the Tree window and have a colour indicating selected in the display.
 * 2) click on 
 * 3) the following dialog will appear asking for a name for the new nexi:
 * 1) the nexi will now be defined. It will be positioned in 3-space so that it is on the line from the selected face to the viewer, positioned just off the face so that it is not inside the object. Although the nexus might not be in the perfect position, leave it for the moment as it will be edited in a later step. A toroid (i.e. ring) will be displayed, it is centred on the point of the nexus. This ring is purely a visualisation tool so the location of the point can be  identified. The visualisation rings can be toggled on/off at any time.
 * 2) define any more nexi in the same fashion, giving each a meaningful name
 * 3) click on 
 * 4) the following dialog will appear:
 * 1) answer Yes to save your new nexi

Note : at any point you can merge an existing project so as to have a visual context

Define Flow
Once nexi have been defined they can be used to define a flow. Our house now looks like this:

< picture of house with nexi but not flows>

It has nexi defined for the water flow but now flows as of yet.

the following dialog will appear:
 * 1) click on 



This is asking if you to select the nexi in the order you want them to create your flow.
 * 1) select the type of Flow: Wires, Conduits, Hoses, Gas Lines
 * 2) using the second popup, select the nexi in the order you want them




 * 1) supply a name for the flow
 * 2) select a colour for the flow
 * 3) click OK or Cancel. If you make an error in selecting the nexi (either order or including a wrong nexi) then click Cancel and restart this step.

< picture of house with water flow>



Editing Nexi and Flows
There are 3 different ways to edit nexi. As the flows are defined in terms of nexi, altering nexi will affect any flow which includes them. For the descriptive flow attributes like colour and name, there is one way to make edits.

So far in this example we have generated the following table:







User Interface
The user interface is a combination of custom screens along with standard parts of the FreeCAD GUI.







Options
At present there aren't really any options for Wiring and Hoses.

Sample Files
blah blah blah

Remarks
blah blah blah

Known Problems
blah blah blah

Future Possibilities
blah blah blah

Glossary
blah blah blah

Links
blah blah blah

Script
blah blah blah