Truggy differential challenge

Show off your FreeCAD projects here!
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
ppemawm
Veteran
Posts: 1240
Joined: Fri May 17, 2013 3:54 pm
Location: New York NY USA

Re: Truggy differential challenge

Post by ppemawm »

abdullah wrote: Wed Mar 14, 2018 3:48 pm The updated project file:
https://drive.google.com/open?id=1dpePg ... YxQ_cUTMMz
Looks like you are making good progress. This seems doubly difficult since you are taking your dimensions from the original downloaded objects to create your own model rather than from drawings. Is that correct?
I have reviewed your file with great interest. One question so far, why are you using clones for the assembly?
"It is a poor workman who blames his tools..." ;)
abdullah
Veteran
Posts: 4935
Joined: Sun May 04, 2014 3:16 pm
Contact:

Re: Truggy differential challenge

Post by abdullah »

ppemawm wrote: Wed Mar 14, 2018 6:27 pm
abdullah wrote: Wed Mar 14, 2018 3:48 pm Looks like you are making good progress. This seems doubly difficult since you are taking your dimensions from the original downloaded objects to create your own model rather than from drawings. Is that correct?
I have reviewed your file with great interest. One question so far, why are you using clones for the assembly?
Yes, it is correct. I would love to have drawings, but there is none. I get them from the stl. Selectively using transparency on both the stl and the body help the design.

The issue with clones and assembly is honestly me being me. There is (almost) no actual advantage today for using clones unless you need duplicates. In fact there may be drawbacks as there are more objects in the tree.

One advantage that may exist is the possibility of designing on a position and orientation (placement) and then integrating it in other position, should it be any advantage associated to it.

One advantage might come if I have to make scaling to account for expansion while 3D printing it. Hopefully I won't because with 3D printing the common thing is that holes tend to be slightly smaller, so if you scale the part to compensate for expansion your holes get even smaller.

The real reason why I do it, is that I conceptually think of design and assembly separately. So I want my design objects in my design folder and my assembly clones in my assembly folder. Additionally, I think that when an assembly WB will be integrated, there is a high chance it will work similarly.

Thanks for taking a look at it. I need to learn to actually use FreeCAD.
Last edited by abdullah on Wed Mar 14, 2018 9:28 pm, edited 1 time in total.
User avatar
looo
Veteran
Posts: 3941
Joined: Mon Nov 11, 2013 5:29 pm

Re: Truggy differential challenge

Post by looo »

abdullah wrote:I would have lived happily ever after with it, if it weren't because I do have an original gear I am copying, which has a different tooth profile. This other gear, from which I do not know the parameters, most probably was made with some product from Autodesk (as the creator of truggy is sponsored by Autodesk). I do not have or know any other tool than FreeCAD. Maybe somebody with an expensive luxury car can try to see how this does look like.

Just another thing about the bevel-gear theory:
There are different types of bevel-gears-profiles. While spherical involute has the same theoretical background as the cylindrical involute, it is not easy to create these gears.
Also there are other theoretical things, like profile shift, which can be applied to to spherical gears too. But I was already happy to get the spherical theory working. Shifting is another painful topic and I currently haven't got time/money/skills/motivation to do that task :)

What I want to say:
The difference between the 2 gears doesn't necessarily mean that one of them has a wrong profile. And as pictures saying more than words, maybe you want to have a look at these images which show all the theory of the spherical-involute (unwrapping a cone)....
https://forum.freecadweb.org/viewtopic. ... =30#p44735

And finally I want to say that your work is amazing! I already started to get some feedback into the gear-workbench. Any further suggestions are welcome
https://github.com/looooo/FCGear/issues/21
chrisb
Veteran
Posts: 54280
Joined: Tue Mar 17, 2015 9:14 am

Re: Truggy differential challenge

Post by chrisb »

abdullah wrote: Wed Mar 14, 2018 7:11 pm
ppemawm wrote: Wed Mar 14, 2018 6:27 pm
abdullah wrote: Wed Mar 14, 2018 3:48 pm ...
Mind getting the quoting sorted (two posts before)?
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
abdullah
Veteran
Posts: 4935
Joined: Sun May 04, 2014 3:16 pm
Contact:

Re: Truggy differential challenge

Post by abdullah »

chrisb wrote: Wed Mar 14, 2018 9:03 pm
Sure! :)
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Truggy differential challenge

Post by NormandC »

