(Transform2)

Please note, this tool is deprecated.
You should better use the successor image3d.


A small tool to process mesh files. Transform2 can convert DXF, OBJ, STL, IV (Imaris), WRL (Amira) and Anysurfer (Anybody) surfaces in the common OBJ format.
Additional is it possible to process and store point cloud files like ASC, PRN and CSV. Please note, only the vertices are stored and processed.

Version 11.9.11

This program is owned by Heiko Stark. It can be used free of charge for non-commercial use. For the common citations in publications please use the following entry “Transform2 software (Heiko Stark, Jena, Germany, URL: http://starkrats.de).

>> transform2 -input=cube.dxf -type=obj -center -rotate=0.0,pi,0.0

or used with a macro file (see also macro examples)

>> transform2 -macro=macro.run

or only (if macro.run in your working directory)

>> transform2

// This is a comment for the transform2 macro - you can use this macro like a programing language
// For more infos, please see http://stark-jena.de | transform2
// Copyright (c) 2003-2011 by Heiko Stark

core.files transform.input // you can replace the variable transform.input with a filename or list (*.iv)
for core.files.length // runs for every file from list core.files
begin
  load core.files.getfile // load a file from list core.files

  // verification
  // split transform.split // ignored if 0
  // softsmooth transform.smooth // ignored if 0
  // smooth transform.smooth // ignored if 0
  // hardsmooth transform.smooth // ignored if 0
  // center
  // adjust 3
  // adjust5 3
  // adjust10 3
  // adjust15 3
  // clear.x
  // clear.y
  // clear.z
  // mirror.x
  // mirror.y
  // mirror.z
  // abs.x
  // abs.y
  // abs.z
  // swap.xy
  // swap.yz
  // swap.xz
  rotate transform.rotate // ignored if <0,0,0>
  translate transform.translate // ignored if <0,0,0>
  scale transform.scale // ignored if <1,1,1>
  // rotate.pivot transform.rotate // ignored if <0,0,0>
  // translate.pivot transform.translate // ignored if <0,0,0>
  // scale.pivot transform.scale // ignored if <1,1,1>
  // rotate.relative <0,0,0> transform.rotate // ignored if <0,0,0>
  // translate.relative <0,0,0> transform.translate // ignored if <0,0,0>
  // scale.relative <0,0,0> transform.scale // ignored if <1,1,1>

  newfile := core.files.getname . transform.type // you can replace the variable transform.type with a specific type (obj)
  save newfile // save file as a new file
  new // clean memory
  core.files.next // go to next file from list core.files
end

// This is a comment for the transform2 macro - you can use this macro like a programing language
// For more infos, please see http://stark-jena.de | transform2
// Copyright (c) 2003-2011 by Heiko Stark

core.files transform.input // you can replace the variable transform.input with a filename or list (*.iv)
for core.files.length // runs for every file from list core.files
begin
  load core.files.getfile // load a file from list core.files

  rotate transform.rotate // ignored if <0,0,0>
  translate transform.translate // ignored if <0,0,0>
  scale transform.scale // ignored if <1,1,1>

  newfile := core.files.getname . transform.type // you can replace the variable transform.type with a specific type (obj)
  save newfile // save file as a new file
  new // clean memory
  core.files.next // go to next file from list core.files
end

// This is a comment for the transform2 macro - you can use this macro like a programing language
// For more infos, please see http://stark-jena.de | transform2
// Copyright (c) 2003-2011 by Heiko Stark

core.files *.iv // you can replace the variable transform.input with a filename or list (*.iv)
for core.files.length // runs for every file from list core.files
begin
  load core.files.getfile // load a file from list core.files
  newfile := core.files.getname . obj // you can replace the variable transform.type with a specific type (obj)
  save newfile // save file as a new file
  new // clean memory
  core.files.next // go to next file from list core.files
end

Used for these investigations:
Henne S, Friedrich F, Hammel JU, Sombke A, & Schmidt‐Rhaesa A (2017) Reconstructing the anterior part of the nervous system of Gordius aquaticus (Nematomorpha, cycloneuralia) by a multimethodological approach. Journal of Morphology, 278(1): 106-118.

Anton E, Yavorskaya MI & Beutel RG (2016) The head morphology of Clambidae and its implications for the phylogeny of Scirtoidea (Coleoptera: Polyphaga). Journal of morphology 277: 615–633.

Löwe S, Beutel RG & Pohl H (2016) The female cephalothorax of Stylops ovinae Noskiewicz & Poluszyński, 1928 (Strepsiptera: Stylopidae). ARTHROPOD SYSTEMATICS & PHYLOGENY, 74(1): 65-81.

Fabian B, Russell L, Friedrich F & Beutel RG (2015) The larval cephalic morphology of the enigmatic
boreid Caurinus dectes (Mecoptera) and its phylogenetic significance. Arthropod systematics & phylogeny 73 (3): 385-399.

Friedrich F, Schulz J, Kubiak M, Beckmann F & Wilde F (2015) The larval head anatomy of Rhyacophila (Rhyacophilidae) with discussion on mouthpart homology and the groundplan of Trichoptera, J. Morphol. 276 (12): 1505–1524. doi: 10.1002/jmor.20475

Koch M, Schulz J & Edgecombe G (2015) Tentorial mobility in centipedes (Chilopoda) revisited: 3D reconstruction of the mandibulo-tentorial musculature of Geophilomorpha, Zookeys. 510: 243–267. doi: 10.3897/zookeys.510.8840

Kubiak M, Beckmann F & Friedrich F (2015) The adult head of the annulipalpian caddisfly Philopotamus ludificatus McLachlan, 1878 (Philopo-tamidae), mouthpart homologies, and implications on the ground plan of Trichoptera. ARTHROPOD SYSTEMATICS & PHYLOGENY, 73(3): 351-384.

Friedrich F, Pohl H, Beckmann F & Beutel RG (2013) The head of Merope tuber (Meropeidae) and the phylogeny of Mecoptera (Hexapoda). Arthropod Structure & Development 42: 69–88. doi: 10.1016/j.asd.2012.09.006

Kuehnel S, Herzen J, Kleinteich T, Beckmann F & Kupfer A (2012). The female cloaca of an oviparous caecilian amphibian (Gymnophiona): functional and seasonal aspects. Acta Zoologica, 93: 208-221. doi: 10.1111/j.1463-6395.2010.00499.x

Friedrich F & Beutel RG (2010) The thoracic morphology of Nannochorista (Nannochoristidae) and its implications for the phylogeny of Mecoptera and Antliophora (Hexapoda). Journal of Zoological Systematics and Evolutionary Research 48 (1): 50-74. doi: 10.1111/j.1439-0469.2009.00535.x

Beutel RG, Friedrich F & Aspöck U (2010) The larval head of Nevrorthidae and the phylogeny of Neuroptera (Insecta). Zoological Journal of the Linnean Society 158 (3): 533-562. doi: 10.1111/j.1096-3642.2009.00560.x

Nyakatura JA & Fischer MS (2010). Functional morphology and three-dimensional kinematics of the thoraco-lumbar region of the spine of the two-toed sloth. The Journal of experimental biology, 213(Pt 24), 4278-90. doi: 10.1242/jeb.047647

Nyakatura JA & Fischer MS (2010). Three-dimensional kinematic analysis of the pectoral girdle during upside-down locomotion of two-toed sloths (Choloepus didactylus, Linné 1758). Frontiers in zoology, 7, 21. doi: 10.1186/1742-9994-7-21

Hünefeld F & Kristensen NP (2010). The female postabdomen and internal genitalia of the basal moth genus Agathiphaga (Insecta: Lepidoptera: Agathiphagidae): morphology and phylogenetic implications. Zoological Journal of the Linnean Society, 159(4), 905-920. doi: 10.1111/j.1096-3642.2009.00590.x

Friedrich F & Beutel RG (2008). The thorax of Zorotypus (Hexapoda, Zoraptera) and a new nomenclature for the musculature of Neoptera. Arthropod Structure & Development, 37(1): 29-54. doi: 10.1016/j.asd.2007.04.003

Beutel RG, Friedrich F & Whiting MF (2008) Head morphology of Caurinus (Boreidae, Mecoptera) and its phylogenetic implications. Arthropod Structure & Development 37 (5): 418-433. doi: 10.1016/j.asd.2008.02.002

Beutel RG & Friedrich F (2008) Comparative study of larval head structures of Megaloptera (Hexapoda). European Journal of Entomology 105 (5): 917-938.

If you want to send me a bug report or have some suggestions about what future versions of ‘transform2’ should support you can contact me either by email (bugs[@]starkrats[dot]de).