that would be great, yes. Thanxroerich_64 wrote: ↑Mon Oct 21, 2019 9:50 pm to give an answer, Zolko, i will speak with my employer tomorrow to need there the I-Net
Is it ok for you?
file and directory philosophy
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: file and directory philosophy
- roerich_64
- Veteran
- Posts: 1465
- Joined: Thu May 21, 2015 7:00 pm
- Location: Ostfriesland
Re: file and directory philosophy
Hi Zolko,Zolko wrote: ↑Mon Oct 21, 2019 9:19 pmI tried but I don't understand: Now you can switch the LOD (Level of Detail)roerich_64 wrote: ↑Mon Oct 21, 2019 8:59 pmHi Zolko,
please don't think so complicated...
Please follow my tutorial...
How do you go from LOD 1 to LOD 2 ? I understand that you include in the assembly a simplified model, and it's possible to switch between the real (full) model and the simplified one. But how ? How do you trigger one or the other ? And how do you trigger it from the assembly ?
A2+ take parts out of a subassembly when they switched to visible with the spacebar.
All not visible parts in the subassembly, they dont imported to the higher file...
It is easy to go to the subassembly with the 'Edit an imported Part' botton, switch there the right part on and/or off and go back with the 'Save and Exit' botton.
Then klick 'update Parts'.
For me whery logical and easy
Feel free, when you have more questions. And when you need, i can build a Video from the procedure...
Walter
Die Liebe wird siegen, denn sie ist unzerstörbar
Re: file and directory philosophy
Thank-you, I think I understand. I still have a doubt: when you update the part, is it updated only in the assembly or every-where else in FreeCAD ? What I mean is that the representation you have in the assembly is it necessarily the same as the representation you have when opening the part/subassembly in its own window ?roerich_64 wrote: ↑Tue Oct 22, 2019 7:44 pmIt is easy to go to the subassembly with the 'Edit an imported Part' botton, switch there the right part on and/or off and go back with the 'Save and Exit' botton. Then klick 'update Parts'.Zolko wrote: ↑Mon Oct 21, 2019 9:19 pm How do you go from LOD 1 to LOD 2 ? I understand that you include in the assembly a simplified model, and it's possible to switch between the real (full) model and the simplified one. But how ? How do you trigger one or the other ? And how do you trigger it from the assembly ?
When I take your example about the house and CNC controller, could you have, at the same time, a simplified representation of the controller in the house and a full representation in a separate window ?
- roerich_64
- Veteran
- Posts: 1465
- Joined: Thu May 21, 2015 7:00 pm
- Location: Ostfriesland
Re: file and directory philosophy
Yes, why?
A2+ makes a own 'A2+ copy' of the part or a subassembly when it was imported in the assembly.
simplified representation:
- take 'edit' the part / subassembly - file
- switch on the simplified model (master body)
- switch off the 'part / subassembly'
- reload this part / subassembly - file
- update the assembly.
Now you see the simplified model.
full representation:
- take 'edit' the part / subassembly - file:
- switch off the simplified model (master body)
- switch on the 'part / subassembly'
- reload this part / subassembly - file
- update the assembly.
Now you see the full model.
When you open before this procedure the same assembly two times, you can take in one window the procedure 'simplify' and in the other window the procedure 'full'.
Also you can safe this two assemblies in two files for the simplified look and the full look.
BR
Walter
Die Liebe wird siegen, denn sie ist unzerstörbar
Re: file and directory philosophy
ah OK, yes, then I understandroerich_64 wrote: ↑Sat Oct 26, 2019 8:11 am A2+ makes a own 'A2+ copy' of the part or a subassembly when it was imported in the assembly.
Re: file and directory philosophy
I really like that "Ware/House" approach very much. It's a bit like the new Industry4.0's idea of a digital twin for everything. And having a digital twin for your own house/workshop is quite a cool idea, especially when taking it to far to put each tool in its respective drawer. With todays STEP databases I think we have no shortage of parts, we have a shortage of a storage and handling concept. Having an easy to use LOD mechanism in FreeCAD would really be a cool thing.roerich_64 wrote: ↑Sat Oct 26, 2019 8:11 am simplified representation:
- take 'edit' the part / subassembly - file
- switch on the simplified model (master body)
- switch off the 'part / subassembly'
- reload this part / subassembly - file
- update the assembly.
Now you see the simplified model.
full representation:
- take 'edit' the part / subassembly - file:
- switch off the simplified model (master body)
- switch on the 'part / subassembly'
- reload this part / subassembly - file
- update the assembly.
Now you see the full model.
When you open before this procedure the same assembly two times, you can take in one window the procedure 'simplify' and in the other window the procedure 'full'.
BR
Walter
Currently I am trying an example setup of what you have shown. I am wondering if A2+ is really working or if this would not ask for Zolkos Assembly4 local coordinate system approach. I am not sure if there is some LOD handling concept in Realthunders Assembly3 concept yet.
However, I must admit, I am not fully there. There are some things which are not fully clear to me yet.
For example the LOD switchting. Lets take a simple example, e.g. a building with 2 rooms with a door between them. The door will have 3 different level of detail models.
This is the described test scene with LOD 0. This is what you will get in the attached zip file.
This is how the test scene should look like with the door set to the second level-of-detail (LOD 2)
Here is the file structure (the // are comments only), empty folders are not shown:
- building_master.FCStd // placeholder building: a transparent extruded rectangle
building_asm.FCStd
1_Parts- 0_Room1
- room1_master.FCStd // placeholder room1: a transparent extruded rectangle. No door
room1_asm.FCStd // pure A2+ file. Contains placeholder room1 and door_asm.FCStd.
// the door is attached to a wall using A2+ constraints
1_Door- door_master.FCStd // placeholder door: a box, 15cm thick, transparent
door_asm.FCStd // pure A2+ file. Contains placeholder, door and door with knob.
- 1_Parts
- door.FCStd // the detailed door: a solid box, 5cm thick, white
knob.FCStd // a door nob: a small solid cylinder, red
- doorWithKnob_asm.FCStd // a detailed door with 2 knobs, made from the files in 1_Parts
- door.FCStd // the detailed door: a solid box, 5cm thick, white
- door_master.FCStd // placeholder door: a box, 15cm thick, transparent
- room2_master.FCStd // placeholder room2: a transparent extruded rectangle. No door
room2_asm.FCStd // pure A2+ file. Contains placeholder room2
- room1_master.FCStd // placeholder room1: a transparent extruded rectangle. No door
- 0_Room1
The tree hierarchy in the files is as follows:
- building_asm.FCStd
- building_master
room1_asm
room2_asm
- building_master
The only LOD we have in this setup is the door.
- room1_asm.FCStd
- room1_master // the room placeholder box
door_asm // the default is also the transparent placeholder version
- room1_master // the room placeholder box
The actual LOD is done in the door_asm.FCStd file. Here all available door versions must be at the same position.
- door_asm.FCStd
- door_master // the door placeholder box
door // the thinner solid version of the door.
doorWithKnob_asm // the detailed door
- door_master // the door placeholder box
The building_asm file is the main file of our Project. When we open it we see only the lowest level of detail (LOD 0).
The normal procedure to to switch the door to LOD 2 woud be:
* file buidling_asm should be open
* select room1_asm in the tree
* select A2+ WB/EditImportedPart (icon with pencil)
* a new tab with the room1_asm.FCStd should open
* select door_asm in the tree
* select A2+ WB/EditImportedPart (icon with pencil)
* a new tab with the door_asm.FCStd should open
* use <SPACE> to toggle visibilitly off for door_master
* use <SPACE> to toggle visibilitly on for doorWithKnob
* Save the changed file
* close file
* go back to the room1_asm file
* select A2+ WB/UpdatePart (icon with green arrows)
* Save the changed file
* close file
* go back to the building_asm file
* select A2+ WB/UpdatePart (icon with green arrows)
Now, this did not work, because toggling the visibilty to a different LOD geometry in the door_asm file will invalidate the constrains all up the chain. I get the error messages in the images below in the room1_asm.FCStd fild as well as in the buidling_asm.FCStd file.
The first error in the room1_asm.FCStd file after swapping the visibilty in the door_asm.FCStd file.
Ther error is not contained in the room1_asm.FCStd file. When its saved, also the upper level files generate an error when updated.
What is wrong?
* obviously the A2+ setup in the attached project (its a zip file with the folder structure) can not handle any change in the lower level assembly file (here door_asm.FCStd).
* it does not work to keep the door_master visible, the constraints still become invalid when other geometry is added. But even when it would work, that would mean to make this always fully transparent when switching to another LOD. The usability would be quite a bit reduced.
* clearly, when the LOD geometry has different dimensions, I do not understand how A2+ could solve the problem at all. And higher LODs having slightly different dimensions should be the standard case.
But looking at the posts above, there seems to be a solution.
How to solve it?
The attached file is the default setup, with working constraints to all master geometries. I recommend to make a backup copy before applying changes.
- roerich_64
- Veteran
- Posts: 1465
- Joined: Thu May 21, 2015 7:00 pm
- Location: Ostfriesland
Re: file and directory philosophy
Hi Catman,
the 'trick' is: delete the constraints
Why can we do this?
All parts in a house are static parts and A2+ updates the x/y/z positions of solved parts.
So after deleting the constraints the parts will stay on his place
When you have taken the door in the subassembly at the same directon and at the same place as the master_body (LOD 0), then it comes to the Master_assembly at the same place and direction as the master_body of the door was
I hope, this helps.
BR
Walter
the 'trick' is: delete the constraints
Why can we do this?
All parts in a house are static parts and A2+ updates the x/y/z positions of solved parts.
So after deleting the constraints the parts will stay on his place
When you have taken the door in the subassembly at the same directon and at the same place as the master_body (LOD 0), then it comes to the Master_assembly at the same place and direction as the master_body of the door was
I hope, this helps.
BR
Walter
Die Liebe wird siegen, denn sie ist unzerstörbar
Re: file and directory philosophy
Thanks, that helps and explains what I had been seeing in testing the setup. I had hoped you would have another solution, because it would make it very difficult to really work with the large model. Just for example when trying to fit in another item in the room I would like to move the other stuff around (while keeping the constraint to the floor intact.roerich_64 wrote: ↑Tue Dec 03, 2019 5:24 pm Hi Catman,
the 'trick' is: delete the constraints
All parts in a house are static parts and A2+ updates the x/y/z positions of solved parts.
So after deleting the constraints the parts will stay on his place
For that to work it would be "enough" to have one placement model. It would be set to invisible and contain ony the surfaces used for constraints, e.g. a floow plane. To align the subassembly one would just enable only this placement object and then set the constraints. After setting the constraints this model is set to fully transparent (of course it would be in the way when picking stuff...). Then, as you say, all other LOD models just need to be aligned to the same point.
But I think A2+ does not work in this mode, because when having a constraint object visible and then making another (unconstraint) one visible the saved file still produces an error when I tried that.