Tout d'abord, Bonjour.
Je suis nouveau dans l'univers FreeCAD et je suis actuellement à la recherche d'une solution pour utiliser une sélection d'objet et l'utiliser dans une macro.
Mon problème est le suivant : Je souhaite utiliser une macro permettant de transformer n'importe quel fichier au format STL en un objet Solide afin d'en récupérer les informations de volume et dimensions X,Y et Z.
Je devrais donc trouver une solution pour coder l'action suivante : sélectionner un objet dans l'arbre, donner un nom fictif à cet objet dans la macro afin de pouvoir réutiliser le nom par la suite.
J'ai trouvé la commande FreeCADGui.Selection.Getselection() mais cela ne permet pas de reprendre l'objet.
Pourriez-vous m'aider sur ce point ?
Merci d'avance
PS: J'utilise la version suivante de FreeCAD
OS: Windows 7
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.16.6706 (Git)
Build type: Release
Branch: releases/FreeCAD-0-16
Hash: f86a4e411ff7848dea98d7242f43b7774bee8fa0
Python version: 2.7.8
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 6.8.0.oce-0.17
utiliser une sélection d'objet dans une macro
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Be nice to others! Read the FreeCAD code of conduct!
Re: utiliser une sélection d'objet dans une macro
Bonjour,
A partir de là tu as ton objet dans la variable "objet1" et tu peux travailler avec.
Code: Select all
selection = FreeCADGui.Selection.getSelection()
print(type(sel))
#<type 'list'> Donc la variable selection est de type liste
objet1 = selection[0] # donc premier objet de la liste
print(objet1.Name)
Formations - Assistance - Développement : https://freecad-france.com
Re: utiliser une sélection d'objet dans une macro
Salut,
Bienvenue sur le forum.
Le problème c'est que facilement 50% des STL qu'on peut trouver sur le Net (et je suis généreux) est de la bouse.
La liste des problèmes qu'on voit tout le temps et qui empêchent la conversion en solide :
Bienvenue sur le forum.
N'importe quel STL ? À mon avis c'est une tâche impossible, car elle tient pour acquis que tous les STL sont valides.COCO1111 wrote: Je souhaite utiliser une macro permettant de transformer n'importe quel fichier au format STL en un objet Solide afin d'en récupérer les informations de volume et dimensions X,Y et Z.
Le problème c'est que facilement 50% des STL qu'on peut trouver sur le Net (et je suis généreux) est de la bouse.
La liste des problèmes qu'on voit tout le temps et qui empêchent la conversion en solide :
- Maillage non manifold (non étanche)
- Normales de faces inversées
- Maillage formé de plusieurs corps
Re: utiliser une sélection d'objet dans une macro
Salut,
Merci pour la solution.
Jusqu'à présent la macro fonctionne relativement bien. (quand je disais tous les STL je parlais du fait qu'ils soient exportés en ASCII ou Binaire)
Je suis même d'ailleurs étonné que l'ouverture des fichiers au Formats 3D classiques fonctionne aussi bien (J'ai une version d'essais solidworks qui n'ouvre pas la moitié d'entre eux ce qui est dommage au vu du prix d'achat ...)
actuellement j'essaie d'intégrer l'enregistrement d'image à cette macro (pour permettre d'avoir une image en lien avec les valeurs de surfaces que j'ai récupéré). La commande fonctionne bien si je la met dans la console FreeCAD mais si je l'utilise dans un script je tombe sur l'erreur Non ascii //XC3.
Je suppose que c'est un import qu'il me manque mais je ne trouve pas lequel.
existe-t-il une ressources permettant d'avoir les informations sur les codes sources (je réalise un TFE et j'aurais besoin de pouvoir expliquer comment on passe du fichier au format 3D vers l'objet de FreeCAD)
Merci et bonne journée
Merci pour la solution.
Jusqu'à présent la macro fonctionne relativement bien. (quand je disais tous les STL je parlais du fait qu'ils soient exportés en ASCII ou Binaire)
Je suis même d'ailleurs étonné que l'ouverture des fichiers au Formats 3D classiques fonctionne aussi bien (J'ai une version d'essais solidworks qui n'ouvre pas la moitié d'entre eux ce qui est dommage au vu du prix d'achat ...)
actuellement j'essaie d'intégrer l'enregistrement d'image à cette macro (pour permettre d'avoir une image en lien avec les valeurs de surfaces que j'ai récupéré). La commande fonctionne bien si je la met dans la console FreeCAD mais si je l'utilise dans un script je tombe sur l'erreur Non ascii //XC3.
Je suppose que c'est un import qu'il me manque mais je ne trouve pas lequel.
existe-t-il une ressources permettant d'avoir les informations sur les codes sources (je réalise un TFE et j'aurais besoin de pouvoir expliquer comment on passe du fichier au format 3D vers l'objet de FreeCAD)
Merci et bonne journée
Re: utiliser une sélection d'objet dans une macro
Salut,
l'erreur "Non-ASCII character ..." a lieu lorsque tu utilises des caractères accentués dans la macro.
Pour corriger ce problème, il suffit de rajouter en première ou seconde ligne du fichier.
En principe la première ligne est réservée au hash-bang mais ça n'a pas trop de sens d'en mettre un pour une macro FreeCAD.
l'erreur "Non-ASCII character ..." a lieu lorsque tu utilises des caractères accentués dans la macro.
Pour corriger ce problème, il suffit de rajouter
Code: Select all
# -*- coding: utf-8 -*-
En principe la première ligne est réservée au hash-bang mais ça n'a pas trop de sens d'en mettre un pour une macro FreeCAD.
Re: utiliser une sélection d'objet dans une macro
Merci pour la réponse. effectivement je n'ai plus de soucis Ascii.
malheureusement je tombe sur un autre problème.
j'ai le code erreur suivant :
<unknown exception traceback><type 'exceptions.SyntaxError'>: ('invalid syntax', ('C:/Users/Stagiaire/AppData/Roaming/FreeCAD/Macro/macro image.FCMacro', 1, 2, '-*- coding: utf-8 -*-\n'))
malheureusement je tombe sur un autre problème.
j'ai le code erreur suivant :
<unknown exception traceback><type 'exceptions.SyntaxError'>: ('invalid syntax', ('C:/Users/Stagiaire/AppData/Roaming/FreeCAD/Macro/macro image.FCMacro', 1, 2, '-*- coding: utf-8 -*-\n'))
Re: utiliser une sélection d'objet dans une macro
Tu as oublié le dièse # en début de ligne.