Jump to content

Std LinkMakeRelative

From FreeCAD Documentation
This page is a translated version of the page Std LinkMakeRelative and the translation is 6% complete.

Std LinkMakeRelative

Menu location
Edit → Create → Link Actions → Make Sub-Link
Workbenches
All
Default shortcut
None
Introduced in version
0.19
See also
Std Part, Std Group, Std LinkMake

Description

Std LinkMakeRelative creates an App Link, just like Std LinkMake, but it operates on selected subelements first, and sets the ÚdajeLink Transform property to true.

Usage

With selection:

  1. Select a subelement in the 3D View, this means a vertex, edge, or face, or any combination of these. These subelements must belong to a single object.
  2. There are several ways to invoke the command:
  3. The produced object has the same icon as the original object, but has two arrow overlays indicating it is a relative Link.

Without selection:

  • If no object is selected, this command does nothing.
  • If an object is selected in the Tree View only, but no subelement is selected in the 3D View, the command does nothing either.

Original body, and three Links created from the subelements of it, including edges and faces.

Properties

See Std LinkMake.

In particular, ÚdajeLink Transform is set to true, so ÚdajePlacement becomes hidden, and instead ÚdajeLink Placement controls the position of the Link with respect to the position of ÚdajeLinked Object.

Scripting

See Std LinkMake for the general information.

An App Link is created with the addObject() method of the document. To define a relative link, its setLink method is used to pick the source object, and one or more of its subelements. Then the LinkTransform attribute is set to True.

import FreeCAD as App

doc = App.newDocument()
body = App.ActiveDocument.addObject("Part::Box", "Box")

obj = App.ActiveDocument.addObject("App::Link", "Link")
obj.setLink(body, '', ['Edge1', 'Edge6', 'Edge7', 'Edge10', 'Face2', 'Face3'])
obj.LinkTransform = True
obj.LinkPlacement.Base = App.Vector(20, 20, 0)
App.ActiveDocument.recompute()