App Link/ru: Difference between revisions

From FreeCAD Documentation
(Created page with "Смотрите Part Feature для общей информации.")
(Updating to match new version of source page)
(20 intermediate revisions by 3 users not shown)
Line 4: Line 4:
== Введение ==
== Введение ==


[[File:Link.svg|32px]]
An [[Image:Link.svg|32px]] [[App_Link|App Link]], or formally an {{incode|App::Link}}, is an element that returns a reference to another object in the document or in an external document. This object was {{Version|0.19}} in order to re-use previously created objects, which is very useful to create assemblies.


[[Image:Link.svg|32px]] [[App_Link/ru|App Link]], или, формально, {{incode|App::Link}}, это тип объекта, который ссылается на другой объект в том же документе в котором он находится или на ссылается на объект который находится в другом документе. Он специально разработан для эффективного многократного дублирования одного объекта, что помогает создавать сложные [[assembly/ru|сборки]] из уже собранных узлов и из множества повторно используемых компонентов, таких как винты, гайки и аналогичные крепежные изделия.
При создании обычной копии созданного объекта (например, через {{Button|[[Image:Part_SimpleCopy.svg|16px]] [[Part SimpleCopy‎/ru|Part SimpleCopy‎]]}}), дублицируется весь новый объект с его [[Part_TopoShape/ru|топологической формой]], что потребляет много памяти. App Link используется для повторного использования существующих данных существующих объектов, так что не надо создавать все новые объекты. Это улучшает поддержку копий, в частности в контексте механических сборок, где может быть нужно много дубликатов, или где требуется импорт малых сборок внутрь больших.

===Использование===

* App Links может быть создан нажатием {{Button|[[Image:Std_LinkMake.svg|16px]] [[Std_LinkMake/ru|LinkMake]]}}.

{{Emphasis|Примечание:}} [[App_Link/ru|App Link]] это внутренний объект, так что он в основном предназначен для использования разработчиками для создания верстаков сборки. Например, этот объект используют верстаки [[Assembly3_Workbench/ru|Assembly3]] и [[Assembly4_Workbench/ru|Assembly4]].

==Properties==

See [[Property|Property]] for all property types that scripted objects can have.

An {{incode|App::Link}} object is not derived from a [[Part_Feature|Part Feature]], however, if the Link has a reference to an external object, it will show the properties of the latter object.

These are the properties available in the [[property editor|property editor]] for an empty {{incode|App::Link}}.

=== Data ===

{{TitleProperty|Link}}
* {{PropertyData|Linked Object}}:
* {{PropertyData|Link Transform}}:
* {{PropertyData|Placement}}:
* {{PropertyData|Show Element}}:
* {{PropertyData|Element Count}}:
* {{PropertyData|Scale}}:

{{TitleProperty|Base}}
* {{PropertyData|Label}}:

=== View ===

{{TitleProperty|Link}}
* {{PropertyView|Draw Style}}:
* {{PropertyView|Line Width}}:
* {{PropertyView|Override Material}}:
* {{PropertyView|Point Size}}:
* {{PropertyView|Selectable}}:
* {{PropertyView|Shape Material}}:

{{TitleProperty|Base}}
* {{PropertyView|On Top When Selected}}:
* {{PropertyView|Selection Style}}:
* {{PropertyView|Show In Tree}}:
* {{PropertyView|Visibility}}:

== Inheritance ==


[[File:FreeCAD_core_objects.svg|800px]]
[[File:FreeCAD_core_objects.svg|800px]]


<div class="mw-translate-fuzzy">
{{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|Упрощённая диаграмма отношений между основными объектами программы. Объект {{incode|App::Link}} это основной компонент системы, он не зависит от какого-либо верстака, но может использоваться в большинстве объектов, созданных во всех верстаках.}}
</div>


== Scripting ==
== Применение ==


<div class="mw-translate-fuzzy">
{{Emphasis|Смотри так же:}} [[FreeCAD Scripting Basics\ru|FreeCAD Scripting Basics]], и [[scripted objects/ru|scripted objects]].
{{Emphasis|Примечание:}} [[App_Link/ru|App Link]] это внутренний объект, так что он в основном предназначен для использования разработчиками для создания верстаков сборки. Например, этот объект используют верстаки [[Assembly3_Workbench/ru|Assembly3]] и [[Assembly4_Workbench/ru|Assembly4]].

</div>
Смотрите [[Part_Feature/ru|Part Feature]] для общей информации.

An App Link is created with the {{incode|addObject()}} method of the document.
{{Code|code=
import FreeCAD as App

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

== Further reading ==

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].

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)

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).


== Properties ==


<div class="mw-translate-fuzzy">
{{Std Base{{#translation:}}}}
=== Данные ===
</div>


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


{{Std_Base_navi{{#translation:}}}}
{{Document_objects_navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Revision as of 07:28, 22 February 2022

Введение

App Link, или, формально, App::Link, это тип объекта, который ссылается на другой объект в том же документе в котором он находится или на ссылается на объект который находится в другом документе. Он специально разработан для эффективного многократного дублирования одного объекта, что помогает создавать сложные сборки из уже собранных узлов и из множества повторно используемых компонентов, таких как винты, гайки и аналогичные крепежные изделия.

Упрощённая диаграмма отношений между основными объектами программы. Объект App::Link это основной компонент системы, он не зависит от какого-либо верстака, но может использоваться в большинстве объектов, созданных во всех верстаках.

Применение

Примечание: App Link это внутренний объект, так что он в основном предназначен для использования разработчиками для создания верстаков сборки. Например, этот объект используют верстаки Assembly3 и Assembly4.

Properties

Данные