Python Vertices d'une BoundingBox

Forum destiné aux questions et discussions en français
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Post Reply
User avatar
petit_chat_noir
Posts: 87
Joined: Wed Oct 02, 2019 6:45 pm

Python Vertices d'une BoundingBox

Post by petit_chat_noir »

Bonjour tout le monde,
Je sèche sur un point :D
je suis en train de coder un petit workbench en python et je suis bloqué pour récupérer des valeurs
en gros j'ai un object de type Beam créé depuis mon script python, et je voudrait récupérer les points(Vertices) de la boundingbox de celle-ci.
J'arrive à récupérer ma boudingBox qui me renvoi ceci:
Vertices:BoundBox (-2.15704e-32, -100, -50, 1000, 100, 50)

Code: Select all

volume= Arch.makeStructure(None,1000,200,100)
FreeCAD.ActiveDocument.recompute()
shape = volume.Shape
bbox=shape.BoundBox
Mais par contre je n'arrive pas à récupérer ces deux points en Vector. Le top pour moi serait d'avoir les coordonnées des 8 points qui forment la boudingbox...

j'ai essayé bbox[0] mais je me fait insulter.....
User avatar
rockn
Veteran
Posts: 1791
Joined: Wed Sep 28, 2011 10:39 am
Location: Toulouse, France
Contact:

Re: Python Vertices d'une BoundingBox

Post by rockn »

En python tu peux taper print(type(variable)) pour en savoir plus sur ta variable.
Ici c'est une classe, donc il y a des méthodes associées.
Avec la console python dans FreeCAD et l'autocomplétion on obtient les informations suivante :

Code: Select all

>>> bbox
BoundBox (-2.15704e-32, -100, -50, 1000, 100, 50)
>>> print(type(bbox))
<class 'Base.BoundBox'>
>>> bbox.Center
Vector (500.0, 0.0, 1.1013412404281553e-13)
>>> bbox.XMin
-2.1570415377137042e-32
>>> bbox.XMax
1000.0
Du coup il faut se créer le vecteur sois même :

Code: Select all

>>> FreeCAD.Vector(bbox.XMin, bbox.YMin, bbox.ZMin)
Vector (20.0, -80.0, -30.0)
Formations - Assistance - Développement : https://freecad-france.com
User avatar
petit_chat_noir
Posts: 87
Joined: Wed Oct 02, 2019 6:45 pm

Re: Python Vertices d'une BoundingBox

Post by petit_chat_noir »

rockn wrote: Thu Oct 10, 2019 8:21 am En python tu peux taper print(type(variable)) pour en savoir plus sur ta variable.
Ah oui en effet! ca va grandement accélérer mon développement. Ca fait trois jour que je m'arrache les cheveux à trouver les fonctions des classes que j'utilise !
Post Reply