[SOLVED] How do I split / explode a wall / draft wire?

A forum dedicated to the Draft, Arch and BIM workbenches development.
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
User avatar
yorik
Founder
Posts: 13640
Joined: Tue Feb 17, 2009 9:16 pm
Location: Brussels
Contact:

Re: How do I split / explode a wall / draft wire?

Post by yorik »

It may sound strange because it doesn't work like the software you know, but there are great powers behind this system, as you can virtually "re-hook" a wall to almost anything. you never loose your wall, it's still the same, but you can change its shape radically.

Now I agree that this might be powerful but it's not that practical. Of course we need much more "sauce" on top of this to make the manipulation of walls more practical. But step by step, we'l get there...
User avatar
regis
Posts: 725
Joined: Sun Jul 12, 2015 8:17 am
Contact:

Re: How do I split / explode a wall / draft wire?

Post by regis »

Moult wrote: Thu Jan 17, 2019 9:52 pm I see. It sounds as though if I use sketches, I can indeed easily modify just a portion of the wall. However it seems as though if I use draft lines, I have to replace the base wire.
Eventually with experience you will find out the advantages and disadvantages of using both methods, that is, sketch is practical when confronted with cerain conditions, but it may have it's drawbacks in other situations. Draft aswell has it's advantages and disadvantages. I'll say get familiar with both because depending on a situation you might be confronted with, one method can be best than the other. So making good use of Freecad's flexibility in tools.
Moult wrote: Thu Jan 17, 2019 9:52 pm I'm quite puzzled. Replacing the base wire is not a speedy operation. When doing architectural modeling, deleting a single wall, shift a single wall, split a single wall, or rotate a single wall is something we do all the time. Literally hundreds of times a day. Designs change and sometimes we have to experiment in 3D. Having to redraw and replace a base wire each time is not practical.
Hmm it is true, I see your point here and in this case you are mostly refering to the simplicity of manipulation found in programs like Revit or Archicad and others. Indeed currently the Draft Workbench is not a full fledge drafting environment like Autocad which will give you that ultimate flexibility you are looking for, meaning that you don't necessarilly have the ability to manipulate sketches in much the same speed. This as far as understand it is more of an issue of implementation that no Freecad capable programmer can implement at the moment (probably because it is not yet the priority compared to other much needed tools at this point, or might bring it other complexities yet, i would guess) But since freecad has a way of modeling using base wires, it doesn't exaclty think in much the same way as the flexibility you are after. Mostly I think this is just a matter of time when freecad matures a bit more and can be polished to now offer that level of flexiblity.
Moult wrote: Thu Jan 17, 2019 9:52 pm In Blender, it is easy to grab a portion of a mesh and cut it, move it, or rotate it. In Revit, I can trim, extend, rotate, move, delete, and join a portion of a wall. I have seen co-workers do similar in ArchiCAD.
Here again I see your point, indeed, and that's why since not all the features you have in other programs are able to be automatically transfered in freecad (since some one who knows these programs must do it gracefully) it was more interesting to provide freecad with the flexiblity of communicating with programs like blender for such quick modelings for a start. But hold your horses, everything that can be programmed can be created in freecad. So it's just a matter of the right method of implementing so that they are also consistent with what is currently available in freecad. Also alot of programmers don't necessarily come from a Design/Architectural background, so their approach to how to address these are different fundamentally.
Moult wrote: Thu Jan 17, 2019 9:52 pm In FreeCAD, I notice that although Sketcher WB allows for quick drawing and deleting single lines, it is missing tools like trim / extend and rotate. These tools are vital! It is also missing the ability for me to grab a single line and move it say 5000mm up the page.
Yes that is true once more, because the sketcher was not initially conceived like an architectural element. but these things can be refined over time. Remember this is all open source, so it is not exactly easy for people with either part time or full time occupations to dedicated crucial time into implementing these features. So they can take some time but it's good to have the conversation already. But i'll like to invite you to start looking into these aswell if you can (especially the programming aspect) since you understand what is missing, i'm sure your contribition can also boost the development of freecad greatly.
Moult wrote: Thu Jan 17, 2019 9:52 pm Can somebody please upload a brief video demonstrating how they rapidly create, move, rotate, join, and split walls? Perhaps that might clear things up and help me understand the intended workflow.
I can attempt to help you here, do you have a picture of a some of the actions you would like to acheive? like how you want to rotate, move,join and split walls?
User avatar
Moult
Posts: 321
Joined: Sat Jan 05, 2019 11:46 am
Contact:

