Draft Join/en: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{Docnav
{{Docnav
|[[Draft_SubelementHighlight|SubelementHighlight]]
|[[Draft_Trimex|Trim/Extend (Trimex)]]
|[[Draft Split|Split]]
|[[Draft_Split|Split]]
|[[Draft_Module|Draft]]
|[[Draft_Workbench|Draft]]
|IconL=Draft_Trimex.svg
|IconL=Draft_SubelementHighlight.svg
|IconC=Workbench_Draft.svg
|IconR=Draft_Split.svg
|IconR=Draft_Split.svg
|IconC=Workbench_Draft.svg
}}
}}


{{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={{KEY|J}} {{KEY|O}}
|Shortcut={{KEY|J}} {{KEY|O}}
|Version=0.18
|Version=0.18
|SeeAlso=[[Draft Split|Draft Split]]
|SeeAlso=[[Draft_Split|Draft Split]]
}}
}}


==Description==
==Description==


The {{Button|[[Image:Draft Join.svg|16px]] [[Draft Join|Draft Join]]}} tool attempts to join all wires currently in the selection into a single wire.
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 counterpart to this tool is the {{Button|[[Image:Draft Split.svg|16px]] [[Draft Split|Draft Split]]}} operation.


==Usage==
==Usage==


# 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|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 ==
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.


* [[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.
==Options==
* 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.

There are no options for this tool. Either it works with the selected objects or not.


==Scripting==
==Scripting==
{{Emphasis|See also:}} [[Draft API|Draft API]] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].


See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].
The Join tool can be used in [[macros|macros]] and from the [[Python|Python]] console by using the following functions:

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


{{Code|code=
{{Code|code=
joinWires(wires)
join_wires(wires)
joinTwoWires(wire1, wire2)
}}
}}

* {{incode|wires}} is a list of wire objects to be joined.

Example:

{{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()
}}



{{Docnav
{{Docnav
|[[Draft_SubelementHighlight|SubelementHighlight]]
|[[Draft_Trimex|Trim/Extend (Trimex)]]
|[[Draft Split|Split]]
|[[Draft_Split|Split]]
|[[Draft_Module|Draft]]
|[[Draft_Workbench|Draft]]
|IconL=Draft_Trimex.svg
|IconL=Draft_SubelementHighlight.svg
|IconC=Workbench_Draft.svg
|IconR=Draft_Split.svg
|IconR=Draft_Split.svg
|IconC=Workbench_Draft.svg
}}
}}


{{Draft Tools navi{{#translation:}}}}
{{Draft Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Latest revision as of 19:53, 7 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()