Test request

Discussion about the development of the Assembly workbench.
nahshon
Posts: 135
Joined: Wed Jul 24, 2013 8:06 pm

Re: Test request

Postby nahshon » Sat Nov 02, 2013 12:12 pm

I'm testing on Fedora 19 Linux. No problem building with my default cmake configuration:

Code: Select all

cmake ../FreeCAD_constraint_ickby \
                 -DCMAKE_BUILD_TYPE=RelWithDebInfo \
                 -DCOIN3D_INCLUDE_DIR=/usr/include/Coin2/ \
                 -DFREECAD_USE_EXTERNAL_PIVY=yes \
                 -DFREECAD_BUILD_FEM_NETGEN=no \
                 -DFREECAD_BUILD_CAM=no \
                 -DFREECAD_BUILD_FEM_NETGEN=no \
                 -DEIGEN3_INCLUDE_DIR=/home/itai/eigen


(I'm using eigen 3.2 from https://bitbucket.org/eigen/eigen).

Good work! I know it's work in progress so I do not expect it to be bug free.. I hope my comments are helping.

I experienced many crashes (segmentation faults). I could not find exact scenarios but it happens pretty fast when playing with the constraints dialog. Try to deselect a constrained face (clicj the X near the face name) and pick a new one from the MDI.
I have also had a crash when I have tried nested "Product" nodes in the tree.

Minor bug in the dialog: It is possible to delesect all the options and then just a value option is displayed. To repeat , Select "Coincident" and then press "Coincident" to deselect it.

It should be possible to delete parts and constraints from an assembly!

There are 3 similar icons to select from. Their tooltips are confusing. I want an assembly... the tooltip for icon second from the right is about a "Component" and when I press it a "Product" node is created.
When creating a new "Product" node it should be activated automatically.

I have not yet succeeded to create an assembly with more than 3 parts and circular constraints... I do not know if I'm doing something wrong or if it's solver bugs. Anyway I get all kinds of unexpected results. In most cases the parts disappear from the display.in other cases the assembly which was already with some constraints gets broken.

I'm not sure it's related. I try to add to the assembly a STEP file with multiple solids. In the asaembly it is broken into multiple unconstrained parts. Is it possible to group multiple solids together so they are treated as a single part (all use the same transformation)?

Can part names be derived from the file names that they are loaded from?

I'm attaching a zip file with some STEP parts that I used for testing.
My initial design would look like this:
Image
But then I fail to set angles between the axis and the rod, or add a second arm to the other end of the axis that is parallel to the first arm.

-- Itai

assemblytest.zip
(220.95 KiB) Downloaded 55 times
ickby
Posts: 2460
Joined: Wed Oct 05, 2011 7:36 am

Re: Test request

Postby ickby » Mon Nov 04, 2013 8:51 am

Hello,

@dre99gsx: I treated all warnings and linker problems, please fetch the newest source and try to compile again. The only issue are the missing dialog icons, I have to postpone those.

@itai: thakns for the report. A few remarks:

I experienced many crashes (segmentation faults). I could not find exact scenarios but it happens pretty fast when playing with the constraints dialog. Try to deselect a constrained face (clicj the X near the face name) and pick a new one from the MDI.
I have also had a crash when I have tried nested "Product" nodes in the tree.


I can not reproduce this, it works well for me. Please provide a more elaborate report how to reproduce this, at best with a freecad file which to use.

It should be possible to delete parts and constraints from an assembly!


It is possible. You just have to click ok on the dialog which apears if you delete stuff with the DEL keyboard button. Currently you have to delete all subcomponents of a part individually, thats a bit annoying.

There are 3 similar icons to select from. Their tooltips are confusing. I want an assembly... the tooltip for icon second from the right is about a "Component" and when I press it a "Product" node is created.
When creating a new "Product" node it should be activated automatically.


We already had a post about this confusing names, I just never changed it. I will do this in the next days.

I have not yet succeeded to create an assembly with more than 3 parts and circular constraints... I do not know if I'm doing something wrong or if it's solver bugs. Anyway I get all kinds of unexpected results. In most cases the parts disappear from the display.in other cases the assembly which was already with some constraints gets broken.


Please attach freecad files with the assembly before adding the broken constraint and givbe me a hint which on will show the error. Without this info I can't reproduce the bug.

I'm not sure it's related. I try to add to the assembly a STEP file with multiple solids. In the asaembly it is broken into multiple unconstrained parts. Is it possible to group multiple solids together so they are treated as a single part (all use the same transformation)?


Importing constraints is not supported yet. But you can treat multiple parts as a single one if you group it as subassembly. If the active Assembly holds another Assembly (currently called Products) then the subassembly is treated as on solid (as long as you did not uncheck the "Solid Subassembly" menu checkbox)

Can part names be derived from the file names that they are loaded from?


Hm sure. But I think that is something for later.

But then I fail to set angles between the axis and the rod

I can reproduce this. But investigating this will take some time. Most likely it is related to your former problems, so hopefully I only have one bug here :)

