robmcrosby / BlenderUSDZ

Simple USDZ file exporter plugin for Blender3D
GNU General Public License v3.0
473 stars 66 forks source link

files only allowed to have one dot char #59

Open mcnewmann opened 3 years ago

mcnewmann commented 3 years ago

the importer crashes if a file name contains more than one dot char

Python: Traceback (most recent call last):
  File "/Users/xxxx/Library/Application Support/Blender/2.91/scripts/addons/io_scene_usdz/__init__.py", line 54, in execute
    return import_usdz.import_usdz(context, **keywords)
  File "/Users/xxxx/Library/Application Support/Blender/2.91/scripts/addons/io_scene_usdz/import_usdz.py", line 19, in import_usdz
    fileName, fileType = fileName.split('.')
ValueError: too many values to unpack (expected 2)

location: <unknown location>:-1
yepher commented 2 years ago

I am having this problem. I exported my circuit board design with each component in it's own file. I get names like:

export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 20.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 21.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 22.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 23.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 24.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 25.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 26.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 27.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 28.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 29.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 3.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 30.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 31.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 32.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 33.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 34.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 35.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 4.usdz
export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 5.usdz

I think import_usdz.py#L19

Example of issue:

> python
>>> "export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 35.usdz".split('.')
['export_2021-12-29_15h38m_R_Axial_DIN0207_L6', '3mm_D2', '5mm_P7', '62mm_Horizontal 35', 'usdz']

Possible solution is to use rsplit:

> python
>>> "export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 35.usdz".rsplit('.', 1)
['export_2021-12-29_15h38m_R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal 35', 'usdz']
yepher commented 2 years ago

Fixed in https://github.com/robmcrosby/BlenderUSDZ/pull/77

yepher commented 2 years ago

This is fixed and can be closed