Can we contribute?

Here's the place for discussion related to coding in FreeCAD, C++ or Python. Design, interfaces and structures.
Roland
Posts: 208
Joined: Fri Aug 21, 2015 2:20 pm

Can we contribute?

Postby Roland » Wed May 10, 2017 2:19 pm

Hello FreeCAD,

I represent a tiny firm (Clean Fuels) that is developing biomass conversion technologies. We got a great contract to supply our machinery, and need to elaborate construction drawings.

One option is to by/rent commercial CAD software. Once in, one cannot easily get out.
The alternative is FreeCAD. Everything we prepare is then our own for ever.

We have a little experience now with FreeCAD. It is worthwhile developing that further. However, we saw a number of flaws that for us would be urgent to tackle, including:
Assembly, with review of parts (sometimes called BOM), connection to spreadsheet for planning/controlling the manufacturing process.
Drawing (construction drawings) that update with the 3D parameters.

We have the possibility to raise the interest of a professional construction engineer with a taste for software development. And of students in Mechanical Engineering. We could use part of our budget to help FreeCAD further.

However, we feel that this should be done in collaboration with the FreeCAD community. Would it be possible to set up a small team from the core developers together with us, so that our effort actually contributes and does not remain isolated?

Please advise.

Greetz

Roland Siemons
http://www.cleanfuels.nl
jmaustpc
Posts: 9581
Joined: Tue Jul 26, 2011 6:28 am
Location: Australia

Re: Can we contribute?

Postby jmaustpc » Thu May 11, 2017 1:11 am

Roland wrote:Please advise.
Hi Roland
Your question requires and deserves a proper and complex response. I thought I would reply quickly and breifly now, then respond properly later today.

Your involvement will be very welcome. If you licence your code LGPL 2 (or if you want, a more liberal licence like BSD) then we can push your code into master, without problems or complications​.

FreeCAD needs more work to get all the features you asked about but to some extent, some of it exists in the Development version, 0.17.

Sorry but I am currently in my paddock on a smartphone, I really have to go now as my cows need feeding. I am in outback Australia, GMT +10 time zone. I write more tonight my time.

Jim
User avatar
yorik
Site Admin
Posts: 11613
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Can we contribute?

Postby yorik » Thu May 11, 2017 2:40 am

Hi Roland,

In a sense, as Jim says, what you are describing (assemble a collection of parts, collect data into a spreadsheet, output 2D drawings) exists already. At the moment, though, it often requires some python "grease", or very good knowledge of FreeCAD internals, to make it work seamlessly, as the GUI tools for that workflow are few. Also, several devs are working on a true Assembly system. This is however not ready yet, and goes slowly, step by step, because everyone is decided not to rush and do it properly.

However, you will find in this forum countless examples showing ways to make assemblies already, without relying on a proper, built-in Assembly module. So there are ways to make it work already. This might be a solution for you (I would definitely check the Assembly2 external workbench from https://github.com/hamish2014/FreeCAD_assembly2 ).

In any case, your help offer is very welcome, thanks a lot! Engaging someone to work on these subjects might be very good, I also think it would need some planning first. I'd be interested in helping, but Assembly is not my most well known area. If there is enough interest from others (ickby, DeepSOIC? anyone else?), we could setup some form of online meeting...
Roland
Posts: 208
Joined: Fri Aug 21, 2015 2:20 pm

Re: Can we contribute?

Postby Roland » Thu May 11, 2017 3:24 pm

Hi Jim and Yorik,

We worked with the external Assembly2. There are Pros and Cons. Given the current state (especially the frustrating amount of unsolved constraints), I tend to follow some suggestions by r-frank in viewtopic.php?f=20&t=16697#p131840, i.e. to position copies with the placement property.

Since we are obliged to produce designs, I hesitate to use the pre-release FreeCAD 17. But I assume that I should give it a try anyway, to see where you guys are heading.

Over the weekend I hope to review our needs more completely.

Greetz
Roland
abdullah
Posts: 3174
Joined: Sun May 04, 2014 3:16 pm

Re: Can we contribute?

Postby abdullah » Thu May 11, 2017 9:03 pm

Roland wrote: represent a tiny firm (Clean Fuels) that is developing biomass conversion technologies. We got a great contract to supply our machinery, and need to elaborate construction drawings.

One option is to by/rent commercial CAD software. Once in, one cannot easily get out.
Very wise. You will be constraint to whatever that software offers you. Here you can actually extend it to fit your needs. In such a case, FreeCAD can come as a real market advantage. Of course, that would depend on your needs current and future and won't come without an investment in having experience with FreeCAD. I would dare to say there is nothing as flexible as FreeCAD. You have to translate though the initial investment into getting to a professional CAD software into the initial investment of getting proficient with FreeCAD plus any FreeCAD software developing costs plus a contingency costs associated to unexpected bugs or needs to work-arounds. At the end every business decision has an associated risk, isn't business at the end some kind of risk management for profit?
Roland wrote:However, we saw a number of flaws that for us would be urgent to tackle
Urgency in feature requests in FreeCAD community is not the strongest point (very mildly said). You may get to get bugs fixed relatively urgently by the community but feature requests generally require time an interest/attention from core developers. So if you actually urgently require something you have to weight whether: a) it is possible to work-around that need until it is ready, and b) you can manage to get somebody competent involved by paying... and the risks associated to it.

