Python : récupérer le nom du croquis dans lequel on est en train de travailler

Forum destiné aux questions et discussions en français
Forum rules
Règles du forum et informations utiles.

VEUILLEZ LIRE CECI AVANT DE DEMANDER DE L'AIDE
Post Reply
User avatar
2cv001
Posts: 481
Joined: Wed Jan 01, 2020 9:30 am

Python : récupérer le nom du croquis dans lequel on est en train de travailler

Post by 2cv001 »

Bonjour,
Ca m'énerve, je sèche depuis plus d'une heure sur un truc tout bête et je suis quasiment sûr d'avoir vu la solution. Sauf que ça fait plusieurs heurs que je cherche sans trouver.
Imaginons que je sois dans un croquis (un sketch) et que je lance une macro, comment cette macro peut elle récupérer le nom de ce sketch ?
Par exemple, ici,
Capture.PNG
Capture.PNG (10.24 KiB) Viewed 374 times
je suis en train de travailler dans le sketch qui se nomme Sketch et je veux donc que ma macro retrouve ce nom' Sketch' pour pouvoir après, s'en servir.
Je suppose que c'est très simple mais ...
Une idée ?
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
mario52
Veteran
Posts: 4672
Joined: Wed May 16, 2012 2:13 pm

Re: Python : récupérer le nom du croquis dans lequel on est en train de travailler

Post by mario52 »

Bonjour

ici le nom pour un sub élément dans un sketch en édition (sélectionnez un objet)

Code: Select all

import Draft, Part, Sketcher
sel  = Gui.Selection.getSelection()
sketch  = sel[0] 
if (Gui.ActiveDocument.getInEdit() and (sketch.TypeId == "Sketcher::SketchObject")): #entre dans un sketch qui est en edition
        try:
            selEx = FreeCADGui.Selection.getSelectionEx()[0].SubElementNames[0] # Sub Element Name
            print(selEx)
        except Exception:
            selEx = ""
ici le nom du sketch en édition (sélectionnez un objet)

Code: Select all

import Draft, Part, Sketcher
sel  = Gui.Selection.getSelection()
sketch  = sel[0] 
if (Gui.ActiveDocument.getInEdit() and (sketch.TypeId == "Sketcher::SketchObject")): #entre dans un sketch qui est en edition
    print(sketch.Name)
nom du sketch en édition

Code: Select all

import Draft, Part, Sketcher
if Gui.ActiveDocument.getInEdit():
    nom = Gui.ActiveDocument.getInEdit().Object.Name
    print(nom)
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
2cv001
Posts: 481
Joined: Wed Jan 01, 2020 9:30 am

Re: Python : récupérer le nom du croquis dans lequel on est en train de travailler

Post by 2cv001 »

Impeccable !
Ca marche. je prends ça

Code: Select all

import Draft, Part, Sketcher
if Gui.ActiveDocument.getInEdit():
    nom = Gui.ActiveDocument.getInEdit().Object.Name
    print(nom)
Et je garde les autres de coté :D

Je ne connaissais pas getInEdit() ....
Merci mario52 !
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
User avatar
2cv001
Posts: 481
Joined: Wed Jan 01, 2020 9:30 am

Re: Python : récupérer le nom du croquis dans lequel on est en train de travailler

Post by 2cv001 »

Un peu par hasard, j'ai cru voir qu'il y a un truc encore plus simple :

Code: Select all

mySketch=ActiveSketch
mySketchName=mySketch.Name
Ca a l'air de fonctionner

Enfin remarque, pas vraiment plus simple que le tien !
Macro Sketch Constraint From Spreadsheet :
https://wiki.freecad.org/Macro_Sketch_C ... adsheet/fr
Post Reply