Bonjour
Intéressé par les possibilités prometteuses de FreeCAD dans ma spécialité, la charpente, j'ai écrit quelque scripts, avec mes connaissances limités de Python. Pour les besoins de la cause, j'aurais besoin de déterminer la valeur d'un angle, en radian, formé par deux cotés d'un polygone. J'ai bien trouvé la méthode getAngle(). Mais elle ne s'applique qu'a des objets Vector(). Et je n'ai pas bien compris comment sont définis de tels objet. un Vector peut être soit un point, soit un vecteur, appelé soit par FreeCAD.Base.Vector() ou par FreeCAD.Vector(). Pourquoi deux possibilités? Comment définit on chacune des deux possibilités?
Merci pour vos réponses éclairées.
Obtention de la valeur d'un angle
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Be nice to others! Read the FreeCAD code of conduct!
-
- Posts: 3
- Joined: Tue Dec 21, 2010 8:35 am
Re: Obtention de la valeur d'un angle
Salut,
Un vecteur peut représenter en effet un point ou une direction. Il est défini dans le module FreeCAD.Base, considère FreeCAD.Vector comme un raccourci de FreeCAD.Base.Vector... (La même chose pour Placement ou Matrix). Les objects de type Part dans freeCAD sont composés (entre autres) de faces (Faces), arêtes (Edges) et points (Vertexes).
Pour trouver l'angle entre deux côtés d'un polygone (ou de n'importe quel autre object de type Part), supposons qu'il soit appelé "myObj":
Bon ceci devrait te mettre sur la piste!
Si tu as d'autres questions n'hésite pas
Yorik
Un vecteur peut représenter en effet un point ou une direction. Il est défini dans le module FreeCAD.Base, considère FreeCAD.Vector comme un raccourci de FreeCAD.Base.Vector... (La même chose pour Placement ou Matrix). Les objects de type Part dans freeCAD sont composés (entre autres) de faces (Faces), arêtes (Edges) et points (Vertexes).
Pour trouver l'angle entre deux côtés d'un polygone (ou de n'importe quel autre object de type Part), supposons qu'il soit appelé "myObj":
Code: Select all
# d'abord prenons les arêtes de notre object
myShape = FreeCAD.ActiveDocument.myObj.Shape
edges = myShape.Edges
# supposons que nous voulons l'angle entre la première et la deuxième arête
e1 = edges[0]
e2 = edges[1]
# on crée un vecteur de chaque arête, en soustrayant le dernier point du premier
v1 = e1.Vertexes[-1].Point
v2 = e1.Vertexes[0].Point
ve1 = v1.sub(v2)
v1 = e2.Vertexes[-1].Point
v2 = e2.Vertexes[0].Point
ve2 = v1.sub(v2)
# finalement nous avons deux vecteurs représentant nos deux arêtes
angle = ve1.getAngle(ve2)
# L'angle est en radians, il peut être converti en degrés facilement:
import math
print math.degrees(angle)
Si tu as d'autres questions n'hésite pas
Yorik
-
- Posts: 3
- Joined: Tue Dec 21, 2010 8:35 am
Re: Obtention de la valeur d'un angle
Ok. Super!!
Merci beaucoup Yorik.
Merci beaucoup Yorik.