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)
 
(4 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
|IconR=Draft_Split.svg
|IconR=Draft_Split.svg
|IconC=Workbench_Draft.svg
|IconC=Workbench_Draft.svg
Line 11: Line 12:
{{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
Line 20: Line 21:
==Description==
==Description==


The {{Button|[[Image:Draft Join.svg|16px]] [[Draft_Join|Draft Join]]}} tool attempts to join all selected [[Draft_Line|Draft Lines]] and [[Draft_Wire|Draft Wires]] 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.


==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 lines or 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.


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


See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].
== Notes ==


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}}.
* To join objects that are not [[Draft_Line|Draft Lines]] or [[Draft_Wire|Draft Wires]] you can try using {{Button|[[Image:Draft_Upgrade.svg|16px]] [[Draft_Upgrade|Draft Upgrade]]}} on them one or more times first.
* The counterpart to this tool is the {{Button|[[Image:Draft Split.svg|16px]] [[Draft_Split|Draft Split]]}} operation.


{{Code|code=
==Scripting==
join_wires(wires)
{{Emphasis|See also:}} [[Draft_API|Draft API]] and [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]].
}}


* {{incode|wires}} is a list of wire objects to be joined.
The Join tool can be used in [[Macros|macros]] and from the [[Python|Python]] console by using the following functions:

Example:


{{Code|code=
{{Code|code=
import FreeCAD as App
joinWires(wires)
import Draft
joinTwoWires(wire1, wire2)

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
|IconR=Draft_Split.svg
|IconR=Draft_Split.svg
|IconC=Workbench_Draft.svg
|IconC=Workbench_Draft.svg
Line 59: Line 83:
{{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()