App Link: Difference between revisions

From FreeCAD Documentation
(See the full list of properties in the Std LinkMake page.)
No edit summary
 
(10 intermediate revisions by 3 users not shown)
Line 5: Line 5:
== Introduction == <!--T:1-->
== Introduction == <!--T:1-->


<!--T:31-->
[[File:Link.svg|32px]]
[[File:Link.svg|32px]]


Line 14: Line 15:


<!--T:28-->
<!--T:28-->
{{Caption|Simplified diagram of the relationships between the core objects in the program. The {{incode|App::Link}} object is a core component of the system, it does not depend on any workbench, but it can be used with most objects created in all workbenches.}}
{{Caption|Simplified diagram of the relationships between the core objects in FreeCAD}}


== Usage == <!--T:4-->
== Usage == <!--T:4-->

<!--T:5-->
# Select an object in the [[tree_view|tree view]] or [[3D_view|3D view]] for which you wish to create a Link.
# Press the {{Button|[[File:Std_LinkMake.svg|16px]] [[Std_LinkMake|Std LinkMake]]}} button. The produced object has the same icon as the original object, but has an arrow overlay indicating it is a Link.


<!--T:6-->
<!--T:6-->
See the [[Std_LinkMake|Std LinkMake]] page for the complete information, including its use in [[Std_LinkMake#Scripting|Scripting]].
See [[Std_LinkMake#Usage|Std LinkMake]].


== Properties ==
== Properties == <!--T:32-->

An [[App_Link|App Link]] ({{incode|App::Link}} class) is derived from the basic [[App_DocumentObject|App DocumentObject]] ({{incode|App::DocumentObject}} class), therefore it shares most of the latter's properties.


<!--T:11-->
<!--T:11-->
See the full list of properties in the [[Std_LinkMake|Std LinkMake]] page.
See [[Std_LinkMake#Properties|Std LinkMake]].


== Scripting == <!--T:17-->


<!--T:18-->
{{Emphasis|See also:}} [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]], and [[scripted objects|scripted objects]].

<!--T:19-->
See [[Part_Feature|Part Feature]] for the general information.

<!--T:20-->
An App Link is created with the {{incode|addObject()}} method of the document.
</translate>
</translate>
{{Std_Base_navi{{#translation:}}}}
{{Code|code=
{{Document_objects_navi{{#translation:}}}}
import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::Link", "Name")
obj.Label = "Custom label"
}}
<translate>

== Further reading == <!--T:21-->

<!--T:22-->
The App Link object was introduced after 2 years of development and prototyping. This component was thought and developed almost single-handedly by user {{Emphasis|realthunder}}. The motivations and design implementations behind this project are described in his GitHub page, [https://github.com/realthunder/FreeCAD_assembly3/wiki/Link Link]. In order to accomplish this feature, several core changes to FreeCAD were made; these were also extensively documented in [https://github.com/realthunder/FreeCAD_assembly3/wiki/Core-Changes Core-Changes].

<!--T:23-->
The App Link project started after the redesign of the [[PartDesign Workbench|PartDesign Workbench]] was complete in v0.17. The history of App Link can be traced to some essential forum threads:
* [https://forum.freecadweb.org/viewtopic.php?f=19&t=21505 Why an object can only be inside one App::Part?] (March 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=10&t=21586 Introducing App::Link/XLink] (March 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=22216 Links] (May 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=23015 Realthunder Link implementation: Architecture discussion] (June 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=17&t=23419 PR #876: Link, stage one, context aware selection] (July 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=17&t=23626 Preview: Link, stage two, API groundwork] (July 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=20&t=25712 Assembly3 preview] (December 2017)
* [https://forum.freecadweb.org/viewtopic.php?f=10&t=29542 Merging of my Link branch] (June 2018)

<!--T:24-->
Finally, the pull request and merge happened:
* [https://forum.freecadweb.org/viewtopic.php?f=27&t=38621 App::Link: the big merge], old thread (July 2019), [https://github.com/FreeCAD/FreeCAD/pull/2350 pull request #2350] (the BIG merge), [https://github.com/realthunder/FreeCAD/tree/LinkMerge LinkMerge branch].
* [https://forum.freecadweb.org/viewtopic.php?f=8&t=37757 App::Link: the big merge], main thread (July 2019)
* [https://forum.freecadweb.org/viewtopic.php?p=329054#p329054 A simple path description of Link, 019, Link stage, Asm3, merge?] (August 2019)
* [https://forum.freecadweb.org/viewtopic.php?f=17&t=39672 PR#2559: expose link and navigation actions], an introduction to the Link feature in 0.19 (September 2019).

</translate>

{{Std Base{{#translation:}}}}

{{Document objects navi{{#translation:}}}}

{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 07:42, 22 February 2022

Introduction

An App Link, or formally an App::Link, is a type of object that references or links to another object, in the same document, or in another document. It is especially designed to efficiently duplicate a single object multiple times, which helps with the creation of complex assemblies from smaller subassemblies, and from multiple reusable components like screws, nuts, and similar fasteners.

Simplified diagram of the relationships between the core objects in FreeCAD

Usage

See Std LinkMake.

Properties

See Std LinkMake.