About PDM for FreeCAD

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
User avatar
adrianinsaval
Veteran
Posts: 5541
Joined: Thu Apr 05, 2018 5:15 pm

Re: About PDM for FreeCAD

Post by adrianinsaval »

Jee-Bee wrote: Thu May 12, 2022 11:25 am
Zolko wrote: Thu May 12, 2022 8:59 am ...but can only modify – on the server, in the central repository – those files for which the project manager has given him rights-to.
I don't like the idea that all editing is on the central server. That means if you want to try it out you screwed since ctrl+s is a kind of sickness every engineer need(Specially with SW or Inventor). So if you edit aren't the result you aiming for you have to undo all your work compared to pull the last version on the server!
I don't think he meant that edits can only be done on the server but rather that in the server, a person only has write access to the files in the directory he was given permission by the manager, locally you can go nuts and do what you want with what you want.
Jee-Bee
Veteran
Posts: 2566
Joined: Tue Jun 16, 2015 10:32 am
Location: Netherlands

Re: About PDM for FreeCAD

Post by Jee-Bee »

maybe you are right, I read it that way
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: About PDM for FreeCAD

Post by Zolko »

Jee-Bee wrote: Thu May 12, 2022 12:20 pm I would be happy if i can just require write access to the body level. Change whatever is needed so that everything fits again and save to the server again without going to the project leader and ask for file permission
well, no. If you're responsible of a sub-sub-assembly, then you cannot modify the sub-assembly. Whether that makes you happy or not is another matter.

In practice, if the responsible of sub-system-1 wants to modify something in sub-system-2, then he does the modification on his computer, locally, and then shows the modification to project manager and the responsible of sub-system-2, they discuss the matter, and if the modifications make sense then the project manager makes the ckeck-in to the central repo. If the project has many such conflicts then it means that the project is badly organised ... but if you think you can solve this by letting anyone making changes to anything because that makes them happy, then you're in even greater trouble.

Anyway, this is how I do my projects.
try the Assembly4 workbench for FreCAD — tutorials here and here
heda
Veteran
Posts: 1348
Joined: Sat Dec 12, 2015 5:49 pm

Re: About PDM for FreeCAD

Post by heda »

indeed, double-quoting is quoting someone else in this thread

on the one size fits all, i think it is possible if one would make a frontend/backend version & storage architecture, always keeping the frontend, but planning for ability to plug into different backends.
all controlled by configuration/set-up, might be that there would need to be small variations in functionality, suppose one only will know when one hits that one thing that is hard to find a way around it.

philosophically do not see why it should not work, could of course be that one hits a brick-wall when coding, but am clearly leaning towards that one will not.

yepp, dms = document management system

regardless if it is qt-based or web-based it is possible to make it an add-on and workbench.

anyhow, don't think there is much more to say right now, so mainly looking forward to see what you in the end come up with.
user1234
Veteran
Posts: 3345
Joined: Mon Jul 11, 2016 5:08 pm

Re: About PDM for FreeCAD

Post by user1234 »

grd wrote: Tue May 10, 2022 12:05 pm About the browser: you can run QT inside the browser, and even with QML (is QML being used in FC?). Look at https://itnext.io/developing-web-apps-u ... 84453f2f61 And you can also use qtwebkit https://wiki.qt.io/Qt_WebKit
I would avoid qt here because the newer qts gets in the licensing very hard and is also pretty hard for OS mixes or finding a qt version, which run flawless on all OS. Also you need a (local) sever. This (at least i think, correct me if i am wrong) has not qt. Any python library like django, fastapi/sqlalchemy, flask, ..... would be better.



Jee-Bee wrote: Tue May 10, 2022 2:54 pm I think that i'm the one that introduced the term "Check-out" here. It is a term that i borrowed from Windchill (A PLM system from PTC). Basically it means requesting writing access from the system. And Indeed as @grd said when i check a part out i become the owner and nobody else can edit the part.
It is not ModelManager/Windchill only, it is the general term in PDMs.



Zolko wrote: Thu May 12, 2022 8:59 am how is that supposed to work in real-life : you have a project with 5 engineers, and anyone can decide which part he's gonna modify ? And what if the person forgets to release the rights ? And then goes on vacation for 2 weeks ...

