Wiki
Clone wikigeomIO / Home
[Home] [Basic 2D tutorial] [Basic 3D tutorial] [VaryGeom2D tutorial] [VaryGeom3D tutorial]
Overview
The geomIO workflow involves two steps:
- Geometry creation with Inkscape
- Invoke geomIO with user-defined options. This involves
-
Reading Inkscape's SVG files
-
Writing 3D geometry files for visualization and simulation initialization.
The geomIO outputs can be used for visualization (for example with Paraview) and as an initial configuration for thermomechanical simulation software
Getting started
- Clone this repository, either through SSH, i.e.
git clone git@bitbucket.org:geomio/geomio.git
, or through HTTPSgit clone https://bitbucket.org/geomio/geomio.git
. - Change to the geomIO directory using the MATLAB console and type
install_geomIO
- Add the provided expression to the startup.m file of your MATLAB installation.
- In case the MATLAB startup folder and
startup.m
do not exist, you may find more information here.
% startup.m (unix-version) % geomIO installation addpath(genpath('/FULL/PATH/TO/GEOMIO/INSTALLATION/geomio/src'));
Inkscape basics
Normally, a geomIO project starts with Inkscape. Here we have summarized some tools and basic object areas to help you get started.
Bézier tool 
With the Bézier tool, you can create simple shapes that are smooth and easy to adapt to data.
Select tool 
The select tool is probably the tool that you will be using most of the time to scale, translate or rotate objects.
Path tool 
You use the path tool to change your path objects. This is especially useful if you want to duplicate an existing object (Ctrl + D) and adapt it to another template in the next level.
Edit objects 
In the Fill and Stroke area, you can edit the line, width, shape, and so on. This helps you distinguish different objects. geomIO adopts these styles for later plotting of the objects.
Layers 
The layer window is important because it controls the scaling of objects in the third direction. Several naming conventions are involved.
- Any layer name starting with # will be ignored by geomIO. Any image-data that is loaded into Inkscape (and is not just linked to the SVG file) should be placed in such a layer.
- The Reference layer. It contains a Bézier line with a
CoordRef
attribute that defines the scaling of all objects - Regular layer names have the following format:
<Direction_indicator>_<sign(p or m)><decimal(p)value>
. For example, the layers shown in the figure below are translated to North-South_(+)5.4 and North-South_-0.5. All objects that are in these layers are referenced with these coordinates.
XML editor 
We use the XML editor to add a label
attribute to the object and give it a name. This ensures that the objects at different levels are linked with each other.
Getting started with geomIO
We have created a number of tutorials, examples, and benchmarks to help you get familiar with geomIO. The tutorial directories have an Input folder that contains an SVG file with the drawing and a Main_geomIO.m
MATLAB script that invokes geomIO with the necessary options.
We recommend you to start with the Basic2Dtutorial and continue with the Basic3Dtutorial to learn the basics.
Contributing to geomIO
Thank you for considering to contribute to geomIO. This is the basic guideline for contributing to geomIO. You can start contributing to geomIO in many ways. Help us to improve the documentation with other examples or tutorials, report issues and submit a feature request, or start implementing new functionalities to geomIO.
Report an issue
First, you should look for similar issues before you report your issue. It may have already been discussed or resolved in another issue. If you don't find a similar issue, you can create a new issue. Please don't include multiple issues into one issue report.
Feature requests and proposals
We appreciate feature requests as it gives feedback on how you are using geomIO or how you want to use geomIO. However, we need to take a moment to assess if this fits the purpose and scope of the project. We need a clear benefit and a strong incentive to implement the request. In any case, a function request is a basis for discussion. Please use the issue tracker to submit feature requests and proposals.
Pull request
You can create a pull request if you have fixed a thing or implemented new functionality for the geomIO project.
Updated