Which is the latest PartDesign&Assembly branch?

Discussion about the development of the Assembly workbench.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
swat_01
Posts: 19
Joined: Thu Aug 13, 2015 9:54 am

Which is the latest PartDesign&Assembly branch?

Post by swat_01 »

Hi!
I want to work on the new PartDesign work workbench. I've tried clone codes from https://github.com/blobfish/FreeCAD_sf_master.git. But There're lots of crash on "assemblyMergeMaster1" branch and I can not even draw a sketch on "rebaseMaster" branch. So how do i start, which branch I should use?
Edit:By the way, when i build and run, I can not find any features or functions in the assembly workbench.
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: Which is the latest PartDesign&Assembly branch?

Post by ickby »

you won't find any branch with usefull assembly features. The rebaseMaster is pretty new and the current part design head, I have only a few commits more here on my machine. I don't want to push them now as they are not really stable, but maybe end of the week.

Why can't you draw a sketch? A little explanation would be helpful, maybe it's a bug, maybe something we should enhance usability wise.
swat_01
Posts: 19
Joined: Thu Aug 13, 2015 9:54 am

Re: Which is the latest PartDesign&Assembly branch?

Post by swat_01 »

ickby wrote:you won't find any branch with usefull assembly features. The rebaseMaster is pretty new and the current part design head, I have only a few commits more here on my machine. I don't want to push them now as they are not really stable, but maybe end of the week.

Why can't you draw a sketch? A little explanation would be helpful, maybe it's a bug, maybe something we should enhance usability wise.
Hi ickby!
I find out that the PartDesignGui::WorkflowManager is used before init() was called, that case a lots of problem, including unable to draw sketch.
Reappear this should be simple: just open the freecad.exe then switch to PartDesign workbench.
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: Which is the latest PartDesign&Assembly branch?

Post by ickby »

Ok, I have PartDesign as default workbench, so this may be the reason why I don't see this. I will have a look later today. The whole migration workflow is something I need to have a deep look at anyway
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: Which is the latest PartDesign&Assembly branch?

Post by ickby »

I do not have any issues with this. Works flawless here. Please make sure you did a full recompile when checkout this branch, not only an incremental build, and if the error persists I need a more detailed step by step description what happens.
swat_01
Posts: 19
Joined: Thu Aug 13, 2015 9:54 am

Re: Which is the latest PartDesign&Assembly branch?

Post by swat_01 »

I'm pretty sure that i did a full recompile on the whole branch, and here's the detail step:
1.launch freecad, and start with startpage workbench;
2.create a new empty document;
3.switch to the partDesign workbench;
then there comes a crash, and the call stack is following:
——————————————————————————————————————————————————
PartDesignGui_d.pyd!PartDesignGui::WorkflowManager::instance() row 85
PartDesignGui_d.pyd!PartDesignGui::isLegacyWorkflow(App::Document *) row 120
PartDesignGui_d.pyd!CmdPartDesignBody::isActive() row 198
FreeCADGui_d.dll!Gui::Command::testActive() row 340
FreeCADGui_d.dll!Gui::CommandManager::testActive() row 1454
FreeCADGui_d.dll!Gui::MainWindow::updateActions() row 1077
FreeCADGui_d.dll!Gui::MainWindow::qt_static_metacall(QObject *, QMetaObject::Call, int, void * *) row 120
FreeCADGui_d.dll!Gui::GUIApplication::notify(QObject *, QEvent *) row 83
FreeCADGui_d.dll!Gui::BitmapFactoryInst::pixmapFromSvg(const QByteArray &, const QSize &) row 369
FreeCADGui_d.dll!Gui::BitmapFactoryInst::loadPixmap(const QString &, QPixmap &) row 213
FreeCADGui_d.dll!Gui::BitmapFactoryInst::pixmap(const char *) row 257
FreeCADGui_d.dll!Gui::BitmapFactoryInst::iconFromTheme(const char *, const QIcon &) row 196
FreeCADGui_d.dll!Gui::Command::createAction() row 682
FreeCADGui_d.dll!Gui::Command::addTo(QWidget *) row 240
FreeCADGui_d.dll!Gui::CommandManager::addTo(const char *, QWidget *) row 1398
FreeCADGui_d.dll!Gui::ToolBarManager::setup(Gui::ToolBarItem *, QToolBar *) row 269
FreeCADGui_d.dll!Gui::ToolBarManager::setup(Gui::ToolBarItem *) row 220
FreeCADGui_d.dll!Gui::Workbench::activate() row 354
FreeCADGui_d.dll!Gui::WorkbenchManager::activate(const std::string &, const std::string &) row 132
FreeCADGui_d.dll!Gui::Application::activateWorkbench(const char * name) row 1067
FreeCADGui_d.dll!Gui::Application::sActivateWorkbenchHandler(_object *, _object *, _object *) row 674
FreeCADBase_d.dll!Base::InterpreterSingleton::runString(const char *) row 160
FreeCADGui_d.dll!Gui::Command::doCommand(Gui::Command::DoCmd_Type, const char *, ...) row 450
FreeCADGui_d.dll!StdCmdWorkbench::activated(int) row 99
FreeCADGui_d.dll!Gui::Command::invoke(int) row 289
FreeCADGui_d.dll!Gui::ActionGroup::onActivated(QAction *) row 350
FreeCADGui_d.dll!Gui::ActionGroup::qt_static_metacall(QObject *, QMetaObject::Call, int, void * *) row 132
FreeCADGui_d.dll!Gui::WorkbenchGroup::customEvent(QEvent *) row 579
FreeCADGui_d.dll!Gui::GUIApplication::notify(QObject *, QEvent *) row 83
FreeCADGui_d.dll!Gui::Application::runApplication() row 1803
FreeCAD_d.exe!main(int, char * *) row 235
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: Which is the latest PartDesign&Assembly branch?

Post by ickby »

Hm tested it exactly like described an no problem appears for me. Sorry, I suppose you need to debug this yourself for the time being. If you checked out that branch in a folder with a previous master build I still recommend to delete all build files and recompile, just to ensure that no issue is coming from that (we have seen this often enough)
swat_01
Posts: 19
Joined: Thu Aug 13, 2015 9:54 am

Re: Which is the latest PartDesign&Assembly branch?

Post by swat_01 »

before PartDesignGui::WorkflowManager::instance() was invoked, PartDesignGui::WorkflowManager::init() must be called first. So there comes the exception:"Trying to instance the WorkflowManager manager before init() was called."
And I fix it by replacing the throwing line with init().
The implementation explain itself:
WorkflowManager *WorkflowManager::instance() {
if (!_instance) {
throw Base::Exception( "Trying to instance the WorkflowManager manager before init() was called." );//crashed by this line
}
return _instance;
}
ickby
Veteran
Posts: 3116
Joined: Wed Oct 05, 2011 7:36 am

Re: Which is the latest PartDesign&Assembly branch?

Post by ickby »

Ok, nice work! It would be cool if you could test if the migration of a simple old part design file still works and than provide a pull request on github.
Fat-Zer
Posts: 176
Joined: Thu Oct 30, 2014 10:38 pm

Re: Which is the latest PartDesign&Assembly branch?

Post by Fat-Zer »

Thanks for reporting. I'm not positive why the bug doesn't triggers for us.. may be some dark magic around QApplication::notify working a bit different on windows and linux...
Pushed to git...
Post Reply