dgud / wings

Wings3D is an advanced sub-division 3D modeller.
http://www.wings3d.com
Other
572 stars 90 forks source link

Feature Request: command line export #367

Closed stolk closed 4 years ago

stolk commented 5 years ago

To improve workflow, it would be nice to have a command line interface to wings3d, that enables you to export a named object in a .wings file to another format, like wavefront obj.

something like:

$ wings export -input=foo.wings -name=castle -output=out.obj

Which can save a lot of clicks in the UI, and enables you to use wings export in your data pipeline.

Kinda similar to how inkscape lets you generate .png files without the UI.

dgud commented 5 years ago

There is a erlang-script (wings_convert) in the src dir in src distribution that does that, which you could copy. It requires an erlang installation (and wings) on your machine though: And setup export WINGS_DIR=/home/USER/wings-VERSION/lib/wings-VERSION

  src/wings/src/wings_convert -help

  Usage: wings_convert -f OutFormat [Opts] Files 
  Converts between file formats. 
  Output is written to the current directory by default.

 Options:
   -o, --outdir DIR       Write converted files to DIR.
   -v, --verbose          Verbose output.
   --informat FORMAT      Ignore file extension and use FORMAT as input.
   --subdiv N             Subdivide object N times (default 0).
   --tess TYPE            Tesselate object none|tri|quad (default none)

Supported import formats:
  .svg Path
  StereoLithography (.stl)
  Adobe PostScript (.ps|.eps)
  Stanford ply (.ply)
  Wavefront (.obj)
  LightWave or Modo (.lwo|.lxo)
  glTF (.gltf|.glb)
  Collada (.dae)
  Adobe Illustrator (.ai)
  3D Studio (.3ds)
  Nendo (.ndo)
  Wings (.wings)

Supported export formats:
  DirectX (.x)
  VRML 2.0 (.wrl)
  StereoLithography (.stl)
  Renderware (.rwx)
  Wavefront (.obj)
  LightWave or Modo (.lwo|.lxo)
  Cartoon edges (.eps, .svg)
  glTF (.gltf|.glb)
  Collada (.dae)
  BZFlag (.bzw)
  3D Studio (.3ds)
  Nendo (.ndo)
  Wings (.wings)
stolk commented 5 years ago

Awesome! Thanks. Is there a way to export a named object from the wings file? I've never written erlang, but I guess it could do some call_wings({select,.. followed by a export-selected or something?

dgud commented 5 years ago

That may be more problematic don't remember what commands there are, will check but I'm on "vacation" :-) so don't hold your breath.

dgud commented 5 years ago

Yeah that worked, see/test https://gist.github.com/dgud/bc4906d066435180ec89a2913271466f

wings_convert was a hack for my own usage many years ago, and when wings was re-rewritten the easiest thing to get it work was to create the gui and hide it. Which may make it inappropriate for a game-dev toolchain, I don't know if I will fix that.

Things to improve:

I'll leave this issue open, until I have had time to look at the new issues.

stolk commented 5 years ago

Thanks for that. When I try to run it, I get this error:

$ ./wings_convert -f obj --name launchtower buildings.wings
Gtk-Message: 13:54:04.929: Failed to load module "canberra-gtk-module"
wings-2.1.7
Reading preferences from: /home/bram/.config/Wings3D/Preferences.txt