Thanks for your help,
Stefan
nahshon
Posts: 135
Joined: Wed Jul 24, 2013 8:06 pm

Re: Test request

Postby nahshon » Mon Nov 04, 2013 2:14 pm

I'm recompiling with Debug to try to reproduce and provide more info about crashes.
I have just recently updated cmake to 2.8.12 and I'm getting errors. You may want to apply this fix from the master branch:

Code: Select all

commit f061b6f7ea667e1d6944590d67b9b5b6659e4ba0
Author: wmayer <wmayer@users.sourceforge.net>
Date:   Tue Oct 22 10:33:18 2013 +0200

    0001278: No build possible with current CMake version 2.8.12
nahshon
Posts: 135
Joined: Wed Jul 24, 2013 8:06 pm

Re: Test request

Postby nahshon » Mon Nov 04, 2013 9:52 pm

ickby wrote:
I experienced many crashes (segmentation faults). I could not find exact scenarios but it happens pretty fast when playing with the constraints dialog. Try to deselect a constrained face (clicj the X near the face name) and pick a new one from the MDI.
I have also had a crash when I have tried nested "Product" nodes in the tree.


I can not reproduce this, it works well for me. Please provide a more elaborate report how to reproduce this, at best with a freecad file which to use.

I cannot find a very specific scenario. I just created an assembly and added axis1.step and arm1.step from the zip file that I attached earlier. Then I added a constraint and played with randomly deselectiing and selecting faces. It took about 2 minutes until I got the crash:

Code: Select all