Re: How do I split / explode a wall / draft wire?

Post by Moult »

Thanks very much for all your explanation. I would like to contribute codewise, but first I need to be able to use the software before I can look at the code :) I hope you don't mind me endlessly asking what might seem like really basic questions ;)

So I am attempting to draw a simple concrete lift core in FreeCAD. Here are four attempts:
2019-01-19-224800_921x444_scrot.png
2019-01-19-224800_921x444_scrot.png (45.43 KiB) Viewed 1277 times
The first attempt is drawing 4 separate walls using draft lines, individually turning them all into walls, and then moving them into a group. A group allows me to move the entire lift core as one entity which is useful. However as you can see the walls are not "joined", and so this is incorrect: concrete lift core walls are constructed as a single wall.

The second attempt is drawing it as a single rectangular draft wire. This is good because it joins and I can move it as one wall but has the issue that I can only resize it as a rectangle. I cannot delete a single wall.

The third attempt is individual walls but joined together with the "up" tool. This overcomes the issues of the first and second. However, I noticed a strange, uh, bug perhaps? If I select "Joined" Wall and attempt to move it as a group, Wall006, Wall007, and Wall05 move as expected ("Move with host" is set to "yes"), however the wall created by Line007 does not follow. As a result I get a broken lift core :(

The fourth attempt is using a sketcher sketch. This is good, but as you say, the sketcher workbench lacks a simple move function.

Finally, the 5th shows a draft wire with three edges. I can redraw the lift to have three edges, and then replace the base component, but I have noticed that because I may have moved the wall independently from the sketch, the wall might appear where I don't expect it to.

So given the above scenario, how would you draw this lift core so that:

1. The 4 lift core walls are joined, just like it would be when in construction
2. I can delete, and then readd a lift core wall
3. I can shift an individual edge of the lift core specifically in a direction by a specified dimension
4. When I move it, the sketch moves with the wall
I also blog about 3D rendering, architecture, software and other on thinkMoult.com. RSS / Atom feed available for your convenience.
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: How do I split / explode a wall / draft wire?

Post by Roy_043 »

@Moult:
1. Using a sketch as the base for walls will result in merged L-connections. T-connections are not solved however.
2. You can add and delete lines in a sketch.
3. You would change the constraints that control the location of the lines.
4. You should only move the sketch (I think). Or change the constraints that control the position of the sketch.

EDIT: What I said about T-connections is not entirely correct. The walls are merged into a single solid but somehow a 'Refine operation' (I am referring to a property of a Part Design body) is not performed.
User avatar
regis
Posts: 725
Joined: Sun Jul 12, 2015 8:17 am
Contact:

Re: How do I split / explode a wall / draft wire?

Post by regis »

Moult wrote: Sat Jan 19, 2019 12:02 pm Thanks very much for all your explanation. I would like to contribute codewise, but first I need to be able to use the software before I can look at the code :) I hope you don't mind me endlessly asking what might seem like really basic questions ;)

So I am attempting to draw a simple concrete lift core in FreeCAD. Here are four attempts:

2019-01-19-224800_921x444_scrot.png

The first attempt is drawing 4 separate walls using draft lines, individually turning them all into walls, and then moving them into a group. A group allows me to move the entire lift core as one entity which is useful. However as you can see the walls are not "joined", and so this is incorrect: concrete lift core walls are constructed as a single wall.