=ERROR REPORT==== 25-Jul-2019::13:54:05 ===
** wx object server <0.80.0> terminating 
** Last message in was {'$gen_cast',
                        {new_state,
                         #{current => no_folder,
                           folders => {no_folder,[{no_folder,open,40}]},
                           sel => "(",
                           shs =>
                            [#{folder => no_folder,id => 40,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "launchtower",perm => 0,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 39,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "tunnel",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 38,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "traindepot",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 37,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "stakeout",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 36,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "Warehouse",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 35,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "grainfarm",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 34,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "smelter",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 33,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "sawmill",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 32,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "foundationunit",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 31,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "stacker",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 30,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "grainsilos",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 29,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "depot",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 28,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "factory",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 27,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "trainstop",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 26,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "trainstation",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 25,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "foundationtriple",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 24,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "foundationdouble",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 23,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "foundationsingle",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 22,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "structure_sep54",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 21,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "N-gon-neighbours",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 20,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "doubledeck",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 19,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "smithy_sep24",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 18,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "waterwell",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 17,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "srconstruction",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 16,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "slconstruction",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 15,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "ssconstruction",
                               perm =>
                                {face,
                                 {36,
                                  {22,
                                   {13,
                                    {8,
                                     {6,{5,{4,nil,nil},nil},{7,nil,nil}},
                                     {11,{10,{9,nil,nil},nil},{12,nil,nil}}},
                                    {18,
                                     {16,{15,{14,nil,nil},nil},{17,nil,nil}},
                                     {20,{19,nil,nil},{21,nil,nil}}}},
                                   {31,
                                    {27,
                                     {25,{24,{23,nil,nil},nil},{26,nil,nil}},
                                     {29,{28,nil,nil},{30,nil,nil}}},
                                    {36,
                                     {34,{33,{32,nil,nil},nil},{35,nil,nil}},
                                     {38,{37,nil,nil},{39,nil,nil}}}}}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 14,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "plconstruction",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 13,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "plaza",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 12,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "streetleft",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 11,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "streetright",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 10,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "streetstraight",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 9,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "brconstruction",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 8,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "N-gon-aligned",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 7,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "bridge",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 6,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "oremine",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 5,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "dairyfarm",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 4,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "bakery",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 3,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "grainfarmordered",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 2,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "watermill",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 1,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "N-Gon2",perm => 2,pid => <0.69.0>}],
                           wire => {0,nil}}}}
