Part RefineShape: Difference between revisions

From FreeCAD Documentation
No edit summary
(Fixed Docnav)
(19 intermediate revisions by 6 users not shown)
Line 2: Line 2:
<translate>
<translate>
<!--T:9-->
<!--T:9-->
{{Docnav
{{Docnav|[[Part SimpleCopy|Create simple copy]]|[[Part CheckGeometry|Check geometry]]|[[Part_Module|Part]]|IconL=Part_CreateSimpleCopy‎.svg|IconC=Workbench_Part.svg|IconR=Part CheckGeometry.png}}
|[[Part_ElementCopy|ElementCopy]]
|[[Part_CheckGeometry|CheckGeometry]]
|[[Part_Module|Part]]
|IconL=Part_ElementCopy.svg
|IconR=Part_CheckGeometry.svg
|IconC=Workbench_Part.svg
}}


<!--T:1-->
<!--T:1-->
Line 8: Line 15:
|Name=Part RefineShape
|Name=Part RefineShape
|MenuLocation=Part → Create a copy → Refine Shape
|MenuLocation=Part → Create a copy → Refine Shape
|Workbenches=[[Part Module|Part]]
|Workbenches=[[Part_Module|Part]]
|SeeAlso=[[Part_SimpleCopy|SimpleCopy]], [[Part_TransformedCopy|TransformedCopy]], [[Part_ElementCopy|ElementCopy]], [[OpenSCAD_RefineShapeFeature|OpenSCAD RefineShapeFeature]]
|SeeAlso=[[Part_SimpleCopy|Part SimpleCopy]], [[Part_TransformedCopy|Part TransformedCopy]], [[Part_ElementCopy|Part ElementCopy]], [[OpenSCAD_RefineShapeFeature|OpenSCAD RefineShapeFeature]]
}}
}}


Line 15: Line 22:


<!--T:13-->
<!--T:13-->
[[Part_RefineShape|Part RefineShape]] produces a non-parametric copy with a refined shape, that is, with certain edges and faces cleaned up.
The {{Button|[[Image:Part_RefineShape.svg|16px]] [[Part_RefineShape|Part RefineShape]]}} produces a non-parametric copy with a refined shape, that is, with certain edges and faces cleaned up.


<!--T:14-->
<!--T:14-->
After certain boolean operations, like [[Part Union|Part Union]], some lines from the previous shapes main remain visible. This tool produces a copy of that boolean result, and cleans up those seams.
After certain boolean operations, like [[Part_Fuse|Part Fuse]], some lines from the previous shapes may remain visible. This tool produces a copy of that boolean result, and cleans up those seams.


<!--T:15-->
<!--T:15-->
To produce other non-parametric copies use [[Part_SimpleCopy|SimpleCopy]], [[Part_TransformedCopy|TransformedCopy]], and [[Part_ElementCopy|ElementCopy]].
'''Alternatively''', to produce other non-parametric copies use {{Button|[[Image:Part_SimpleCopy.svg|16px]] [[Part SimpleCopy|Simple Copy]]}}, {{Button|[[Image:Part_TransformedCopy.svg|16px]][[Part TransformedCopy|Transformed Copy]]}}, and {{Button|[[Image:Part_ElementCopy.svg|16px]] [[Part ElementCopy|Element Copy]]}}


</translate>
</translate>
Line 29: Line 36:
{{Caption|Original boolean result (left), and refined shape copy (right).}}
{{Caption|Original boolean result (left), and refined shape copy (right).}}


==How to use== <!--T:3-->
==Usage== <!--T:3-->


<!--T:16-->
<!--T:16-->
# Select an object that you wish to clean and copy.
# Select an object that you wish to clean and copy.
# Go to the menu {{MenuCommand|Part → Create a copy → [[File:Part_RefineShape.svg|16px]] Refine shape}}.
# Go to the menu {{MenuCommand|Part → Create a copy → [[Image:Part_RefineShape.svg|16px]] Refine shape}}.
# A cleaned, independent copy of the original object is created; the original object is hidden.
# A cleaned, independent copy of the original object is created; the original object is hidden.


<!--T:17-->
<!--T:17-->
Starting in FreeCAD 0.19, the result defaults to a parametric (linked) copy.
As of {{VersionPlus|0.19}} the result defaults to a parametric (linked) copy.


<!--T:18-->
<!--T:18-->
This behavior can be changed in the [[parameter editor|parameter editor]]. Go to the subgroup
This behavior can be changed in the [[Image:Std_DlgParameter.svg|16px]] [[Std DlgParameter|parameter editor]]:
* {{incode|BaseApp/Preferences/Mod/Part}}
# Go to the subgroup: {{incode|BaseApp/Preferences/Mod/Part}}
# Change {{incode|ParametricRefine}} of type {{incode|Boolean}} to {{FALSE}} to get the old behavior (independent copy).

<!--T:19-->
and change {{incode|ParametricRefine}} of type {{incode|Boolean}} to {{FALSE}} to get the old behavior (independent copy).


<!--T:20-->
<!--T:20-->
Line 53: Line 58:
<!--T:21-->
<!--T:21-->
* The refinement algorithm only works on shells. Therefore it iterates over the shells of the input shape and then for each shell it creates a new shell with joined faces wherever possible. This means that if your input shape is only a face, wire, edge or vertex then the algorithm does nothing.
* The refinement algorithm only works on shells. Therefore it iterates over the shells of the input shape and then for each shell it creates a new shell with joined faces wherever possible. This means that if your input shape is only a face, wire, edge or vertex then the algorithm does nothing.
* Unlike the [[OpenSCAD_RefineShapeFeature|OpenSCAD RefineShapeFeature]] command, [[Part_RefineShape|Part RefineShape]] won't update when the preceding shapes are changed.
* Unlike the [[Image:OpenSCAD_RefineShapeFeature.svg|24px]] [[OpenSCAD RefineShapeFeature|OpenSCAD RefineShapeFeature]] command, [[Image:Part_RefineShape.svg|24px]] [[Part_RefineShape|Part RefineShape]] won't update when the preceding shapes are changed.


=== Notes === <!--T:6-->
=== Notes === <!--T:6-->
Line 70: Line 75:
}}
}}
<translate>
<translate>



<!--T:10-->
<!--T:10-->
{{Docnav
{{Docnav|[[Part SimpleCopy|Create simple copy]]|[[Part CheckGeometry|Check geometry]]|[[Part_Module|Part]]|IconL=Part_CreateSimpleCopy‎.svg|IconC=Workbench_Part.svg|IconR=Part CheckGeometry.png}}
|[[Part_ElementCopy|ElementCopy]]

|[[Part_CheckGeometry|CheckGeometry]]
<!--T:11-->
|[[Part_Module|Part]]
{{Part Tools navi}}
|IconL=Part_ElementCopy.svg

|IconR=Part_CheckGeometry.svg
<!--T:12-->
|IconC=Workbench_Part.svg
{{Userdocnavi}}
}}



</translate>
</translate>
{{Part Tools navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}
{{clear}}
{{clear}}

Revision as of 15:24, 24 January 2021

Part RefineShape

Menu location
Part → Create a copy → Refine Shape
Workbenches
Part
Default shortcut
None
Introduced in version
-
See also
Part SimpleCopy, Part TransformedCopy, Part ElementCopy, OpenSCAD RefineShapeFeature

Description

The Part RefineShape produces a non-parametric copy with a refined shape, that is, with certain edges and faces cleaned up.

After certain boolean operations, like Part Fuse, some lines from the previous shapes may remain visible. This tool produces a copy of that boolean result, and cleans up those seams.

Alternatively, to produce other non-parametric copies use Simple Copy, Transformed Copy, and Element Copy

Original boolean result (left), and refined shape copy (right).

Usage

  1. Select an object that you wish to clean and copy.
  2. Go to the menu Part → Create a copy → Refine shape.
  3. A cleaned, independent copy of the original object is created; the original object is hidden.

As of version 0.19 and above the result defaults to a parametric (linked) copy.

This behavior can be changed in the parameter editor:

  1. Go to the subgroup: BaseApp/Preferences/Mod/Part
  2. Change ParametricRefine of type Boolean to false to get the old behavior (independent copy).

See other parameters in Fine-tuning.

Limitations

  • The refinement algorithm only works on shells. Therefore it iterates over the shells of the input shape and then for each shell it creates a new shell with joined faces wherever possible. This means that if your input shape is only a face, wire, edge or vertex then the algorithm does nothing.
  • Unlike the OpenSCAD RefineShapeFeature command, Part RefineShape won't update when the preceding shapes are changed.

Notes

  • This function can be used as the last step in the modelling work to clean up shapes in a traditional constructive solid geometry workflow.
  • This function may help to clean up the model before applying another feature, such as a Fillet.
  • This clean up may stop 3D printers from printing unwanted edges once the solid model is exported to a mesh format.
  • This function can also be used after converting a mesh to a shape (ShapeFromMesh) to clean up the residual edges on flat faces.

Scripting

The Python command for refining a shape is the following:

shape.removeSplitter()