Arch Couper selon un plan

From FreeCAD Documentation
Revision as of 14:32, 8 January 2024 by FuzzyBot (talk | contribs) (Updating to match new version of source page)

Arch Couper selon un plan

Emplacement du menu
Arch → Couper selon un plan
Ateliers
Arch
Raccourci par défaut
Aucun
Introduit dans la version
-
Voir aussi
Arch Couper selon une ligne

Description

L'outil Arch Couper selon un plan coupe un objet solide Arch comme un Arch Mur ou une Arch Structure avec une face plane.

À gauche : avant d'appliquer l'outil Couper selon un plan.
Au milieu : mur résultant après la coupe.
À droite : un autre résultat

Utilisation

  1. Sélectionner l'objet à découper dans la vue en arborescence ou la vue 3D.
  2. Sélectionner une face plane. Celle-ci doit être sélectionnée dans la vue 3D.
  3. Appuyer sur le Couper selon un plan.
  4. Choisir Derrière ou Devant pour indiquer de quel côté de la face de coupe la matière doit être enlevée.
  5. Appuyer sur le bouton OK.

Script

Voir aussi : Arch API et Débuter avec les scripts FreeCAD.

L'outil Couper selon un plan peut être utilisé dans une macro et à partir de la console Python en utilisant la fonction suivante :

cutObj = cutComponentwithPlane(archObject, cutPlane, sideFace)
  • Crée un objet cutObj à partir de archObject qui est coupé par cutPlane lequel est la face d'un autre objet.
    • archObject doit être un SelectionObject obtenu à partir de FreeCADGui.Selection.SelectionEx()[0].
    • cutPlane doit être un FaceObject obtenu à partir de FreeCADGui.Selection.SelectionEx()[0].SubObjects[0].
  • sideFace indique de quel côté de FaceObject un volume sera créé; ce volume sera ensuite utilisé pour être soustrait de archObject. Si sideFace vaut 0, cela créera un volume à l'arrière de la face, sinon il le créera devant la face.

Exemple :

import FreeCAD, FreeCADGui, Draft, Arch

p1 = FreeCAD.Vector(0, 0, 0)
p2 = FreeCAD.Vector(2000, 2000, 0)

Line = Draft.makeWire([p1, p2])
Wall = Arch.makeWall(Line, width=150, height=2000)

p3 = FreeCAD.Vector(0, 2000, 0)
p4 = FreeCAD.Vector(3000, 0, 0)

Line2 = Draft.makeWire([p3, p4])
Wall2 = Arch.makeWall(Line2, width=150, height=2000)
FreeCAD.ActiveDocument.recompute()

# Select the Wall
main_object = FreeCADGui.Selection.getSelectionEx()[0]

# Select the face of Wall2
selection = FreeCADGui.Selection.getSelectionEx()[0]
cut_face = selection.SubObjects[0]

cutObj = Arch.cutComponentwithPlane(main_object, cut_face, 0)
FreeCAD.ActiveDocument.recompute()

Wall3 = Draft.move(Wall, FreeCAD.Vector(-4000, 0, 0), copy=True)
Wall4 = Draft.move(Wall2, FreeCAD.Vector(-4000, 0, 0), copy=True)
FreeCAD.ActiveDocument.recompute()

# Select the Wall3
main_object2 = FreeCADGui.Selection.getSelectionEx()[0]

# Select the face of Wall4
selection2 = FreeCADGui.Selection.getSelectionEx()[0]
cut_face2 = selection2.SubObjects[0]

cutObj2 = Arch.cutComponentwithPlane(main_object2, cut_face2, 1)
FreeCAD.ActiveDocument.recompute()