If you go for FreeCAD on the long run and have business needs, you would probably want to pay somebody to develop for you (in connection with the community) so that you have some degree of control over it. One idea would be hiring somebody for your company with coding skills and a mechanical engineering background that can work partly in R&D and FreeCAD. If this person gets proficient as user, power user and developer in FreeCAD and it is aware of your very personal needs, then you may be able to anticipate future CAD needs, you may be able to integrate part of the research and simulations early in FreeCAD with in house development, you will have access to fast bug fixing... then of course you could also combine it with students or third-party development contracts... just an idea, it depends on your size, your budget and your needs (everything comes at a cost).
Roland wrote:However, we feel that this should be done in collaboration with the FreeCAD community. Would it be possible to set up a small team from the core developers together with us, so that our effort actually contributes and does not remain isolated?
AFAIK, most of the bellies, if not all, of core developers here are full (i.e. already have a job to fill them). So it may not be possible to get one core developer for hire. However, core developers are generally very happy to have new motivated people around. I would say that core developers will try to help such motivated people, so as to set them up to speed in the development of FreeCAD. In that sense, whatever development decision you make, if you ask for community interaction, the risk of isolated work is quite low. Specially if the features are attractive to core developers. You may even get coding for free. Not to be underestimated, in cases of general development that is attractive to a big part of the community (assembly for example), you may also get beta testing, UI development/improvements for free.

Now, the community welcomes everybody. The pity about many students is that after their paid activities and/or master/phd projects they tend to leave the project. In such a sense having a person more attached to your company may be beneficial for everybody (I probably most important to your medium/long term goals, i.e. 5-10 years planning).

All in all. Re-evaluate the situation in view of the responses. Do a risk assessment. Whatever you decide do a contingency plan if it does not work out as expected. We will gladly welcome whoever you decide to pay to develop FreeCAD further, should you decide in that direction (just for completeness, you may also want to post in the jobs thread for people in The Netherlands or around the world, there may be somebody that fits your needs...).
Roland wrote:Since we are obliged to produce designs, I hesitate to use the pre-release FreeCAD 17. But I assume that I should give it a try anyway, to see where you guys are heading.
Here we talk risk again. I think that the risk that FreeCAD will not support or allow migration of files generated with v.017 to higher versions is quite low. However, probably the same was thought by people that run OS/2 thinking that they were backed by IBM until they stopped providing support. On the other side, the chances of having a bug fix in v0.17 is relatively high, while the probability of having a backport of such a fix to 0.16 is negligible. There have been very little amount of times where an upgrade in FreeCAD unstable has resulted in an unworking FreeCAD. In such situations it was solved extremely fast (within 1 day if I remember correctly). On the other hand, you now work with 0.16. Do you think there are better chances of 0.17 final or 0.18 supporting 0.16 designs but not 0.17 designs? I mean nothing is impossible, but it looks to me like very unlikely (note that in such a case, well you need a contingency plan/budget. What would happen if you get a license for a commercial CAD tool and the company goes to bankrupcy or increases the prices for the licenses or the support? the same or worse).

If I had already took the decision to work with FreeCAD in a professional environment (that is the big decision to make), then I would:
1) always work with the development branch (I would use Ubuntu daily builds, but that is my choice)
2) save copies of all the FreeCAD versions used in development (or at least the hash to be able to build them again if needed), or VMs for fast redeployment.
3) have good backups of your designs tracking the version used when developing them so that in the unfortunate case something breaks and your design no longer opens, you can continue your design from a previous stage or wait for a solution and then invest time in getting the design in the fixed version (I guess it is the same that you would do if the CAD company goes to bankrupcy).
4) Always test an upgrade before deploying it office wide (have one guinea pig engineer testing a new upgrade for some days before applying it to all the computers).
5) Definitely I would want to have somebody in house with a developer grade knowledge and engaged with the FreeCAD community (maybe with an 80/20 time division, like 80% of the time doing "your company design/stuff", 20% for FreeCAD development/projects your company is interested in). Involve him/her in your daily project development/requirements. You may get a lot of added value in form of macros, integration, early development of features...