My experience is very different: a system with 5 sub-systems is designed by 5 people, where evrybody has the right to read every part, but can only modify – on the server, in the central repository – those files for which the project manager has given him rights-to. If you organise the project such that each sub-system is a sub-assembly *AND* is in a sub-directory, then you can give write-rights to *THAT* subdirectory to the corresponding designer. Then, each designer is responsible for a sub-system and has write-access to that sub-system, not the others. This is doable in SVN, not in GIT or in SolidWorks PDM.
I would say like in real life, it depends on the environment variables. That working 5 (or all) people on only one project can happen, but how often is this in real life? At least i have seen that all companies, small or big, always working parallel on more then one project with 1 to 50 engineers.

So the best practice will be, that you can manage the reading/writing/deleting access. On a small company, this will be granted to all workers, on bigger companies not (good PDMs can that).

Also i must say, when i only work on one project and have only one assembly, i do not need a PDM. Also like you do with SVN, it is no PDM. A PDM is a Product Data Management, not archive project structure. You need the part/assembly datas to interchange that on more then one project (you will not invent part/assembly more the one time). Also you need datas to work with in real life, like producing (i do not mean an ERP or other business management system).

And at last, when you producing parts/assemblies, you are distributor, this means you need to documentation, even on simple parts (many people forget that, even it is a simple weld part or a big machine or a mass product). And when you have a PDM, it makes life in that case much easier.




Also just saying, a PDM (or the datas in it) is for all people, they are working on the parts/assemblies, not only for the engineers (and no, also i do not mean for business people). When they are can reading easy the datas out of it, it make also the life easier.



So my suggestion is a web based python framework with can handle sql easily which can use more then one sql framework. It should contain 3 parts: the PDM (web based), its workbench to interact and communicate and a sql database.


Greetings
user1234
grd
Posts: 328
Joined: Wed Apr 13, 2022 5:13 am
Location: Eindhoven, The Netherlands

Re: About PDM for FreeCAD

Post by grd »

The last tow weeks jeebee and I worked on building the specs of the project and I think that it is almost done. Jeebee dit a lot of work! Thanks!

You can see the progress here. https://github.com/grd/FreePDM

Please read all the entire documents before commenting.

A PDM contains a lot more aspects than what I thought when I asked myself the question about what a PDM means. Of course I have many years of experience with commercial PDM's, such as SW PDM, Teamcenter and Pro/PDM, but FreeCAD has it's own way of dealing with the data. There are still a lot of open questions that we are gonna find out. Nothing is written in stone.

The good thing is that the tools that we have (Python) are good. The bad thing is that there doesn't exist a PDM for FreeCAD. And I don't know the ugly parts ;)

Next week I am gonna start first with setting up a skeleton and a stand alone GUI (not a browser yet), only for displaying the data, and after that I am gonna start with filling in the details.

There are still lots of open issues that we need to work on. Every hand is welcome.

I wish you guys the best.

Gerard
About Nim. Latest Release 2.0.2. Here is Nim in 100 seconds and a Nim package. There are Qt and OCCT packages.
Nenad
Posts: 2
Joined: Sun Nov 08, 2020 1:01 pm

Re: About PDM for FreeCAD

Post by Nenad »

I have read gh docs, you did a great job. I would like to add some comments about my experience with AD Vault. Even though I hate all AD products (bloatware & spyware), their PDM solution is quite good IMO.

I'm not sure if FreePDM should be copy of it, but I would like to present how our workflow looked. Vault can be configured in many ways, but wanted simple solution, to replace our file server / excel setup

**PDM / Database setup

Naming scheme is set acc. to user request. We had dozens of categories (products) starting with letters, followed by numbers (e.g. FRM-100000 for frames). If user is logged-in to Vault within Inventor add-in, it will automatically create number (e.g FRM-100001) during the saving process. Even if user don't use and check-in that file, the number is considered used in database. So next part will get a new one (+1 from previous).
Naming scheme can not be changed after setting database, you can only add another one

Files in vault are following local wokring folders structre. All users have same working folder name and location (e.g. C:\CAD-Work). If I save file in C:\CAD-Work\Frames\FRM-1000001, it will be shown in Vault in the same tree. So user can have top folders in working folder:
Design
Frames
Tanks
Tables
....
Library
Bolts
Valves

Projects
Customer 1
Customer 2

**Document status, versions, and revisions

Every time you check-out file and check it in again, vault creates new version. Even if you didn't make any change. Version is not visible in part or drawing, only in vault (PDM). And you have option to hide all exepct latest one. IMO, this is good way, but it would be better if user can set number of versions to keep

Document (parts, assemblies, drawings...) could have 3 statuses - In work, Review, Released. If file has "in work" or "review" status, you could check it out, change, and check it in again. If it "released" you need to create new revision. After that, vault will put previous revision in "invalid" status. Though we had "quick change" option to modify released files without creating new revision, but that was used only if you notice some small errors (e.g. dimension is missing in drawing)

