Units in Sketcher
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Units in Sketcher
Progressing with the role-out of the Unit system the first user facing gui component in FreeCAD got Unit support - the sketcher gui. From now on (in master) the sketcher use the chosen unit-system to display distances and Angles. Also for creating and editing of constraint values the new InputField Qt widget is used. It allows:
* entering units of any kind
* calculating with mathematical expressions
* preserves history values of the certain parameter
* Visual feedback about the correct input
* context menu
http://www.freecadweb.org/wiki/index.ph ... InputField
Have fun and I'm looking forward on feedback...
* entering units of any kind
* calculating with mathematical expressions
* preserves history values of the certain parameter
* Visual feedback about the correct input
* context menu
http://www.freecadweb.org/wiki/index.ph ... InputField
Have fun and I'm looking forward on feedback...
Stop whining - start coding!
Re: Units in Sketcher
I'm unable to compile... even when starting fresh, out-of-source build.
Code: Select all
[ 19%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/Quantity.cpp.o
In file included from /home/normand/compilation/freecad/src/Base/Quantity.h:27:0,
from /home/normand/compilation/freecad/src/Base/Quantity.cpp:29:
/home/normand/compilation/freecad/src/Base/Unit.h:78:2: erreur: ‘QString’ does not name a type
/home/normand/compilation/freecad/src/Base/Unit.h:80:2: erreur: ‘QString’ does not name a type
[ 19%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/QuantityPyImp.cpp.o
make[2]: *** [src/Base/CMakeFiles/FreeCADBase.dir/Quantity.cpp.o] Erreur 1
make[2]: *** Attente des tâches non terminées....
Scanning dependencies of target SMESHDS
[ 19%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Hypothesis.cpp.o
In file included from /home/normand/compilation/freecad/src/Base/Quantity.h:27:0,
from /home/normand/compilation/freecad/src/Base/QuantityPyImp.cpp:4:
/home/normand/compilation/freecad/src/Base/Unit.h:78:2: erreur: ‘QString’ does not name a type
/home/normand/compilation/freecad/src/Base/Unit.h:80:2: erreur: ‘QString’ does not name a type
[ 19%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Mesh.cpp.o
/home/normand/compilation/freecad/src/Base/QuantityPyImp.cpp: In member function ‘std::string Base::QuantityPy::representation() const’:
/home/normand/compilation/freecad/src/Base/QuantityPyImp.cpp:19:37: erreur: ‘const class Base::Unit’ has no member named ‘getString’
make[2]: *** [src/Base/CMakeFiles/FreeCADBase.dir/QuantityPyImp.cpp.o] Erreur 1
make[1]: *** [src/Base/CMakeFiles/FreeCADBase.dir/all] Erreur 2
make[1]: *** Attente des tâches non terminées....
[ 20%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_GroupBase.cpp.o
[ 20%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_SubMesh.cpp.o
[ 20%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Document.cpp.o
[ 20%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_GroupOnGeom.cpp.o
[ 20%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Group.cpp.o
[ 20%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Script.cpp.o
[ 20%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESHDS.dir/src/SMESHDS/SMESHDS_Command.cpp.o
Linking CXX shared library ../../../lib/SMESHDS.so
[ 20%] Built target SMESHDS
Linking CXX shared library ../../../bin/pivy/_coin.so
[ 20%] Built target coin
make: *** [all] Erreur 2
Re: Units in Sketcher
Thanks. I'm now getting this:
Code: Select all
[ 16%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/DriverUNV.dir/src/DriverUNV/UNV2417_Structure.cpp.o
/home/normand/compilation/freecad/src/Base/UnitsSchemaMKS.cpp: In member function ‘virtual QString Base::UnitsSchemaMKS::schemaTranslate(Base::Quantity, double&, QString&)’:
/home/normand/compilation/freecad/src/Base/UnitsSchemaMKS.cpp:39:49: erreur: call of overloaded ‘abs(double)’ is ambiguous
/home/normand/compilation/freecad/src/Base/UnitsSchemaMKS.cpp:39:49: note: candidates are:
/usr/include/stdlib.h:771:12: note: int abs(int)
/usr/include/c++/4.6/cstdlib:139:3: note: long int std::abs(long int)
/usr/include/c++/4.6/cstdlib:173:3: note: long long int __gnu_cxx::abs(long long int)
make[2]: *** [src/Base/CMakeFiles/FreeCADBase.dir/UnitsSchemaMKS.cpp.o] Erreur 1
make[1]: *** [src/Base/CMakeFiles/FreeCADBase.dir/all] Erreur 2
make[1]: *** Attente des tâches non terminées....
Linking CXX shared library ../../../lib/DriverUNV.so
[ 16%] Built target DriverUNV
make: *** [all] Erreur 2
Re: Units in Sketcher
Next error, seems SMESH is the problem now?
Code: Select all
[ 16%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/__/zipios++/basicentry.cpp.o
/home/normand/compilation/freecad/src/Base/UnitPyImp.cpp: In member function ‘std::string Base::UnitPy::representation() const’:
/home/normand/compilation/freecad/src/Base/UnitPyImp.cpp:28:63: erreur: conversion from ‘QByteArray’ to non-scalar type ‘std::string {aka std::basic_string<char>}’ requested
make[2]: *** [src/Base/CMakeFiles/FreeCADBase.dir/UnitPyImp.cpp.o] Erreur 1
make[2]: *** Attente des tâches non terminées....
[ 16%] make[1]: *** [src/Base/CMakeFiles/FreeCADBase.dir/all] Erreur 2
make[1]: *** Attente des tâches non terminées....
Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Group.cpp.o
[ 16%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Exception.cpp.o
[ 16%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Hypothesis.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Block.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_subMesh.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_2D_Algo.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Gen.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_MeshEditor.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Mesh.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Algo.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_OctreeNode.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_HypoFilter.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_Octree.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_3D_Algo.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_1D_Algo.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_MesherHelper.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_MeshVSLink.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/SMESH/SMESH_0D_Algo.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/Controls/SMESH_Controls.cpp.o
[ 17%] Building CXX object src/3rdParty/salomesmesh/CMakeFiles/SMESH.dir/src/Controls/SMESHControls.cpp.o
Linking CXX shared library ../../../lib/SMESH.so
[ 17%] Built target SMESH
make: *** [all] Erreur 2
Re: Units in Sketcher
Compile now at 56%, looking good!
Re: Units in Sketcher
No luck.
Code: Select all
[ 69%] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/SpinBox.cpp.o
/home/normand/compilation/freecad/src/Gui/InputField.cpp: In member function ‘void Gui::InputField::pushToHistory(const QString&)’:
/home/normand/compilation/freecad/src/Gui/InputField.cpp:142:31: erreur: ambiguous overload for ‘operator=’ in ‘value = QString::toUtf8() const()’
/home/normand/compilation/freecad/src/Gui/InputField.cpp:142:31: note: candidates are:
/usr/include/c++/4.6/bits/basic_string.h:549:7: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>, std::basic_string<_CharT, _Traits, _Alloc> = std::basic_string<char>]
/usr/include/c++/4.6/bits/basic_string.h:560:7: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(_CharT) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>, std::basic_string<_CharT, _Traits, _Alloc> = std::basic_string<char>]
/home/normand/compilation/freecad/src/Gui/InputField.cpp: In member function ‘void Gui::InputField::pushToSavedValues(const QString&)’:
/home/normand/compilation/freecad/src/Gui/InputField.cpp:183:31: erreur: ambiguous overload for ‘operator=’ in ‘value = QString::toUtf8() const()’
/home/normand/compilation/freecad/src/Gui/InputField.cpp:183:31: note: candidates are:
/usr/include/c++/4.6/bits/basic_string.h:549:7: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const _CharT*) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>, std::basic_string<_CharT, _Traits, _Alloc> = std::basic_string<char>]
/usr/include/c++/4.6/bits/basic_string.h:560:7: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(_CharT) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>, std::basic_string<_CharT, _Traits, _Alloc> = std::basic_string<char>]
make[2]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/InputField.cpp.o] Erreur 1
make[2]: *** Attente des tâches non terminées....
make[1]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/all] Erreur 2
make: *** [all] Erreur 2