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)
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
<languages/>

{{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 11: Line 12:
{{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 20: 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|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==
{{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 Split tool can be used in [[Macros|macros]] and from the [[Python|Python]] console by using the following function:

To split a wire use the {{incode|split}} method of the Draft module. This method returns {{incode|None}}.


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


Line 54: Line 80:
|[[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 62: Line 88:
{{Draft Tools navi{{#translation:}}}}
{{Draft Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}

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