Execute
FreeCAD: /usr/include/boost/smart_ptr/shared_ptr.hpp:653: typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = dcm::Module3D<boost::mpl::vector4<gp_Pnt, gp_Lin, gp_Pln, gp_Cylinder>, std::basic_string<char> >::type<dcm::System<dcm::Kernel<double>, dcm::Module3D<boost::mpl::vector4<gp_Pnt, gp_Lin, gp_Pln, gp_Cylinder>, std::basic_string<char> >, dcm::ModulePart<boost::mpl::vector1<Base::Placement>, std::basic_string<char> > > >::Constraint3D; typename boost::detail::sp_member_access<T>::type = dcm::Module3D<boost::mpl::vector4<gp_Pnt, gp_Lin, gp_Pln, gp_Cylinder>, std::basic_string<char> >::type<dcm::System<dcm::Kernel<double>, dcm::Module3D<boost::mpl::vector4<gp_Pnt, gp_Lin, gp_Pln, gp_Cylinder>, std::basic_string<char> >, dcm::ModulePart<boost::mpl::vector1<Base::Placement>, std::basic_string<char> > > >::Constraint3D*]: Assertion `px != 0' failed.

Program received signal SIGABRT, Aborted.
0xb7fff424 in __kernel_vsyscall ()
(gdb) where
#0  0xb7fff424 in __kernel_vsyscall ()
#1  0x4ccdb936 in raise () from /lib/libc.so.6
#2  0x4ccdd173 in abort () from /lib/libc.so.6
#3  0x4ccd49d7 in __assert_fail_base () from /lib/libc.so.6
#4  0x4ccd4a87 in __assert_fail () from /lib/libc.so.6
#5  0xaacd55e3 in boost::shared_ptr<dcm::Module3D<boost::mpl::vector4<gp_Pnt, gp_Lin, gp_Pln, gp_Cylinder>, std::string>::type<dcm::System<dcm::Kernel<double, dcm::Dogleg>, dcm::Module3D<boost::mpl::vector4<gp_Pnt, gp_Lin, gp_Pln, gp_Cylinder>, std::string>, dcm::ModulePart<boost::mpl::vector1<Base::Placement>, std::string>, dcm::details::EmptyModule<3> > >::Constraint3D>::operator-> (this=0xbfffcab8) at /usr/include/boost/smart_ptr/shared_ptr.hpp:653
#6  0xaad269ae in dcm::Module3D<boost::mpl::vector4<gp_Pnt, gp_Lin, gp_Pln, gp_Cylinder>, std::string>::type<dcm::System<dcm::Kernel<double, dcm::Dogleg>, dcm::Module3D<boost::mpl::vector4<gp_Pnt, gp_Lin, gp_Pln, gp_Cylinder>, std::string>, dcm::ModulePart<boost::mpl::vector1<Base::Placement>, std::string>, dcm::details::EmptyModule<3> > >::inheriter_id::createConstraint3D<dcm::constraint_sequence<boost::fusion::vector2<dcm::Distance, dcm::details::al_orientation> > > (this=0x9699708, id="Alignment", first=..., second=..., constraint1=...)
    at /home/itai/FreeCAD-src/FreeCAD_constraint_ickby/src/Mod/Assembly/App/opendcm/module3d/module.hpp:789
#7  0xaad25142 in Assembly::Constraint::init (this=0x936e930, ass=0x930bb10) at /home/itai/FreeCAD-src/FreeCAD_constraint_ickby/src/Mod/Assembly/App/Constraint.cpp:214
#8  0xaae73ebd in Assembly::ConstraintGroup::init (this=0x94c5620, ass=0x930bb10) at /home/itai/FreeCAD-src/FreeCAD_constraint_ickby/src/Mod/Assembly/App/ConstraintGroup.cpp:82
#9  0xaacce4c6 in Assembly::ItemAssembly::initConstraints (this=0x930bb10, parent=...) at /home/itai/FreeCAD-src/FreeCAD_constraint_ickby/src/Mod/Assembly/App/ItemAssembly.cpp:243
#10 0xaaccd438 in Assembly::ItemAssembly::execute (this=0x930bb10) at /home/itai/FreeCAD-src/FreeCAD_constraint_ickby/src/Mod/Assembly/App/ItemAssembly.cpp:67
#11 0xb74308f5 in App::DocumentObject::recompute (this=0x930bb10) at /home/itai/FreeCAD-src/FreeCAD_constraint_ickby/src/App/DocumentObject.cpp:85
#12 0xb73edd0e in App::Document::_recomputeFeature (this=0x8ea6858, Feat=0x930bb10) at /home/itai/FreeCAD-src/FreeCAD_constraint_ickby/src/App/Document.cpp:1345
#13 0xb73ed9c5 in App::Document::recompute (this=0x8ea6858) at /home/itai/FreeCAD-src/FreeCAD_constraint_ickby/src/App/Document.cpp:1312
#14 0xab090f8c in AssemblyGui::TaskAssemblyConstraints::onSelectionChanged (this=0x93cd5e0, msg=...)
    at /home/itai/FreeCAD-src/FreeCAD_constraint_ickby/src/Mod/Assembly/Gui/TaskAssemblyConstraints.cpp:250
#15 0xb7bba00f in boost::_mfi::mf1<void, Gui::SelectionObserver, Gui::SelectionChanges const&>::operator() (this=0x93e7688, p=0x93cd638, a1=...)
    at /usr/include/boost/bind/mem_fn_template.hpp:165


ickby wrote:
I have not yet succeeded to create an assembly with more than 3 parts and circular constraints... I do not know if I'm doing something wrong or if it's solver bugs. Anyway I get all kinds of unexpected results. In most cases the parts disappear from the display.in other cases the assembly which was already with some constraints gets broken.


Please attach freecad files with the assembly before adding the broken constraint and givbe me a hint which on will show the error. Without this info I can't reproduce the bug.

OK. See the attached file. I'm trying to set the two selected faces parallel. When I try the parallel operator, the two alignment constraints are not respected. When trying the angle constrint I'm getting many errors and the display disappears.
Image
assembly_test.fcstd
(17.13 KiB) Downloaded 58 times

-- Itai
ickby
Posts: 2460
Joined: Wed Oct 05, 2011 7:36 am

Re: Test request

Postby ickby » Tue Nov 05, 2013 6:28 am

thanks itai. I'm pretty sure such simple cyclic problems worked before. Seems I introduced a bug somewhere.
ickby
Posts: 2460
Joined: Wed Oct 05, 2011 7:36 am

Re: Test request

Postby ickby » Fri Nov 08, 2013 11:39 am

Hello guys,

I'm leaving for a two week trip and must report that I was not able to fix this severe bug up to now. So it will stay for the next week like this, but I go on working on the matter when I'm back.

Stefan
andre
Posts: 96
Joined: Wed Nov 13, 2013 5:34 am

Re: Test request

Postby andre » Wed Nov 13, 2013 5:37 am

This is dre99gsx. I was able to finally compile it in Windows, thanks!

I noticed the issue with moving a body, then attempting to create or edit a sketch where the cross-hair is offset, still exists. Looks like I still should not attempt to edit a part after doing a coincident move?
User avatar
quick61
Posts: 3673
Joined: Sat Aug 24, 2013 2:49 am
Location: u.S.A.

Re: Test request

Postby quick61 » Sat Nov 23, 2013 6:03 am

Been testing this assembly branch for the last few days and one of the more common errors I am getting is

Code: Select all

Solver exception 3raised: step size below limit


This will get repeated several times for one operation when selecting an alignment. Sometimes I can close out FreeCAD, reopen it, perform the same moves and not get the error. Kind of hit and miss.

I did however assemble a model with a 32 part count and other than a couple of crashes trying to figure out how to align a round wheel on a flat surface, (never did, I'm thinking that as present it's not possible?), the one thing that was quite noticeable was the solver really got bogged down at times. Once during the assembly I even saved my work, closed the program and rebooted. After loading the model up again, everything was back to normal. I didn't think to check my RAM usage but I will the next assembly I do and report back.

Here is the output from the console when FreeCAD/Assembly crashed trying to align a round part on a flat surface -

Code: Select all

Unsuported Surface Geometrie Type at selection
FreeCAD: /usr/include/boost/smart_ptr/shared_ptr.hpp:653: typename boost::detail::sp_member_access<T>::type boost::shared_ptr<T>::operator->() const [with T = dcm::details::Geometry<dcm::Kernel<double>, 3, boost::mpl::v_item<dcm::tag::cylinder3D, boost::mpl::v_item<dcm::tag::plane3D, boost::mpl::v_item<dcm::tag::line3D, boost::mpl::v_item<dcm::tag::direction3D, boost::mpl::v_item<dcm::tag::point3D, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, 0>, 0>, 0>, 0> >; typename boost::detail::sp_member_access<T>::type = dcm::details::Geometry<dcm::Kernel<double>, 3, boost::mpl::v_item<dcm::tag::cylinder3D, boost::mpl::v_item<dcm::tag::plane3D, boost::mpl::v_item<dcm::tag::line3D, boost::mpl::v_item<dcm::tag::direction3D, boost::mpl::v_item<dcm::tag::point3D, boost::mpl::vector<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 0>, 0>, 0>, 0>, 0> >*]: Assertion `px != 0' failed.
Aborted (core dumped)


