Release of 0.18

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
User avatar
Zolko
Posts: 336
Joined: Mon Dec 17, 2018 10:02 am

Re: Release of 0.18

Postby Zolko » Mon Jan 07, 2019 11:13 pm

Hello,

is there any chance to enable the Datum Coordinate System in PartDesign WB toolbar and menu for v0.18 release ? (~/src/Mod/PartDesign/App/DatumCS.h|cpp) It will be very important for LinkStage3 and asm3 (v0.19 ?), so it would be great if people could get used to it, and also if the usage could be improved a bit. The functionality is there since a looong time (v0.16 probably), can be added by the Python window, the commands and buttons are all there, but strangely they are not enabled in the GUI. It's not a new feature, it's only a button in a toolbar and an entry in a menu.

It needs 2 lines in

~/src/Mod/PartDesign/Gui/Workbench.cpp

Code: Select all

Gui::MenuItem* Workbench::setupMenuBar() const
    ...
    << "PartDesign_Plane"
+++ << "PartDesign_CoordinateSystem"

Code: Select all

Gui::ToolBarItem* Workbench::setupToolBars() const
    ...
    << "PartDesign_Plane"
+++ << "PartDesign_CoordinateSystem"

and a dozen lines, which are only clones of Datum_Plane, _Line, _Point, in

~/src/Mod/PartDesign/Gui/Command.cpp

Code: Select all

/* Datum feature commands =======================================================*/

+++
DEF_STD_CMD_A(CmdPartDesignCS);

CmdPartDesignCS::CmdPartDesignCS()
  :Command("PartDesign_CoordinateSystem")
{
    sAppModule      = "PartDesign";
    sGroup          = QT_TR_NOOP("PartDesign");
    sMenuText       = QT_TR_NOOP("Create a local coordinate system");
    sToolTipText    = QT_TR_NOOP("Create a new local coordinate system");
    sWhatsThis      = "PartDesign_CoordinateSystem";
    sStatusTip      = sToolTipText;
    sPixmap         = "PartDesign_CoordinateSystem";
}

void CmdPartDesignCS::activated(int iMsg)
{
    Q_UNUSED(iMsg);
    UnifiedDatumCommand(*this, Base::Type::fromName("PartDesign::CoordinateSystem"),"LCS");
}

bool CmdPartDesignCS::isActive(void)
{
    if (getActiveGuiDocument())
        return true;
    else
        return false;
}
+++

Code: Select all

void CreatePartDesignCommands(void)
{
    Gui::CommandManager &rcCmdMgr = Gui::Application::Instance->commandManager();

    rcCmdMgr.addCommand(new CmdPartDesignShapeBinder());
    rcCmdMgr.addCommand(new CmdPartDesignClone());
+++ rcCmdMgr.addCommand(new CmdPartDesignCS());
    rcCmdMgr.addCommand(new CmdPartDesignPlane());
    rcCmdMgr.addCommand(new CmdPartDesignLine());
    rcCmdMgr.addCommand(new CmdPartDesignPoint());

Tested with v0.18—Py3—Qt5 and v0.18—LinkStage3.
try the Assembly4 workbench for FreCAD v0.19
installable with Tools > Addon Manager, new version 0.6.3. Simple tutorial here
ickby
Posts: 2918
Joined: Wed Oct 05, 2011 7:36 am

Re: Release of 0.18

Postby ickby » Tue Jan 08, 2019 8:04 am

@Yorik do you have a larger version of the screenshot you used for the splash screen? I like to update the facebook page picture to match the splash, but the one in this thread has too low resolution.
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Release of 0.18

Postby NormandC » Tue Jan 08, 2019 11:41 am

+1, I wanted to ask the same thing for the FreeCAD Mastodon account :D
wmayer
Site Admin
Posts: 14776
Joined: Thu Feb 19, 2009 10:32 am

Re: Release of 0.18

Postby wmayer » Tue Jan 08, 2019 11:50 am

Zolko wrote:
Mon Jan 07, 2019 11:13 pm
Hello,

is there any chance to enable the Datum Coordinate System in PartDesign WB toolbar and menu for v0.18 release ? (~/src/Mod/PartDesign/App/DatumCS.h|cpp) It will be very important for LinkStage3 and asm3 (v0.19 ?), so it would be great if people could get used to it, and also if the usage could be improved a bit. The functionality is there since a looong time (v0.16 probably), can be added by the Python window, the commands and buttons are all there, but strangely they are not enabled in the GUI. It's not a new feature, it's only a button in a toolbar and an entry in a menu.
git commit 55a4f78ad
This datum feature seems to be pretty useful.
User avatar
fosselius
Posts: 344
Joined: Sat Apr 23, 2016 10:03 am

Re: Release of 0.18

Postby fosselius » Tue Jan 08, 2019 12:20 pm

Zolko wrote:
Mon Jan 07, 2019 11:13 pm
I'm no programmer therefore I won't be able to code anything better.
Well done! considering the statement above ;)
abdullah
Posts: 3174
Joined: Sun May 04, 2014 3:16 pm

