Macro Sketch Constraint From Spreadsheet

From FreeCAD Documentation
This page is a translated version of the page Macro Sketch Constraint From Spreadsheet and the translation is 100% complete.
Other languages:

Macro Sketch Constraint From Spreadsheet

Description
Macro qui, par un simple clic sur une cellule du tableur, ajoute une contrainte de longueur à une ligne, un cercle ou entre 2 points en utilisant un alias ou une adresse de cellule du tableur (ex. C2). Les modifications futures de la feuille de calcul mettront à jour la contrainte. La macro peut créer des alias pour vous.
Il suffit de sélectionner une ligne, deux points ou une contrainte, de cliquer sur une cellule de la feuille de calcul et d'exécuter la macro. Vous pouvez sélectionner des lignes, des points aux extrémités d'une ligne, des points, des cercles ou des arcs de cercle.

Version macro : 01.03
Date dernière modification : 2024-01-15
Version FreeCAD : Toutes
Téléchargement : Icône de la barre d'outils
Auteur: 2cv001
Auteur
2cv001
Téléchargement
Icône de la barre d'outils
Liens
Version Macro
01.03
Dernière modification
2024-01-15
Version(s) FreeCAD
Toutes
Raccourci clavier
None
Voir aussi
None

Description

Contactez-moi si quelque chose ne va pas.

Macro qui, par un simple clic sur une cellule du tableur, ajoute une contrainte de longueur à une ligne ou entre 2 points en utilisant un alias ou une adresse de cellule du tableur (ex. C2). Les modifications ultérieures de la feuille de calcul mettront à jour la contrainte. La macro peut créer des alias pour vous.

Il suffit de sélectionner 1 ligne, 2 points ou une contrainte, de cliquer sur une cellule du tableur et d'exécuter la macro. Vous pouvez sélectionner des polylignes, des points aux extrémités d'une ligne, des points, des cercles ou des arcs de cercle.

Temporary code for external macro link. Do not use this code. This code is used exclusively by Addon Manager. Link for optional manual installation: Macro


# This code is copied instead of the original macro code
# to guide the user to the online download page.
# Use it if the code of the macro is larger than 64 KB and cannot be included in the wiki
# or if the RAW code URL is somewhere else in the wiki.

from PySide import QtGui, QtCore

diag = QtGui.QMessageBox(QtGui.QMessageBox.Information,
    "Information",
    "This macro must be downloaded from this link\n"
    "\n"
    "https://raw.githubusercontent.com/2cv001/FreeCAD-macros/master/Spreadsheet/Sketch_Constraint_From_Spreadsheet.FCMacro" + "\n"
    "\n"
    "Quit this window to access the download page")

diag.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
diag.setWindowModality(QtCore.Qt.ApplicationModal)
diag.exec_()

import webbrowser 
webbrowser.open("https://raw.githubusercontent.com/2cv001/FreeCAD-macros/master/Spreadsheet/Sketch_Constraint_From_Spreadsheet.FCMacro")


Utilisation

Création automatique d'objets

Si vous exécutez la macro et que vous n'avez pas encore créé de feuille de calcul, de corps ou d'esquisse, la macro vous propose de les créer et ouvre ensuite l'esquisse en mode édition et la feuille de calcul afin que vous puissiez commencer à la remplir.

Création automatique d'alias

Ce n'est pas obligatoire, mais il est préférable d'utiliser des alias dans votre feuille de calcul. La macro peut créer des alias à partir des textes contenus dans les cellules.
Deux modes :

  • un mode manuel où vous sélectionnez vous-même les cellules contenant du texte pour l'alias et un mode automatique.
  • et un mode automatique :

Mode automatique

Un mode automatique où les alias sont automatiquement créés en utilisant une zone de texte définie par une cellule. La zone comprend la cellule et celles qui se trouvent en dessous. Ces textes correspondent au nom de l'alias. L'alias est créé à droite de son texte." La cellule désignée (ici A3) est éditable dans ces boîtes de dialogue :

Alias automatic creation

Alias automatic creation Alias automatic creation


Mode manuel

Pour utiliser le mode manuel, ne cochez pas l'option "Automatic alias".

Alias creation

Alias creation

Création de contraintes

1) Sélectionnez :

  • une ligne,
  • deux points (extrémité d'une ligne, centre d'un cercle, etc.)
  • ou une contrainte de longueur.

2) Cliquez sur une cellule de la feuille de calcul, avec ou sans alias, qui contient une valeur numérique :

3) Lancez la macro.

4) Sélectionnez le type de contrainte souhaité :

Si la cellule a un alias, la propriété de longueur de la contrainte sera quelque chose comme "Spreadsheet.alias". Dans le cas contraire, il s'agira de quelque chose comme "Spreadsheet.D4".

5) Si la contrainte provoque un conflit dans l'esquisse et que la case "conflict detection" est cochée, la macro propose de supprimer la nouvelle contrainte :

Si vous sélectionnez une contrainte existante, vous pouvez remplacer sa valeur par une valeur provenant d'une feuille de calcul :

La macro peut également gérer une géométrie externe provenant d'une autre esquisse :

Pour être encore plus précis, si, par exemple, une ligne est horizontale plutôt que verticale, à l'ouverture de la boîte de dialogue, le focus sera sur le bouton permettant d'appliquer une contrainte horizontale. Si la ligne est verticale et non horizontale, le focus sera sur le bouton permettant d'appliquer une contrainte verticale. Dans les deux cas, il vous suffit d'appuyer sur la touche Entrée si vous êtes satisfait de votre choix.


La macro fonctionne également pour les protusions (propriété Length), les poches (propriété Length), les filets (propriété Radius), les chanfreins (propriété Size) et les épaisseurs (propriété Value). Si vous cliquez sur un protusion, par exemple, puis sur une cellule avec la valeur souhaitée, la propriété Length de la protusion est automatiquement modifiée.

Liens

Crédits

Merci à openBrain, mario52 et onekk pour leur aide sur le code!
Merci à Syres pour les tests et pour l'aide sur le format dans le code.
Merci à Roy043 et David69 pour les diverses révisions et améliorations du wiki.
Merci à L'ami René pour les tests et les idées.

Script

Icône de la barre d'outils

Code

ver 01.03 2024/01/27 by 2cv001 Macro_Sketch_Constraint_From_Spreadsheet.FCMacro

Téléchargement