un petit exemple pour créer les plan (les coupes sont pour vous):
sélectionnez un objet, les plans se font dans l'axe Z en utilisant la hauteur du boudbox
Code: Select all
# -*- coding: utf-8 -*- # pour accepter les accents (mais je n'en met pas, trop de problemes)
import FreeCAD
import Part
import Part,PartGui
import Draft
from FreeCAD import Base
#App.ActiveDocument.addObject("Part::Plane","Plane")
#App.ActiveDocument.Plane.Length=100.00
#App.ActiveDocument.Plane.Width=100.00
#App.ActiveDocument.Plane.Placement=Base.Placement(Base.Vector(-50.00,-50.00,0.00),Base.Rotation(0.00,0.00,0.00,1.00))
#App.ActiveDocument.Plane.Label='Plan'
#App.ActiveDocument.recompute()
#
#obj = Draft.makeArray(FreeCAD.ActiveDocument.Plane,FreeCAD.Vector(1,0,0),FreeCAD.Vector(0,1,0),2,2)
#Draft.autogroup(obj)
#FreeCAD.ActiveDocument.recompute()
#
#FreeCAD.getDocument("cone").getObject("Array").NumberX = 1
#FreeCAD.getDocument("cone").getObject("Array").NumberY = 1
#FreeCAD.getDocument("cone").getObject("Array").NumberZ = 10
#FreeCAD.getDocument("cone").getObject("Array").IntervalZ = (0, 0, 50)
#App.activeDocument().addObject("Part::MultiCommon","Common")
#App.activeDocument().Common.Shapes = [App.activeDocument().Array,App.activeDocument().Cone,]
#App.ActiveDocument.recompute()
try:
sel = FreeCADGui.Selection.getSelection()[0]
#boundBoxLX = sel.Shape.BoundBox.XLength # Length x boundBox rectangle
#boundBoxLY = sel.Shape.BoundBox.YLength # Length y boundBox rectangle
boundBoxLZ = sel.Shape.BoundBox.ZLength # Length z boundBox rectangle
#boundBoxDiag= sel.Shape.BoundBox.DiagonalLength # Diagonal Length boundBox rectangle
#boundBoxCenter = sel.Shape.BoundBox.Center # BoundBox Center
hauteur = boundBoxLZ
nombreDePlans = 10
entreDeux = hauteur/nombreDePlans
planX = 100
planY = 100
ii = 0
for i in range(nombreDePlans + 1):
print("Plan_" + str(i))
plan = App.ActiveDocument.addObject("Part::Plane","Plane")
plan.Length=100.00
plan.Width=100.00
plan.Placement = Base.Placement(Base.Vector(-(planX/2),-(planY/2),ii),Base.Rotation(0.00,0.00,0.00,1.00))
plan.Label = "Plan_" + str(i)
ii = (i+1) * entreDeux
App.ActiveDocument.recompute()
except Exception:
FreeCAD.Console.PrintError("Selectionnez un objet" + "\n")
vous êtes le premier à utiliser les FCIcon
mario