Re: Release of 0.18

Postby abdullah » Tue Jan 08, 2019 1:35 pm

yorik wrote:
Mon Jan 07, 2019 12:37 pm
abdullah wrote:
Mon Jan 07, 2019 11:06 am
Personally I would object. :mrgreen:
Your arguments make sense... I'm just sometimes annoyed that some people come and seem to think only the 3 of us are the authors (or "owners :D) of FreeCAD.. I would like to find a way to say otherwise there
Joel_graff wrote:
Mon Jan 07, 2019 2:00 pm
Of course, that's the US law view. I cannot say what international copyright laws may require. I might recommend sending an email to the Software Freedom Conservancy for clarification.
It was not my aim to start a discussion on copyright law. It is a very complex topic ;)

The original 3 author statement is not incoherent with reality. They exist and their work IS indeed copyrighted by them, so that part of FreeCAD is copyrighted by them. FreeCAD contains copyrighted work that includes that indicated work. That statement does not mean that ALL the work is owned by them. Copyright belongs to its holders. I would maintain that line unchanged.

A lot of people contribute to FreeCAD. However, a contributor is not a copyright holder. The copyright holders are the persons who wrote the code itself. Not even the people having the original idea, who did not code it. For this reason, one should not see merit just because it is in the copyright notice. A company may be in the copyright just because it bought the whole thing, so other than financial success to pay for it, there is little merit. A reimplementation changes the copyright. So one can generally copy the idea in a separate sufficiently different implementation without infringing the copyright. A copyright is not a patent, it is just the right to produce replicas.

The FreeCAD Community does not legally exist. I do think that is a problem. Even if it would exist, and unless the copyright holder would assign the copyright to it, it would not hold any copyright.

All someone may love or hate lawyers and legal systems, they are there to stay. Law is not uniform over the planet. Judges can be very competent or otherwise, and some of them I occasionally find very imaginative. Unfortunately, I would not be surprised if a particular judge would interpret Yorik's removing his name and substituting it by "The FreeCAD Community" as a copyright assignment of his rights in some country. For this reason, I am of the general opinion that it is better not to produce contradictory or misleading information.

On the other side, FreeCAD is one of very little projects that acknowledges all the kinds of contributions of its community (not only coders). It does it by name in the "About" dialog and in alphabetic order (For which, until somebody, like an "Aaron" beats me to it, I will remain the first in the list despite the proportionally lower merit in contributions). That is very much telling which kind of community we are... and this post demonstrates that I still have a lot to learn in reducing the length of my posts :lol:
User avatar
yorik
Site Admin
Posts: 11510
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Release of 0.18

Postby yorik » Tue Jan 08, 2019 2:37 pm

Each little piece of code of FreeCAD is indeed copyrighted by its author. So there are in reality not three, but tenths (hundreds?) of copyright owners in FreeCAD. The person who appears in the copyright block at the beginning of each file would, I believe, be the one legally "owning" that file.

"(c) 2019 The FreeCAD Developers" could be a good way to say it... It doesn't pretend to attribute the copyright to anyone else than the author...
User avatar
Joel_graff
Posts: 1492
Joined: Fri Apr 28, 2017 4:23 pm
Contact:

Re: Release of 0.18

Postby Joel_graff » Tue Jan 08, 2019 2:42 pm

abdullah wrote:
Tue Jan 08, 2019 1:35 pm
It was not my aim to start a discussion on copyright law. It is a very complex topic
You're right. Strangely, it's one I really enjoy learning about. Might be getting a bit off-topic for the thread, though... :)
abdullah wrote:
Tue Jan 08, 2019 1:35 pm
A lot of people contribute to FreeCAD. However, a contributor is not a copyright holder. The copyright holders are the persons who wrote the code itself.
It's certainly better if only one or a few hold the copyright for the project - it makes legal matters much easier to handle. However, unless there's a FreeCAD CLA which requires contributors to assign copyright to the FreeCAD authors (which is a good idea, IMO), I would think the individual contributors do hold copyright over the code they've written.

A (dated) reference that I found helpful makes that point:

https://haacked.com/archive/2006/01/26/ ... ject.aspx/

But I don't claim to know with certainty.

In any case, I think it's really a good question for the Conservancy folks. I highly recommend someone sending off an email to them because this does matter to the project and we need to sort it out so we can plan for how we handle these issues in the future.

Considering abdullah's concerns, I'd say as long as *one* legal entity is listed in the notice, it's sufficient. It doesn't assign copyright to anyone, it just lets the user know the material is, in fact, copyrighted.

That means we should stick with the existing notice... or possibly:

Code: Select all

Copyright 2019, Juergen Riegel, Werner Mayer, Yorik van Havre and the FreeCAD Community
You can find the FreeCAD Trails workbench for transportation engineering on my github at:
https://www.github.com/joelgraff/freecad.trails
User avatar
yorik
Site Admin
Posts: 11510
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Release of 0.18

Postby yorik » Tue Jan 08, 2019 3:25 pm

ickby wrote:
Tue Jan 08, 2019 8:04 am
@Yorik do you have a larger version of the screenshot you used for the splash screen? I like to update the facebook page picture to match the splash, but the one in this thread has too low resolution.
orig.jpg
orig.jpg (260.17 KiB) Viewed 472 times
The file is here
abdullah
Posts: 3174
Joined: Sun May 04, 2014 3:16 pm

Re: Release of 0.18

Postby abdullah » Tue Jan 08, 2019 4:53 pm

yorik wrote:
Tue Jan 08, 2019 2:37 pm
The person who appears in the copyright block at the beginning of each file would, I believe, be the one legally "owning" that file.

"(c) 2019 The FreeCAD Developers" could be a good way to say it... It doesn't pretend to attribute the copyright to anyone else than the author...
The original content of a file, provided that nothing was copied into it, belongs to that author. A file, as today, is partly copyrighted to everybody that has modified it. Provided that everybody has used git and the whole story is kept, every author has the copyright for each portion introduced by him and the file as today is copyrighted to all of them. Of course, the original content remains copyrighted to only he who created it.

All this is reasonably kept under control for the purpose of open source because of LGPL. I do not need to ask permission to just grab it, everything for my personal project (Golum style), opensource or not, made public or not, as far as I comply with the conditions of LPGL.
Joel_graff wrote:
Tue Jan 08, 2019 2:42 pm
It's certainly better if only one or a few hold the copyright for the project - it makes legal matters much easier to handle. However, unless there's a FreeCAD CLA which requires contributors to assign copyright to the FreeCAD authors (which is a good idea, IMO), I would think the individual contributors do hold copyright over the code they've written.
Giving a license different from LGPL is rather unfeasible as the project expands, as every single one out of the 182 contributors in GitHub (provided that there is nobody else missing from the older days) shall approve it, or their code excised, unless that other license is compatible with LGPL. For a true opensource project, having it spread over infinite legal persons with a broad enough copyleft license is even better than assigning copyright and being in the hands of the next of kind of the assignee ;)

That said, I originally only wanted to note my preference to keep seeing Yorik explicitly listed and ensuring legal persons were not removed. I promise not to go further off-topic with this.