Draft Mirror

Draft Mirror

Menu location
Modification → Mirror
Modify → Mirror
Workbenches
Draft, BIM
Default shortcut
M I
Introduced in version
-
See also
Draft Clone

Description

The Draft Mirror command creates mirrored copies, Part Mirror objects, from selected objects. A Part Mirror object is parametric, it will update if its source object changes.

The command can be used on 2D objects created with the Draft Workbench or Sketcher Workbench, but also on many 3D objects such as those created with the Part Workbench, PartDesign Workbench or BIM Workbench.

Mirroring an object

Usage

See also: Draft Snap and Draft Constrain.

  1. Optionally select one or more objects.
  2. There are several ways to invoke the command:
    • Press the Mirror button.
    • Draft: Select the Modification → Mirror option from the menu.
    • BIM: Select the Modify → Mirror option from the menu.
    • Use the keyboard shortcut: M then I.
  3. If you have not yet selected an object: select an object in the 3D view.
  4. The Mirror task panel opens. See Options for more information.
  5. Pick the first point of the mirror plane in the 3D view, or type coordinates and press the Enter point button.
  6. Pick the second point of the mirror plane in the 3D view, or type coordinates and press the Enter point button.
  7. The mirror plane is defined by the selected points and the normal of the Draft working plane.

Options

The single character keyboard shortcuts available in the task panel can be changed. See Draft Preferences. The shortcuts mentioned here are the default shortcuts.

Notes

Properties

See also: Property editor.

A Part Mirror object is derived from a Part Feature object and inherits all its properties. It also has the following additional properties:

Data

Base

Plane

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

To mirror objects use the mirror method of the Draft module.

mirrored_list = mirror(objlist, p1, p2)

Example:

import FreeCAD as App
import Draft

doc = App.newDocument()

place = App.Placement(FreeCAD.Vector(1000, 0, 0), App.Rotation())
polygon1 = Draft.make_polygon(3, 750)
polygon2 = Draft.make_polygon(5, 750, placement=place)

p1 = App.Vector(2000, -1000, 0)
p2 = App.Vector(2000, 1000, 0)

line1 = Draft.make_line(p1, p2)
mirrored1 = Draft.mirror(polygon1, p1, p2)

Line2 = Draft.make_line(-p1, -p2)
mirrored2 = Draft.mirror([polygon1, polygon2], -p1, -p2)

doc.recompute()