**Custom product properties

One of main advantages of PDM is option to set custom product properties and use them for search. Those fileds can be set during set-up process, so user should think about what is needed (e.g. Customer, Volume, Manufacturer, Project no. etc)

**Copy design

Probably the most usefule feature of PDM (and most anoying thing when you don't use one). Option to copy existing assembly with a few selected parts that would be changed, and others stay the same is time saving and error proof feature. It also creates new drawings (presentations if exist).
grd
Posts: 328
Joined: Wed Apr 13, 2022 5:13 am
Location: Eindhoven, The Netherlands

Re: About PDM for FreeCAD

Post by grd »

Nenad wrote: Mon Jun 06, 2022 7:43 pm I have read gh docs, you did a great job. I would like to add some comments about my experience with AD Vault. Even though I hate all AD products (bloatware & spyware), their PDM solution is quite good IMO.

I'm not sure if FreePDM should be copy of it, but I would like to present how our workflow looked. Vault can be configured in many ways, but wanted simple solution, to replace our file server / excel setup
Don't thank me, it's @jeebee who did the majority of the work. Let me say that we are not gonna copy AD Vault. I don't even know that software. Our idea is to create a PDM that looks more like SolidWorks / Creo because this is intuitive and doesn't have many defects. But right now it is only sketching up our ideas and a bit of scripting.

About your numbering and revision scheme, I think that you can better talk to @jeebee because he is more familiar with it. I only want it to be optional.
One of main advantages of PDM is option to set custom product properties and use them for search. Those fileds can be set during set-up process, so user should think about what is needed (e.g. Customer, Volume, Manufacturer, Project no. etc)
I agree. This will be part of the system.
Probably the most usefule feature of PDM (and most anoying thing when you don't use one). Option to copy existing assembly with a few selected parts that would be changed, and others stay the same is time saving and error proof feature. It also creates new drawings (presentations if exist).
And this too will be part of the system ;)
About Nim. Latest Release 2.0.2. Here is Nim in 100 seconds and a Nim package. There are Qt and OCCT packages.
heda
Veteran
Posts: 1348
Joined: Sat Dec 12, 2015 5:49 pm

Re: About PDM for FreeCAD

Post by heda »

custom props: "Those fields can be set during set-up process, so user should think about what is needed..."

imho it is a large deficit if it ends up working like that...
better to at least attempt to code the way humans function, they will not know exactly what they need in 3yrs time - so better provide the ability to easily change this on the fly (by admin - at minimum..., even cooler if it could be made "per project" by a group of users, which does not at all feel out of reach coding wise - it is all a matter of how the data-structures/code is done - coding for flexible data structures or fixed ones...)
even better if these props can be categorized (say that you have 50 props, it is then nice if they would be possible to present in gui in some sort of structured way - analogue to property-view in fc)

should not be overly hard to do, when using fixed data structures - it is a matter of integrating a predefined "db-migration" scheme,
but why use fixed data structures, better use flexible ones and it will be for free...

simplest example is fc-document properties, what happens when a new property is added? the whole pdm needs to be version matched with different code for different versions?
na, better to make things flexible to begin with, some basic assumptions of structure, some generators and conditionals and we are off to the races.
grd
Posts: 328
Joined: Wed Apr 13, 2022 5:13 am
Location: Eindhoven, The Netherlands

Re: About PDM for FreeCAD

Post by grd »

heda wrote: Mon Jun 06, 2022 10:50 pm custom props: "Those fields can be set during set-up process, so user should think about what is needed..."

[....]

simplest example is fc-document properties, what happens when a new property is added? the whole pdm needs to be version matched with different code for different versions?
na, better to make things flexible to begin with, some basic assumptions of structure, some generators and conditionals and we are off to the races.
Good point. 50 props? I don't think so. When you look at any PDM, how many props do you think that they have? Maybe 50 indeed, but in how many fields do you search? Most of the time only in ONE. When you look at this https://github.com/grd/FreePDM/blob/mai ... ributes.md then you can see that the fields are pretty well organized. The field where you are gonna look for is "Description". This I know for sure. But ofc we are gonna make thousands of mistakes and we are gonna need versioning schemes (but to be honest, I don't know how to do that properly).
About Nim. Latest Release 2.0.2. Here is Nim in 100 seconds and a Nim package. There are Qt and OCCT packages.
Post Reply