BlenderExporter
Export the simulation result as blender point cache files.
Templates:
- Rigid3d
- Vec3d
Target: Sofa.Component.IO.Mesh
namespace: sofa::component::blenderexporter
parents:
- BaseSimulationExporter
Data
Name | Description | Default value |
---|---|---|
name | object name | unnamed |
printLog | if true, emits extra messages at runtime. | 0 |
tags | list of the subsets the object belongs to | |
bbox | this object bounding box | |
componentState | The state of the component among (Dirty, Valid, Undefined, Loading, Invalid). | Undefined |
listening | if true, handle the events, otherwise ignore the events | 0 |
filename | Path or filename where to export the data. If missing the name of the component is used. | |
exportEveryNumberOfSteps | export file only at specified number of steps (0=disable, default=0) | 0 |
exportAtBegin | export file before the simulation starts, once the simulation is initialized (default=false) | 0 |
exportAtEnd | export file when the simulation is over and cleanup is called, i.e. just before deleting the simulation (default=false) | 0 |
enable | Enable or disable the component. (default=true) | 1 |
path | output path | |
baseName | Base name for the output files | |
simulationType | simulation type (0: soft body, 1: particles, 2:cloth, 3:hair) | 0 |
step | save the simulation result every step frames | 2 |
nbPtsByHair | number of element by hair strand | 20 |
Links
Name | Description | Destination type name |
---|---|---|
context | Graph Node containing this object (or BaseContext::getDefault() if no graph is used) | BaseContext |
slaves | Sub-objects used internally by this object | BaseObject |
master | nullptr for regular objects, or master object for which this object is one sub-objects | BaseObject |
Examples
BlenderExporter.scn
<Node name="root" dt="0.01" gravity="0 -9.81 0">
<RequiredPlugin name="Sofa.Component.IO.Mesh"/> <!-- Needed to use components [MeshOBJLoader VTKExporter] -->
<RequiredPlugin name="Sofa.Component.StateContainer"/> <!-- Needed to use components [MechanicalObject] -->
<RequiredPlugin name="Sofa.Component.Topology.Container.Constant"/> <!-- Needed to use components [MeshTopology] -->
<RequiredPlugin name="Sofa.Component.Topology.Container.Dynamic"/> <!-- Needed to use components [TetrahedronSetTopologyContainer] -->
<DefaultAnimationLoop/>
<MeshTopology name="mesh" filename="mesh/dragon.obj" />
<MeshOBJLoader name="loader" filename="mesh/dragon.obj" />
<MechanicalObject src="@loader" template="Vec3" name="mecha" showObject="1" />
<TetrahedronSetTopologyContainer src="@loader" name="topo" />
<BlenderExporter name="ExportToBlender"
filename="example"
listening="true"
exportAtBegin="1"
exportAtEnd="1"
exportEveryNumberOfSteps="3"
printLog="1"
/>
</Node>
def createScene(root_node):
root = root_node.addChild('root', dt="0.01", gravity="0 -9.81 0")
root.addObject('RequiredPlugin', name="Sofa.Component.IO.Mesh")
root.addObject('RequiredPlugin', name="Sofa.Component.StateContainer")
root.addObject('RequiredPlugin', name="Sofa.Component.Topology.Container.Constant")
root.addObject('RequiredPlugin', name="Sofa.Component.Topology.Container.Dynamic")
root.addObject('DefaultAnimationLoop', )
root.addObject('MeshTopology', name="mesh", filename="mesh/dragon.obj")
root.addObject('MeshOBJLoader', name="loader", filename="mesh/dragon.obj")
root.addObject('MechanicalObject', src="@loader", template="Vec3", name="mecha", showObject="1")
root.addObject('TetrahedronSetTopologyContainer', src="@loader", name="topo")
root.addObject('BlenderExporter', name="ExportToBlender", filename="example", listening="true", exportAtBegin="1", exportAtEnd="1", exportEveryNumberOfSteps="3", printLog="1")