Draft Split/en: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
Line 1: Line 1:
{{Page_in_progress}}
<languages/>
<languages/>


Line 14: Line 13:
|Name=Draft Split
|Name=Draft Split
|MenuLocation=Modification → Split
|MenuLocation=Modification → Split
|Workbenches=[[Draft_Module|Draft]]
|Workbenches=[[Draft_Module|Draft]], [[Arch_Module|Arch]]
|Shortcut={{KEY|S}} {{KEY|P}}
|Shortcut={{KEY|S}} {{KEY|P}}
|Version=0.18
|Version=0.18
Line 22: Line 21:
==Description==
==Description==


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==
==Usage==


# 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|Draft Split]]}} button.
# Hover over or near a wire at the point 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}}.
If the wire is open, you will create two wires, each ending at the point at which you clicked.
# Move the pointer over the correct edge of a [[Draft_Line|Draft Line]] or [[Draft_Wire|Draft Wire]].

# The edge is highlighted.
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.
# Do one of the following:

#* If the wire is closed:
==Options==
#** Pick any point on the edge.

#** The edge is detached from the wire and becomes a separate wire.
There are no options for this tool. Either it works with the selected objects or not.
#* If the wire is open:
#** Pick the correct point on the edge. See [[#Notes|Notes]].
#** The wire is split at the picked point.


== Notes ==
== 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|Draft Snap]] option to prevent this.
* 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 {{Button|[[Image:Draft_Upgrade.svg|16px]] [[Draft_Upgrade|Draft Upgrade]]}} on them one or more times first.
* 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.
* The counterpart to this tool is the {{Button|[[Image:Draft Join.svg|16px]] [[Draft Join|Draft Join]]}} operation.


==Scripting==
==Scripting==


See also: [https://www.freecadweb.org/api Autogenerated API documentation] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].
See also: [https://freecad.github.io/SourceDoc/ Autogenerated API documentation] and [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]].


To split a wire use the {{incode|split}} method of the Draft module. This method returns {{incode|None}}.
The Split tool can be used in [[Macros|macros]] and from the [[Python|Python]] console by using the following function:


{{Code|code=
{{Code|code=
split(wire, newPoint, edgeIndex)
split(wire, newPoint, edgeIndex)
}}

* {{incode|wire}} the wire object to be split.
* {{incode|newPoint}} the point where the split should occur.
* {{incode|edgeIndex}} index of the edge where the split should occur (1-based).

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

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

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



Revision as of 09:24, 16 June 2021

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 Draft 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()