Pouvons nous inclure des macros dans son projet ?

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
fran6t
Posts: 354
Joined: Tue Jul 15, 2014 9:29 am
Location: Montauban
Contact:

Pouvons nous inclure des macros dans son projet ?

Post by fran6t »

Actuellement j'ai testé un petit peu les macros cependant chaque macro devient un fichier qui se place dans le repertoire .Freecad et quand je passe d'un ordi a un autre n'ayant pas partagé ce repertoire je me retrouve sans ces macros spécifiques a mon projet.

J'ai rapidement fait un tour sur le wiki dans la partie marcro, mais je n'ai pas vu si cette possibilité existe, pour les objets définis en ython il y a un cpike http://www.freecadweb.org/wiki/index.ph ... objects/fr qui permet d'enregistrer l'objet dans son .fscd a priori.

Peut-etre qu'un equivalent existe ?
User avatar
rockn
Veteran
Posts: 1791
Joined: Wed Sep 28, 2011 10:39 am
Location: Toulouse, France
Contact:

Re: Pouvons nous inclure des macros dans son projet ?

Post by rockn »

Je ne crois pas que ce soit possible...
En fait il est exclut de pouvoir intégrer du code exécutable dans un fichier FCStd. Cela représente un risque de sécurité trop lourd (pour l'instant ?) à gérer. Mais ça reviendrait au même que les macros dans un tableur (veuillez régler votre niveau de sécurité, attention, etc...).

De ce que j'ai compris cPickle abandonné au profit de Python json, permet d'intégrer dans le fichier FCStd, les appels vers la macro qui génère l'objet. Mais sans la macro, pas possible d'actualiser l'objet.

Personnellement j'ai synchronisé mes dossiers Macros et Mod dans le cloud afin d'avoir les mêmes ateliers et macros sur mon PC fixe et mon PC portable.
Formations - Assistance - Développement : https://freecad-france.com
User avatar
flachyjoe
Veteran
Posts: 1891
Joined: Sat Mar 31, 2012 12:00 pm
Location: Limoges, France

Re: Pouvons nous inclure des macros dans son projet ?

Post by flachyjoe »

Salut,
tu peux utiliser un objet Annotation pour stocker du texte dans le projet :

Code: Select all

mm=App.ActiveDocument.addObject('App::Annotation','ma_macro')
mm.LabelText="Contenu de ma macro"
Et cette ligne devrait exécuter la macro stockée :

Code: Select all

exec(String.join( App.ActiveDocument.getObject("ma_macro").LabelText,"\r\n"))
- Flachy Joe -
Image
mario52
Veteran
Posts: 4692
Joined: Wed May 16, 2012 2:13 pm

Re: Pouvons nous inclure des macros dans son projet ?

Post by mario52 »

Bonjour

une possibilité avec cette macro Macro_PropertyMemo votre macro fais partie intégrante de votre fichier projet (la macro ne s’exécute pas, il faut la copier comme un texte et la coller dans la console Python)

ne fonctionne que sur les objets Draft

ici un exemple Macro_Constraint_Draft (la macro se trouve dans le mémo de Line005_with_Code)

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.
Post Reply