Draft Join: Difference between revisions

From FreeCAD Documentation
No edit summary
(Button text.)
 
(40 intermediate revisions by 7 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<translate>
<translate>

<!--T:20-->
<!--T:20-->
{{Docnav
{{docnav|[[Draft_Trimex|Trim/Extend (Trimex)]]|[[Draft_Downgrade|Downgrade]]|[[Draft_Module|Draft_Module]]}}
|[[Draft_SubelementHighlight|SubelementHighlight]]
|[[Draft_Split|Split]]
|[[Draft_Workbench|Draft]]
|IconL=Draft_SubelementHighlight.svg
|IconR=Draft_Split.svg
|IconC=Workbench_Draft.svg
}}


<!--T:1-->
<!--T:1-->
{{GuiCommand
{{GuiCommand
|Name=Draft Join
|Name=Draft Join
|MenuLocation=Draft → Join
|MenuLocation=Modification → Join
|Workbenches=[[Draft Module|Draft]], [[Arch Module|Arch]]
|Workbenches=[[Draft_Workbench|Draft]], [[Arch_Workbench|Arch]]
|Shortcut=J O
|Shortcut={{KEY|J}} {{KEY|O}}
|Version=0.18
|SeeAlso=[[Draft Split]]
|SeeAlso=[[Draft_Split|Draft Split]]
}}
}}


Line 16: Line 25:


<!--T:3-->
<!--T:3-->
The [[Image:Draft_Join.svg|24px]] '''Draft Join''' command joins [[Draft_Line|Draft Lines]] and [[Draft_Wire|Draft Wires]] into a single wire. This command is the counterpart of the [[Draft_Split|Draft Split]] command.
The Join tool attempts to join all wires currently in the selection into a single wire.


<!--T:14-->
==Usage== <!--T:4-->
The counterpart to this tool is the [[Draft Split]] operation.

==How to use== <!--T:4-->


<!--T:5-->
<!--T:5-->
# The end points of the [[Draft_Line|Draft Lines]] and/or [[Draft_Wire|Draft Wires]] to be joined must be exactly coincident. If required first adjust points to ensure that this is the case.
# Select two or more wires that you wish to join together.
# Select two or more [[Draft_Line|Draft Lines]] and/or [[Draft_Wire|Draft Wires]].
# Press the {{Button|[[Image:Draft Join.svg|16px]] [[Draft Join]]}} button or press {{KEY|J}} then {{KEY|O}} keys.
# There are several ways to invoke the command:
#* Press the {{Button|[[Image:Draft_Join.svg|16px]] [[Draft_Join|Join]]}} button.
#* Select the {{MenuCommand|Modification → [[Image:Draft_Join.svg|16px]] Join}} option from the menu.
#* Use the keyboard shortcut: {{KEY|J}} then {{KEY|O}}.


== Notes == <!--T:25-->
If the open end of a wire in your selection coincides with the open end of another wire in your selection, they will be joined into a single wire. The properties of the first wire in your selection will remain and the rest of the objects will be deleted.


==Options== <!--T:6-->
<!--T:14-->
* [[Draft_Line|Draft Lines]] and [[Draft_Wire|Draft Wires]] can also be joined with the [[Draft_Wire|Draft Wire]] command or the [[Draft_Upgrade|Draft Upgrade]] command.
* To join objects that are not [[Draft_Line|Draft Lines]] or [[Draft_Wire|Draft Wires]] you can try using [[Draft_Upgrade|Draft Upgrade]] and/or [[Draft_Downgrade|Draft Downgrade]] on them one or more times first.


<!--T:7-->
==Scripting== <!--T:26-->
There are no options for this tool. Either it works with the selected objects or not.


==Scripting== <!--T:8-->
<!--T:8-->
{{Emphasis|See also:}} [[Draft API]] and [[FreeCAD Scripting Basics]].
See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].


<!--T:9-->
<!--T:9-->
To join wires use the {{incode|join_wires}} method ({{Version|0.19}}) of the Draft module. This methods replaces the deprecated {{incode|joinWires}} method. This method returns {{incode|None}}.
The Join tool can be used in [[macros]] and from the [[Python]] console by using the following functions:


</translate>
{{Code|code=
{{Code|code=
joinWires(wires)
join_wires(wires)
joinTwoWires(wire1, wire2)
}}
}}
<translate>

<!--T:27-->
* {{incode|wires}} is a list of wire objects to be joined.

<!--T:28-->
Example:

</translate>
{{Code|code=
import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(0, 0, 0)
p2 = App.Vector(500, 0, 0)
p3 = App.Vector(500, 500, 0)
p4 = App.Vector(0, 500, 0)

wire1 = Draft.make_wire([p1, p2])
wire2 = Draft.make_wire([p2, p3])
wire3 = Draft.make_wire([p3, p4])
wire4 = Draft.make_wire([p4, p1])

Draft.join_wires([wire1, wire3, wire2, wire4])
doc.recompute()
}}
<translate>



<!--T:19-->
<!--T:19-->
{{Docnav
{{docnav|[[Draft_Trimex|Trim/Extend (Trimex)]]|[[Draft_Downgrade|Downgrade]]|[[Draft_Module|Draft_Module]]}}
|[[Draft_SubelementHighlight|SubelementHighlight]]
{{Draft Tools navi}}
|[[Draft_Split|Split]]
{{Userdocnavi}}
|[[Draft_Workbench|Draft]]
|IconL=Draft_SubelementHighlight.svg
|IconR=Draft_Split.svg
|IconC=Workbench_Draft.svg
}}

</translate>
</translate>
{{Draft Tools navi{{#translation:}}}}
{{clear}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 17:10, 3 December 2023

Draft Join

Menu location
Modification → Join
Workbenches
Draft, Arch
Default shortcut
J O
Introduced in version
0.18
See also
Draft Split

Description

The Draft Join command joins Draft Lines and Draft Wires into a single wire. This command is the counterpart of the Draft Split command.

Usage

  1. The end points of the Draft Lines and/or Draft Wires to be joined must be exactly coincident. If required first adjust points to ensure that this is the case.
  2. Select two or more Draft Lines and/or Draft Wires.
  3. There are several ways to invoke the command:
    • Press the Join button.
    • Select the Modification → Join option from the menu.
    • Use the keyboard shortcut: J then O.

Notes

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

To join wires use the join_wires method (introduced in version 0.19) of the Draft module. This methods replaces the deprecated joinWires method. This method returns None.

join_wires(wires)
  • wires is a list of wire objects to be joined.

Example:

import FreeCAD as App
import Draft

doc = App.newDocument()

p1 = App.Vector(0, 0, 0)
p2 = App.Vector(500, 0, 0)
p3 = App.Vector(500, 500, 0)
p4 = App.Vector(0, 500, 0)

wire1 = Draft.make_wire([p1, p2])
wire2 = Draft.make_wire([p2, p3])
wire3 = Draft.make_wire([p3, p4])
wire4 = Draft.make_wire([p4, p1])

Draft.join_wires([wire1, wire3, wire2, wire4])
doc.recompute()