The second attempt is drawing it as a single rectangular draft wire. This is good because it joins and I can move it as one wall but has the issue that I can only resize it as a rectangle. I cannot delete a single wall.

The third attempt is individual walls but joined together with the "up" tool. This overcomes the issues of the first and second. However, I noticed a strange, uh, bug perhaps? If I select "Joined" Wall and attempt to move it as a group, Wall006, Wall007, and Wall05 move as expected ("Move with host" is set to "yes"), however the wall created by Line007 does not follow. As a result I get a broken lift core :(

The fourth attempt is using a sketcher sketch. This is good, but as you say, the sketcher workbench lacks a simple move function.

Finally, the 5th shows a draft wire with three edges. I can redraw the lift to have three edges, and then replace the base component, but I have noticed that because I may have moved the wall independently from the sketch, the wall might appear where I don't expect it to.

So given the above scenario, how would you draw this lift core so that:

1. The 4 lift core walls are joined, just like it would be when in construction
2. I can delete, and then readd a lift core wall
3. I can shift an individual edge of the lift core specifically in a direction by a specified dimension
4. When I move it, the sketch moves with the wall
:D :lol: the first time i went throught this I must have been pretty exhausted, because the sense I made of your question has a different sense when I looked at it today. hmmmm I perfectly see what you are saying. I think I have one trick for you. it's a funny trick.

1. I'll draw the lines to represent the individual walls
Screenshot from 2019-01-26 22-00-05.png
Screenshot from 2019-01-26 22-00-05.png (146.53 KiB) Viewed 1221 times
2. Convert to walls by pressing the wall tool.
Screenshot from 2019-01-26 22-00-22.png
Screenshot from 2019-01-26 22-00-22.png (156.88 KiB) Viewed 1221 times
3. Adjust the alignments
Screenshot from 2019-01-26 22-01-18.png
Screenshot from 2019-01-26 22-01-18.png (187.67 KiB) Viewed 1221 times
4. Press the Add button to create the joiners like you want them.
Screenshot from 2019-01-26 22-01-18.png
Screenshot from 2019-01-26 22-01-18.png (187.67 KiB) Viewed 1221 times
5. Here is the trick you need. Convert to Structure object. (I mean technically a lift core is more of a structure than a wall) but if you wish to control it as a wall, reconvert the structure to a wall. And this should give you the ability delete each line and or replace them as base wires as you wish.
Screenshot from 2019-01-26 22-08-18.png
Screenshot from 2019-01-26 22-08-18.png (321.27 KiB) Viewed 1221 times
User avatar
regis
Posts: 725
Joined: Sun Jul 12, 2015 8:17 am
Contact:

Re: How do I split / explode a wall / draft wire?

Post by regis »

The small trick here was taking advantage of the structure tool, never thought it would come in handy in this kind of scenarios. Now you can move your walls around and tweak their base object/delete lines as you wish and you should be all fine. I believe this is what you wanted to do?
Attachments
Screenshot from 2019-01-26 22-19-26.png
Screenshot from 2019-01-26 22-19-26.png (221.01 KiB) Viewed 1220 times
User avatar
Moult
Posts: 321
Joined: Sat Jan 05, 2019 11:46 am
Contact:

Re: How do I split / explode a wall / draft wire?

Post by Moult »

Thanks for the step-by-step, Regis. That trick with structure is quite incredible. However at the end of the day, when I export to IFC, I'll get a mess of building element proxies that are added together instead of one nice clean wall, so unfortunately it isn't the perfect solution.

I believe FreeCAD is now simply missing the required functionality. I propose that FreeCAD needs to be able to be able to edit a base sketch with more tools. Specifically, we need to be able to use all the expected CAD functions on the 2D linework that form the base axes / profiles of our object. To this regard, a proprietary tool like Revit actually works really well.

Given that the sketcher functions are more recent that the draft workbench, it supports constraints, and already can do things like select and move an entire line at once, I propose to simply add all of the expected CAD functions to the sketcher workbench while editing a sketch (move, mirror, split, join, extend / trim, rotate, etc).

In addition, I propose to add a tool where we can join / split lines. Currently, I am not aware of how to do this in a single step.

Do these proposals make sense?
I also blog about 3D rendering, architecture, software and other on thinkMoult.com. RSS / Atom feed available for your convenience.
User avatar
regis
Posts: 725
Joined: Sun Jul 12, 2015 8:17 am
Contact:

Re: How do I split / explode a wall / draft wire?

Post by regis »

Moult wrote: Sun Jan 27, 2019 6:21 am However at the end of the day, when I export to IFC, I'll get a mess of building element proxies that are added together instead of one nice clean wall, so unfortunately it isn't the perfect solution.
Ha, I see, your initial requests mentioned nothing of Ifc. I wouldn't know much of it but would wait for Yorik to weigh in here as he understands the under the hood of Ifc. But just for the sake of us who aren't familiar with ur process you can post the picture of your IFC results.
Moult wrote: Sun Jan 27, 2019 6:21 am I believe FreeCAD is now simply missing the required functionality. I propose that FreeCAD needs to be able to be able to edit a base sketch with more tools. Specifically, we need to be able to use all the expected CAD functions on the 2D linework that form the base axes / profiles of our object. To this regard, a proprietary tool like Revit actually works really well.
Hehe you are not wrong but who can get this feature up and running in no time? I wonder how to push a baby to skip the crawling steps to the running stage? Revit is beyond a doubt powerful and is used in industry for that reason. But remember there was a time when open source had no options to handle Bim. So this is all very new.
Moult wrote: Sun Jan 27, 2019 6:21 am Given that the sketcher functions are more recent that the draft workbench, it supports constraints, and already can do things like select and move an entire line at once, I propose to simply add all of the expected CAD functions to the sketcher workbench while editing a sketch (move, mirror, split, join, extend / trim, rotate, etc).
Yeah I myself wished lots of improvements but I'm not a programmer to address these myself. That's why I look for alternatives within current capabilities. Well knock around doors a bit more, I'm sure someone who can program and understand you will want to listen to what you have to say. I don't even know if sketcher is programmed in C+ or Python.
paullee
Veteran
Posts: 5098
Joined: Wed May 04, 2016 3:58 pm

Re: How do I split / explode a wall / draft wire?

Post by paullee »

@Moult please try using more sketch as Base - with your knowledge in both knowledge Arch + programming, you should come up with lots of ideas how things could be done, improved and able to discuss with Yorik !

Sketcher is a tool to me quite different from what I used in Acad e.g. Sketcher is powerful with its constraints feature and seem not necessry needs all tools you suggest but may be better i am not sure. E.g rotate, not sure usecases - maybe it's more than 10 years ago i had used Acad that I forget now :) - had > 10 years experience in Acad though.

I attempt to do something like below and post somewhere else:
  1. a not too complicated MasterSketch for a floor plan, all kinds of walls
  2. it can't be too complicated as sketch solver would become slow (me only work on an i3core)
  3. a series of dependant sketch, each represent / group a certain kind of wall, e.g. 100mm thk wall, 150 mm wall etc.
  4. these dependant sketch are linked to the MasterSketch
  5. so whenever MasterSketch update, these Dependant Sketch update
  6. each of these dependant sketch is Base of an ArchWall
I remember there is another member who had posted a file using similar approach … forgot the name atm

Still, whilst this is complicated, there are still lots of problems.

See what are in your mind :)
User avatar
Roy_043
Veteran
Posts: 8450
Joined: Thu Dec 27, 2018 12:28 pm

Re: How do I split / explode a wall / draft wire?

Post by Roy_043 »

@Paullee:
Maybe you are referring to this topic where I have attempted that approach:
https://forum.freecadweb.org/viewtopic. ... 35#p281155
Post Reply