Surface ExtendFace: Difference between revisions
(Correct name Name=Surface ExtendFace) |
No edit summary |
||
(15 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
{{UnfinishedDocu{{#translation:}}}} |
|||
<translate> |
<translate> |
||
<!--T:1--> |
|||
{{Docnav |
|||
|[[Surface_Sections|Sections]] |
|||
|[[Surface_CurveOnMesh|CurveOnMesh]] |
|||
|[[Surface_Workbench|Surface]] |
|||
|IconL=Surface_Sections.svg |
|||
|IconR=Surface_CurveOnMesh.svg |
|||
|IconC=Workbench_Surface.svg |
|||
}} |
|||
<!--T:2--> |
|||
{{GuiCommand |
{{GuiCommand |
||
|Name=Surface ExtendFace |
|Name=Surface ExtendFace |
||
|MenuLocation=Surface → Extend face |
|MenuLocation=Surface → Extend face |
||
|Workbenches=[[ |
|Workbenches=[[Surface_Workbench|Surface]] |
||
|Version=0.17 |
|Version=0.17 |
||
}} |
}} |
||
==Description== |
==Description== <!--T:3--> |
||
<!--T:4--> |
|||
{{Button|[[File:Surface_ExtendFace.svg|16px]] [[Surface ExtendFace|Surface ExtendFace]]}} extrapolates an existing face or surface at its boundaries with its local U and V parameters. |
|||
{{Button|[[File:Surface_ExtendFace.svg|16px]] [[Surface_ExtendFace|Surface ExtendFace]]}} extrapolates an existing face or surface at its boundaries with its local U and V parameters. |
|||
</translate> |
</translate> |
||
[[File:Surface_ExtendFace_base_example.png|300px]] [[File:Surface_ExtendFace_example.png|300px]] |
|||
[[Image:Surface_Extend_example.png|600px]] |
|||
<translate> |
<translate> |
||
<!--T:5--> |
|||
{{Caption|Left: original surface. Right: extended surface.}} |
|||
{{Caption|Left: original face. Right: extended face.}} |
|||
==Usage== |
==Usage== <!--T:6--> |
||
<!--T:7--> |
|||
# Make sure you have a face or surface. |
|||
# Make sure you have an object that has faces. The object could be created with the [[File:Workbench_Surface.svg|24px]] [[Surface_Workbench|Surface Workbench]] but it could also be any other object, for example, created with [[File:Workbench_Part.svg|24px]] [[Part_Workbench|Part]] or [[File:Workbench_PartDesign.svg|24px]] [[PartDesign_Workbench|PartDesign]]. |
|||
# Select the existing surface, then {{MenuCommand|Surface → [[File:Surface_ExtendFace.svg|16px]] Extend face}}. |
|||
# Select the face to extend by clicking on it on the [[3D_view|3D view]]. |
|||
# Press {{Button|[[File:Surface_ExtendFace.svg|16px]] [[Surface_ExtendFace|Extend face]]}}. |
|||
==Options== |
==Options== <!--T:8--> |
||
<!--T:9--> |
|||
This command doesn't have any options. Either it works with the selection or not. |
This command doesn't have any options. Either it works with the selection or not. |
||
==Properties== |
==Properties== <!--T:10--> |
||
<!--T:11--> |
|||
A [[Surface_ExtendFace|Surface ExtendFace]] ({{incode|Surface::Extend}} class) is derived from the basic [[Part_Feature|Part Feature]] ({{incode|Part::Feature}} class, through the {{incode|Part::Spline}} subclass), therefore it shares all the latter's properties. |
|||
A [[Surface_ExtendFace|Surface Extend]] object ({{incode|Surface::Extend}} class) is derived from the basic [[Part_Feature|Part Feature]] ({{incode|Part::Feature}} class, through the {{incode|Part::Spline}} subclass), therefore it shares all the latter's properties. |
|||
<!--T:12--> |
|||
In addition to the properties described in [[Part_Feature|Part Feature]], the Surface Filling has the following properties in the [[property_editor|property editor]]. |
|||
In addition to the properties described in [[Part_Feature|Part Feature]], the Surface Filling has the following properties in the [[Property_editor|property editor]]. |
|||
=== Data === |
=== Data === <!--T:13--> |
||
<!--T:14--> |
|||
{{TitleProperty|Base}} |
{{TitleProperty|Base}} |
||
<!--T:15--> |
|||
* {{PropertyData|Boundary Edges|LinkSubList}}: boundary edges; C0 is required for edges without a corresponding face. |
|||
* {{PropertyData|Face|LinkSub}}: the subelement from an object that will be extended; it must be a face. |
|||
* {{PropertyData|Boundary Faces|StringList}}: |
|||
* {{PropertyData| |
* {{PropertyData|Tolerance|FloatConstraint}}: it defaults to {{Value|0.1}}. |
||
* {{PropertyData|Unbound Edges|LinkSubList}}: unbound constraint edges; C0 is required for edges without a corresponding face. |
|||
* {{PropertyData|Unbound Faces|StringList}}: |
|||
* {{PropertyData|Unbound Order|IntegerList}}: order of constraint on unbound faces; {{Value|0}}, {{Value|1}}, and {{Value|2}} are possible. |
|||
* {{PropertyData|Free Faces|LinkSubList}}: free constraint on a face. |
|||
* {{PropertyData|Free Order|IntegerList}}: order of constraint on free faces. |
|||
* {{PropertyData|Points|LinkSubList}}: constraint points on surface. |
|||
* {{PropertyData|Initial Face|LinkSub}}: initial surface to use. |
|||
* {{PropertyData|Degree|Integer}}: starting degree, it defaults to {{Value|3}}. |
|||
* {{PropertyData|Points On Curve|Integer}}: number of points on an edge for constraint. |
|||
* {{PropertyData|Iterations|Integer}}: number of iterations, it defaults to {{Value|2}}. |
|||
* {{PropertyData|Anisotropy|Bool}}: it defaults to {{FALSE}}. |
|||
* {{PropertyData|Tolerance2d|Float}}: 2D tolerance, it defaults to {{Value|0.0}}. |
|||
* {{PropertyData|Tolerance3d|Float}}: 3D tolerance, it defaults to {{Value|0.0}}. |
|||
* {{PropertyData|Tol Angular|Float}}: G1 tolerance, it defaults to {{Value|0.01}}. |
|||
* {{PropertyData|Tol Curvature|Float}}: G2 tolerance, it defaults to {{Value|0.10}}. |
|||
* {{PropertyData|Maximum Degree|Integer}}: maximum curve degree, it defaults to {{Value|8}}. |
|||
* {{PropertyData|Maximum Segments|Integer}}: maximum number of segments, it defaults to {{Value|9}}. |
|||
<!--T:16--> |
|||
=== View === |
|||
* {{PropertyData|Extend UNeg|FloatConstraint}}: it defaults to {{Value|0.05}}. The ratio of the local U parameter that will be extended in the negative direction. |
|||
* {{PropertyData|Extend UPos|FloatConstraint}}: it defaults to {{Value|0.05}}. The ratio of the local U parameter that will be extended in the positive direction. |
|||
* {{PropertyData|Extend USymetric|Bool}}: it defaults to {{TRUE}}, in which case {{PropertyData|Extend UNeg}} and {{PropertyData|Extend UPos}} will have the same value. |
|||
<!--T:17--> |
|||
* {{PropertyData|Extend VNeg|FloatConstraint}}: it defaults to {{Value|0.05}}. The ratio of the local V that will be extended in the negative direction. |
|||
* {{PropertyData|Extend VPos|FloatConstraint}}: it defaults to {{Value|0.05}}. The ratio of the local V direction that will be extended in the positive direction. |
|||
* {{PropertyData|Extend VSymetric|Bool}}: it defaults to {{TRUE}}, in which case {{PropertyData|Extend VNeg}} and {{PropertyData|Extend VPos}} will have the same value. |
|||
<!--T:18--> |
|||
* {{PropertyData|SampleU|IntegerConstraint}}: it defaults to {{Value|32}}. |
|||
* {{PropertyData|SampleV|IntegerConstraint}}: it defaults to {{Value|32}}. |
|||
=== View === <!--T:19--> |
|||
<!--T:20--> |
|||
{{TitleProperty|Base}} |
{{TitleProperty|Base}} |
||
<!--T:21--> |
|||
* {{PropertyView|Control Points|Bool}}: it defaults to {{FALSE}}; if set to {{TRUE}}, it will show an overlay with the control points of the surface. |
* {{PropertyView|Control Points|Bool}}: it defaults to {{FALSE}}; if set to {{TRUE}}, it will show an overlay with the control points of the surface. |
||
== Scripting == |
== Scripting == <!--T:22--> |
||
<!--T:23--> |
|||
{{Emphasis|See also:}} [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]]. |
{{Emphasis|See also:}} [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]]. |
||
<!--T:24--> |
|||
The Surface Extend tool can be used in [[macros|macros]] and from the [[Python|Python]] console by adding the {{incode|Surface::Extend}} object. |
|||
The Surface Extend tool can be used in [[Macros|macros]] and from the [[Python|Python]] console by adding the {{incode|Surface::Extend}} object. |
|||
* The face to extend must be assigned as a [[LinkSub|LinkSub]] to the {{incode|Face}} property of the object. It must contain only a single face. |
|||
</translate> |
</translate> |
||
Line 85: | Line 104: | ||
d = App.Vector(33, -20, 0) |
d = App.Vector(33, -20, 0) |
||
points = [a, App.Vector(-20, -8, 0), b, c, |
|||
App.Vector(37, 4, 0), d, |
|||
obj1 = Draft.make_bspline(points1) |
|||
App.Vector(-2, -18, 0), a] |
|||
obj = Draft.make_bspline(points) |
|||
doc.recompute() |
|||
if App.GuiUp: |
|||
points2 = [b, App.Vector(0, 25, 0), c] |
|||
obj.ViewObject.Visibility = False |
|||
obj2 = Draft.make_bspline(points2) |
|||
points3 = [c, App.Vector(37, 4, 0), d] |
|||
obj3 = Draft.make_bspline(points3) |
|||
points4 = [d, App.Vector(-2, -18, 0), a] |
|||
obj4 = Draft.make_bspline(points4) |
|||
doc.recompute() |
|||
surf = doc.addObject("Surface::Filling", "Surface") |
surf = doc.addObject("Surface::Filling", "Surface") |
||
surf.BoundaryEdges = [( |
surf.BoundaryEdges = [(obj, "Edge1")] |
||
(obj2, "Edge1"), |
|||
(obj3, "Edge1"), |
|||
(obj4, "Edge1")] |
|||
doc.recompute() |
doc.recompute() |
||
Line 118: | Line 130: | ||
# --------------------------------------------------------- |
# --------------------------------------------------------- |
||
surf_extended = doc.addObject("Surface::Extend", "Surface") |
|||
surf_extended.Face = [surf, "Face1"] |
|||
doc.recompute() |
|||
}} |
}} |
||
<translate> |
<translate> |
||
<!--T:25--> |
|||
{{Docnav |
|||
|[[Surface_Sections|Sections]] |
|||
|[[Surface_CurveOnMesh|CurveOnMesh]] |
|||
|[[Surface_Workbench|Surface]] |
|||
|IconL=Surface_Sections.svg |
|||
|IconR=Surface_CurveOnMesh.svg |
|||
|IconC=Workbench_Surface.svg |
|||
}} |
|||
</translate> |
</translate> |
||
{{Surface Tools navi{{#translation:}}}} |
{{Surface Tools navi{{#translation:}}}} |
||
{{Userdocnavi{{#translation:}}}} |
{{Userdocnavi{{#translation:}}}} |
||
{{clear}} |
Latest revision as of 14:17, 16 August 2021
Surface ExtendFace |
Menu location |
---|
Surface → Extend face |
Workbenches |
Surface |
Default shortcut |
None |
Introduced in version |
0.17 |
See also |
None |
Description
Surface ExtendFace extrapolates an existing face or surface at its boundaries with its local U and V parameters.
Left: original face. Right: extended face.
Usage
- Make sure you have an object that has faces. The object could be created with the Surface Workbench but it could also be any other object, for example, created with Part or PartDesign.
- Select the face to extend by clicking on it on the 3D view.
- Press Extend face.
Options
This command doesn't have any options. Either it works with the selection or not.
Properties
A Surface Extend object (Surface::Extend
class) is derived from the basic Part Feature (Part::Feature
class, through the Part::Spline
subclass), therefore it shares all the latter's properties.
In addition to the properties described in Part Feature, the Surface Filling has the following properties in the property editor.
Data
Base
- DataFace (
LinkSub
): the subelement from an object that will be extended; it must be a face. - DataTolerance (
FloatConstraint
): it defaults to0.1
.
- DataExtend UNeg (
FloatConstraint
): it defaults to0.05
. The ratio of the local U parameter that will be extended in the negative direction. - DataExtend UPos (
FloatConstraint
): it defaults to0.05
. The ratio of the local U parameter that will be extended in the positive direction. - DataExtend USymetric (
Bool
): it defaults totrue
, in which case DataExtend UNeg and DataExtend UPos will have the same value.
- DataExtend VNeg (
FloatConstraint
): it defaults to0.05
. The ratio of the local V that will be extended in the negative direction. - DataExtend VPos (
FloatConstraint
): it defaults to0.05
. The ratio of the local V direction that will be extended in the positive direction. - DataExtend VSymetric (
Bool
): it defaults totrue
, in which case DataExtend VNeg and DataExtend VPos will have the same value.
- DataSampleU (
IntegerConstraint
): it defaults to32
. - DataSampleV (
IntegerConstraint
): it defaults to32
.
View
Base
- ViewControl Points (
Bool
): it defaults tofalse
; if set totrue
, it will show an overlay with the control points of the surface.
Scripting
See also: FreeCAD Scripting Basics.
The Surface Extend tool can be used in macros and from the Python console by adding the Surface::Extend
object.
- The face to extend must be assigned as a LinkSub to the
Face
property of the object. It must contain only a single face.
import FreeCAD as App
import Draft
doc = App.newDocument()
a = App.Vector(-20, -20, 0)
b = App.Vector(-18, 25, 0)
c = App.Vector(60, 26, 0)
d = App.Vector(33, -20, 0)
points = [a, App.Vector(-20, -8, 0), b, c,
App.Vector(37, 4, 0), d,
App.Vector(-2, -18, 0), a]
obj = Draft.make_bspline(points)
doc.recompute()
if App.GuiUp:
obj.ViewObject.Visibility = False
surf = doc.addObject("Surface::Filling", "Surface")
surf.BoundaryEdges = [(obj, "Edge1")]
doc.recompute()
# ---------------------------------------------------------
points_spl = [App.Vector(-10, 0, 2),
App.Vector(4, 0, 7),
App.Vector(18, 0, -5),
App.Vector(25, 0, 0),
App.Vector(30, 0, 0)]
aux_edge = Draft.make_bspline(points_spl)
doc.recompute()
surf.UnboundEdges = [(aux_edge, "Edge1")]
doc.recompute()
# ---------------------------------------------------------
surf_extended = doc.addObject("Surface::Extend", "Surface")
surf_extended.Face = [surf, "Face1"]
doc.recompute()
User documentation
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub