Mesh Scale: Difference between revisions

From FreeCAD Documentation
No edit summary
(Button text.)
 
(14 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<translate>
<translate>

<!--T:7-->
<!--T:7-->
{{Docnav
{{Docnav|[[Mesh Smooth|Smooth...]]|[[Mesh EvaluateRepair|Evaluate & Repair mesh...]]|[[Mesh_Workbench|Mesh]]|IconL=Mesh_Smooth.png|IconC=Workbench_Mesh.svg|IconR=Mesh_EvaluateRepair.png}}
|[[Mesh_Decimating|Decimating]]
|[[Mesh_BuildRegularSolid|BuildRegularSolid]]
|[[Mesh_Workbench|Mesh]]
|IconL=Mesh_Decimating.svg
|IconR=Mesh_BuildRegularSolid.svg
|IconC=Workbench_Mesh.svg
}}


<!--T:2-->
<!--T:2-->
{{GuiCommand
{{GuiCommand|Name=Mesh Scale|Workbenches=[[Mesh Workbench|Mesh]]|MenuLocation=|Shortcut=|SeeAlso=}}
|Name=Mesh Scale
|MenuLocation=Meshes → Scale...
|Workbenches=[[Mesh_Workbench|Mesh]]
}}


==Description== <!--T:3-->
==Description== <!--T:3-->

<!--T:11-->
The '''Mesh Scale''' command scales mesh objects.


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


==Limitations== <!--T:5-->
<!--T:12-->
# Select one or more mesh objects.
# There are several ways to invoke the command:
#* Press the {{Button|[[Image:Mesh_Scale.svg|16px]] [[Mesh_Scale|Scale...]]}} button.
#* Select the {{MenuCommand|Meshes → [[Image:Mesh_Scale.svg|16px]] Scale...}} option from the menu.
# The {{MenuCommand|Scaling}} dialog box opens.
# Specify a scaling factor, the value must be larger than {{Value|0}}.
# Press the {{button|OK}} button to finish the command.

==Scripting== <!--T:13-->

<!--T:14-->
See also: [[FreeCAD_Scripting_Basics|FreeCAD Scripting Basics]].

<!--T:15-->
To scale a mesh use its {{incode|transformGeometry}} method.

</translate>
{{Code|code=
import FreeCAD as App
import Mesh

# Create a non-parametric box-shaped mesh:
msh = App.ActiveDocument.addObject("Mesh::Feature", "Mesh")
msh.Mesh = Mesh.createBox(10, 10, 10)
msh.ViewObject.DisplayMode = "Flat Lines"

# Create and scale a matrix:
mat = App.Matrix()
mat.scale(2.0, 3.0, 4.0) # Unequal scaling.

# We need to work on a copy of the msh.Mesh object:
new_msh = msh.Mesh.copy()

# Transform that copy:
new_msh.transformGeometry(mat)

# Update msh.Mesh:
msh.Mesh = new_msh
}}
<translate>


==Notes== <!--T:6-->


<!--T:8-->
<!--T:8-->
{{Docnav
{{Docnav|[[Mesh Smooth|Smooth...]]|[[Mesh EvaluateRepair|Evaluate & Repair mesh...]]|[[Mesh_Workbench|Mesh]]|IconL=Mesh_Smooth.png|IconC=Workbench_Mesh.svg|IconR=Mesh_EvaluateRepair.png}}
|[[Mesh_Decimating|Decimating]]
|[[Mesh_BuildRegularSolid|BuildRegularSolid]]
|[[Mesh_Workbench|Mesh]]
|IconL=Mesh_Decimating.svg
|IconR=Mesh_BuildRegularSolid.svg
|IconC=Workbench_Mesh.svg
}}


</translate>
</translate>

Latest revision as of 16:40, 25 November 2023

Mesh Scale

Menu location
Meshes → Scale...
Workbenches
Mesh
Default shortcut
None
Introduced in version
-
See also
None

Description

The Mesh Scale command scales mesh objects.

Usage

  1. Select one or more mesh objects.
  2. There are several ways to invoke the command:
    • Press the Scale... button.
    • Select the Meshes → Scale... option from the menu.
  3. The Scaling dialog box opens.
  4. Specify a scaling factor, the value must be larger than 0.
  5. Press the OK button to finish the command.

Scripting

See also: FreeCAD Scripting Basics.

To scale a mesh use its transformGeometry method.

import FreeCAD as App
import Mesh

# Create a non-parametric box-shaped mesh:
msh = App.ActiveDocument.addObject("Mesh::Feature", "Mesh")
msh.Mesh = Mesh.createBox(10, 10, 10)
msh.ViewObject.DisplayMode = "Flat Lines"

# Create and scale a matrix:
mat = App.Matrix()
mat.scale(2.0, 3.0, 4.0) # Unequal scaling.

# We need to work on a copy of the msh.Mesh object:
new_msh = msh.Mesh.copy()

# Transform that copy:
new_msh.transformGeometry(mat)

# Update msh.Mesh:
msh.Mesh = new_msh