[SOLVED] Picking fails with "OpenInventor" navigation mode

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Post Reply
maxlem
Posts: 26
Joined: Fri Jul 26, 2019 2:32 am

[SOLVED] Picking fails with "OpenInventor" navigation mode

Post by maxlem »

Hello,

I get a picking failure with the OpenInventor nav mode

steps:
Open Freecad
New document
New Part
Create cude
(in CAD nav mode I can pick faces, edges, if I switch to OpenInventor I can't anymore)

[edit: building master to try out...]

OS: Ubuntu Core 20 (KDE/plasma)
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.19.24276 (Git)
Build type: Unknown
Branch: releases/FreeCAD-0-19
Hash: a88db11e0a908f6e38f92bfc5187b13ebe470438
Python version: 3.8.5
Qt version: 5.12.8
Coin version: 4.0.0
OCC version: 7.5.0
Locale: English/United States (en_US)
Last edited by maxlem on Wed Jan 26, 2022 12:24 am, edited 1 time in total.
maxlem
Posts: 26
Joined: Fri Jul 26, 2019 2:32 am

Re: Picking fails with "OpenInventor" navigation mode

Post by maxlem »

I tried to build master but the buil fails...


cmake -S ../freecad-source -B . -DBUILD_QT5=ON -DPYTHON_EXECUTABLE=/usr/bin/python3

Code: Select all

In file included from /home/maxime/Downloads/freecad-source/src/Base/RotationPyImp.cpp:33:
/home/maxime/Downloads/freecad-source/src/Base/RotationPy.cpp:137:40: error: ‘staticCallback_toEuler’ was not declared in this scope; did you mean ‘staticCallback_slerp’?
  137 |         reinterpret_cast<PyCFunction>( staticCallback_toEuler ),
      |                                        ^~~~~~~~~~~~~~~~~~~~~~
      |                                        staticCallback_slerp
/home/maxime/Downloads/freecad-source/src/Base/RotationPy.cpp:641:12: error: no declaration matches ‘PyObject* Base::RotationPy::staticCallback_toEuler(PyObject*, PyObject*)’
  641 | PyObject * RotationPy::staticCallback_toEuler (PyObject *self, PyObject *args)
      |            ^~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/RotationPy.cpp:641:12: note: no functions named ‘PyObject* Base::RotationPy::staticCallback_toEuler(PyObject*, PyObject*)’
[ 41%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/UnitsSchemaInternal.cpp.o
In file included from /home/maxime/Downloads/freecad-source/src/Base/GeometryPyCXX.h:34,
                 from /home/maxime/Downloads/freecad-source/src/Base/RotationPyImp.cpp:28:
/home/maxime/Downloads/freecad-build/src/Base/RotationPy.h:21:18: note: ‘class Base::RotationPy’ defined here
   21 | class BaseExport RotationPy : public Base::PyObjectBase
      |                  ^~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp: In static member function ‘static Base::UnitsSchemaPtr Base::UnitsApi::createSchema(Base::UnitSystem)’:
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:115:21: error: ‘make_unique’ is not a member of ‘std’
  115 |         return std::make_unique<UnitsSchemaInternal>();
      |                     ^~~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:115:21: note: ‘std::make_unique’ is only available from C++14 onwards
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:115:52: error: expected primary-expression before ‘>’ token
  115 |         return std::make_unique<UnitsSchemaInternal>();
      |                                                    ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:115:54: error: expected primary-expression before ‘)’ token
  115 |         return std::make_unique<UnitsSchemaInternal>();
      |                                                      ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:117:21: error: ‘make_unique’ is not a member of ‘std’
  117 |         return std::make_unique<UnitsSchemaMKS>();
      |                     ^~~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:117:21: note: ‘std::make_unique’ is only available from C++14 onwards
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:117:47: error: expected primary-expression before ‘>’ token
  117 |         return std::make_unique<UnitsSchemaMKS>();
      |                                               ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:117:49: error: expected primary-expression before ‘)’ token
  117 |         return std::make_unique<UnitsSchemaMKS>();
      |                                                 ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:119:21: error: ‘make_unique’ is not a member of ‘std’
  119 |         return std::make_unique<UnitsSchemaImperial1>();
      |                     ^~~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:119:21: note: ‘std::make_unique’ is only available from C++14 onwards
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:119:53: error: expected primary-expression before ‘>’ token
  119 |         return std::make_unique<UnitsSchemaImperial1>();
      |                                                     ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:119:55: error: expected primary-expression before ‘)’ token
  119 |         return std::make_unique<UnitsSchemaImperial1>();
      |                                                       ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:121:21: error: ‘make_unique’ is not a member of ‘std’
  121 |         return std::make_unique<UnitsSchemaImperialDecimal>();
      |                     ^~~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:121:21: note: ‘std::make_unique’ is only available from C++14 onwards
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:121:59: error: expected primary-expression before ‘>’ token
  121 |         return std::make_unique<UnitsSchemaImperialDecimal>();
      |                                                           ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:121:61: error: expected primary-expression before ‘)’ token
  121 |         return std::make_unique<UnitsSchemaImperialDecimal>();
      |                                                             ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:123:21: error: ‘make_unique’ is not a member of ‘std’
  123 |         return std::make_unique<UnitsSchemaCentimeters>();
      |                     ^~~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:123:21: note: ‘std::make_unique’ is only available from C++14 onwards
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:123:55: error: expected primary-expression before ‘>’ token
  123 |         return std::make_unique<UnitsSchemaCentimeters>();
      |                                                       ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:123:57: error: expected primary-expression before ‘)’ token
  123 |         return std::make_unique<UnitsSchemaCentimeters>();
      |                                                         ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:125:21: error: ‘make_unique’ is not a member of ‘std’
  125 |         return std::make_unique<UnitsSchemaImperialBuilding>();
      |                     ^~~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:125:21: note: ‘std::make_unique’ is only available from C++14 onwards
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:125:60: error: expected primary-expression before ‘>’ token
  125 |         return std::make_unique<UnitsSchemaImperialBuilding>();
      |                                                            ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:125:62: error: expected primary-expression before ‘)’ token
  125 |         return std::make_unique<UnitsSchemaImperialBuilding>();
      |                                                              ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:127:21: error: ‘make_unique’ is not a member of ‘std’
  127 |         return std::make_unique<UnitsSchemaMmMin>();
      |                     ^~~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:127:21: note: ‘std::make_unique’ is only available from C++14 onwards
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:127:49: error: expected primary-expression before ‘>’ token
  127 |         return std::make_unique<UnitsSchemaMmMin>();
      |                                                 ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:127:51: error: expected primary-expression before ‘)’ token
  127 |         return std::make_unique<UnitsSchemaMmMin>();
      |                                                   ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:129:21: error: ‘make_unique’ is not a member of ‘std’
  129 |         return std::make_unique<UnitsSchemaImperialCivil>();
      |                     ^~~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:129:21: note: ‘std::make_unique’ is only available from C++14 onwards
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:129:57: error: expected primary-expression before ‘>’ token
  129 |         return std::make_unique<UnitsSchemaImperialCivil>();
      |                                                         ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:129:59: error: expected primary-expression before ‘)’ token
  129 |         return std::make_unique<UnitsSchemaImperialCivil>();
      |                                                           ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:131:21: error: ‘make_unique’ is not a member of ‘std’
  131 |         return std::make_unique<UnitsSchemaFemMilliMeterNewton>();
      |                     ^~~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:131:21: note: ‘std::make_unique’ is only available from C++14 onwards
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:131:63: error: expected primary-expression before ‘>’ token
  131 |         return std::make_unique<UnitsSchemaFemMilliMeterNewton>();
      |                                                               ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:131:65: error: expected primary-expression before ‘)’ token
  131 |         return std::make_unique<UnitsSchemaFemMilliMeterNewton>();
      |                                                                 ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp: In static member function ‘static void Base::UnitsApi::setSchema(Base::UnitSystem)’:
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:150:31: error: ‘make_unique’ is not a member of ‘std’
  150 |         UserPrefSystem = std::make_unique<UnitsSchemaInternal>();
      |                               ^~~~~~~~~~~
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:150:31: note: ‘std::make_unique’ is only available from C++14 onwards
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:150:62: error: expected primary-expression before ‘>’ token
  150 |         UserPrefSystem = std::make_unique<UnitsSchemaInternal>();
      |                                                              ^
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:150:64: error: expected primary-expression before ‘)’ token
  150 |         UserPrefSystem = std::make_unique<UnitsSchemaInternal>();
      |                                                                ^