** When Server state == {state,<0.80.0>,
                         {object,geom},
                         30,
                         {wx_ref,610,wxSplitterWindow,[]},
                         {wx_ref,611,wxTreeCtrl,[]},
                         [],
                         {wx_ref,631,wxListCtrl,[]},
                         [{"Bakery",
                           #{folder => no_folder,id => 4,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "bakery",perm => 2,pid => <0.69.0>}},
                          {"Brconstruction",
                           #{folder => no_folder,id => 9,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "brconstruction",perm => 2,
                             pid => <0.69.0>}},
                          {"Bridge",
                           #{folder => no_folder,id => 7,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "bridge",perm => 2,pid => <0.69.0>}},
                          {"Dairyfarm",
                           #{folder => no_folder,id => 5,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "dairyfarm",perm => 2,pid => <0.69.0>}},
                          {"Depot",
                           #{folder => no_folder,id => 29,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "depot",perm => 2,pid => <0.69.0>}},
                          {"Doubledeck",
                           #{folder => no_folder,id => 20,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "doubledeck",perm => 2,pid => <0.69.0>}},
                          {"Factory",
                           #{folder => no_folder,id => 28,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "factory",perm => 2,pid => <0.69.0>}},
                          {"Foundationdouble",
                           #{folder => no_folder,id => 24,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "foundationdouble",perm => 2,
                             pid => <0.69.0>}},
                          {"Foundationsingle",
                           #{folder => no_folder,id => 23,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "foundationsingle",perm => 2,
                             pid => <0.69.0>}},
                          {"Foundationtriple",
                           #{folder => no_folder,id => 25,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "foundationtriple",
                             perm => {body,{1,{0,nil,nil}}},
                             pid => <0.69.0>}},
                          {"Foundationunit",
                           #{folder => no_folder,id => 32,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "foundationunit",perm => 2,
                             pid => <0.69.0>}},
                          {"Grainfarm",
                           #{folder => no_folder,id => 35,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "grainfarm",perm => 2,pid => <0.69.0>}},
                          {"Grainfarmordered",
                           #{folder => no_folder,id => 3,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "grainfarmordered",perm => 2,
                             pid => <0.69.0>}},
                          {"Grainsilos",
                           #{folder => no_folder,id => 30,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "grainsilos",
                             perm => {body,{1,{0,nil,nil}}},
                             pid => <0.69.0>}},
                          {"Launchtower",
                           #{folder => no_folder,id => 40,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "launchtower",perm => 0,pid => <0.69.0>}},
                          {"N-Gon2",
                           #{folder => no_folder,id => 1,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "N-Gon2",perm => 2,pid => <0.69.0>}},
                          {"N-gon-aligned",
                           #{folder => no_folder,id => 8,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "N-gon-aligned",perm => 2,
                             pid => <0.69.0>}},
                          {"N-gon-neighbours",
                           #{folder => no_folder,id => 21,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "N-gon-neighbours",perm => 2,
                             pid => <0.69.0>}},
                          {"Oremine",
                           #{folder => no_folder,id => 6,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "oremine",
                             perm => {body,{1,{0,nil,nil}}},
                             pid => <0.69.0>}},
                          {"Plaza",
                           #{folder => no_folder,id => 13,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "plaza",perm => 2,pid => <0.69.0>}},
                          {"Plconstruction",
                           #{folder => no_folder,id => 14,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "plconstruction",perm => 2,
                             pid => <0.69.0>}},
                          {"Sawmill",
                           #{folder => no_folder,id => 33,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "sawmill",
                             perm => {body,{1,{0,nil,nil}}},
                             pid => <0.69.0>}},
                          {"Slconstruction",
                           #{folder => no_folder,id => 16,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "slconstruction",perm => 2,
                             pid => <0.69.0>}},
                          {"Smelter",
                           #{folder => no_folder,id => 34,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "smelter",perm => 2,pid => <0.69.0>}},
                          {"Smithy Sep24",
                           #{folder => no_folder,id => 19,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "smithy_sep24",perm => 2,
                             pid => <0.69.0>}},
                          {"Srconstruction",
                           #{folder => no_folder,id => 17,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "srconstruction",perm => 2,
                             pid => <0.69.0>}},
                          {"Ssconstruction",
                           #{folder => no_folder,id => 15,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "ssconstruction",
                             perm =>
                              {face,
                               {36,
                                {22,
                                 {13,
                                  {8,
                                   {6,{5,{4,nil,nil},nil},{7,nil,nil}},
                                   {11,{10,{9,nil,nil},nil},{12,nil,nil}}},
                                  {18,
                                   {16,{15,{14,nil,nil},nil},{17,nil,nil}},
                                   {20,{19,nil,nil},{21,nil,nil}}}},
                                 {31,
                                  {27,
                                   {25,{24,{23,nil,nil},nil},{26,nil,nil}},
                                   {29,{28,nil,nil},{30,nil,nil}}},
                                  {36,
                                   {34,{33,{32,nil,nil},nil},{35,nil,nil}},
                                   {38,{37,nil,nil},{39,nil,nil}}}}}}},
                             pid => <0.69.0>}},
                          {"Stacker",
                           #{folder => no_folder,id => 31,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "stacker",
                             perm => {body,{1,{0,nil,nil}}},
                             pid => <0.69.0>}},
                          {"Stakeout",
                           #{folder => no_folder,id => 37,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "stakeout",perm => 2,pid => <0.69.0>}},
                          {"Streetleft",
                           #{folder => no_folder,id => 12,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "streetleft",perm => 2,pid => <0.69.0>}},
                          {"Streetright",
                           #{folder => no_folder,id => 11,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "streetright",perm => 2,pid => <0.69.0>}},
                          {"Streetstraight",
                           #{folder => no_folder,id => 10,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "streetstraight",perm => 2,
                             pid => <0.69.0>}},
                          {"Structure Sep54",
                           #{folder => no_folder,id => 22,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "structure_sep54",perm => 2,
                             pid => <0.69.0>}},
                          {"Traindepot",
                           #{folder => no_folder,id => 38,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "traindepot",perm => 2,pid => <0.69.0>}},
                          {"Trainstation",
                           #{folder => no_folder,id => 26,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "trainstation",perm => 2,
                             pid => <0.69.0>}},
                          {"Trainstop",
                           #{folder => no_folder,id => 27,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "trainstop",perm => 2,pid => <0.69.0>}},
                          {"Tunnel",
                           #{folder => no_folder,id => 39,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "tunnel",perm => 2,pid => <0.69.0>}},
                          {"Warehouse",
                           #{folder => no_folder,id => 36,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "Warehouse",
                             perm => {body,{1,{0,nil,nil}}},
                             pid => <0.69.0>}},
                          {"Watermill",
                           #{folder => no_folder,id => 2,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "watermill",perm => 2,pid => <0.69.0>}},
                          {"Waterwell",
                           #{folder => no_folder,id => 18,
                             matrix =>
                              {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                               0.0},
                             name => "waterwell",perm => 2,pid => <0.69.0>}}],
                         #{current => no_folder,
                           folders => {no_folder,[{no_folder,open,40}]},
                           sel => [],
                           shs =>
                            [#{folder => no_folder,id => 40,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "launchtower",perm => 0,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 39,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "tunnel",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 38,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "traindepot",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 37,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "stakeout",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 36,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "Warehouse",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 35,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "grainfarm",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 34,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "smelter",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 33,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "sawmill",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 32,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "foundationunit",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 31,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "stacker",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 30,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "grainsilos",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 29,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "depot",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 28,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "factory",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 27,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "trainstop",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 26,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "trainstation",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 25,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "foundationtriple",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 24,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "foundationdouble",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 23,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "foundationsingle",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 22,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "structure_sep54",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 21,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "N-gon-neighbours",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 20,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "doubledeck",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 19,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "smithy_sep24",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 18,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "waterwell",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 17,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "srconstruction",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 16,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "slconstruction",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 15,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "ssconstruction",
                               perm =>
                                {face,
                                 {36,
                                  {22,
                                   {13,
                                    {8,
                                     {6,{5,{4,nil,nil},nil},{7,nil,nil}},
                                     {11,{10,{9,nil,nil},nil},{12,nil,nil}}},
                                    {18,
                                     {16,{15,{14,nil,nil},nil},{17,nil,nil}},
                                     {20,{19,nil,nil},{21,nil,nil}}}},
                                   {31,
                                    {27,
                                     {25,{24,{23,nil,nil},nil},{26,nil,nil}},
                                     {29,{28,nil,nil},{30,nil,nil}}},
                                    {36,
                                     {34,{33,{32,nil,nil},nil},{35,nil,nil}},
                                     {38,{37,nil,nil},{39,nil,nil}}}}}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 14,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "plconstruction",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 13,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "plaza",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 12,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "streetleft",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 11,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "streetright",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 10,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "streetstraight",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 9,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "brconstruction",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 8,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "N-gon-aligned",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 7,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "bridge",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 6,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "oremine",
                               perm => {body,{1,{0,nil,nil}}},
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 5,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "dairyfarm",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 4,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "bakery",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 3,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "grainfarmordered",perm => 2,
                               pid => <0.69.0>},
                             #{folder => no_folder,id => 2,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "watermill",perm => 2,pid => <0.69.0>},
                             #{folder => no_folder,id => 1,
                               matrix =>
                                {1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,
                                 0.0},
                               name => "N-Gon2",perm => 2,pid => <0.69.0>}],
                           wire => {0,nil}},
                         undefined}