This is excellent work so far, please keep it up.

Mark

OS: Ubuntu 13.10
Platform: 64-bit
Version: 0.14.2939 (Git)
Branch: assembly
Hash: d62d1c03daa0a464787dab587a3f57c94eefaf97
Python version: 2.7.5+
Qt version: 4.8.4
Coin version: 4.0.0a
SoQt version: 1.5.0
OCC version: 6.6.0
This post made with 0.0% Micro$oft products - GOT LINUX?
jmaustpc
Posts: 8097
Joined: Tue Jul 26, 2011 6:28 am
Location: Australia

Re: Test request

Postby jmaustpc » Sat Nov 23, 2013 7:13 am

quick61 wrote:Been testing this assembly branch for the last few days and one of the more common errors I am getting is


Just a quick question, Mark :) , are you talking here about code from was it ickby's branch on GitHub or from jriegel/assembly on SF?

I don't know how far apart the two are...which bring me to my next question to ickby...how far apart are they and which branch is the best for us to be testing? :)

Jim
User avatar
quick61
Posts: 3673
Joined: Sat Aug 24, 2013 2:49 am
Location: u.S.A.

Re: Test request

Postby quick61 » Sat Nov 23, 2013 8:39 am

jmaustpc wrote:
quick61 wrote:Been testing this assembly branch for the last few days and one of the more common errors I am getting is


Just a quick question, Mark :) , are you talking here about code from was it ickby's branch on GitHub or from jriegel/assembly on SF?

I don't know how far apart the two are...which bring me to my next question to ickby...how far apart are they and which branch is the best for us to be testing? :)

Jim


When I said "this assembly branch" I was meaning ickby's branch. Should of been more clear about that, sorry. :oops: I don't Know how far apart they are either. I just went with this one as there was a call for testing and I wanted to check out what was being done. With a little work and the ability to export the finished product, this will be one sweet workbench. :)

Mark
This post made with 0.0% Micro$oft products - GOT LINUX?