Test Request: Part Design Workflow

Discussion about the development of the Assembly workbench.
ickby
Posts: 2994
Joined: Wed Oct 05, 2011 7:36 am

Test Request: Part Design Workflow

Postby ickby » Tue Jun 02, 2015 3:43 pm

Hello,

tanderson, deepsoic and myself (and of course jreihnlaender with the initial implementation) have put quite some work into the upcoming part design workbench and I would now like some feedback on the current state of the workflow. Apart from the loft feature, which is still missing, I consider the work-flow pretty much done, but I have the feeling that I need some fresh eyes. I'm sure there are many obvious thing I just don't recognize anymore. Hence I would like to hear your feedback. It is important to get this now as once we have started with the document migration tool all tool properties etc. are fixed, so big changes need to happen now. (and I have time over the weekend and want to work on finalizing the workbench)

* Are there any obvious bugs?
* Is the workflow intuitive or do you have no idea how to handle the new part design?
* Any counterintuitive things, workflows?
* Any regressions to current part design modeling?

Please note that the transformation is not yet done, therefore this is known and should be considered:
*Documents done with any other versions may not be loaded or at least wont be transformed to the new part design structure
*Part tools don't recognize the active part object
*documents saved now may not be editable in future versions

I would highly value input! Here you find the code:
https://github.com/blobfish/FreeCAD_sf_ ... baseMaster

The compiled windows version is provided by sgrogan, thanks!

Stefan