[ 41%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/UnitsSchemaMKS.cpp.o
make[2]: *** [src/Base/CMakeFiles/FreeCADBase.dir/build.make:930: src/Base/CMakeFiles/FreeCADBase.dir/UnitsApi.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [src/Base/CMakeFiles/FreeCADBase.dir/build.make:709: src/Base/CMakeFiles/FreeCADBase.dir/RotationPyImp.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2591: src/Base/CMakeFiles/FreeCADBase.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 41%] Linking CXX shared library ../../../../Mod/Path/area.so
[ 41%] Built target area
make: *** [Makefile:130: all] Error 2

openBrain
Veteran
Posts: 9041
Joined: Fri Nov 09, 2018 5:38 pm
Contact:

Re: Picking fails with "OpenInventor" navigation mode

Post by openBrain »

As indicated in Mouse navigation, OpenInventor needs a Ctrl+Click to pick. Is thiis what you're doing ?
maxlem
Posts: 26
Joined: Fri Jul 26, 2019 2:32 am

Re: [SOLVED] Picking fails with "OpenInventor" navigation mode

Post by maxlem »

Only two things to answer,

D'oh!
Thanks
wmayer
Founder
Posts: 20309
Joined: Thu Feb 19, 2009 10:32 am
Contact:

Re: [SOLVED] Picking fails with "OpenInventor" navigation mode

Post by wmayer »

I tried to build master but the buil fails...
You seem to have done an in-source build in the past and now do an out-of-source build. With git status you get an overview of all files that are not part of the repository and that have been created with the in-source build. These files must be deleted.
/home/maxime/Downloads/freecad-source/src/Base/UnitsApi.cpp:115:21: note: ‘std::make_unique’ is only available from C++14 onwards
For v0.19 the minimum C++ version was C++11 but with the development of v0.20 it's C++17. However, for older builds the old version is still cached by CMake and you should run cmake-gui to manually change the entry BUILD_ENABLE_CXX_STD in the drop-down box
Post Reply