View Issue Details

IDProjectCategoryView StatusLast Update
0001740FreeCADBugpublic2014-10-11 11:20
ReporterLambdaTheUltimate Assigned Towmayer  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Platformx64OSWindowsOS Version7 Home Premium
Product Version0.14 
Target Version0.15 
Summary0001740: subprocess.call() error due to unquoted executable pathname containing SPACE / Raytracing
DescriptionIn Raytracing, clicking button to Render current scene, the ultimate error was;

  The system cannot find the file specified

Cause: FreeCAD is not quoting executable pathnames when they contain a SPACE character before calling;

  subprocess.call()

(To be safe maybe all pathnames under Windows should be quoted rather than checking for SPACE)

Steps To ReproduceUnder Windows, try Rendering anything with FreeCAD | Preferences | Raytracing | 'POV-Ray executable' set to any path with a SPACE in it e.g.

C:\Program Files\POV-Ray\v3.7\bin\pvengine64.exe

          ^

Additional InformationWorkaround: Move your 3rd party Raytracing executable to a folder contain no SPACE characters anywhere in its path.

The above pathname would work, if users were instructed how to "quote" it in the FreeCAD Preferences (a handy tooltip or Note: in the dialog).

Tried: Quoting the executable path in Preferences - got different error complaining there was something wrong with the path.

Likely same issue with 'Luxrender executable' (if installed in any folder with a SPACE character in) if subprocess.call() is being used.
TagsNo tags attached.
FreeCAD Information

Activities

triplus

2014-09-10 23:24

developer   ~0005083

Last edited: 2014-09-10 23:43

View 2 revisions

Long story short this is not FreeCAD limitation. POV-Ray itself has quite strict I/O filename/path (ASCII) naming convention:

http://www.freecadweb.org/tracker/view.php?id=1672

P.S. Reading it again your bug report is a bit different. It is about POV-Ray executable path where my bug report is more about being able to produce rendered image (if POV-Ray executable path is not an issue). I do see possibility to work around the issue described in my (bug/feature) report by rendering to temp location first and giving POV-Ray ASCII document filename and after the render process finishes to move the image to user defined location in Save Dialogue. But moving POV-Ray executable to some temp location with ASCII compliant path name i guess is out of the question.

The only possible solution i see is for FreeCAD to check if the user defined path in Raytracing Workbench Preferences for POV-Ray executable is ASCII compliant or not. If it is then to accept the path if not give warning and don't accept the path because it won't work and i will always fail.

triplus

2014-09-11 00:12

developer   ~0005084

I am guessing adding check like this to Raytracing Workbench Preferences input field for POV-Ray executable path could do the job:

http://stackoverflow.com/questions/20981130/how-can-non-ascii-characters-be-detected-in-a-qstring

Empty space shouldn't be allowed too. If path contains empty space or character above ASCII boundary (127) the path would not be accepted and warning could be produced:

"POV-Ray executable path is not ASCII compliant or it contains blank spaces."

The same check for rendered image save filename/path input field could probably be used for my bug/feature report. But i would prefer if solution to render to temp location and move to user defined "UTF-8" filename/path would be used instead.

Or there always is an option to do nothing any maybe POV-Ray will manage this field better in the future by itself.

shoogen

2014-09-24 10:06

developer   ~0005149

git fetch git://github.com/5263/FreeCAD.git bug1740
git cherry-pick --ff 1b661daf27df30657c3794f7e3892c20d14bf55f

Related Changesets

FreeCAD: master 3523741e

2014-06-14 13:26:25

wmayer

Details Diff
+ make POV-Ray renderer working on Windows Affected Issues
0001740
mod - src/Mod/Raytracing/Gui/Command.cpp Diff File

FreeCAD: master eb598ffd

2014-09-24 11:43:18

shoogen


Committer: wmayer Details Diff
fixes 0001740 quote pov-ray binary on windows

this fixes a bug introduced by 3523741e96d0b8db338f8f05f13282f90ccbbe67
it restores the double quotes for the shell and uses single quotes for the
python string.
Affected Issues
0001740
mod - src/Mod/Raytracing/Gui/Command.cpp Diff File

Issue History

Date Modified Username Field Change
2014-09-10 22:57 LambdaTheUltimate New Issue
2014-09-10 23:24 triplus Note Added: 0005083
2014-09-10 23:43 triplus Note Edited: 0005083 View Revisions
2014-09-11 00:12 triplus Note Added: 0005084
2014-09-24 09:36 shoogen Changeset attached => FreeCAD Master master 3523741e
2014-09-24 09:49 shoogen Status new => confirmed
2014-09-24 09:49 shoogen Target Version => 0.15
2014-09-24 10:06 shoogen Note Added: 0005149
2014-10-11 11:20 wmayer Changeset attached => FreeCAD Master master eb598ffd
2014-10-11 11:20 wmayer Assigned To => wmayer
2014-10-11 11:20 wmayer Status confirmed => closed
2014-10-11 11:20 wmayer Resolution open => fixed