abdullah wrote: Wed Mar 14, 2018 7:11 pm Yes, it is correct. I would love to have drawings, but there is none. I get them from the stl.
There are lots of PDF drawings in the Thingiverse page. But they show exploded views of sub-assemblies. There are no dimensioned drawings.

There is a STEP file of the complete assembly, see OpenRC_Truggy_Assembly.stp. STEP files are B-rep models. However, FreeCAD v0.16 hangs trying to open it, and v0.17 hard crashes with a segmentation fault.

Code: Select all

Program received signal SIGSEGV, Segmentation fault.
#0  /lib/x86_64-linux-gnu/libc.so.6(+0x354b0) [0x7f0c31db24b0]
#1  0x7f0bf231e738 in Interface_EntityIterator::AddList(opencascade::handle<TColStd_HSequenceOfTransient> const&) from /usr/lib/x86_64-linux-gnu/libTKXSBase.so.7+0x1c8
#2  0x7f0bf23274e4 in Interface_Graph::Sharings(opencascade::handle<Standard_Transient> const&) const from /usr/lib/x86_64-linux-gnu/libTKXSBase.so.7+0x44
#3  0x7f0bef9594bc in STEPConstruct_Assembly::CheckSRRReversesNAUO(Interface_Graph const&, opencascade::handle<StepShape_ContextDependentShapeRepresentation> const&) from /usr/lib/x86_64-linux-gnu/libTKSTEP.so.7+0x1cc
#4  0x7f0bef9eba5b in STEPControl_ActorRead::TransferEntity(opencascade::handle<StepRepr_NextAssemblyUsageOccurrence> const&, opencascade::handle<Transfer_TransientProcess> const&) from /usr/lib/x86_64-linux-gnu/libTKSTEP.so.7+0x2cb
#5  0x7f0bef9ea6ab in STEPControl_ActorRead::TransferEntity(opencascade::handle<StepBasic_ProductDefinition> const&, opencascade::handle<Transfer_TransientProcess> const&) from /usr/lib/x86_64-linux-gnu/libTKSTEP.so.7+0x122b
#6  0x7f0bef9e6c95 in STEPControl_ActorRead::TransferShape(opencascade::handle<Standard_Transient> const&, opencascade::handle<Transfer_TransientProcess> const&, bool) from /usr/lib/x86_64-linux-gnu/libTKSTEP.so.7+0x275
#7  0x7f0bef9e7415 in STEPControl_ActorRead::Transfer(opencascade::handle<Standard_Transient> const&, opencascade::handle<Transfer_TransientProcess> const&) from /usr/lib/x86_64-linux-gnu/libTKSTEP.so.7+0x195
#8  0x7f0bf2345d67 in Transfer_ActorOfTransientProcess::Transferring(opencascade::handle<Standard_Transient> const&, opencascade::handle<Transfer_ProcessForTransient> const&) from /usr/lib/x86_64-linux-gnu/libTKXSBase.so.7+0x67
#9  0x7f0bf23591f6 in Transfer_ProcessForTransient::TransferProduct(opencascade::handle<Standard_Transient> const&) from /usr/lib/x86_64-linux-gnu/libTKXSBase.so.7+0xc6
#10  0x7f0bf235c1c4 in Transfer_ProcessForTransient::Transferring(opencascade::handle<Standard_Transient> const&) from /usr/lib/x86_64-linux-gnu/libTKXSBase.so.7+0x214
#11  0x7f0bf235ca86 in Transfer_ProcessForTransient::Transfer(opencascade::handle<Standard_Transient> const&) from /usr/lib/x86_64-linux-gnu/libTKXSBase.so.7+0x26
#12  0x7f0bf23f01db in XSControl_TransferReader::TransferOne(opencascade::handle<Standard_Transient> const&, bool) from /usr/lib/x86_64-linux-gnu/libTKXSBase.so.7+0x2fb
#13  0x7f0bf23e762e in XSControl_Reader::TransferEntity(opencascade::handle<Standard_Transient> const&) from /usr/lib/x86_64-linux-gnu/libTKXSBase.so.7+0x4e
#14  0x7f0bf23e8624 in XSControl_Reader::TransferOneRoot(int) from /usr/lib/x86_64-linux-gnu/libTKXSBase.so.7+0x34
#15  0x7f0b93852b5d in STEPCAFControl_Reader::Transfer(STEPControl_Reader&, int, opencascade::handle<TDocStd_Document>&, NCollection_Sequence<TDF_Label>&, bool) from /usr/lib/x86_64-linux-gnu/libTKXDESTEP.so.7+0x8d
#16  0x7f0b938543a9 in STEPCAFControl_Reader::Transfer(opencascade::handle<TDocStd_Document>&) from /usr/lib/x86_64-linux-gnu/libTKXDESTEP.so.7+0x69
#17  0x7f0ba06a5448 in ImportGui::Module::insert(Py::Tuple const&) from /usr/lib/freecad-daily/lib/ImportGui.so+0x348
#18  0x7f0ba06a1e9a in Py::ExtensionModule<ImportGui::Module>::invoke_method_varargs(void*, Py::Tuple const&) from /usr/lib/freecad-daily/lib/ImportGui.so+0x3a
#19  /usr/lib/freecad-daily/lib/libFreeCADBase.so(method_varargs_call_handler+0x16c) [0x7f0c33ed04fc]
#20  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x8a51) [0x7f0c33978971]
#21  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c) [0x7f0c33aae05c]
#22  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19) [0x7f0c3396fda9]
#23  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyRun_StringFlags+0x76) [0x7f0c339ea1f6]
#24  0x7f0c33f007e6 in Base::InterpreterSingleton::runString[abi:cxx11](char const*) from /usr/lib/freecad-daily/lib/libFreeCADBase.so+0x66
#25  0x7f0c343e44fd in App::Application::sLoadFile(_object*, _object*, _object*) from /usr/lib/freecad-daily/lib/libFreeCADApp.so+0x53d
#26  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x8a51) [0x7f0c33978971]
#27  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c) [0x7f0c33aae05c]
#28  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19) [0x7f0c3396fda9]
#29  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyRun_StringFlags+0x76) [0x7f0c339ea1f6]
#30  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4c47) [0x7f0c33974b67]
#31  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x85c) [0x7f0c33aae05c]
#32  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyEval_EvalCode+0x19) [0x7f0c3396fda9]
#33  /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0(PyRun_StringFlags+0x76) [0x7f0c339ea1f6]
#34  0x7f0c33f007e6 in Base::InterpreterSingleton::runString[abi:cxx11](char const*) from /usr/lib/freecad-daily/lib/libFreeCADBase.so+0x66
#35  0x7f0c34a1f2d0 in Gui::Command::doCommand(Gui::Command::DoCmd_Type, char const*, ...) from /usr/lib/freecad-daily/lib/libFreeCADGui.so+0x130
#36  0x7f0be5b6ad62 in WebGui::BrowserView::onLinkClicked(QUrl const&) from /usr/lib/freecad-daily/lib/WebGui.so+0x592
#37  0x7f0c3287e010 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) from /usr/lib/x86_64-linux-gnu/libQtCore.so.4+0x4d0
#38  0x7f0c2e04d615 in QWebView::linkClicked(QUrl const&) from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4+0x35
#39  0x7f0c3287e010 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) from /usr/lib/x86_64-linux-gnu/libQtCore.so.4+0x4d0
#40  0x7f0c2e03d405 in QWebPage::linkClicked(QUrl const&) from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4+0x35
#41  0x7f0c2e03d47c in QWebPage::acceptNavigationRequest(QWebFrame*, QNetworkRequest const&, QWebPage::NavigationType) from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4+0x5c
#42  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0x438be7) [0x7f0c2e081be7]
#43  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0xa59d71) [0x7f0c2e6a2d71]
#44  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0xa3975d) [0x7f0c2e68275d]
#45  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0xa3a5fc) [0x7f0c2e6835fc]
#46  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0xa3b24e) [0x7f0c2e68424e]
#47  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0xa3b933) [0x7f0c2e684933]
#48  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0xa3be90) [0x7f0c2e684e90]
#49  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0xa3c4f1) [0x7f0c2e6854f1]
#50  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0x820698) [0x7f0c2e469698]
#51  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0x6b10f0) [0x7f0c2e2fa0f0]
#52  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0x6c41f8) [0x7f0c2e30d1f8]
#53  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0x6afc46) [0x7f0c2e2f8c46]
#54  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0x6d49ae) [0x7f0c2e31d9ae]
#55  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0xac2b75) [0x7f0c2e70bb75]
#56  /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4(+0xac72fb) [0x7f0c2e7102fb]
#57  0x7f0c2e04b926 in QWebPage::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4+0x426
#58  0x7f0c2e04c800 in QWebView::mouseDoubleClickEvent(QMouseEvent*) from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4+0x20
#59  0x7f0c32ded8d0 in QWidget::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQtGui.so.4+0x2a0
#60  0x7f0c2e04d837 in QWebView::event(QEvent*) from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4+0x67
#61  0x7f0c32d96fdc in QApplicationPrivate::notify_helper(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQtGui.so.4+0x8c
#62  0x7f0c32d9e0d6 in QApplication::notify(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQtGui.so.4+0x476
#63  0x7f0c349fe494 in Gui::GUIApplication::notify(QObject*, QEvent*) from /usr/lib/freecad-daily/lib/libFreeCADGui.so+0x54
#64  0x7f0c3286990d in QCoreApplication::notifyInternal(QObject*, QEvent*) from /usr/lib/x86_64-linux-gnu/libQtCore.so.4+0x8d
#65  0x7f0c32d9d6dd in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) from /usr/lib/x86_64-linux-gnu/libQtGui.so.4+0x14d
#66  /usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x2493f2) [0x7f0c32e1b3f2]
#67  0x7f0c32e1ac83 in QApplication::x11ProcessEvent(_XEvent*) from /usr/lib/x86_64-linux-gnu/libQtGui.so.4+0x16b3
#68  /usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x272542) [0x7f0c32e44542]
#69  /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_dispatch+0x2a7) [0x7f0c2b4d2197]
#70  /lib/x86_64-linux-gnu/libglib-2.0.so.0(+0x4a3f0) [0x7f0c2b4d23f0]
#71  /lib/x86_64-linux-gnu/libglib-2.0.so.0(g_main_context_iteration+0x2c) [0x7f0c2b4d249c]
#72  0x7f0c3289a2ae in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQtCore.so.4+0x7e
#73  /usr/lib/x86_64-linux-gnu/libQtGui.so.4(+0x272616) [0x7f0c32e44616]
#74  0x7f0c3286818f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQtCore.so.4+0x3f
#75  0x7f0c328684f5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) from /usr/lib/x86_64-linux-gnu/libQtCore.so.4+0x1b5
#76  0x7f0c3286e4b9 in QCoreApplication::exec() from /usr/lib/x86_64-linux-gnu/libQtCore.so.4+0x99
#77  0x7f0c349b7270 in Gui::Application::runApplication() from /usr/lib/freecad-daily/lib/libFreeCADGui.so+0x15b0
#78  freecad-daily(main+0x8b4) [0x403834]
#79  /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0) [0x7f0c31d9d830]
#80  freecad-daily(_start+0x29) [0x404a79]
It's a pity, it would be much easier to reverse engineer solid parts than STL meshes.

