Project Blender Mesh Tools add-on

@Blake, do you plan on adding documentation for the 2D panel stuff?
 
@Blake, do you plan on adding documentation for the 2D panel stuff?

I will add a bit more to the github readme, but I won't go into depth. 2D and virtual cockpit development gets pretty deep. The plug-in is really not doing much other then tweaking some axis values so that the orientation of the 2d panel is the same as a VC (assuming you have the swap y-z axis setting set).

The blend file for my SR71r is setup for VC and 2D panel using this plugin if you want to see an actual example: https://github.com/BMCDad/orbiter-s.../Orbitersdk/samples/SR71R/Blender/SR71r.blend
 
Well, we are using it in Linux. But we have again problems with export and import. I can't import a mesh I exported before.
Matias Saibene has the same issue. Is your Blender Orbiter Master able to run in Linux? I tried several versions, even old with old add-ons.
 
Last edited:
Well, we are using it in Linux. But We have again problems with export and import. I can't import a mesh I exported before.
Matias Saibene has the same issue. Is your Blender Orbiter Master able to run in Linux? I tried several versions, even old with old add-ons.
It should work fine under linux assuming you are running a recent version of Blender (I would suggest 3.5 as that's what I used for the latest that is in master).

File paths seem to be the sticky point between the various OSs. What errors are you getting?
 
It should work fine under linux assuming you are running a recent version of Blender (I would suggest 3.5 as that's what I used for the latest that is in master).

File paths seem to be the sticky point between the various OSs. What errors are you getting?
In my case I receive the following error:
Python:
Pyhton: Traceback (most recent call last):
        File "/home/matias/.config/blender/3.3/scripts/addons/orbiter-blender-2/_init_.py", line 207, in execute
            import_tools.import_mesh(config, path)
        File "/home/matias/.config/blender/3.3/scripts/addons/orbiter-blender-2/_init_.py", line 430, in import_mesh
            orbiter_path = os.path.join(*up[0:up.index('meshes')])
ValueError: 'meshes' is not in list
 
In my case I receive the following error:
Python:
Pyhton: Traceback (most recent call last):
        File "/home/matias/.config/blender/3.3/scripts/addons/orbiter-blender-2/_init_.py", line 207, in execute
            import_tools.import_mesh(config, path)
        File "/home/matias/.config/blender/3.3/scripts/addons/orbiter-blender-2/_init_.py", line 430, in import_mesh
            orbiter_path = os.path.join(*up[0:up.index('meshes')])
ValueError: 'meshes' is not in list



The import assumes you are importing from a 'standard' orbiter folder structure from the 'meshes' folder. So, I would first try from a standard install and see if the import works. It does this so that it can find the textures involved. Orbiter makes similar assumptions, so the plugin follows that.

It could still be this is a Linux issue, I develop and test this under Windows, so as I said, sometimes there are differences in python os.path that trips things up. So first try importing from the 'orbiter/meshes' and see if that works.

I myself don't use the import functionality, so it could probably use more love.

Edit:
This should behave better if 'meshes' is not found, I have put in an issue in github and will take a look when I can. It will be a few weeks however since I am traveling.
 
Last edited:
Great. But please consider, that we have (for Gondos-reasons) ...home/USER/orbiter_test/Orbiter/Meshes...
I put my folders now elsewhere and give it a try. If it just needs the path.

Or perhaps there was a fly in your machine? :ROFLMAO:
 
Last edited:
Great. But please consider, that we have (for Gondos-reasons) ...home/USER/orbiter_test/Orbiter/Meshes...
I put my folders now elsewhere and give it a try. If it just needs the path.

In theory that should work. It's looking for 'meshes' and trying to build the relative path from there. So, if that currently does not work, it should and I'll try to fix it.
 
But there has to be something else. Cause that way I can Import Mir.msh but not ISS.msh, just for example.
I was looking to open Atlantis for the wing profile. And that is real strange.

giphy.gif
 
Last edited:
The problem arises because Windows does not differentiate between upper and lower case. Linux, on the other hand, does.

I can work around the problem by changing the lines 429 and 430 in the file "import_tools.py".

from
Code:
....
    up = [pp.lower() for pp in p.parts]
    orbiter_path = os.path.join(*up[0:up.index('meshes')])
....

to
Code:
....
    up = [pp for pp in p.parts]
    orbiter_path = os.path.join(*up[0:up.index('Meshes')])
....

and add the following on line 350
Code:
....
            src_tex=src_tex.replace("\\", "/" )
....

However, there is still a problem that the capitalization of the texture names is not correct for some. There is still a lot of manual work to be done. To do this, I start Blender in the terminal and with every attempt where a texture cannot be loaded, Blender shows an error in the terminal with the texture not found.

e.g. WARN: Texture file not found: Textur_xxx.dds

This is the name that is in the mesh file. Then I check whether the actual texture file has the same name and if not then I rename the file with what is entered in the mesh. Remember that the capitalization of both must be the same.

Or even easier, you open the mesh file in a text editor and compare at the end of the file whether all the texture names match the actual names of the texture files, if not you can then either change the names in the mesh file or rename the texture files so that the name matches.

By the way, I use Linux Mint, latest version
 
Last edited:
Thanks Jordan. When I can I'll get a Linux system up where I can go through the whole workflow. I've never run it on Linux.
 
I'm surprised it installed. Minimum is Blender 2.81. Blender went through a major topology overhaul for 2.8, I would not expect this plug-in to work in older versions.
That said, if it was working and no longer is, I expect it is related to the change in how transforms are applied, but that is a guess. All I can recommend is to upgrade to a later version of Blender.
Took some time for me to get back to it but you were right and i got it working now, Thanks!
 
#UPDATE Should Work in Textures and Textures2

Based on my last post, if you also add the following in the file "import_tools.py" starting at line 350, it should work automatically without having to rename the files, at least it does for me.

The problem with the capitalization of texture names should be solved. But some meshes have subfolders in Textures or Textures2 folders e.g. the ISS. If the capitalization of these folders is not the same, it won't work.

Code:
#by Jordan START:

            src_tex=src_tex.replace("\\", "/" )
            src_tex_tmp=src_tex[src_tex.rfind('/')+1:]

            src_tex_path=src_tex[:src_tex.rfind('/')+1]

            tmp_tex2_file = os.path.join(orbiter_path, "Textures2", src_tex_path)
            tmp_tex_file = os.path.join(orbiter_path, "Textures", src_tex_path)

            if os.path.exists(tmp_tex_file):
                texturelist = os.listdir(tmp_tex_file)

                y=0
                for x in range(len(texturelist)):
                    if texturelist[x].lower() == src_tex_tmp.lower():
                        y=x

            if os.path.exists(tmp_tex2_file):
                texturelist = os.listdir(tmp_tex2_file)

                y=0
                for x in range(len(texturelist)):
                    if texturelist[x].lower() == src_tex_tmp.lower():
                        y=x

            src_tex=src_tex_path+texturelist[y]
            y=0

#by Jordan END:
 
Last edited:
Hello Blake, I would like to modify a mesh, which works fine in Orbiter 2016. I use a Windows PC, your current Blender Mesh Tool with Blender 3.6. Meshes and texture paths should not be the problem, other meshes can be imported, all in C:\Orbiter\Meshes and C:\Orbiter\Textures. The textures listed in the mesh file do not have subdirectories.
I get this Python report. I attach a ZIP with the files. Thanks, Thomas

Python:
Python: Traceback (most recent call last):
  File "C:\Users\Thomas\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\orbiter-blender-2\__init__.py", line 207, in execute
    import_tools.import_mesh(config, path)
  File "C:\Users\Thomas\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\orbiter-blender-2\import_tools.py", line 459, in import_mesh
    groups, materials, textures = read_mesh_file(config, file_path)
  File "C:\Users\Thomas\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\orbiter-blender-2\import_tools.py", line 437, in read_mesh_file
    raise error
  File "C:\Users\Thomas\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\orbiter-blender-2\import_tools.py", line 431, in read_mesh_file
    groups.append(read_group(file))
  File "C:\Users\Thomas\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\orbiter-blender-2\import_tools.py", line 167, in read_group
    new_group.verts.append(sc(file.readline()).split())
  File "D:\Program Files\Blender Foundation\Blender 3.6\3.6\python\lib\codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xee in position 7342: invalid continuation byte
 

Attachments

File "D:\Program Files\Blender Foundation\Blender 3.6\3.6\python\lib\codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xee in position 7342: invalid continuation byte[/CODE]
This is not a problem with the Blender mesh tools addon. Your problem is that the file was not saved correctly.
Try loading the file with a text editor and then saving it as UTF8.

Alternatively, take this file.
 

Attachments

Hello Blake, I would like to modify a mesh, which works fine in Orbiter 2016. I use a Windows PC, your current Blender Mesh Tool with Blender 3.6. Meshes and texture paths should not be the problem, other meshes can be imported, all in C:\Orbiter\Meshes and C:\Orbiter\Textures. The textures listed in the mesh file do not have subdirectories.
I get this Python report. I attach a ZIP with the files. Thanks, Thomas

Python:
Python: Traceback (most recent call last):
  File "C:\Users\Thomas\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\orbiter-blender-2\__init__.py", line 207, in execute
    import_tools.import_mesh(config, path)
  File "C:\Users\Thomas\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\orbiter-blender-2\import_tools.py", line 459, in import_mesh
    groups, materials, textures = read_mesh_file(config, file_path)
  File "C:\Users\Thomas\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\orbiter-blender-2\import_tools.py", line 437, in read_mesh_file
    raise error
  File "C:\Users\Thomas\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\orbiter-blender-2\import_tools.py", line 431, in read_mesh_file
    groups.append(read_group(file))
  File "C:\Users\Thomas\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\orbiter-blender-2\import_tools.py", line 167, in read_group
    new_group.verts.append(sc(file.readline()).split())
  File "D:\Program Files\Blender Foundation\Blender 3.6\3.6\python\lib\codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xee in position 7342: invalid continuation byte

Python does not seem to like how the 'foreign' characters are represented in the file.

LABEL BoîteChanfrein02

I just loaded the file into VSCode and saved it back out, then it worked. There is probably a way to tell python to handle that, I don't have time at the moment to track that down, so just resave that file and it should work.

edit: Thanks Jordan.
 
I haven't .msh option in export tab but I have .msh in import tab.
Anyone had this issue?
 
@Blake Can you add a checkbox to enable or disable adding name extension for the materials when importing meshes?
 
Back
Top