I think I have written too much. I would have a hard time being you and taking this decision. I just wanted to give you an outsider's view.
User avatar
yorik
Site Admin
Posts: 11613
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Can we contribute?

Postby yorik » Fri May 12, 2017 2:14 am

Abdullah, this is a masterpiece!
Will reuse your post a lot ;)
User avatar
Kunda1
Posts: 6207
Joined: Thu Jan 05, 2017 9:03 pm

Re: Can we contribute?

Postby Kunda1 » Fri May 12, 2017 3:47 am

yorik wrote:Abdullah, this is a masterpiece!
Will reuse your post a lot ;)
I was thinking the same thing! This could be used as a boilerplate for open source projects. Well written..!
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
Roland
Posts: 208
Joined: Fri Aug 21, 2015 2:20 pm

Re: Can we contribute?

Postby Roland » Fri May 12, 2017 10:54 am

Thanks, Abdullah.
Some food for thought.
Shall revert next week.

Greets
Roland
abdullah
Posts: 3174
Joined: Sun May 04, 2014 3:16 pm

Re: Can we contribute?

Postby abdullah » Fri May 12, 2017 12:41 pm

yorik wrote:Abdullah, this is a masterpiece!
Will reuse your post a lot ;)
Kunda1 wrote:I was thinking the same thing! This could be used as a boilerplate for open source projects. Well written..!
Thanks.

I find it extremely frustrating that it is not easy at all to take these decisions. Not only because they are complex. But also because when it is you facing them, the responsibility lays on you, and it is always easier to save the face with "oh the CAD company went bankrupt, who could have known!!" than with "yeah, I did not pay enough attention to the budget, risk assessment,...". The end result in both cases is the same for the company (loss of revenue, failure to meet timelines, even bankrupcy). BTW, the answer to the excuse is "you should have thought of it and have a contingency plan as it is your job".

Because I more or less have followed alike threads in the past. I think there is a business need to have a company offering FreeCAD paid support (a canonical to Ubuntu kind of thing). Most small companies (that are the ones that may consider FreeCAD because of the costs involved) do not have the resources to just run a "FreeCAD development department" (it would also not make a lot of sense to do it). However, they generally have the resources to pay year on year the 5% of a developer yearly wage (rough numbers, mileage may vary geographically and with skill, let's say they can put around 5k aside). There are many small companies with CAD needs. 100 small companies could afford 5 developers per year. 5 developers per year full time is a lot of features implemented per year. 5k is probably half of a per post license of a commercial software (did not check, not my business, I just imagine from other licenses I know about), for the value of unlimited posts and a competent support to limit your risk.

Other scenario 5 small companies dedicating the 20% of the time of a competent engineer (lets say that is 20k value, mileage varies with skill and country) with coding skills to FreeCAD make a full developer. In this case the engineer is so knowledgeable of the business of its company and FreeCAD that even though a commercial software license may cost the same (1-2 posts), that there must be synergies. For example, there may be the integration of a new phd thesis algorithm for gas expansion in a bio mass container in a "biomass workbench" specialized in designing such containers, thereby cutting down the time to transfer research into a final product by half, becoming the market leader and enabling you to be the first to patent relevant design/implementation characteristics, or if the thesis is not yet published the method itself (I know nothing about biomass). If you scale this to a 5 engineers company (still small), where one dedicate a 20% of the time to freecad, it is maybe dedicating a 4% of the engineering staff costs to maintain such a market advantage.

Of course, one has to see the whole picture when deciding. If your company just does CAD and needs a CAD tool with no need for specialization and if having a proper assembly WB (or a plastic workbench) today means cutting time by 50% (or mold costs by 80%), then going into FC seems like a very wrong business decision. I am not saying the world should forget about commercial CAD software and turn into FreeCAD. What I say is that in certain business it may make lots of sense to choose FreeCAD.
triplus
Posts: 8835
Joined: Mon Dec 12, 2011 4:45 pm

Re: Can we contribute?

Postby triplus » Fri May 12, 2017 9:02 pm

If you plan to work in a team environment my suggestion would be:
  • FreeCAD 0.16
  • Drawing dimensioning workbench
  • Assembly 2 workbench
The same setup should be used by all involved from start to finish of the project. FreeCAD 0.17 hasn't stabilize yet and using it in a team environment for mid size projects is too risky.