Merci pour tes conseils openBrain
Voici le code qui fonctionne.
[code]
#-*- coding: utf-8 -*-
import Draft, Part
import sys
import math
import Part
import sys
import FreeCAD, FreeCADGui
import Sketcher, PartDesign
import ProfileLib.RegularPolygon
from FreeCAD import Base
from PySide import QtCore, QtGui
# t1 simule la case a cocher d'un checbox
t1 = 1 #1 ou 0
rayon_poulie = 12.5
# ici on insére le teste de présence nouveau fichier part body sketch
myDoc = App.ActiveDocument
if myDoc == None: #il n'y a pas de Document on le crée
myDoc = App.newDocument("Pignon")
############
objs = [obj for obj in myDoc.Objects if str(obj) == "<Part object>"]
if len(objs) == 0: #Il n'y a pas de Part on le crée
myPart = myDoc.addObject('App::Part','Part')
myPart.Label = "Pièce"
else: #Il y a (au moins) un Part dans le document
myPart = objs[0] #On utilise par ex. le premier Part dans la suite
############
objs = [obj for obj in myDoc.Objects if str(obj) == "<body object>"]
if t1 == 0:
if len(objs) == 0:
myBody = myDoc.addObject('PartDesign::Body','Body')
mySketch = myBody.newObject('Sketcher::SketchObject','Sketch')
mySketch1 = myBody.newObject('Sketcher::SketchObject','Sketch')
else:
myBody = myDoc.addObject('PartDesign::Body','Body')
mySketch = myBody.newObject('Sketcher::SketchObject','Sketch')
mySketch1 = myBody.newObject('Sketcher::SketchObject','Sketch')
if t1 == 1:
if len(objs) == 0:
myBody = myDoc.addObject('PartDesign::Body','Body')
mySketch = myBody.newObject('Sketcher::SketchObject','Sketch')
mySketch1 = myBody.newObject('Sketcher::SketchObject','Sketch')
else:
myBody = [obj for obj in myDoc.Objects if str(obj) == "<body object>"][-1]
mySketch = myBody.newObject('Sketcher::SketchObject','Sketch')
mySketch1 = myBody.newObject('Sketcher::SketchObject','Sketch')
############
###
# à partir d'ici on insére le code du dessin
###
# On place le cercle qui va servir pour le pignon en GT2, GT3, ou GT5
mySketch.addGeometry(Part.Circle(App.Vector(-0.959298,0.986822,0),App.Vector(0,0,1),rayon_poulie),False)
mySketch.addConstraint(Sketcher.Constraint('Coincident',-1,1,0,3))
mySketch.addConstraint(Sketcher.Constraint('Radius',0,rayon_poulie+1))
mySketch.setDatum(1,App.Units.Quantity(str(rayon_poulie)+' mm'))
############
mySketch1.addGeometry(Part.Circle(App.Vector(-0.959298,0.986822,0),App.Vector(0,0,1),rayon_poulie),False)
mySketch1.addConstraint(Sketcher.Constraint('Coincident',-1,1,0,3))
mySketch1.addConstraint(Sketcher.Constraint('Radius',0,rayon_poulie+1))
mySketch1.setDatum(1,App.Units.Quantity(str(rayon_poulie)+' mm'))
############
[/code]
Je vais finir mes recherches pour les poulies T5 afin d'avoir un dessin correcte, et finir le programme.