EDIT: Reported Issues
- Crash reports: drei [fixed] triplus [fixed] bejant [fixed] Fat-Zer [fixed second one]manderson [fixed]
- Hole feature is not ported [fixed]
- Shaft Wizard is not ported[fixed]
- Pipe icon in the pipe task dialog is not available [fixed]
- part design unit test fails
- New part command is missing Form the task Dialog when opening a New file [fixed]
- Creating of part when switching to part design is too automatic and not very freecadish
- Primitive handling needs updates cox
- Toolbar handling and placing in sketcher workbench should be persistent [can't reproduce any inconsistency]
- Primitive task dialog ok/cancel handling is wrong for bad references [fixed]
- Sketch highlighting does not always work when selected from the tree [fixed]
- Origin (and planes/lines inside) should not be deletable [fixed]
- deleting part or body shoud delete all subcomponents [fixed]
- Add Body / Part tools should omit the word "feature" [fixed]
- Pipe tool orientation is sometimes wrong manderson [fixed]
- sketch placement sometime is broken. kwahoo [fixed]
Last edited by ickby on Sun Apr 03, 2016 7:41 am, edited 17 times in total.
drei
Posts: 479
Joined: Sun May 11, 2014 7:47 pm
Location: Mexico
Contact:

Re: Test Request: Part Design Workflow

Postby drei » Tue Jun 02, 2015 8:02 pm

ickby,
I'm getting compiler error when running

Code: Select all

make -j4
Attached is the entire make log, though I'll post below the most prominent warnings.

Summary:
  • Warnings about needing to set compiler to use c++11 flags. Any idea how and where I can do that?
  • Error at 26%

    Code: Select all

    [ 26%] Generating moc_DlgCheckableMessageBox.cpp
    /home/isaac/Programs/FreeCAD/part-design-src/src/Gui/DlgCheckableMessageBox.h:54: Warning: Property declaration prefEntry has no READ accessor function. The property will be invalid.
    
  • Warning at 35%

    Code: Select all

    [ 35%] Building CXX object src/Gui/CMakeFiles/FreeCADGui.dir/Application.cpp.o
    In file included from /usr/include/eigen3/Eigen/Core:373:0,
                     from /usr/include/eigen3/Eigen/LeastSquares:11,
                     from /home/isaac/Programs/FreeCAD/part-design-src/src/Mod/Mesh/App/Core/Approximation.cpp:59:
    /usr/include/eigen3/Eigen/Eigen2Support:20:2: warning: #warning "Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)" [-Wcpp]
     #warning "Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)"
    
  • Warning at 36%

    Code: Select all

    [ 36%] Building CXX object src/Mod/Part/App/CMakeFiles/Part.dir/FeaturePartSpline.cpp.o
    /home/isaac/Programs/FreeCAD/part-design-src/src/Gui/Document.cpp: In member function ‘void Gui::Document::createView(const Base::Type&)’:
    /home/isaac/Programs/FreeCAD/part-design-src/src/Gui/Document.cpp:990:40: warning: range-based ‘for’ loops only available with -std=c++11 or -std=gnu++11
             for(App::DocumentObject* obj : child_vps) 
    
  • Warning at 45%

    Code: Select all

    [ 45%] Building CXX object src/Mod/Part/App/CMakeFiles/Part.dir/CylinderPyImp.cpp.o
    /home/isaac/Programs/FreeCAD/part-design-src/src/Gui/CommandDoc.cpp: In member function ‘virtual void StdCmdDelete::activated(int)’:
    /home/isaac/Programs/FreeCAD/part-design-src/src/Gui/CommandDoc.cpp:1089:38: error:
    ISO C++ forbids declaration of ‘currentLabel’ with no type [-fpermissive]
                         for (const auto &currentLabel : affectedLabels)
                                          ^
    /home/isaac/Programs/FreeCAD/part-design-src/src/Gui/CommandDoc.cpp:1089:53: warning: range-based ‘for’ loops only available with -std=c++11 or -std=gnu++11
                         for (const auto &currentLabel : affectedLabels)
                                                         ^
    src/Gui/CMakeFiles/FreeCADGui.dir/build.make:1745: recipe for target 'src/Gui/CMakeFiles/FreeCADGui.dir/CommandDoc.cpp.o' failed
    make[2]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/CommandDoc.cpp.o] Error 1
    make[2]: *** Waiting for unfinished jobs....
    [ 45%] Building CXX object src/Mod/Part/App/CMakeFiles/Part.dir/SpherePyImp.cpp.o
    CMakeFiles/Makefile2:3127: recipe for target 'src/Gui/CMakeFiles/FreeCADGui.dir/all' failed
    make[1]: *** [src/Gui/CMakeFiles/FreeCADGui.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    
  • Fails to compile at 49% with the following message:

    Code: Select all

    Linking CXX shared library ../../../../Mod/Part/Part.so
    [ 49%] Built target Part
    Makefile:116: recipe for target 'all' failed
    make: *** [all] Error 2
    
Current cmake flags:

Code: Select all

cmake ../part-design-src -DPYTHON_EXECUTABLE=/usr/bin/python2 -DFREECAD_USE_EXTERNAL_PIVY=1 -DBUILD_FEM=1 -DBUILD_CAM=0 -DBUILD_COMPLETE=0 -DBUILD_IMAGE=1 -DBUILD_INSPECTION=0 -DBUILD_OPENSCAD=0 -DBUILD_PLOT=1 -DBUILD_POINTS=0 -DBUILD_REVERSEENGINEERING=0 -DBUILD_SHIP=0 -DBUILD_ROBOT=0 -DBUILD_SPREADSHEET=1 -DBUILD_ASSEMBLY=0 -DCMAKE_BUILD_TYPE=Debug -DFREECAD_USE_3DCONNEXION=0 -DBUILD_FEM_NETGEN=0 -
My system:

Code: Select all

                   -`
                  .o+`                 isaac@Arch
                 `ooo/                 OS: Arch Linux 
                `+oooo:                Kernel: x86_64 Linux 4.0.4-2-ARCH
               `+oooooo:               Uptime: 3h 1m
               -+oooooo+:              Packages: 849
             `/:-:++oooo+:             Shell: bash 4.3.39
            `/++++/+++++++:            Resolution: 1366x768
           `/++++++++++++++:           DE: KDE5
          `/+++ooooooooooooo/`         WM: KWin
         ./ooosssso++osssssso+`        GTK Theme: Orion [GTK2], Orion [GTK3]
        .oossssso-````/ossssss+`       Icon Theme: breeze
       -osssssso.      :ssssssso.      Font: Montserrat Regular
      :osssssss/        osssso+++.     CPU: Intel Core i5-3337U CPU @ 2.7GHz
     /ossssssss/        +ssssooo/-     RAM: 3404MB / 7871MB
   `/ossssso+/:-        -:/+osssso+-  
  `+sso+:-`                 `.-/+oso: 
 `++:.                           `-/+/
 .`                                 `/
Regards,
Isaac
Attachments
make_error_log.txt.zip
(67.65 KiB) Downloaded 90 times
Need help? Feel free to ask, but please read the guidelines first
ickby
Posts: 2994
Joined: Wed Oct 05, 2011 7:36 am

Re: Test Request: Part Design Workflow

Postby ickby » Tue Jun 02, 2015 8:13 pm

ahh thanks for reporting, totally forgot about that one! I have pushed a fix, it should work now
User avatar
rockn
Posts: 1681
Joined: Wed Sep 28, 2011 10:39 am
Location: Toulouse, France
Contact:

Re: Test Request: Part Design Workflow

Postby rockn » Tue Jun 02, 2015 8:20 pm

Hi,
I managed to compile on Ubuntu 14.04 64 bits :
In cmake-gui I have set std=c++0x to CMAKE_CXX_FLAGS
And I enable Assembly module.

I have some warnings like Drei.
Excuse my noob question, where can I get the logs ? the history of terminal don't have all the warning.

Going to try new Part Design WB :)
Formations et tutoriels FreeCAD en Français, soutenez moi : https://www.tipeee.com/formations-freecad
drei
Posts: 479
Joined: Sun May 11, 2014 7:47 pm
Location: Mexico
Contact:

