Comment exécuter une macro enregistrée résolu

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
rapidego
Posts: 46
Joined: Fri Feb 19, 2021 7:19 pm

Comment exécuter une macro enregistrée résolu

Post by rapidego »

Bonsoir à tous,
J'essaye d'enregistrer et exécuter des macros pour le dessin de tenons.
Voila comment je procède:
1) j'ouvre un nouveau document et je le sauvegarde.
2) J'enregistre une macro que je sauvegarde, puis je réalise un bout de traverse avec un tenon.
3) Une fois le tenon réalisé la pièce est terminée et j'arrête la macro.

4)Je ferme le document .
5) J'ouvre un nouveau document
6)Je lance la macro mais là rien ne se se passe, sauf un message d'erreur!!!

En conclusion je n'arrive pas à réutiliser ma macro enregistrée!!!

Merci pour me donner quelques conseils comment réutiliser ma macro.

Voici le message d'erreur lorsque j'essaye de lancer la macro pour réaliser un tenon sur une nouvelle pièce:

21:48:13 Traceback (most recent call last):
File "C:/Users/rapidego/AppData/Roaming/FreeCAD/Macro/tenon-dérasement1.FCMacro", line 12, in <module>
<class 'NameError'>: Unknown document 'Unnamed'

a+++
rapidego
Last edited by rapidego on Fri Mar 26, 2021 7:06 pm, edited 2 times in total.
User avatar
flachyjoe
Veteran
Posts: 1891
Joined: Sat Mar 31, 2012 12:00 pm
Location: Limoges, France

Re: Comment exécuter une macro enregistrée

Post by flachyjoe »

Salut,
l'enregistrement des macros ne fonctionne qu'avec des choses très simples, pour le reste il faut juste les utiliser comme base et les éditer "à la main".
Unknown document 'Unnamed'
Ta macro fait référence au document par son nom, il faut remplacer App.getDocument('Unamed') par App.ActiveDocument pour toujours faire référence au document en cours d'édition.
- Flachy Joe -
Image
rapidego
Posts: 46
Joined: Fri Feb 19, 2021 7:19 pm

Re: Comment exécuter une macro enregistrée

Post by rapidego »

flachyjoe wrote: Sun Mar 21, 2021 9:00 pm
Unknown document 'Unnamed'
Ta macro fait référence au document par son nom, il faut remplacer App.getDocument('Unamed') par App.ActiveDocument pour toujours faire référence au document en cours d'édition.
Bonsoir,

Je continue mes essais de tenon dans le cadre de conception de mobilier d'ébénisterie.
Voila J'ai supprimé mes macros et créé une nouvelle.

Cette fois-ci ça marche j'ai fermé mon document dans lequel j'avais enregistré ma macro.

Ensuite:
1) j'ai ouvert un nouveau document sans sauvegarder avant d'appliquer ma macro.
2) J'ai dessiné avec part design et sketcher une nouvelle pièce aux mêmes dimensions.
3) J'ai sélectionné une face (toujours la même) puis j'ai ajouté les 2 points d'ancrage.
4) J'ai appliqué ma macro de conception du tenon, cette fois ça fonctionne mon tenon est dessiné!!!
5) Puis j'ai réalisé un miroir ce qui m'a donné une traverse avec 2 tenons (un tenon à chaque extrémité).

Pour information, je viens de refaire un essai sur un document sauvegardé au départ avant de dessiner, ça marche aussi.
Il faut dire que j'ai placé ma macro dans le même répertoire que mes docs de de dessin, auparavant je les avais sauvegardés dans le répertoire Freecad\Macro !!! ???

Concernant changer App.getDocument('Unamed') en App.ActiveDocument, pour l'instant cela me donne des erreurs.
Mais je vais refaire des essais dans ce sens et t'en informer.

A+++ cordialement merci d'être à mon écoute
rapidego
rapidego
Posts: 46
Joined: Fri Feb 19, 2021 7:19 pm

Re: Comment exécuter une macro enregistrée

Post by rapidego »

flachyjoe wrote: Sun Mar 21, 2021 9:00 pm Salut,
l'enregistrement des macros ne fonctionne qu'avec des choses très simples, pour le reste il faut juste les utiliser comme base et les éditer "à la main".
Unknown document 'Unnamed'
Ta macro fait référence au document par son nom, il faut remplacer App.getDocument('Unamed') par App.ActiveDocument pour toujours faire référence au document en cours d'édition.
Bonsoir,
Je viens à l'instant de refaire des essais:
J'ai remplacé App.getDocument par App.ActiveDocument , ceci ne marche pas, pleins d'erreurs.

De même j'ai également repris la macro d'hier sur de nouveaux documents ce soir .
Déception rien ne marche plus, la macro renvoi les mêmes erreurs.

Alors j'ai tout repris à zéro et réédité une nouvelle macro.
Ça marche à nouveau mais uniquement sur le document dans lequel elle a été éditée.

Je ne fais que des opérations hypers simples, l'exécution du tenon ne demande qu'une cavité suite à une esquisse.

Tout cela est vraiment aléatoire je n'arrive pas à cerner mon problème

A plus cordialement
rapidego
User avatar
phil989
Posts: 14
Joined: Tue Sep 04, 2018 6:33 am

Re: Comment exécuter une macro enregistrée

Post by phil989 »

Bonjour,

Enseignant dans des classes de menuiserie et d’ébénisterie, je suis trés intéressé par ce projet.

Je viens de faire des essais et j’ai eu la même erreur.
J’ai changé "App.getDocument('Unamed')" par "App.ActiveDocument" et ça a marché.

Cordialement,
Phil989

Freecad version 0.19 sous Ubuntu 18.04
Last edited by phil989 on Fri Mar 26, 2021 8:06 am, edited 2 times in total.
rapidego
Posts: 46
Joined: Fri Feb 19, 2021 7:19 pm

Re: Comment exécuter une macro enregistrée

Post by rapidego »

phil989 wrote: Thu Mar 25, 2021 9:12 am Bonjour,

Enseignant dans des classes de menuiserie et d’ébénisterie, je suis intéressé très par ce projet.

Je viens de faire des essais et j’ai eu la même erreur.
J’ai changer "App.getDocument('Unamed')" par "App.ActiveDocument" et ça a marché.

Cordialement,
Phil989

Freecad version 0.19 sous Ubuntu 18.04
Bonsoir,
Merci collègue, même spécialité sauf que je suis à la retraite et un mordu de la programmation:
au palmarès: visual basic, java, androïd, Qt et maintenant j'essaie Python tout cela depuis 1994, en somme un touche à tout.

Pour revenir au problème; "App.getDocument('Unamed')" par "App.ActiveDocument" je l'avais modifié et pourtant
j'avais encore des erreurs !!!

J'ai enfin trouvé pourquoi: quand on commence un nouveau document l'esquisse se nomme Sketch et se modifie à Sketch001, ma macro affichait Sketch002.
J'ai modifié ma macro à Sketch001 et maintenant plus de problème.

Cordialement à +++
rapidego
Post Reply