Création automatique des contraintes

Forum destiné aux questions et discussions en français
Forum rules
Règles du forum et informations utiles.

VEUILLEZ LIRE CECI AVANT DE DEMANDER DE L'AIDE
PhilFC
Posts: 2
Joined: Thu Sep 10, 2020 9:35 am

Création automatique des contraintes

Postby PhilFC » Fri Sep 11, 2020 12:22 pm

Je ne sais pas si ce sujet a déjà été abordé. Je souhaiterais scripté en python la création des contraintes et A2Plus ne le permet pas.
Connaissez vous un moyen d'accéder aux fonctions A2Plus liés aux contraintes?
User avatar
Chris_G
Posts: 1428
Joined: Tue Dec 31, 2013 4:10 pm
Location: France
Contact:

Re: Création automatique des contraintes

Postby Chris_G » Sat Sep 12, 2020 8:24 am

Je n'utilise pas cet atelier, mais il me semble qu'il faut utiliser les classes définies dans a2p_constraints.
Par exemple, après avoir sélectionné 2 vertex dans la vue 3D :

Code: Select all

import a2p_constraints
sel = FreeCADGui.Selection.getSelectionEx()
a2p_constraints.PointIdentityConstraint(sel)
En revanche, cela oblige toujours à sélectionner les objets à contraindre à la main, dans la vue 3D.
Pour s'affranchir de cette "contrainte" (mouahaha), on peut créer une fausse classe sélection :

Code: Select all

import a2p_constraints

class fakeSelectObject:
    def __init__(self, obj, subs):
        self.Object = obj
        self.ObjectName = obj.Name
        self.SubElementNames = subs

o1 = App.activeDocument().addObject("Part::Feature")
o2 = App.activeDocument().addObject("Part::Feature")
shape1 = Part.makeBox(2,3,4)
shape2 = Part.makeSphere(5)
o1.Shape = shape1
o2.Shape = shape2

s1 = fakeSelectObject(o1, ["Vertex4"])
s2 = fakeSelectObject(o1, ["Vertex1"])

a2p_constraints.PointIdentityConstraint([s1, s2])
Encore une fois, je ne connais pas du tout les assemblages, ni cet atelier, mais c'est peut-etre une piste de départ.
PhilFC
Posts: 2
Joined: Thu Sep 10, 2020 9:35 am

Re: Création automatique des contraintes

Postby PhilFC » Tue Sep 15, 2020 8:31 am

Je te remercie pour ta réponse, je pense que cela va me servir.