Draft Split: Difference between revisions

From FreeCAD Documentation
(Moved a translation tag)
(Button text.)
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<translate>
<translate>

<!--T:20-->
<!--T:20-->
{{Docnav
{{Docnav
|[[Draft_Join|Join]]
|[[Draft_Join|Join]]
|[[Draft_Upgrade|Upgrade]]
|[[Draft_Upgrade|Upgrade]]
|[[Draft_Workbench|Draft]]
|[[Draft_Module|Draft_Module]]
|IconL=Draft_Join.svg
|IconL=Draft_Join.svg
|IconR=Draft_Upgrade.svg
|IconR=Draft_Upgrade.svg
Line 14: Line 15:
{{GuiCommand
{{GuiCommand
|Name=Draft Split
|Name=Draft Split
|MenuLocation=Draft → Split
|MenuLocation=Modification → Split
|Workbenches=[[Draft_Module|Draft]]
|Workbenches=[[Draft_Workbench|Draft]], [[Arch_Workbench|Arch]]
|Shortcut={{KEY|S}} {{KEY|P}}
|Shortcut={{KEY|S}} {{KEY|P}}
|Version=0.18
|Version=0.18
Line 24: Line 25:


<!--T:3-->
<!--T:3-->
The {{Button|[[Image:Draft Split.svg|16px]] [[Draft_Split|Draft Split]]}} tool attempts to split an existing [[Draft_Wire|Draft Wire]] or [[Draft_Line|Draft Line]] at a specified edge.
The [[Image:Draft_Split.svg|24px]] '''Draft Split''' command splits a [[Draft_Line|Draft Line]] or [[Draft_Wire|Draft Wire]] at a specified point or edge. This command is the counterpart of the [[Draft_Join|Draft Join]] command.


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


<!--T:5-->
<!--T:5-->
# There are several ways to invoke the command:
# Press the {{Button|[[Image:Draft Split.svg|16px]] [[Draft Split|Draft Split]]}} button or press {{KEY|S}} then {{KEY|P}} keys.
#* Press the {{Button|[[Image:Draft_Split.svg|16px]] [[Draft_Split|Split]]}} button.
# Hover over (or nearby) a wire where you want to split it. The wire is highlighted. Click to split.
#* Select the {{MenuCommand|Modification → [[Image:Draft_Split.svg|16px]] Split}} option from the menu.
#* Use the keyboard shortcut: {{KEY|S}} then {{KEY|P}}.
# Move the pointer over the correct edge of a [[Draft_Line|Draft Line]] or [[Draft_Wire|Draft Wire]].
# The edge is highlighted.
# Do one of the following:
#* If the wire is closed:
#** Pick any point on the edge.
#** The edge is detached from the wire and becomes a separate wire.
#* If the wire is open:
#** Pick the correct point on the edge. See [[#Notes|Notes]].
#** The wire is split at the picked point.


<!--T:21-->
== Notes == <!--T:26-->
If the wire is open, you will create two wires, each ending at the point at which you clicked.


<!--T:14-->
If the wire is closed, the edge which you clicked will be turned into its own open wire, and the remainder will convert into an open wire. You can think of this as "detaching" the selected wire.
* If an open wire is split and the clicked point does not lie exactly on the selected edge, the new point will not be collinear with that former edge. Use an appropriate [[Draft_Snap|Draft Snap]] option to prevent this.
* To split 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.


==Options== <!--T:6-->
==Scripting== <!--T:27-->


<!--T:7-->
<!--T:8-->
See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].
There are no options for this tool. Either it works with the selected objects or not.


<!--T:9-->
== Notes ==
To split a wire use the {{incode|split}} method of the Draft module. This method returns {{incode|None}}.


</translate>
<!--T:14-->
{{Code|code=
* The clicked point is not necessarily located on the wire (i.e., not collinear). Consequently, in this case the resulting geometry differs from the one before the command was invoked.
split(wire, newPoint, edgeIndex)
* Non-editable (topology) objects of types [[Image:Workbench_Part.svg|24px]] Edge and [[Image:Workbench_Part.svg|24px]] Wire cannot be split (because they do not expose their Points). Try using {{Button|[[Image:Draft Upgrade.svg|16px]] [[Draft Upgrade]]}} on these objects first.
}}
* The counterpart to this tool is the {{Button|[[Image:Draft Join.svg|16px]] [[Draft Join|Draft Join]]}} operation.
<translate>


==Scripting== <!--T:8-->
<!--T:28-->
* {{incode|wire}} the wire object to be split.
{{Emphasis|See also:}} [[Draft_API|Draft API]] and [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]].
* {{incode|newPoint}} the point where the split should occur.
* {{incode|edgeIndex}} index of the edge where the split should occur (1-based).


<!--T:9-->
<!--T:29-->
Example:
The Split tool can be used in [[Macros|macros]] and from the [[Python|Python]] console by using the following function:


</translate>
</translate>
{{Code|code=
{{Code|code=
import FreeCAD as App
split(wire, newPoint, edgeIndex)
import Draft

doc = App.newDocument()

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

wire = Draft.make_wire([p1, p2])

Draft.split(wire, p3, 1)
doc.recompute()
}}
}}
<translate>
<translate>
Line 66: Line 95:
|[[Draft_Join|Join]]
|[[Draft_Join|Join]]
|[[Draft_Upgrade|Upgrade]]
|[[Draft_Upgrade|Upgrade]]
|[[Draft_Workbench|Draft]]
|[[Draft_Module|Draft_Module]]
|IconL=Draft_Join.svg
|IconL=Draft_Join.svg
|IconR=Draft_Upgrade.svg
|IconR=Draft_Upgrade.svg
Line 75: Line 104:
{{Draft Tools navi{{#translation:}}}}
{{Draft Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

Latest revision as of 17:10, 3 December 2023

Draft Split

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

Description

The Draft Split command splits a Draft Line or Draft Wire at a specified point or edge. This command is the counterpart of the Draft Join command.

Usage

  1. There are several ways to invoke the command:
    • Press the Split button.
    • Select the Modification → Split option from the menu.
    • Use the keyboard shortcut: S then P.
  2. Move the pointer over the correct edge of a Draft Line or Draft Wire.
  3. The edge is highlighted.
  4. Do one of the following:
    • If the wire is closed:
      • Pick any point on the edge.
      • The edge is detached from the wire and becomes a separate wire.
    • If the wire is open:
      • Pick the correct point on the edge. See Notes.
      • The wire is split at the picked point.

Notes

  • If an open wire is split and the clicked point does not lie exactly on the selected edge, the new point will not be collinear with that former edge. Use an appropriate Draft Snap option to prevent this.
  • To split objects that are not Draft Lines or Draft Wires you can try using Draft Upgrade and/or Draft Downgrade on them one or more times first.

Scripting

See also: Autogenerated API documentation and FreeCAD Scripting Basics.

To split a wire use the split method of the Draft module. This method returns None.

split(wire, newPoint, edgeIndex)
  • wire the wire object to be split.
  • newPoint the point where the split should occur.
  • edgeIndex index of the edge where the split should occur (1-based).

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(250, 0, 0)

wire = Draft.make_wire([p1, p2])

Draft.split(wire, p3, 1)
doc.recompute()