Re: Test Request: Part Design Workflow

Postby drei » Tue Jun 02, 2015 8:45 pm

New errors appear with

Code: Select all

make -j4
I changed cmake flags to

Code: Select all

cmake ../part-design-src -DPYTHON_EXECUTABLE=/usr/bin/python2 -DFREECAD_USE_EXTERNAL_PIVY=1 -DBUILD_FEM=1 -DBUILD_CAM=0 -DBUILD_COMPLETE=0 -DBUILD_IMAGE=1 -DBUILD_INSPECTION=0 -DBUILD_OPENSCAD=0 -DBUILD_PLOT=1 -DBUILD_POINTS=0 -DBUILD_REVERSEENGINEERING=0 -DBUILD_SHIP=0 -DBUILD_ROBOT=0 -DBUILD_SPREADSHEET=1 -DBUILD_ASSEMBLY=1 -DCMAKE_BUILD_TYPE=Debug -DFREECAD_USE_3DCONNEXION=0 -DBUILD_FEM_NETGEN=0
Summary:
  • Error at 47%

    Code: Select all

    [ 47%] Built target MeshPart
    Linking CXX shared library ../../../../Mod/Import/Import.so
    /usr/bin/ld: cannot find -lAssembly
    collect2: error: ld returned 1 exit status
    src/Mod/Import/App/CMakeFiles/Import.dir/build.make:299: recipe for target 'Mod/Import/Import.so' failed
    make[2]: *** [Mod/Import/Import.so] Error 1
    CMakeFiles/Makefile2:2622: recipe for target 'src/Mod/Import/App/CMakeFiles/Import.dir/all' failed
    make[1]: *** [src/Mod/Import/App/CMakeFiles/Import.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    
  • Failure at 68%

    Code: Select all

    Linking CXX shared library ../../lib/libFreeCADGui.so
    [ 68%] Built target FreeCADGui
    Makefile:116: recipe for target 'all' failed
    make: *** [all] Error 2
    
These were the only warnings that appeared, I'll do a

Code: Select all

make clean
and then I'll attempt to do it again. Are there any specific workbenches that the new PartDesign relies on?
Need help? Feel free to ask, but please read the guidelines first
ickby
Posts: 2994
Joined: Wed Oct 05, 2011 7:36 am

Re: Test Request: Part Design Workflow

Postby ickby » Tue Jun 02, 2015 8:47 pm

and then I'll attempt to do it again. Are there any specific workbenches that the new PartDesign relies on?
Not realy, only Part and Sketcher! It seem you build assembly workbench, maybe try disabling that as it is useless anyway.
User avatar
DeepSOIC
Posts: 7832
Joined: Fri Aug 29, 2014 12:45 am
Location: Saint-Petersburg, Russia

Re: Test Request: Part Design Workflow

Postby DeepSOIC » Tue Jun 02, 2015 8:48 pm

word censored, I'm late with transferring datum planes to my new mapping functionality. Anyway, don't wait for me. I will have to make a porting tool, then.
drei
Posts: 479
Joined: Sun May 11, 2014 7:47 pm
Location: Mexico
Contact:

Re: Test Request: Part Design Workflow

Postby drei » Tue Jun 02, 2015 9:20 pm

ickby,
New errors, attached is the entire log.

cmake flags:

Code: Select all

cmake ../part-design-src -DPYTHON_EXECUTABLE=/usr/bin/python2 -DFREECAD_USE_EXTERNAL_PIVY=1 -DBUILD_FEM=1 -DBUILD_CAM=0 -DBUILD_COMPLETE=0 -DBUILD_IMAGE=1 -DBUILD_INSPECTION=0 -DBUILD_OPENSCAD=0 -DBUILD_PLOT=1 -DBUILD_POINTS=0 -DBUILD_REVERSEENGINEERING=0 -DBUILD_SHIP=0 -DBUILD_ROBOT=0 -DBUILD_SPREADSHEET=1 -DBUILD_ASSEMBLY=0 -DCMAKE_BUILD_TYPE=Debug -DFREECAD_USE_3DCONNEXION=0 -DBUILD_FEM_NETGEN=0

Summary:
  • Warning and note at 15%

    Code: Select all

    [ 15%] Building CXX object src/Base/CMakeFiles/FreeCADBase.dir/Quantity.cpp.o
    In file included from /home/isaac/Programs/FreeCAD/part-design-src/src/Base/Quantity.cpp:298:0:
    QuantityLexer.c:112:0: warning: "YY_NULL" redefined
    In file included from /home/isaac/Programs/FreeCAD/part-design-src/src/Base/Quantity.cpp:294:0:
    QuantityParser.c:84:0: note: this is the location of the previous definition
    
  • Warning at 22%

    Code: Select all

    [ 22%] Building CXX object src/App/CMakeFiles/FreeCADApp.dir/PropertyFile.cpp.o
    /home/isaac/Programs/FreeCAD/part-design-src/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp: In member function ‘SMESH_MeshEditor::Sew_Error SMESH_MeshEditor::SewFreeBorder(const SMDS_MeshNode*, const SMDS_MeshNode*, const SMDS_MeshNode*, const SMDS_MeshNode*, const SMDS_MeshNode*, const SMDS_MeshNode*, bool, bool, bool)’:
    /home/isaac/Programs/FreeCAD/part-design-src/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp:6013:35: warning: narrowing conversion of ‘nSide[0].std::list<_Tp, _Alloc>::size<const SMDS_MeshNode*, std::allocator<const SMDS_MeshNode*> >()’ from 
    std::list<const SMDS_MeshNode*>::size_type {aka long unsigned int}’ to ‘int’ inside { } [-Wnarrowing]
       int nbNodes[]  = { nSide[0].size(), nSide[1].size() };
                                       ^
    /home/isaac/Programs/FreeCAD/part-design-src/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp:6013:52: warning: narrowing conversion of ‘nSide[1].std::list<_Tp, _Alloc>::size<const SMDS_MeshNode*, std::allocator<const SMDS_MeshNode*> >()’ from 
    std::list<const SMDS_MeshNode*>::size_type {aka long unsigned int}’ to ‘int’ inside { } [-Wnarrowing]
       int nbNodes[]  = { nSide[0].size(), nSide[1].size() };
                        
    
  • Warning at 25%

    Code: Select all

    [ 25%] Generating moc_DlgCheckableMessageBox.cpp
    /home/isaac/Programs/FreeCAD/part-design-src/src/Gui/DlgCheckableMessageBox.h:54: Warning: Property declaration prefEntry has no READ accessor function. The property will be invalid.
    
  • Warning at 36% about Eigen

    Code: Select all

    [ 36%] Building CXX object src/Mod/Mesh/App/CMakeFiles/Mesh.dir/Core/Approximation.cpp.o
    In file included from /usr/include/eigen3/Eigen/Core:373:0,
                     from /usr/include/eigen3/Eigen/LeastSquares:11,
                     from /home/isaac/Programs/FreeCAD/part-design-src/src/Mod/Mesh/App/Core/Approximation.cpp:59:
    /usr/include/eigen3/Eigen/Eigen2Support:20:2: warning: #warning "Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)" [-Wcpp]
     #warning "Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)"
    
  • Error at 74%

    Code: Select all

    [ 74%] Building CXX object src/Mod/Fem/App/CMakeFiles/Fem.dir/FemConstraint.cpp.o
    /usr/bin/ld: cannot find -lAssembly
    collect2: error: ld returned 1 exit status
    src/Mod/Import/App/CMakeFiles/Import.dir/build.make:299: recipe for target 'Mod/Import/Import.so' failed
    make[2]: *** [Mod/Import/Import.so] Error 1
    CMakeFiles/Makefile2:2622: recipe for target 'src/Mod/Import/App/CMakeFiles/Import.dir/all' failed
    make[1]: *** [src/Mod/Import/App/CMakeFiles/Import.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    
  • Failure at 75%

    Code: Select all

    Linking CXX shared library ../../../../Mod/Spreadsheet/SpreadsheetGui.so
    [ 75%] Built target SpreadsheetGui
    Makefile:116: recipe for target 'all' failed
    make: *** [all] Error 2
    
Attachments
make_error_log02.txt.zip
(106.48 KiB) Downloaded 62 times
Need help? Feel free to ask, but please read the guidelines first
drei
Posts: 479
Joined: Sun May 11, 2014 7:47 pm
Location: Mexico
Contact:

Re: Test Request: Part Design Workflow

Postby drei » Tue Jun 02, 2015 9:47 pm

New try,
what I did:

Code: Select all

make clean
cmake ../part-design-src -DPYTHON_EXECUTABLE=/usr/bin/python2 -DFREECAD_USE_EXTERNAL_PIVY=1 -DBUILD_FEM=0 -DBUILD_CAM=0 -DBUILD_COMPLETE=0 -DBUILD_IMAGE=1 -DBUILD_INSPECTION=0 -DBUILD_OPENSCAD=0 -DBUILD_PLOT=0 -DBUILD_POINTS=0 -DBUILD_REVERSEENGINEERING=0 -DBUILD_SHIP=0 -DBUILD_ROBOT=0 -DBUILD_SPREADSHEET=0 -DBUILD_ASSEMBLY=0 -DCMAKE_BUILD_TYPE=Debug -DFREECAD_USE_3DCONNEXION=0 -DBUILD_FEM_NETGEN=0

make -j4 >> log.txt
Summary:

Code: Select all

In file included from /home/isaac/Programs/FreeCAD/part-design-src/src/Base/Quantity.cpp:298:0:
QuantityLexer.c:112:0: warning: "YY_NULL" redefined
In file included from /home/isaac/Programs/FreeCAD/part-design-src/src/Base/Quantity.cpp:294:0:
QuantityParser.c:84:0: note: this is the location of the previous definition
/home/isaac/Programs/FreeCAD/part-design-src/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp: In member function ‘SMESH_MeshEditor::Sew_Error SMESH_MeshEditor::SewFreeBorder(const SMDS_MeshNode*, const SMDS_MeshNode*, const SMDS_MeshNode*, const SMDS_MeshNode*, const SMDS_MeshNode*, const SMDS_MeshNode*, bool, bool, bool)’:
/home/isaac/Programs/FreeCAD/part-design-src/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp:6013:35: warning: narrowing conversion of ‘nSide[0].std::list<_Tp, _Alloc>::size<const SMDS_MeshNode*, std::allocator<const SMDS_MeshNode*> >()’ from 
std::list<const SMDS_MeshNode*>::size_type {aka long unsigned int}’ to ‘int’ inside { } [-Wnarrowing]
   int nbNodes[]  = { nSide[0].size(), nSide[1].size() };
                                   ^
/home/isaac/Programs/FreeCAD/part-design-src/src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp:6013:52: warning: narrowing conversion of ‘nSide[1].std::list<_Tp, _Alloc>::size<const SMDS_MeshNode*, std::allocator<const SMDS_MeshNode*> >()’ from 
std::list<const SMDS_MeshNode*>::size_type {aka long unsigned int}’ to ‘int’ inside { } [-Wnarrowing]
   int nbNodes[]  = { nSide[0].size(), nSide[1].size() };
                                                    ^
/home/isaac/Programs/FreeCAD/part-design-src/src/Gui/DlgCheckableMessageBox.h:54: Warning: Property declaration prefEntry has no READ accessor function. The property will be invalid.
In file included from /usr/include/eigen3/Eigen/Core:373:0,
                 from /usr/include/eigen3/Eigen/LeastSquares:11,
                 from /home/isaac/Programs/FreeCAD/part-design-src/src/Mod/Mesh/App/Core/Approximation.cpp:59:
/usr/include/eigen3/Eigen/Eigen2Support:20:2: warning: #warning "Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)" [-Wcpp]
 #warning "Eigen2 support is deprecated in Eigen 3.2.x and it will be removed in Eigen 3.3. (Define EIGEN_NO_EIGEN2_DEPRECATED_WARNING to disable this warning)"
  ^
/usr/bin/ld: cannot find -lAssembly
collect2: error: ld returned 1 exit status
make[2]: *** [Mod/Import/Import.so] Error 1
make[1]: *** [src/Mod/Import/App/CMakeFiles/Import.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
make: *** [all] Error 2
It seems there ae problems with the Import.so file and some searches for -lAssembly (no idea what this is).
And for some weird reason, it still builds the Spreadsheet module even though I set tha flag off.
Attachments
make_error_log03.txt.zip
(101.02 KiB) Downloaded 67 times
Need help? Feel free to ask, but please read the guidelines first
ickby
Posts: 2994
Joined: Wed Oct 05, 2011 7:36 am

Re: Test Request: Part Design Workflow

Postby ickby » Wed Jun 03, 2015 5:02 am

Thanks for posting the log, this way I was able to find a dependency of the import module on the assembly workbench which was not very well handled in the cmake files. I did now disable that dependency, as the assembly workbench is useless. Please try again.