Giter Club home page Giter Club logo

msml's Introduction

                            _ 
                           | | Medical
 _ __ ___   ___  _ __ ___  | | Simulation
| '_ ` _ \ / __|| '_ ` _ \ | | Markup 
| | | | | |\__ \| | | | | || | Language
|_| |_| |_||___/|_| |_| |_||_| 
                               

  License: GPLv3
  Authors: Markus Stoll
           Stefan Suwelack
           Alexander Weigl
           Nicolai Schoch
  Version: 0.1alpha
     Date: 2014-02-20

Circle CI Coverage Status

About

The medical simulation markup language (MSML) is a flexible XML-based description for the biomechanical modeling workflow and finite-element based biomechanical models.

MSML helps you to create biomechanical models from tomographic data, export them to FE solvers and analyze the results. It is very flexible as already existing components (e.g. segmentation algorithms, meshers) can usually be integrated into the framework by providing a single additional XML-file.

The main library is written in Python, but we also provide a large collection of useful C++ operators (e.g. linear tetrahedral and quadratic tetrahedral meshing, mesh size reduction, error analysis etc.).

Additional information can also be found in the paper: S. Suwelack, M. Stoll, S. Schalck, N.Schoch, R. Dillmann, R. Bendl, V. Heuveline and S. Speidel, The Medical Simulation Markup Language (MSML) - Simplifying the biomechanical modeling workflow, Medicine Meets Virtual Reality (MMVR) 2014

If you like MSML and use it in academic work, please cite the paper above.

Mailing list

Join the mailing list: https://www.lists.kit.edu/wws/info/msml and post to [email protected]

Please feel free to ask if you have any problems installing, running or extending MSML.

Getting Started

Installation:

You need Python, Boost and the visualization toolkit (VTK) in order to run MSML. Additional components need Tetgen, CGAL and VCG. Please refer to our detailed installation guides for Linux and Windows in the Github-Wiki.

First steps

Run the src/msml.py file with the "exec -h" option for help.

MSML contains several simple scenarios to get you started quickly. Here are some examples

  1. In order to generate a volume mesh of the Stanford bunny using Tetgen and export the simulation to the SOFA framework type: ./msml.py exec -e sofa ../../msml/examples/BunnyExample/bunny.msml.xml
  2. In order to generate a volume mesh of the Stanford bunny using CGAL and export the simulation to the Abaqus FE solver type: ./msml.py exec -e abaqus ../../msml/examples/BunnyExample/bunnyCGAL.msml.xml

Please refer to the Github wiki for further examples.

Contribute

You have some code/algorithms that might be good fit for the MSML framework? Then we are looking forward to your contribution. Just issue a pull request or contact Stefan Suwelack ([email protected]).

Further questions?

Please contact Stefan Suwelack ([email protected])

msml's People

Contributors

wadoon avatar dschauba avatar areku avatar sbungartz avatar nicolaischoch avatar sarahgrimm avatar ssuwelack avatar uiccg avatar

Stargazers

Oliver Kopp avatar Elizabeth avatar Mehrdad Yousefi avatar xiong avatar  avatar  avatar Thomas Wollmann avatar  avatar  avatar  avatar Markus Stoll avatar  avatar  avatar

Watchers

Dwight Meglan avatar  avatar James Cloos avatar  avatar  avatar Markus Stoll avatar  avatar  avatar  avatar  avatar  avatar chensonghits avatar  avatar  avatar

Forkers

mopolino8

msml's Issues

CMAKE error when building VCG operators

I can't generate the build-folder (configuring works fine).

Errors are:
CMake Error at CMakeLists.txt:160 (ADD_LIBRARY):
Cannot find source file:

vtkCommon

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx
Call Stack (most recent call first):
VCGOperators/CMakeLists.txt:40 (MSML_LIBRARY)

CMake Error in VCGOperators/CMakeLists.txt:
Cannot find source file:

vtkFiltering

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx

CMake Error in VCGOperators/CMakeLists.txt:
Cannot find source file:

vtkImaging

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx

CMake Error in VCGOperators/CMakeLists.txt:
Cannot find source file:

vtkGraphics

Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
.hxx .in .txx

CGALi2vExample broken

exec msml_github\examples\CGALi2vExample\CGALExample.xml -e nsofa

Couldn't import dot_parser, loading of dot files will not be possible.
�[94mI-0: READING alphabet... �[37m(from frontend.py:214)�[0m
�[94mI-0: found 23 xml files in the alphabet search path �[37m(from frontend.py:218)�[0m
�[33mW-161: logical type segmentationImage requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh, quadraticTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type indexgroup requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+quadraticTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+quadraticTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type image requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type indexGroup requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type segmentationImage requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
LOADING: msml.ext.cgal.CreateVolumeMeshi2v
LOADING: msml.ext.cgal.CreateVolumeMeshs2v
LOADING: msml.ext.misc.ApplyDVF
LOADING: msml.ext.misc.ColorMeshPython
LOADING: msml.ext.misc.computeIndicesFromBoxROI
LOADING: msml.ext.misc.ConvertSTLToVTK
LOADING: msml.ext.misc.ConvertVTKMeshToAbaqusMeshString
LOADING: msml.ext.misc.ExtractAllSurfacesByMaterial
LOADING: msml.ext.misc.GenerateDVF
LOADING: msml.ext.misc.computeIndicesFromMaterialId
LOADING: msml.ext.misc.ExtractAllSurfacesByMaterial
LOADING: msml.ext.misc.VoxelizeSurfaceMesh
LOADING: msml.ext.tetgen.CreateVolumeMeshPython
�[31mE-182: OAConstraint: springMeshToFixed does not have an indices attribute defined �[37m(from alphabet.py:206)�[0m
�[31mE-182: OAConstraint: supportingMesh does not have an indices attribute defined �[37m(from alphabet.py:206)�[0m
�[33mW-161: logical type linearMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[94mI-6161: Need convert value of <var input_vol_mesh : <Sort: <class 'msml.sortdef.VTK'>, None> = 3Dircadb0101Labeled.vtk> �[37m(from base.py:446)�[0m
�[33mW-161: logical type linearMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[94mI-6161: Need convert value of <var input_image : <Sort: <class 'msml.sortdef.VTK'>, None> = 3Dircadb0101Labeled.vti> �[37m(from base.py:446)�[0m
Execute: C:\Projekte\msml_github\examples\CGALi2vExample\CGALExample.xml in <bound method path.dirname of path(u'C:\Projekte\msml_github\examples\CGALi2vExample\CGALExample.xml')>
�[94mI-6161: Need convert value of <var gen_001 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 30> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_002 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 12> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_003 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 3> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_004 : <Sort: <type 'bool'>, None> = false> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_005 : <Sort: <type 'bool'>, None> = false> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_006 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 12> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_007 : <Sort: <type 'bool'>, None> = false> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_008 : <Sort: <type 'bool'>, None> = false> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_009 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 20> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_010 : <Sort: <class 'msml.sortdef.MSMLListF'>, None> = -10 250 -10 300 300 300> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_011 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = points> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_012 : <Sort: <class 'msml.sortdef.MSMLListF'>, None> = -10 -10 -10 300 300 300> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_013 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = elements> �[37m(from base.py:446)�[0m
Traceback (most recent call last):
File "C:\Projekte\msml_github\src\msml.py", line 36, in
msml.frontend.main()
File "C:\Projekte\msml_github\src\msml\frontend.py", line 274, in main
app._exec()
File "C:\Projekte\msml_github\src\msml\frontend.py", line 260, in _exec
fn()
File "C:\Projekte\msml_github\src\msml\frontend.py", line 211, in execution
self.execute_msml_file(path(fil))
File "C:\Projekte\msml_github\src\msml\frontend.py", line 193, in execute_msml_file
self.execute_msml(mfile)
File "C:\Projekte\msml_github\src\msml\frontend.py", line 197, in execute_msml
self._prepare_msml_model(msml_file)
File "C:\Projekte\msml_github\src\msml\frontend.py", line 175, in _prepare_msml_model
mfile.validate(msml.env.CURRENT_ALPHABET)
File "C:\Projekte\msml_github\src\msml\model\base.py", line 178, in validate
call_method_list(self.scene, "validate")
File "C:\Projekte\msml_github\src\msml\model\base.py", line 743, in call_method_list
return map(lambda element: getattr(element, method)(_args), seq)
File "C:\Projekte\msml_github\src\msml\model\base.py", line 743, in
return map(lambda element: getattr(element, method)(_args), seq)
File "C:\Projekte\msml_github\src\msml\model\base.py", line 775, in validate
b = call_method_list(self.material, 'validate')
File "C:\Projekte\msml_github\src\msml\model\base.py", line 743, in call_method_list
return map(lambda element: getattr(element, method)(_args), seq)
File "C:\Projekte\msml_github\src\msml\model\base.py", line 743, in
return map(lambda element: getattr(element, method)(_args), seq)
File "C:\Projekte\msml_github\src\msml\model\base.py", line 1120, in validate
return a and b and all(map(lambda x: x.validate(), self))
File "C:\Projekte\msml_github\src\msml\model\base.py", line 1120, in
return a and b and all(map(lambda x: x.validate(), self))
File "C:\Projekte\msml_github\src\msml\model\base.py", line 877, in validate
self.tag, self.tag))
msml.exceptions.MSMLError: for linearElastic is no meta defined. The element linearElastic is not part of the givne MSML Alphabet

Adding new operators is complicated

Making a new operator available needs changes in many files (cpp, pythoncpp, msmlxml, python/ext). We should be able to remove 2 of this 4 steps.

Operator Extensions

Extend functionality of operator execution.

Currently I have to things in mind:

  • Generation of parameter values
    • e.g. currently all output filenames have to be given aus parameter. A default parameter does not work, if the same operator is invoked more than once. A facility for generating the default value of paramters would help.
  • Check if a task has to be run or an execution can be avoided.
    This can be determined by the timestamp of the output file, msml file and all input files. ( modified(output) > max(modified(msml-file), modified(input-files)).
    • This could be extend by memoizing for non-file operators.

Both could be done by annotations for operators, but this is very verbose and a boring task todo:

<operator ...>
...
  <annotation>
        <entry key="memoizing" value="True" />
        <entry key="memoizing.infile" value="mesh"/>
        <entry key="memoizing.outfile" value="coloredMesh"/>

        <entry key="filename-generator" value="True" />
        <entry key="filename-generator.for" value="coloredMesh" />
        <entry key="filename-generator.for.coloredMesh" value="{mesh}_colored.vtk" />
    </annotation>
...
</operator>

This allows a fine control of what is relevant for memoizing and can be disabled for operators seperatly.

Or the Executor saves on the first run information of input/paramters and generated outputs.

Default parameters and loadable parameters

It could be useful to define a set of default parameters for the operators for one msml file.

e.g:

<msml default-parameters-file="params.yaml" > 

</msml>
# params.yaml
stl2vtk:
  optimize:  True
tetgen:
  crit: 0.3

The same thing could be useful for msml variables. You can see your msml file as a routine with a set of input variables (file names, ...) and define different execution sets.

<msml ...>
  <variables load-file="example-set-1.yaml">
     <!-- define variables here -->
  </variables>
</msml>

Can't import MiscMeshOperatorsPython

I did a clean re-compile, problem persists. Other operators work fine.

Here is an excerpt of the error message:
MSMLUnknownModuleWarning: Could not import MiscMeshOperatorsPython. This is a C++-Modul. Have you successfully compiled and installed it? Error is /local_home/suwelack/workspace/msmlGitBuild/bin/MiscMeshOperatorsPython.so: undefined symbol: _ZN4MSML23PostProcessingOperators17GenerateDVFPythonEPKcS2_S2_b,

new variables for environment.solver

   <solver linearSolver="CG" preconditioner="SGAUSS_SEIDEL" processingUnit="CPU"
                timeIntegration="Newmark" dampingRayleighRatioMass="0.0" dampingRayleighRatioStiffness="0.2"/> <!-- NEW -->

Variables: preconditioner, dampingRayleighRatioMass, dampingRayleighRatioStiffness

=> Impact XSD-Scheme, msml.xml (parsing solver), msml.model.base.Environment.Solver

from Nicolai's hiflow example

IndexGroup in material region should be an attribute

<region id="bunnyMaterial">
                    <indexgroup indices="${bodyToIndexGroup}"/> 
...
</region>

Should become this:

<region id="bunnyMaterial"  indices="${bodyToIndexGroup}">
   ...
</region>

Pros: No multiple indexgroup definitions, better for XSD validation
Cons: Indexgroup has no id (Addressing via material region bunnyMaterial.indices possible)

=> Impact nearly every exporter and example!

examples.PythonExamples.color-example.py error

Traceback (most recent call last):
File "C:\Projekte\msml_github\examples\PythonExamples\color-example.py", line 113, in
name == "main" and main()
File "C:\Projekte\msml_github\examples\PythonExamples\color-example.py", line 96, in main
msml.env.current_alphabet = msml.frontend.alphabet(options)
AttributeError: 'module' object has no attribute 'alphabet'

Output dir parameter does not work for operators

specifying the outpur directory does only work for simulation files not for operator results

e.g.:

exec msml_github\examples\BunnyExample\bunny.msml.xml -e nsofa -o bunnyout

does create mesh files in msml_github\examples\BunnyExample and simulation files in msml_github\examples\BunnyExample\bunnyout

materials for abaqus

Material properties should be taken from msml.xml file. At the moment these values are hard coded in abaqus exporter.

Error running liver example

Running
python msml.py exec -e nsofa ../../msml/examples/LiverExample/liverLinear.msml.xml

yields:
Traceback (most recent call last):
File "msml.py", line 36, in
msml.frontend.main()
File "/org/share/home/song/PycharmProjects/msml/src/msml/frontend.py", line 299, in main
app._exec()
File "/org/share/home/song/PycharmProjects/msml/src/msml/frontend.py", line 285, in _exec
fn()
File "/org/share/home/song/PycharmProjects/msml/src/msml/frontend.py", line 228, in execution
self.execute_msml_file(path(fil))
File "/org/share/home/song/PycharmProjects/msml/src/msml/frontend.py", line 210, in execute_msml_file
return self.execute_msml(mfile)
File "/org/share/home/song/PycharmProjects/msml/src/msml/frontend.py", line 222, in execute_msml
mem = exe.run()
File "/org/share/home/song/PycharmProjects/msml/src/msml/run/init.py", line 149, in run
self._execute_exporter(node)
File "/org/share/home/song/PycharmProjects/msml/src/msml/run/init.py", line 161, in _execute_exporter
self._exporter.render()
File "/org/share/home/song/PycharmProjects/msml/src/msml/exporter/sofanew.py", line 84, in render
rootelement = self.write_scn()
File "/org/share/home/song/PycharmProjects/msml/src/msml/exporter/sofanew.py", line 121, in write_scn
self.createMeshTopology(objectNode, msmlObject)
File "/org/share/home/song/PycharmProjects/msml/src/msml/exporter/sofanew.py", line 140, in createMeshTopology
theFilename = self.working_dir / self.get_value_from_memory(msmlObject.mesh)
File "/org/share/home/song/PycharmProjects/msml/src/msml/exporter/base.py", line 269, in get_value_from_memory
return self.get_value_from_memory(self.get_input_mesh_name(reference))
File "/org/share/home/song/PycharmProjects/msml/src/msml/exporter/base.py", line 267, in get_value_from_memory
return self.get_value_from_memory(self.arguments[reference])
File "/org/share/home/song/PycharmProjects/msml/src/msml/exporter/base.py", line 277, in get_value_from_memory
return self._memory.lookup(reference)
File "/org/share/home/song/PycharmProjects/msml/src/msml/run/memory.py", line 84, in lookup
return self[reference.linked_from.task.id][reference.linked_from.name]
AttributeError: 'MSMLVariable' object has no attribute 'id'

Lung examples does not work

[3]    6098 segmentation fault (core dumped)  python run_examples.py

Host: i61p138
python run_examples.py
Example 5 (Lungs)

Execute: /org/share/home/weigl/workspace/msml/examples/CGALi2vLungs/Lungs_new.xml in <bound method path.dirname of path(u'/org/share/home/weigl/workspace/msml/examples/CGALi2vLungs/Lungs_new.xml')>
--Executing operator of task {Task VolumeMesher (mesherCGALi2v)} with arguments {'cell_size': '18', 'facet_distance': '3', 'cell_radius_edge_ratio': '3', 'image': 'case1_T00_labled.vti', 'odt': 'false', 'pertube': 'false', 'facet_size': '12', 'meshFilename': 'case1_T00_tetmesh.vtk', 'lloyd': 'false', 'exude': 'false', 'facet_angle': '20'}


ERROR: In /local_home/mediassist/PacketManagement/BuildEnvironments/VTK/Source/VTK5.10.1/IO/vtkXMLGenericDataObjectReader.cxx, line 140
vtkXMLGenericDataObjectReader (0x15bf750): could not load case1_T00_labled.vti

ERROR: In /local_home/mediassist/PacketManagement/BuildEnvironments/VTK/Source/VTK5.10.1/Filtering/vtkExecutive.cxx, line 756
vtkStreamingDemandDrivenPipeline (0x159bfc0): Algorithm vtkXMLGenericDataObjectReader(0x15bf750) returned failure for request: vtkInformation (0x15bcdb0)
  Debug: Off
  Modified Time: 22
  Reference Count: 1
  Registered Events: (none)
  Request: REQUEST_DATA_OBJECT
  ALGORITHM_AFTER_FORWARD: 1
  FORWARD_DIRECTION: 0



ERROR: In /local_home/mediassist/PacketManagement/BuildEnvironments/VTK/Source/VTK5.10.1/IO/vtkXMLGenericDataObjectReader.cxx, line 140
vtkXMLGenericDataObjectReader (0x15bf750): could not load case1_T00_labled.vti

ERROR: In /local_home/mediassist/PacketManagement/BuildEnvironments/VTK/Source/VTK5.10.1/Filtering/vtkExecutive.cxx, line 756
vtkStreamingDemandDrivenPipeline (0x159bfc0): Algorithm vtkXMLGenericDataObjectReader(0x15bf750) returned failure for request: vtkInformation (0x15bcdb0)
  Debug: Off
  Modified Time: 22
  Reference Count: 1
  Registered Events: (none)
  Request: REQUEST_DATA_OBJECT
  ALGORITHM_AFTER_FORWARD: 1
  FORWARD_DIRECTION: 0

Operator build broken

Operators build broken: fatal error LNK1104: Datei "libboost_filesystem-vc100-mt-1_55.lib" kann nicht geöffnet werden.

Seems to a CMake issue. I am working on it...

1>------ Erstellen gestartet: Projekt: ZERO_CHECK, Konfiguration: Release x64 ------
2>------ Erstellen gestartet: Projekt: _BasePython, Konfiguration: Release x64 ------
3>------ Erstellen gestartet: Projekt: _MiscMeshOperatorsPython, Konfiguration: Release x64 ------
4>------ Erstellen gestartet: Projekt: TetgenMesher, Konfiguration: Release x64 ------
5>------ Erstellen gestartet: Projekt: ColorMesh, Konfiguration: Release x64 ------
6>------ Erstellen gestartet: Projekt: ConvertVTKToSTL, Konfiguration: Release x64 ------
2> basePYTHON_wrap.cxx
6>LINK : fatal error LNK1104: Datei "libboost_program_options-vc100-mt-1_55.lib" kann nicht geöffnet werden.
4>LINK : fatal error LNK1104: Datei "libboost_program_options-vc100-mt-1_55.lib" kann nicht geöffnet werden.
5>LINK : fatal error LNK1104: Datei "libboost_program_options-vc100-mt-1_55.lib" kann nicht geöffnet werden.
2>basePYTHON_wrap.cxx(3074): error C2106: '=': Linker Operand muss ein L-Wert sein
2>basePYTHON_wrap.cxx(3079): error C2106: '=': Linker Operand muss ein L-Wert sein
3>LINK : fatal error LNK1104: Datei "libboost_filesystem-vc100-mt-1_55.lib" kann nicht geöffnet werden.
7>------ Erstellen übersprungen: Projekt: ALL_BUILD, Konfiguration: Release x64 ------
7>Für diese Projektmappenkonfiguration wurde kein zu erstellendes Projekt ausgewählt.
========== Erstellen: 1 erfolgreich, Fehler bei 5, 6 aktuell, 1 übersprungen ==========

sofa error WriteState

Sofa reports following error:

WARNING[unnamed(WriteState)]: Error creating compressed file /usr/share/sofa/share/applications/projects/sofaBatch/simulation/bunny.msml.scn.simu_0_dofs_mstate.txt.gz

Remove struct support for operator cascading

I would like to get rid of the struct argument feature.
In the current msml xsd definition it is allowed to extend operator arguments with sub
fields:

<input>
  <struct name="record">
      <arg name="mesh1" type="..." format =".."/>
      <arg name="mesh2" type="..." format =".."/>
      <arg name="mesh3" type="..." format =".."/>
      <arg name="mesh3" type="..." format =".."/>
      <arg name="mesh4" type="..." format =".."/>
  </struct>
</input>

and you can call this operator with something like this (currently not implemented):

<name ...>
  <record mesh1="" mesh2="" ...>
</name>

I do not find this useful anymore and would prefer to allow the cascading of operators.

<top-operator id="" ...parameters...>
   <sub-operator1 > <!-- input slot 1 -->
   <sub-operator2 > <!-- input slot 2 -->
</top-operator>
  • We do not need specify ids for sub-operators (except we want the output in the global namespace).
  • We are using the hierarchy of xml to express the Workflow-Pipeline

CGALi2vLungs example broken

exec msml_github\examples\CGALi2vLungs\Lungs_new.xml -e nsofa

Couldn't import dot_parser, loading of dot files will not be possible.
�[94mI-0: READING alphabet... �[37m(from frontend.py:214)�[0m
�[94mI-0: found 23 xml files in the alphabet search path �[37m(from frontend.py:218)�[0m
�[33mW-161: logical type segmentationImage requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh, quadraticTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type indexgroup requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+quadraticTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+quadraticTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type image requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type indexGroup requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type segmentationImage requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
LOADING: msml.ext.cgal.CreateVolumeMeshi2v
LOADING: msml.ext.cgal.CreateVolumeMeshs2v
LOADING: msml.ext.misc.ApplyDVF
LOADING: msml.ext.misc.ColorMeshPython
LOADING: msml.ext.misc.computeIndicesFromBoxROI
LOADING: msml.ext.misc.ConvertSTLToVTK
LOADING: msml.ext.misc.ConvertVTKMeshToAbaqusMeshString
LOADING: msml.ext.misc.ExtractAllSurfacesByMaterial
LOADING: msml.ext.misc.GenerateDVF
LOADING: msml.ext.misc.computeIndicesFromMaterialId
LOADING: msml.ext.misc.ExtractAllSurfacesByMaterial
LOADING: msml.ext.misc.VoxelizeSurfaceMesh
LOADING: msml.ext.tetgen.CreateVolumeMeshPython
�[31mE-182: OAConstraint: springMeshToFixed does not have an indices attribute defined �[37m(from alphabet.py:206)�[0m
�[31mE-182: OAConstraint: supportingMesh does not have an indices attribute defined �[37m(from alphabet.py:206)�[0m
�[33mW-161: logical type segmentationImage requested, but does not exist �[37m(from sorts.py:99)�[0m
�[94mI-6161: Need convert value of <var segementation_voxel_image : <Sort: <class 'msml.sortdef.VTK'>, None> = case1_T00_labled.vti> �[37m(from base.py:446)�[0m
�[33mW-161: logical type linearMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[94mI-6161: Need convert value of <var tet_only_mesh : <Sort: <class 'msml.sortdef.VTK'>, None> = case1_T00_tetmesh.vtk> �[37m(from base.py:446)�[0m
�[33mW-161: logical type linearMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[94mI-6161: Need convert value of <var combo_mesh : <Sort: <class 'msml.sortdef.VTK'>, None> = case1_T00_mesh_combo.vtk> �[37m(from base.py:446)�[0m
Execute: C:\Projekte\msml_github\examples\CGALi2vLungs\Lungs_new.xml in <bound method path.dirname of path(u'C:\Projekte\msml_github\examples\CGALi2vLungs\Lungs_new.xml')>
�[35mF-666: Try to initialize a variable without physical type and value �[37m(from base.py:441)�[0m
Traceback (most recent call last):
File "C:\Projekte\msml_github\src\msml.py", line 36, in
msml.frontend.main()
File "C:\Projekte\msml_github\src\msml\frontend.py", line 274, in main
app._exec()
File "C:\Projekte\msml_github\src\msml\frontend.py", line 260, in _exec
fn()
File "C:\Projekte\msml_github\src\msml\frontend.py", line 211, in execution
self.execute_msml_file(path(fil))
File "C:\Projekte\msml_github\src\msml\frontend.py", line 193, in execute_msml_file
self.execute_msml(mfile)
File "C:\Projekte\msml_github\src\msml\frontend.py", line 197, in execute_msml
self._prepare_msml_model(msml_file)
File "C:\Projekte\msml_github\src\msml\frontend.py", line 175, in _prepare_msml_model
mfile.validate(msml.env.CURRENT_ALPHABET)
File "C:\Projekte\msml_github\src\msml\model\base.py", line 177, in validate
self.workflow.link(alphabet, self)
File "C:\Projekte\msml_github\src\msml\model\base.py", line 293, in link
t.link(alphabet, msmlfile)
File "C:\Projekte\msml_github\src\msml\model\base.py", line 643, in link
a = msmlfile.lookup(value)
File "C:\Projekte\msml_github\src\msml\model\base.py", line 224, in lookup
looked_up = (lookup_task(), lookup_var(), lookup_exporter())
File "C:\Projekte\msml_github\src\msml\model\base.py", line 198, in lookup_exporter
return self._exporter.lookup(ref, outarg)
File "C:\Projekte\msml_github\src\msml\exporter\base.py", line 73, in lookup
return self, ExporterOutputVariable(obj)
File "C:\Projekte\msml_github\src\msml\model\base.py", line 442, in init
raise MSMLError(s)
msml.exceptions.MSMLError: Try to initialize a variable without physical type and value

CGALi2vLungs example broken (2)

CGALi2vLungs example was broken. First fixes: 479d7f3

A problem with generateDVF operator remains. The problems seems to be that the generateDVF input parameter is passed as path-type e.g. "path(u'disp50.vtu')". Changing "physical='VTK'" to "physical='string'" for in share\alphabet\msml_operators\misc\generateDVF.xml would fix the problem....

msml_github/src/msml.py exec C:\Projekte\msml_github\examples\CGALi2vLungs\Lungs_new.xml -e nsofa

Couldn't import dot_parser, loading of dot files will not be possible.
�[94mI-0: READING alphabet... �[37m(from frontend.py:214)�[0m
�[94mI-0: found 22 xml files in the alphabet search path �[37m(from frontend.py:218)�[0m
�[33mW-161: logical type segmentationImage requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh, quadraticTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type indexgroup requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+quadraticTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+quadraticTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh+triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type image requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type linearTetMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type indexGroup requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type segmentationImage requested, but does not exist �[37m(from sorts.py:99)�[0m
�[33mW-161: logical type triangularMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
LOADING: msml.ext.cgal.CreateVolumeMeshi2v
LOADING: msml.ext.cgal.CreateVolumeMeshs2v
LOADING: msml.ext.misc.ApplyDVF
LOADING: msml.ext.misc.ColorMeshPython
LOADING: msml.ext.misc.computeIndicesFromBoxROI
LOADING: msml.ext.misc.ConvertSTLToVTK
LOADING: msml.ext.misc.ConvertVTKMeshToAbaqusMeshString
LOADING: msml.ext.misc.ExtractAllSurfacesByMaterial
LOADING: msml.ext.misc.GenerateDVF
LOADING: msml.ext.misc.computeIndicesFromMaterialId
LOADING: msml.ext.misc.VoxelizeSurfaceMesh
LOADING: msml.ext.tetgen.CreateVolumeMeshPython
�[31mE-182: OAConstraint: springMeshToFixed does not have an indices attribute defined �[37m(from alphabet.py:206)�[0m
�[31mE-182: OAConstraint: supportingMesh does not have an indices attribute defined �[37m(from alphabet.py:206)�[0m
�[33mW-161: logical type segmentationImage requested, but does not exist �[37m(from sorts.py:99)�[0m
�[94mI-6161: Need convert value of <var segementation_voxel_image : <Sort: <class 'msml.sortdef.VTK'>, None> = case1_T00_labled.vti> �[37m(from base.py:446)�[0m
�[33mW-161: logical type linearMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[94mI-6161: Need convert value of <var tet_only_mesh : <Sort: <class 'msml.sortdef.VTK'>, None> = case1_T00_tetmesh.vtk> �[37m(from base.py:446)�[0m
�[33mW-161: logical type linearMesh requested, but does not exist �[37m(from sorts.py:99)�[0m
�[94mI-6161: Need convert value of <var combo_mesh : <Sort: <class 'msml.sortdef.VTK'>, None> = case1_T00_mesh_combo.vtk> �[37m(from base.py:446)�[0m
Execute: C:\Projekte\msml_github\examples\CGALi2vLungs\Lungs_new.xml in <bound method path.dirname of path(u'C:\Projekte\msml_github\examples\CGALi2vLungs\Lungs_new.xml')>
�[94mI-6161: Need convert value of <var gen_001 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 18> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_002 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 3> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_003 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 3> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_004 : <Sort: <type 'bool'>, None> = false> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_005 : <Sort: <type 'bool'>, None> = false> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_006 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 12> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_007 : <Sort: <type 'bool'>, None> = false> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_008 : <Sort: <type 'bool'>, None> = false> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_009 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 20> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_010 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 100> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_011 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = elements> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_012 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 50> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_013 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = elements> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_014 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 75> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_015 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = faces> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_016 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 75> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_017 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = elements> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_018 : <Sort: <type 'bool'>, None> = false> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_019 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = dvf01.vtk> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_020 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 25> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_021 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = elements> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_022 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 50> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_023 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = faces> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_024 : <Sort: <type 'bool'>, None> = false> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_025 : <Sort: <class 'msml.sortdef.MSMLListF'>, None> = -10 190 -10 1000 1000 1000> �[37m(from base.py:446)�[0m
�[94mI-6161: Need convert value of <var gen_026 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = points> �[37m(from base.py:446)�[0m
�[35mF-0: Parameter name of Definiton mass is not specified in msml file. �[37m(from base.py:893)�[0m
�[35mF-0: Parameter name of Definiton mass is not specified in msml file. �[37m(from base.py:893)�[0m
�[35mF-0: Parameter name of Definiton mass is not specified in msml file. �[37m(from base.py:893)�[0m
�[35mF-0: Parameter name of Definiton mass is not specified in msml file. �[37m(from base.py:893)�[0m
�[31mE-0: Parameter forStep of Element fixedConstraint is not specified in definition. �[37m(from base.py:887)�[0m
�[31mE-0: Parameter name of Element fixedConstraint is not specified in definition. �[37m(from base.py:887)�[0m
�[35mF-0: Parameter time of Definiton fixedConstraint is not specified in msml file. �[37m(from base.py:893)�[0m
�[31mE-0: Parameter name of Element surfacePressure is not specified in definition. �[37m(from base.py:887)�[0m
�[35mF-0: Parameter time of Definiton surfacePressure is not specified in msml file. �[37m(from base.py:893)�[0m
�[31mE-0: Parameter name of Element surfacePressure is not specified in definition. �[37m(from base.py:887)�[0m
�[35mF-0: Parameter time of Definiton surfacePressure is not specified in msml file. �[37m(from base.py:893)�[0m
�[90mD-1562: Reference <Reference+: <var gen_003 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 3.0> -> <Slot cell_radius_edge_ratio: <Sort: <class 'msml.sortdef.MSMLFloat'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_021 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = elements> -> <Slot type: <Sort: <class 'msml.sortdef.MSMLString'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_004 : <Sort: <type 'bool'>, None> = False> -> <Slot odt: <Sort: <type 'bool'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot indices: <Sort: <class 'msml.sortdef.MSMLListI'>, None>> -> <Slot mr_patMaterial04_indexgroup: <Sort: <class 'msml.sortdef.MSMLListI'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var disp : <Sort: <class 'msml.sortdef.VTK'>, None> = None> -> <Slot RefMesh: <Sort: <class 'msml.sortdef.VTK'>, <class 'msml.sortdef.Mesh'>>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var disp : <Sort: <class 'msml.sortdef.VTK'>, None> = None> -> <Slot data: <Sort: <class 'msml.sortdef.VTK'>, <class 'msml.sortdef.Mesh'>>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_022 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 50> -> <Slot num: <Sort: <class 'msml.sortdef.MSMLInt'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_005 : <Sort: <type 'bool'>, None> = False> -> <Slot pertube: <Sort: <type 'bool'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_006 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 12.0> -> <Slot facet_size: <Sort: <class 'msml.sortdef.MSMLFloat'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot meshOut: <Sort: <class 'msml.sortdef.VTK'>, None>> -> <Slot mesh: <Sort: <class 'msml.sortdef.VTK'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot meshOut: <Sort: <class 'msml.sortdef.VTK'>, None>> -> <Slot mesh: <Sort: <class 'msml.sortdef.VTK'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot meshOut: <Sort: <class 'msml.sortdef.VTK'>, None>> -> <Slot mesh: <Sort: <class 'msml.sortdef.VTK'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot meshOut: <Sort: <class 'msml.sortdef.VTK'>, None>> -> <Slot mesh: <Sort: <class 'msml.sortdef.VTK'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot meshOut: <Sort: <class 'msml.sortdef.VTK'>, None>> -> <Slot DeformedMesh: <Sort: <class 'msml.sortdef.VTK'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot meshOut: <Sort: <class 'msml.sortdef.VTK'>, None>> -> <Slot mesh: <Sort: <class 'msml.sortdef.VTK'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot meshOut: <Sort: <class 'msml.sortdef.VTK'>, None>> -> <Slot mesh: <Sort: <class 'msml.sortdef.VTK'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot meshOut: <Sort: <class 'msml.sortdef.VTK'>, None>> -> <Slot mesh: <Sort: <class 'msml.sortdef.VTK'>, <class 'msml.sortdef.Mesh'>>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot meshOut: <Sort: <class 'msml.sortdef.VTK'>, None>> -> <Slot mesh: <Sort: <class 'msml.sortdef.VTK'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_024 : <Sort: <type 'bool'>, None> = False> -> <Slot cut: <Sort: <type 'bool'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_007 : <Sort: <type 'bool'>, None> = False> -> <Slot lloyd: <Sort: <type 'bool'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[94mI-1561: Reference <Reference+: <var combo_mesh : <Sort: <class 'msml.sortdef.VTK'>, None> = case1_T00_mesh_combo.vtk> -> <Slot meshOutFilename: <Sort: <class 'msml.sortdef.MSMLString'>, None>>> is invalid. Try to implicit conversion �[37m(from run__init__.py:245)�[0m
�[90mD-1562: Reference <Reference+: <var gen_025 : <Sort: <class 'msml.sortdef.MSMLListF'>, None> = [-10.0, 190.0, -10.0, 1000.0, 1000.0, 1000.0]> -> <Slot box: <Sort: <class 'msml.sortdef.MSMLListF'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_008 : <Sort: <type 'bool'>, None> = False> -> <Slot exude: <Sort: <type 'bool'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_026 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = points> -> <Slot select: <Sort: <class 'msml.sortdef.MSMLString'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_009 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 20.0> -> <Slot facet_angle: <Sort: <class 'msml.sortdef.MSMLFloat'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot mesh: <Sort: <class 'msml.sortdef.VTK'>, None>> -> <Slot meshIn: <Sort: <class 'msml.sortdef.VTK'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_010 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 100> -> <Slot num: <Sort: <class 'msml.sortdef.MSMLInt'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot indices: <Sort: <class 'msml.sortdef.MSMLListI'>, None>> -> <Slot mr_patMaterial01_indexgroup: <Sort: <class 'msml.sortdef.MSMLListI'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_011 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = elements> -> <Slot type: <Sort: <class 'msml.sortdef.MSMLString'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_023 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = faces> -> <Slot type: <Sort: <class 'msml.sortdef.MSMLString'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_012 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 50> -> <Slot num: <Sort: <class 'msml.sortdef.MSMLInt'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_013 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = elements> -> <Slot type: <Sort: <class 'msml.sortdef.MSMLString'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_014 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 75> -> <Slot num: <Sort: <class 'msml.sortdef.MSMLInt'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_015 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = faces> -> <Slot type: <Sort: <class 'msml.sortdef.MSMLString'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[94mI-1561: Reference <Reference+: <var segementation_voxel_image : <Sort: <class 'msml.sortdef.VTK'>, None> = case1_T00_labled.vti> -> <Slot image: <Sort: <class 'msml.sortdef.VTI'>, None>>> is invalid. Try to implicit conversion �[37m(from run__init__.py:245)�[0m
�[90mD-1562: Reference <Reference+: <var gen_016 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 75> -> <Slot num: <Sort: <class 'msml.sortdef.MSMLInt'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_017 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = elements> -> <Slot type: <Sort: <class 'msml.sortdef.MSMLString'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot indices: <Sort: <class 'msml.sortdef.MSMLListI'>, None>> -> <Slot mr_patMaterial02_indexgroup: <Sort: <class 'msml.sortdef.MSMLListI'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_018 : <Sort: <type 'bool'>, None> = False> -> <Slot multipleReferenceGrids: <Sort: <type 'bool'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_001 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 18.0> -> <Slot cell_size: <Sort: <class 'msml.sortdef.MSMLFloat'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[94mI-1561: Reference <Reference+: <var tet_only_mesh : <Sort: <class 'msml.sortdef.VTK'>, None> = case1_T00_tetmesh.vtk> -> <Slot meshFilename: <Sort: <class 'msml.sortdef.MSMLString'>, None>>> is invalid. Try to implicit conversion �[37m(from run__init__.py:245)�[0m
�[90mD-1562: Reference <Reference+: <var gen_019 : <Sort: <class 'msml.sortdef.MSMLString'>, None> = dvf01.vtk> -> <Slot DVFFilename: <Sort: <class 'msml.sortdef.MSMLString'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_002 : <Sort: <class 'msml.sortdef.MSMLFloat'>, None> = 3.0> -> <Slot facet_distance: <Sort: <class 'msml.sortdef.MSMLFloat'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <var gen_020 : <Sort: <class 'msml.sortdef.MSMLInt'>, None> = 25> -> <Slot num: <Sort: <class 'msml.sortdef.MSMLInt'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[90mD-1562: Reference <Reference+: <Slot indices: <Sort: <class 'msml.sortdef.MSMLListI'>, None>> -> <Slot mr_patMaterial03_indexgroup: <Sort: <class 'msml.sortdef.MSMLListI'>, None>>> is valid �[37m(from run__init__.py:271)�[0m
�[94mI-001: Executing operator of task {Task combo_mesh (converter_VTK_MSMLString)} with arguments {'i': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: .> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk'] �[37m(from alphabet.py:437)�[0m
�[94mI-002: --Executing operator of task <PythonOperator: .> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task combo_mesh (converter_VTK_MSMLString)} done �[37m(from run__init__.py:172)�[0m
�[94mI-001: Executing operator of task {Task tet_only_mesh (converter_VTK_MSMLString)} with arguments {'i': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_tetmesh.vtk'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: .> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_tetmesh.vtk'] �[37m(from alphabet.py:437)�[0m
�[94mI-002: --Executing operator of task <PythonOperator: .> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task tet_only_mesh (converter_VTK_MSMLString)} done �[37m(from run__init__.py:172)�[0m
�[94mI-001: Executing operator of task {Task segementation_voxel_image (converter_VTK_VTI)} with arguments {'i': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_labled.vti'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: .> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_labled.vti'] �[37m(from alphabet.py:437)�[0m
�[94mI-002: --Executing operator of task <PythonOperator: .> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task segementation_voxel_image (converter_VTK_VTI)} done �[37m(from run__init__.py:172)�[0m
�[94mI-001: Executing operator of task {Task VolumeMesher (mesherCGALi2v)} with arguments {'cell_size': 18.0, 'facet_distance': 3.0, 'cell_radius_edge_ratio': 3.0, 'image': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_labled.vti', 'odt': False, 'pertube': False, 'facet_size': 12.0, 'meshFilename': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_tetmesh.vtk', 'lloyd': False, 'exude': False, 'facet_angle': 20.0} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: msml.ext.cgal.CreateVolumeMeshi2v> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_labled.vti', 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_tetmesh.vtk', 20.0, 12.0, 3.0, 3.0, 18.0, False, False, False, False] �[37m(from alphabet.py:437)�[0m
GetNumberOfTuples()=6160384
image->size()=6160384
wdim=1
�[94mI-002: --Executing operator of task <PythonOperator: msml.ext.cgal.CreateVolumeMeshi2v> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task VolumeMesher (mesherCGALi2v)} done �[37m(from run__init__.py:172)�[0m
�[94mI-001: Executing operator of task {Task surfaceExtraction (ExtractAllSurfacesByMaterial)} with arguments {'meshOutFilename': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', 'cut': False, 'meshIn': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_tetmesh.vtk'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: msml.ext.misc.ExtractAllSurfacesByMaterial> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_tetmesh.vtk', 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', False] �[37m(from alphabet.py:437)�[0m
There are 27581 cells before thresholding.
5976 cells of MaterialId=25 found.
There are 5976 cells after thresholding with 25
CellType is 5
2499 cells of MaterialId=50 found.
There are 2499 cells after thresholding with 50
CellType is 5
2868 cells of MaterialId=75 found.
There are 2868 cells after thresholding with 75
CellType is 5
16238 cells of MaterialId=100 found.
There are 16238 cells after thresholding with 100
�[94mI-002: --Executing operator of task <PythonOperator: msml.ext.misc.ExtractAllSurfacesByMaterial> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task surfaceExtraction (ExtractAllSurfacesByMaterial)} done �[37m(from run__init__.py:172)�[0m
�[94mI-001: Executing operator of task {Task bottomToIndexGroup (boxROIToIndexOperator)} with arguments {'box': [-10.0, 190.0, -10.0, 1000.0, 1000.0, 1000.0], 'mesh': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', 'select': 'points'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromBoxROI> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', [-10.0, 190.0, -10.0, 1000.0, 1000.0, 1000.0], 'points'] �[37m(from alphabet.py:437)�[0m
CellType is 5
443 points found in box�[94mI-002: --Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromBoxROI> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task bottomToIndexGroup (boxROIToIndexOperator)} done �[37m(from run__init__.py:172)�[0m
�[94mI-001: Executing operator of task {Task bonesToIndexGroup (materialId-to-index)} with arguments {'num': 25, 'type': 'elements', 'mesh': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', 25, 'elements'] �[37m(from alphabet.py:437)�[0m
�[94mI-002: --Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task bonesToIndexGroup (materialId-to-index)} done �[37m(from run__init__.py:172)�[0m
�[94mI-001: Executing operator of task {Task lung2facesToIndexGroup (materialId-to-index)} with arguments {'num': 75, 'type': 'faces', 'mesh': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', 75, 'faces'] �[37m(from alphabet.py:437)�[0m
�[94mI-002: --Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task lung2facesToIndexGroup (materialId-to-index)} done �[37m(from run__init__.py:172)�[0m
�[94mI-001: Executing operator of task {Task lung1facesToIndexGroup (materialId-to-index)} with arguments {'num': 50, 'type': 'faces', 'mesh': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', 50, 'faces'] �[37m(from alphabet.py:437)�[0m
�[94mI-002: --Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task lung1facesToIndexGroup (materialId-to-index)} done �[37m(from run__init__.py:172)�[0m
�[94mI-001: Executing operator of task {Task bodyToIndexGroup (materialId-to-index)} with arguments {'num': 100, 'type': 'elements', 'mesh': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', 100, 'elements'] �[37m(from alphabet.py:437)�[0m
�[94mI-002: --Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task bodyToIndexGroup (materialId-to-index)} done �[37m(from run__init__.py:172)�[0m
�[94mI-001: Executing operator of task {Task lung2ToIndexGroup (materialId-to-index)} with arguments {'num': 75, 'type': 'elements', 'mesh': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', 75, 'elements'] �[37m(from alphabet.py:437)�[0m
�[94mI-002: --Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task lung2ToIndexGroup (materialId-to-index)} done �[37m(from run__init__.py:172)�[0m
�[94mI-001: Executing operator of task {Task lung1ToIndexGroup (materialId-to-index)} with arguments {'num': 50, 'type': 'elements', 'mesh': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> with arguments ['C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', 50, 'elements'] �[37m(from alphabet.py:437)�[0m
�[94mI-002: --Executing operator of task <PythonOperator: msml.ext.misc.computeIndicesFromMaterialId> done �[37m(from alphabet.py:439)�[0m
�[94mI-002: --Executing operator of task {Task lung1ToIndexGroup (materialId-to-index)} done �[37m(from run__init__.py:172)�[0m
Converting to sofa scn
Lungs_new.scn
�[94mI-252: Executing C:/Projekte/SOFA/Sofa/bin/SofaBatch.exe -l SOFACuda Lungs_new.scn_SOFA_batch.txt �[37m(from sofanew.py:100)�[0m
�[94mI-616: Working directory: C:\Projekte\msml_github\examples\CGALi2vLungs �[37m(from sofanew.py:101)�[0m

***SIMULATION (.scn:C:\Projekte\msml_github\examples\CGALi2vLungs\Lungs_new.scn, #steps:100, .simu:Lungs_new.scn.simu)
Found 5116 float points
LNG: 0
Found 48167 cells
LNG: 0
LNG: 0
LNG: 0
LNG: 0
Data structure: SCALARS
Read cell data: 48167
LNG: 1
CUDA: 4 device(s) found.
CUDA: 0 : "Tesla C2075", 5375 MB, 112 cores at 1.147 GHz, revision 2.0
CUDA: 1 : "Tesla C2075", 5375 MB, 112 cores at 1.147 GHz, revision 2.0
CUDA: 2 : "Tesla C2075", 5375 MB, 112 cores at 1.147 GHz, revision 2.0
CUDA: 3 : "Tesla C2075", 5375 MB, 112 cores at 1.147 GHz, revision 2.0
CUDA: Using device 0 : "Tesla C2075"
WARNING[root(GNode)]: Object type "DiagonalMass" creation Failed
LOAD ERROR: Node initialization failed.
WARNING[unnamed(WriteState)]: Error creating compressed file C:/Projekte/SOFA/Sofa//applications/projects/sofaBatch/simulation/Lungs_new.scn.simu_0_dofs_mstate.txt.gz
Computing 100 iterations.
100 iterations done in 22.9418 s ( 4.35886 FPS).
100 iterations done in 22.9418 s ( 4.35886 FPS).
C:/Projekte/SOFA/Sofa//applications/projects/sofaBatch/simulation/Lungs_new.scn.simu.simu file error
�[94mI-001: Executing operator of task {Task dvf1 (generateDVF)} with arguments {'multipleReferenceGrids': False, 'RefMesh': path(u'disp50.vtu'), 'DeformedMesh': 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', 'DVFFilename': 'dvf01.vtk'} �[37m(from run__init__.py:170)�[0m
�[94mI-001: Executing operator of task <PythonOperator: msml.ext.misc.GenerateDVF> with arguments [path(u'disp50.vtu'), 'dvf01.vtk', 'C:\Projekte\msml_github\examples\CGALi2vLungs\case1_T00_mesh_combo.vtk', False] �[37m(from alphabet.py:437)�[0m
Traceback (most recent call last):
File "C:\Projekte\msml_github\src\msml.py", line 36, in
msml.frontend.main()
File "C:\Projekte\msml_github\src\msml\frontend.py", line 274, in main
app.exec()
File "C:\Projekte\msml_github\src\msml\frontend.py", line 260, in exec
fn()
File "C:\Projekte\msml_github\src\msml\frontend.py", line 211, in execution
self.execute_msml_file(path(fil))
File "C:\Projekte\msml_github\src\msml\frontend.py", line 193, in execute_msml_file
self.execute_msml(mfile)
File "C:\Projekte\msml_github\src\msml\frontend.py", line 205, in execute_msml
mem = exe.run()
File "C:\Projekte\msml_github\src\msml\run__init
.py", line 140, in run
self.execute_operator_task(node)
File "C:\Projekte\msml_github\src\msml\run__init
_.py", line 171, in _execute_operator_task
result = task.operator(**kwargs)
File "C:\Projekte\msml_github\src\msml\model\alphabet.py", line 438, in call
r = self._function(*args)
NotImplementedError: Wrong number or type of arguments for overloaded function 'GenerateDVF'.
Possible C/C++ prototypes are:
MSML::PostProcessingOperators::GenerateDVF(char const *,char const *,char const *,bool)
MSML::PostProcessingOperators::GenerateDVF(char const *,char const *,char const *)
MSML::PostProcessingOperators::GenerateDVF(vtkUnstructuredGrid *,vtkImageData *,vtkUnstructuredGrid *)

Multiple use of a <var>

Using var of more than one time is possible but ends up in undefined behavior.

Is multiple use of variables intended ?

CGAL Operators not available in python

cgal.py:45: MSMLUnknownModuleWarning: Could not import CGALOperatorsPython
This is the C++-Modul. Have you successfully compiled and installed it?
Error is DLL load failed: Das angegebene Modul wurde nicht gefunden.

Error importing python modules

Running 'msml.py validate' doesn't find the Python modules, e.g.
~/git/msmlGithub/msml$ python src/msml.py validate
/org/share/home/suwelack/git/msmlGithub/msml/src/msml/ext/misc.py:49: MSMLUnknownModuleWarning: Could not import MiscMeshOperatorsPython. This is a C++-Modul. Have you successfully compiled and installed it? Error is dynamic module does not define init function (initMiscMeshOperatorsPython), Current sys.path: ['/org/share/home/suwelack/git/msmlGithub/msml/src', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/home/suwelack/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/local_home/suwelack/workspace/msmlGithub/bin', '/local_home/suwelack/workspace/msmlGithub/bin/Release/', '/local_home/suwelack/workspace/msmlGithub/bin/Debug/']

Output directory

We need a method to define a output (sub)directory for results. This could be done by a parameter (e.g. -o, which currently exists only in documentation but is not implemented).

This feature is essential for running a larger number of simulation via python scripting.

ComputeIndicesFromMaterialId for points

What is the intended behavior for ComputeIndicesFromMaterialId for points?
-Return all points completely surrounded by given materialId or
-Return all point inside and at the border of given materialId?

Installation on debian wheezy (stable)

The installation on Debian failed caused by missing VTK.
In addition, there is no meshlib or vcglib package for Debian.

 #############################
 # CMAKE BUILD TYPE = Release
 #############################
The imported target "vtkWrapTcl" references the file
   "/usr/bin/vtkWrapTcl"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkWrapTclInit" references the file
   "/usr/bin/vtkWrapTclInit"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkWrapPython" references the file
   "/usr/bin/vtkWrapPython"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkWrapPythonInit" references the file
   "/usr/bin/vtkWrapPythonInit"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkParseJava" references the file
   "/usr/bin/vtkParseJava"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkWrapJava" references the file
   "/usr/bin/vtkWrapJava"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkCommonTCL" references the file
   "/usr/lib/libvtkCommonTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkCommonPythonD" references the file
   "/usr/lib/libvtkCommonPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkCommonJava" references the file
   "/usr/lib/jni/libvtkCommonJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkFilteringTCL" references the file
   "/usr/lib/libvtkFilteringTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkFilteringPythonD" references the file
   "/usr/lib/libvtkFilteringPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkFilteringJava" references the file
   "/usr/lib/jni/libvtkFilteringJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkImagingTCL" references the file
   "/usr/lib/libvtkImagingTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkImagingPythonD" references the file
   "/usr/lib/libvtkImagingPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkImagingJava" references the file
   "/usr/lib/jni/libvtkImagingJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkGraphicsTCL" references the file
   "/usr/lib/libvtkGraphicsTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkGraphicsPythonD" references the file
   "/usr/lib/libvtkGraphicsPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkGraphicsJava" references the file
   "/usr/lib/jni/libvtkGraphicsJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkGenericFilteringTCL" references the file
   "/usr/lib/libvtkGenericFilteringTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkGenericFilteringPythonD" references the file
   "/usr/lib/libvtkGenericFilteringPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkGenericFilteringJava" references the file
   "/usr/lib/jni/libvtkGenericFilteringJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkIOTCL" references the file
   "/usr/lib/libvtkIOTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkIOPythonD" references the file
   "/usr/lib/libvtkIOPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkIOJava" references the file
   "/usr/lib/jni/libvtkIOJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkRenderingTCL" references the file
   "/usr/lib/libvtkRenderingTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkRenderingPythonD" references the file
   "/usr/lib/libvtkRenderingPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkRenderingJava" references the file
   "/usr/lib/jni/libvtkRenderingJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkRenderingPythonTkWidgets" references the file
   "/usr/lib/libvtkRenderingPythonTkWidgets.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkVolumeRenderingTCL" references the file
   "/usr/lib/libvtkVolumeRenderingTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkVolumeRenderingPythonD" references the file
   "/usr/lib/libvtkVolumeRenderingPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkVolumeRenderingJava" references the file
   "/usr/lib/jni/libvtkVolumeRenderingJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkHybridTCL" references the file
   "/usr/lib/libvtkHybridTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkHybridPythonD" references the file
   "/usr/lib/libvtkHybridPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkHybridJava" references the file
   "/usr/lib/jni/libvtkHybridJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkWidgetsTCL" references the file
   "/usr/lib/libvtkWidgetsTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkWidgetsPythonD" references the file
   "/usr/lib/libvtkWidgetsPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkWidgetsJava" references the file
   "/usr/lib/jni/libvtkWidgetsJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkParallelTCL" references the file
   "/usr/lib/libvtkParallelTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkParallelPythonD" references the file
   "/usr/lib/libvtkParallelPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkParallelJava" references the file
   "/usr/lib/jni/libvtkParallelJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkInfovisTCL" references the file
   "/usr/lib/libvtkInfovisTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkInfovisPythonD" references the file
   "/usr/lib/libvtkInfovisPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkInfovisJava" references the file
   "/usr/lib/jni/libvtkInfovisJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkGeovisTCL" references the file
   "/usr/lib/libvtkGeovisTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkGeovisPythonD" references the file
   "/usr/lib/libvtkGeovisPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkGeovisJava" references the file
   "/usr/lib/jni/libvtkGeovisJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkViewsTCL" references the file
   "/usr/lib/libvtkViewsTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkViewsPythonD" references the file
   "/usr/lib/libvtkViewsPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkViewsJava" references the file
   "/usr/lib/jni/libvtkViewsJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkChartsTCL" references the file
   "/usr/lib/libvtkChartsTCL.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkChartsPythonD" references the file
   "/usr/lib/libvtkChartsPythonD.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkChartsJava" references the file
   "/usr/lib/jni/libvtkChartsJava.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtk" references the file
   "/usr/bin/vtk"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "pvtk" references the file
   "/usr/bin/pvtk"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

The imported target "vtkPythonCore" references the file
   "/usr/lib/libvtkPythonCore.so.5.8.0"
but this file does not exist.  Possible reasons include:
* The file was deleted, renamed, or moved to another location.
* An install or uninstall procedure did not complete successfully.
* The installation package was faulty and contained
   "/usr/lib/vtk-5.8/VTKTargets-release.cmake"
but not all the files it references.

Include dirs of Python: /usr/include/python2.7
Boost version: 1.49.0
Found the following Boost libraries:
  program_options
  python
  filesystem
  iostreams
Include dirs of Boost : /usr/include
cmake module path: /home/weigl/workspace/msml/operators/CMake/usr/lib/vtk-5.8/CMake
Booth2 python library: /usr/lib/libboost_python.so
Boost Libraries = /usr/lib/libboost_program_options-mt.so/usr/lib/libboost_python.so/usr/lib/libboost_filesystem-mt.so/usr/lib/libboost_iostreams-mt.so
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
VCG_INCLUDE_DIR
   used as include directory in directory /home/weigl/workspace/msml/operators/VCGOperators
   used as include directory in directory /home/weigl/workspace/msml/operators/VCGOperators

Configuring incomplete, errors occurred!

Seperate operators

Seperate operators/ into another repository.
Include this repository as a submodule:

Reason: The operators should be standalone usable.

What can we use sets for?

What can we use sets for?
-Hold operator output (indices)
-Manual input indicies
Do we really need sets?

_BasePython build failure

2>------ Erstellen gestartet: Projekt: _BasePython, Konfiguration: Release x64 ------
2> basePYTHON_wrap.cxx
2>basePYTHON_wrap.cxx(3074): error C2106: '=': Linker Operand muss ein L-Wert sein
2>basePYTHON_wrap.cxx(3079): error C2106: '=': Linker Operand muss ein L-Wert sein
========== Erstellen: 1 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

Error in BunnyExample - FixedConstraint

SOFA-Export of fixedContraint in BunnyExample doesn't work in latest version. Here is the output:

<FixedConstraint indices="c, o, n, s, t, r, a, i, n, t, _, &lt;, m, s, m, l, ., m, o, d, e, l, ., b, a, s, e, ., O, b, j, e, c, t, E, l, e, m, e, n, t,  , o, b, j, e, c, t,  , a, t,  , 0, x, 1, 8, 4, 3, e, 9, 0, &gt;" name="&lt;msml.generators.IdentifierGenerator object at 0x1502190&gt;"/>

This did work before I pulled the latest version!

Can't execute sofa or abaqus exporter

Running the base exporter for the bunny example works fine, but the other exporters don't seem to work
~/git/msmlGithub/msml/src$ python msml.py exec -e sofa ../../msml/examples/BunnyExample/bunnyCGAL.msml.xml

Raises this error:
Execute: ../../msml/examples/BunnyExample/bunnyCGAL.msml.xml in <bound method path.dirname of path(u'../../msml/examples/BunnyExample/bunnyCGAL.msml.xml')>
Traceback (most recent call last):
File "msml.py", line 36, in
msml.frontend.main()
File "/org/share/home/suwelack/git/msmlGithub/msml/src/msml/frontend.py", line 274, in main
app._exec()
File "/org/share/home/suwelack/git/msmlGithub/msml/src/msml/frontend.py", line 260, in _exec
fn()
File "/org/share/home/suwelack/git/msmlGithub/msml/src/msml/frontend.py", line 211, in execution
self.execute_msml_file(path(fil))
File "/org/share/home/suwelack/git/msmlGithub/msml/src/msml/frontend.py", line 193, in execute_msml_file
self.execute_msml(mfile)
File "/org/share/home/suwelack/git/msmlGithub/msml/src/msml/frontend.py", line 197, in execute_msml
self._prepare_msml_model(msml_file)
File "/org/share/home/suwelack/git/msmlGithub/msml/src/msml/frontend.py", line 172, in _prepare_msml_model
exporter = self.exporter(mfile)
File "/org/share/home/suwelack/git/msmlGithub/msml/src/msml/frontend.py", line 153, in exporter
return msml.exporter.get_exporter(self._exporter)
File "/org/share/home/suwelack/git/msmlGithub/msml/src/msml/exporter/init.py", line 78, in get_exporter
return __REGISTER[name]
KeyError: 'sofa'

Build on fedora 20 failed

Installed libraries:

    # yum install cmake vtk-qt-python.x86_64  vtk.x86_64  vtk-devel.x86_64   \
                        vtk-python.x86_64 gcc-c++.x86_64 CGAL.x86_64  CGAL-devel.x86_64 meshlab

vtk is in Version 6.0 Tetgen in Version 1.5+. VCG not available.
Error message:

➜  cbuild git:(master) ✗ make TetgenOperatorsPython 
[ 50%] Building CXX object TetgenOperators/CMakeFiles/TetgenOperators.dir/TetgenOperators.cpp.o
/home/weigl/workspace/msml/operators/TetgenOperators/TetgenOperators.cpp: In statischer Elementfunktion »static bool MSML::TetgenOperators::CreateVolumeMesh(const char*, const char*, bool, bool)«:
/home/weigl/workspace/msml/operators/TetgenOperators/TetgenOperators.cpp:126:10: Fehler: »class vtkUnstructuredGridWriter« hat kein Element namens »SetInput«
  writer->SetInput(outputMesh);
          ^
/home/weigl/workspace/msml/operators/TetgenOperators/TetgenOperators.cpp: In statischer Elementfunktion »static bool MSML::TetgenOperators::CreateVolumeMesh(vtkPolyData*, vtkUnstructuredGrid*, bool, bool)«:
/home/weigl/workspace/msml/operators/TetgenOperators/TetgenOperators.cpp:257:34: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
     for(int nodeIter=0; nodeIter<numberOfElementNodes; nodeIter++)
                                  ^
make[3]: *** [TetgenOperators/CMakeFiles/TetgenOperators.dir/TetgenOperators.cpp.o] Fehler 1
make[2]: *** [TetgenOperators/CMakeFiles/TetgenOperators.dir/all] Fehler 2
make[1]: *** [TetgenOperators/CMakeFiles/TetgenOperatorsPython.dir/rule] Fehler 2
make: *** [TetgenOperatorsPython] Fehler 2
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static bool MSML::MiscMeshOperators::ConvertSTLToVTK(const char*, const char*)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:138:10: Fehler: »class vtkPolyDataWriter« hat kein Element namens »SetInput«
  writer->SetInput(mesh);
          ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static bool MSML::MiscMeshOperators::ConvertVTKToSTL(const char*, const char*)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:178:10: Fehler: »class vtkSTLWriter« hat kein Element namens »SetInput«
  writer->SetInput(reader->GetOutput());
          ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:171:15: Warnung: Variable »currentPolydata« wird nicht verwendet [-Wunused-variable]
  vtkPolyData* currentPolydata = reader->GetOutput();
               ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static std::string MSML::MiscMeshOperators::ExtractAllSurfacesByMaterial(const char*, const char*, bool)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:346:19: Fehler: »class vtkUnstructuredGridWriter« hat kein Element namens »SetInput«
    cutGridWriter->SetInput(inputGrid);
                   ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:366:16: Fehler: »class vtkThreshold« hat kein Element namens »SetInput«
     threshold->SetInput(inputGrid);
                ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:376:18: Fehler: »class vtkUnstructuredGridWriter« hat kein Element namens »SetInput«
    aUGridWriter->SetInput(threshold->GetOutput());
                  ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:390:17: Fehler: »class vtkPolyDataWriter« hat kein Element namens »SetInput«
    aGridWriter->SetInput(mesh);
                 ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:385:10: Warnung: Variable »result« wird nicht verwendet [-Wunused-variable]
     bool result = MiscMeshOperators::ExtractSurfaceMesh(threshold->GetOutput(), mesh);
          ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:401:33: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
   for (int i=0; i<surfaces.size();i++)
                                 ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:415:33: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
   for (int i=0; i<surfaces.size();i++)
                                 ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:435:18: Fehler: »class vtkUnstructuredGridWriter« hat kein Element namens »SetInput«
  unioGridWriter->SetInput(unionMesh);
                  ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static bool MSML::MiscMeshOperators::ExtractSurfaceMesh(const char*, const char*)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:482:16: Fehler: »class vtkPolyDataWriter« hat kein Element namens »SetInput«
    polywriter->SetInput(mesh);
                ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static bool MSML::MiscMeshOperators::ExtractSurfaceMesh(vtkUnstructuredGrid*, vtkPolyData*)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:496:8: Fehler: »class vtkUnstructuredGridGeometryFilter« hat kein Element namens »SetInput«
  geom->SetInput(inputMesh);
        ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:518:23: Fehler: »class vtkDataSetSurfaceFilter« hat kein Element namens »SetInput«
   surfaceTessellator->SetInput(currentGrid);
                       ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static bool MSML::MiscMeshOperators::AssignSurfaceRegion(const char*, const char*, std::vector<std::basic_string<char> >)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:571:16: Fehler: »class vtkUnstructuredGridWriter« hat kein Element namens »SetInput«
    polywriter->SetInput(mesh);
                ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static bool MSML::MiscMeshOperators::AssignSurfaceRegion(vtkUnstructuredGrid*, vtkUnstructuredGrid*, std::vector<vtkSmartPointer<vtkPolyData> >&)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:611:8: Fehler: »class vtkUnstructuredGridGeometryFilter« hat kein Element namens »SetInput«
  geom->SetInput(inputMesh);
        ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static std::string MSML::MiscMeshOperators::ConvertVTKPolydataToUnstructuredGridPython(std::string, std::string)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:735:7: Warnung: Variable »result« wird nicht verwendet [-Wunused-variable]
  bool result = ConvertVTKPolydataToUnstructuredGrid(infile.c_str(), outfile.c_str());
       ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static bool MSML::MiscMeshOperators::ConvertVTKPolydataToUnstructuredGrid(const char*, const char*)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:761:10: Fehler: »class vtkUnstructuredGridWriter« hat kein Element namens »SetInput«
  writer->SetInput(mesh);
          ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static bool MSML::MiscMeshOperators::ConvertVTKPolydataToUnstructuredGrid(vtkPolyData*, vtkUnstructuredGrid*)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:774:18: Fehler: »class vtkAppendFilter« hat kein Element namens »AddInput«
    appendFilter->AddInput(inputPolyData);
                  ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static std::string MSML::MiscMeshOperators::ProjectSurfaceMeshPython(std::string, std::string, std::string)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:787:7: Warnung: Variable »result« wird nicht verwendet [-Wunused-variable]
  bool result = ProjectSurfaceMesh(infile.c_str(), outfile.c_str(), referenceMesh.c_str());
       ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static bool MSML::MiscMeshOperators::ProjectSurfaceMesh(const char*, const char*, const char*)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:817:10: Fehler: »class vtkPolyDataWriter« hat kein Element namens »SetInput«
  writer->SetInput(currentGrid);
          ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static bool MSML::MiscMeshOperators::VoxelizeSurfaceMesh(const char*, const char*, int)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:993:10: Fehler: »class vtkXMLImageDataWriter« hat kein Element namens »SetInput«
  writer->SetInput(outputImage);
          ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:987:7: Warnung: Variable »result« wird nicht verwendet [-Wunused-variable]
  bool result = VoxelizeSurfaceMesh(inputMesh, outputImage, resolution);
       ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static bool MSML::MiscMeshOperators::VoxelizeSurfaceMesh(vtkPolyData*, vtkImageData*, int)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:1047:20: Fehler: »class vtkFeatureEdges« hat kein Element namens »SetInput«
      featureEdges->SetInput(inputMesh);
                    ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:1060:21: Fehler: »class vtkFillHolesFilter« hat kein Element namens »SetInput«
    fillHolesFilter->SetInput(inputMesh);
                     ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:1067:17: Fehler: »class vtkCleanPolyData« hat kein Element namens »SetInput«
    cleanFilter->SetInput(fillHolesFilter->GetOutput());
                 ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:1071:18: Fehler: »class vtkFeatureEdges« hat kein Element namens »SetInput«
    featureEdges->SetInput(fillHolesFilter->GetOutput());
                  ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:1108:16: Fehler: »class vtkImageData« hat kein Element namens »SetScalarTypeToUnsignedChar«
    whiteImage->SetScalarTypeToUnsignedChar();
                ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:1109:32: Fehler: keine passende Funktion für Aufruf von »vtkImageData::AllocateScalars()«
    whiteImage->AllocateScalars();
                                ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:1109:32: Anmerkung: Kandidaten sind:
In file included from /home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.h:44:0,
                 from /home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:25:
/usr/include/vtk/vtkImageData.h:237:16: Anmerkung: virtual void vtkImageData::AllocateScalars(int, int)
   virtual void AllocateScalars(int dataType, int numComponents);
                ^
/usr/include/vtk/vtkImageData.h:237:16: Anmerkung:   Kandidat erwartet 2 Argumente, 0 angegeben
/usr/include/vtk/vtkImageData.h:244:16: Anmerkung: virtual void vtkImageData::AllocateScalars(vtkInformation*)
   virtual void AllocateScalars(vtkInformation* pipeline_info);
                ^
/usr/include/vtk/vtkImageData.h:244:16: Anmerkung:   Kandidat erwartet 1 Argument, 0 angegeben
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:1124:15: Fehler: »class vtkPolyDataToImageStencil« hat kein Element namens »SetInput«
    pol2stenc->SetInput(inputMesh);
               ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:1135:14: Fehler: »class vtkImageStencil« hat kein Element namens »SetInput«
    imgstenc->SetInput(whiteImage);
              ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:1136:14: Fehler: »class vtkImageStencil« hat kein Element namens »SetStencil«
    imgstenc->SetStencil(pol2stenc->GetOutput());
              ^
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp: In statischer Elementfunktion »static std::vector<double> MSML::MiscMeshOperators::ExtractPointPositions(std::vector<int>, vtkUnstructuredGrid*)«:
/home/weigl/workspace/msml/operators/MiscMeshOperators/MiscMeshOperators.cpp:1187:30: Warnung: Vergleich zwischen vorzeichenbehafteten und vorzeichenlosen Ganzzahlausdrücken [-Wsign-compare]
  for(int i=0; i<indices.size(); i++)
                              ^
make[3]: *** [MiscMeshOperators/CMakeFiles/MiscMeshOperators.dir/MiscMeshOperators.cpp.o] Fehler 1
make[2]: *** [MiscMeshOperators/CMakeFiles/MiscMeshOperators.dir/all] Fehler 2
make[1]: *** [CGALOperators/CMakeFiles/CGALOperatorsPython.dir/rule] Fehler 2
make: *** [CGALOperatorsPython] Fehler 2

examples.PythonExamples.batch_script error

Traceback (most recent call last):
File "C:\Projekte\msml_github\examples\PythonExamples\batch_script.py", line 6, in
import run_msml
ImportError: No module named run_msml

Operator interfaces without formats

The current implementation forces to write input and output files. In my opinion this leads in complex pipelines to an unnecessary overhead. So with the defintion of the sort logic (types and formats) we should introduce interfaces that does accept intances of meshes, vertice list, ... and not just only written files.

The excercise of file dumping/loading belongs in the MSML core (Conversion graph).
It could be handle in the conversion of arguments if files need to be written. An explicit write could be handle through seperate operators.

How to access simulation output?

How can we access the output of a simulation from MSML.xml files?
In an older MSML version we used:

<postProcessing>
 <image name="outputDVF" filename="@dvf1">
  <generateDVF name="dvf1" RefMesh="@dispOutput" DeformedMesh="@VolumeMeshSkin" DVF="dvfOnDisp.vtk" multipleReferenceGrids="false"/>
 </image>
</postProcessing>

with dispOutput="id of displacementOutputRequest" and VolumeMeshSkin="id of volumeMesh".

The file name of the displacementOutputRequest was filled in the corressponding exporter (e.g. https://github.com/CognitionGuidedSurgery/msml/blob/master/src/msml/exporter/sofanew.py#L435-Lundefined)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.