** Reason for termination == 
** {{{badarg,631},{wxListCtrl,setItemColumnImage,3}},
    [{wxe_util,rec,1,[{file,"wxe_util.erl"},{line,84}]},
     {wings_geom_win,'-update_shapes/4-fun-0-',6,
                     [{file,"wings_geom_win.erl"},{line,735}]},
     {lists,foldl,3,[{file,"lists.erl"},{line,1263}]},
     {wx,foldl,3,[{file,"wx.erl"},{line,223}]},
     {wings_geom_win,update_shapes,4,[{file,"wings_geom_win.erl"},{line,739}]},
     {wings_geom_win,handle_cast,2,[{file,"wings_geom_win.erl"},{line,648}]},
     {wx_object,handle_msg,5,[{file,"wx_object.erl"},{line,468}]},
     {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}

=INFO REPORT==== 25-Jul-2019::13:54:05 ===
    application: wings
    exited: shutdown
    type: temporary
dgud commented 5 years ago

Oh that's a new one :-/ That looks like a crash when we stop the gui, did you get any output file?

Also an upgrade to the latest wings might solve that, maybe something that have been fixed along the way :-)

Otherwise, can you run 'convert_wings' with '-v' flag (for verbose/debugging), I would like to see the timing of when that happend. (and email me directly).

stolk commented 5 years ago

wings 2.2.4 crashes immediately with the script.

bram@ubuntupc:~/src/Train/Assets/buildings$ export WINGS_DIR=~/wings-2.2.4/lib/wings-2.2.4/
bram@ubuntupc:~/src/Train/Assets/buildings$ ./wings_convert -v -f obj --name launchtower buildings.wings
escript: exception error: undefined function wings:start/0
  in function  wings_convert__escript__1564__453114__434947__3:main/1 (./wings_convert, line 39)
  in call from escript:run/2 (escript.erl, line 759)
  in call from escript:start/1 (escript.erl, line 277)
  in call from init:start_em/1 
  in call from init:do_boot/3 
dgud commented 5 years ago

Hmm the wings:start() should not be an undefined function.

I'll make a complete test release for you, I've made some other changes as well. But away from computer this week.

Do you build from src/github or use the prebuilt ubuntu release?

Den tis 30 juli 2019 04:19Bram Stolk notifications@github.com skrev:

wings 2.2.4 crashes immediately with the script.

bram@ubuntupc:~/src/Train/Assets/buildings$ export WINGS_DIR=~/wings-2.2.4/lib/wings-2.2.4/ bram@ubuntupc:~/src/Train/Assets/buildings$ ./wings_convert -v -f obj --name launchtower buildings.wings escript: exception error: undefined function wings:start/0 in function wings_convertescript1564453114434947__3:main/1 (./wings_convert, line 39) in call from escript:run/2 (escript.erl, line 759) in call from escript:start/1 (escript.erl, line 277) in call from init:start_em/1 in call from init:do_boot/3

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dgud/wings/issues/367?email_source=notifications&email_token=AAATYKNCNYTPLXE7HCM5EGLQB6QKRA5CNFSM4HEUCP62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3CRI5Y#issuecomment-516232311, or mute the thread https://github.com/notifications/unsubscribe-auth/AAATYKO3P43RT7JY2XFPMUDQB6QKRANCNFSM4HEUCP6Q .

stolk commented 5 years ago

This is the pre-built one. Lemme try to build from github...

stolk commented 5 years ago

Thanks. Works when built from source!

Sorry for all the nagging, but... Does the wings_convert consider the "Export Options" settings?

Because if I export via GUI, I always have my "Swap Y/Z" set to true, as a default. And it seems that the wings_convert script ignores this setting?

dgud commented 5 years ago

No it doesn't I will have to add those as script options.

Den tis 30 juli 2019 17:40Bram Stolk notifications@github.com skrev:

Thanks. Works when built from source!

Sorry for all the nagging, but... Does the wings_convert consider the "Export Options" settings?

Because if I export via GUI, I always have my "Swap Y/Z" set to true, as a default. And it seems that the wings_convert script ignores this setting?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dgud/wings/issues/367?email_source=notifications&email_token=AAATYKI2MZ3IQFHBKFUSBO3QCBOIFA5CNFSM4HEUCP62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3EMUMY#issuecomment-516475443, or mute the thread https://github.com/notifications/unsubscribe-auth/AAATYKOBFU4BB33C3AFG2HDQCBOIFANCNFSM4HEUCP6Q .

dgud commented 5 years ago

Did more fixes and support of swap yz (depends of export format) and pushed to maint and master branch.