How to do an audit, model to model? Maybe a WB

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!
Post Reply
freedman
Veteran
Posts: 3464
Joined: Thu Mar 22, 2018 3:02 am
Location: Washington State, USA

How to do an audit, model to model? Maybe a WB

Post by freedman »

During my design I often save the model to increasing numbered file names, an old habit from prior CAD systems that crashed at least once a day :) . So now I am up to model_80 and Model_81 in a directory, I made changes to model_81 and would really like to know the one change I made is the only change FreeCAD made :). The cause of an error could be topo-errors or human errors or program errors. This model has 40 bodies inside multiple part containers, it's complicated and I would like some verification or an audit of the model compared to an earlier version. As a modeler I have a pretty good idea of the progression over the last month and I also know that cap1 (a small piece) was finished way back at model_10, I would sure like to verify model_81 against model_10 and see what an audit says.

Currently I can't keep Shape binders or external geo in my model because I'm afraid they could do something (behind the scenes) that I don't know about. When your purchasing parts that are CAD generated you need some guarantees that your current model is what you think it is. I do trust Sketcher and the model generation process but not parametrics, not today, there's the old adage "trust but verify". I don't want to loose a job because of an unknown parametric change.

How do we do this?
Maybe a new workbench.
Could we do something today with a simple copy?
Is it just a process that runs thru the list of objects and compares vertex and lines.
Thanks

All input welcome...
User avatar
Zolko
Veteran
Posts: 2213
Joined: Mon Dec 17, 2018 10:02 am

Re: How to do an audit, model to model? Maybe a WB

Post by Zolko »

freedman wrote: Fri May 15, 2020 5:52 pm During my design I often save the model to increasing numbered file names, an old habit from prior CAD systems that crashed at least once a day
I understand, I do the same. Though version 0.19 of FreeCAD has become increasingly stable, and I hardly ever meet crashes.

I would sure like to verify model_81 against model_10 and see what an audit says.
you want a sort-of diff between FreeCAD files ? Honestly, I don't think that anything automagic is going to help, but on the other hand, a simple text-based diagnosis tool would be quite convenient. Do you think that an extension to the textual representation of the Model tree could be of help ? Like, for example, if you add the listing of parameters to the various objects. Yes, it could be quite big if the model is big also, but that's to be expected. And, in-fine, it would have the advantage to provide a text-based representation of your model, that you can parse with your tool of choice.

Code: Select all

 └─ Model (Model)
     ├─ Origin (Origin)
     │   ├─ X_Axis (X_Axis)
     │   ├─ Y_Axis (Y_Axis)
     │   ├─ Z_Axis (Z_Axis)
     │   ├─ XY_Plane (XY_Plane)
     │   ├─ XZ_Plane (XZ_Plane)
     │   └─ YZ_Plane (YZ_Plane)
     ├─ LCS_0 (LCS_0)
     ├─ Constraints (Constraints)
     ├─ Variables (Variables)
     ├─ Sketch_master (Sketch_master)
     ├─ LCS_arm (LCS_arm)
     ├─ base (base001)
     │   ├─ Origin001 (Origin001)
     │   │   ├─ X_Axis001 (X_Axis001)
     │   │   ├─ Y_Axis001 (Y_Axis001)
     │   │   ├─ Z_Axis001 (Z_Axis001)
     │   │   ├─ XY_Plane001 (XY_Plane001)
     │   │   ├─ XZ_Plane001 (XZ_Plane001)
     │   │   └─ YZ_Plane001 (YZ_Plane001)
     │   ├─ LCS_1 (LCS_1)
     │   └─ Body (Body)
     │       ├─ Origin004 (Origin004)
     │       │   ├─ X_Axis004 (X_Axis004)
     │       │   ├─ Y_Axis004 (Y_Axis004)
     │       │   ├─ Z_Axis004 (Z_Axis004)
     │       │   ├─ XY_Plane004 (XY_Plane004)
     │       │   ├─ XZ_Plane004 (XZ_Plane004)
     │       │   └─ YZ_Plane004 (YZ_Plane004)
     │       ├─ Pad (Pad)
     │       │   └─ Sketch (Sketch)
     │       ├─ Pad001 (Pad001)
     │       │   └─ Sketch001 (Sketch001)
try the Assembly4 workbench for FreCAD — tutorials here and here
vocx
Veteran
Posts: 5197
Joined: Thu Oct 18, 2018 9:18 pm

Re: How to do an audit, model to model? Maybe a WB

Post by vocx »

Zolko wrote: Fri May 15, 2020 6:55 pm you want a sort-of diff between FreeCAD files ? Honestly, I don't think that anything automagic is going to help,
This is coming in one of realthunder branches.

Version Control Support in FreeCAD
realthunder wrote: Mon Aug 05, 2019 5:57 am ... In short, it is now possible to save and restore directly from uncompressed directory, and all files saved inside are completely text based and optimized for line based diff operation.
...
realthunder wrote: Mon Aug 05, 2019 9:13 am
easyw-fc wrote: Mon Aug 05, 2019 8:36 am Hi @realthumder
Is there a chance to have also a visual version control like the following one?
Yes exactly! I was actually thinking about a shape diff task panel while developing this VC patch. And I have a rough idea of how to accomplish this. Just compare two shapes face by face, by exporting individual faces and then compare the texts. My topo naming will be handy when it comes to finding the correct pair of faces to compare. But of course there maybe other difficulties. Anyway, this is definitely on my to do list.
Always add the important information to your posts if you need help. Also see Tutorials and Video tutorials.
To support the documentation effort, and code development, your donation is appreciated: liberapay.com/FreeCAD.
freedman
Veteran
Posts: 3464
Joined: Thu Mar 22, 2018 3:02 am
Location: Washington State, USA

Re: How to do an audit, model to model? Maybe a WB

Post by freedman »

I have to say crashing is not the issue, FreeCAD is very stable. I have had maybe one lock-up in thousands of hours and I always have backups.

The problem goes like this; in the middle of a design I get an idea and want to try something different so I create a new directory and copy the current model into it, then I work on it for a few hours. I might then keep going in that direction or discard it. After a dozen branches you kind of wonder if anything has changed.

I would think multi-document mode would be perfect for this.

realthunder is always thinking...... that's cool.

Thanks
Post Reply