I'd be interested to know if somebody else is able to open the file.

OS: Ubuntu 16.04.4 LTS
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13407 (Git)
Build type: None
Branch: master
Hash: 2c2d781aa686b731f2a0e754dc30ebb76f3553e0
Python version: 2.7.12
Qt version: 4.8.7
Coin version: 4.0.0a
OCC version: 7.1.0
Locale: French/Canada (fr_CA)
chrisb
Veteran
Posts: 54280
Joined: Tue Mar 17, 2015 9:14 am

Re: Truggy differential challenge

Post by chrisb »

NormandC wrote: Thu Mar 15, 2018 12:15 am I'd be interested to know if somebody else is able to open the file.
Where did you find this file? I tried the step files from https://www.thingiverse.com/thing:79938/#files and they all worked.

OS: Mac OS X
Word size of OS: 64-bit
Word size of FreeCAD: 64-bit
Version: 0.17.13407 (Git)
Build type: Release
Branch: (HEAD detached at 2c2d781)
Hash: 2c2d781aa686b731f2a0e754dc30ebb76f3553e0
Python version: 2.7.14
Qt version: 5.6.2
Coin version: 4.0.0a
OCC version: 7.1.0
Locale: German/Germany (de_DE)
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
User avatar
NormandC
Veteran
Posts: 18589
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Truggy differential challenge

Post by NormandC »

From the Thingiverse page linked in abdullah's first post.
chrisb
Veteran
Posts: 54280
Joined: Tue Mar 17, 2015 9:14 am

Re: Truggy differential challenge

Post by chrisb »

My FreeCAD worked very hard for a couple of minutes and seems now to sleep. I will do so as well and see if something happens until tomorrow.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
chrisb
Veteran
Posts: 54280
Joined: Tue Mar 17, 2015 9:14 am

Re: Truggy differential challenge

Post by chrisb »

The process was still alive after 5 more hours showing the wait watch. Killed.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Post Reply