Freecad finally scratched that itch I had for so long.

A forum dedicated to the Draft, Arch and BIM workbenches development.
sanderboer
Posts: 21
Joined: Fri Aug 30, 2019 9:47 am

Freecad finally scratched that itch I had for so long.

Postby sanderboer » Mon Sep 09, 2019 8:30 pm

Hi all,

As an architect I am quite proficient in organic architecture and I have coded my fair share in Catia, Grasshopper, pythonocc and none really scratched that itch until I finally got back around to freecad.

To be precise, that itch is that Rhino does not have a reliable tangency constrained surfacing system, this limits the possibilities of the topology. For instance, when I worked for Mecanoom, the WeiWuYing project has a very subd-esque topology and I had to resort to Catia/Digital Project. I designed the shape as a parametric model that was built as a splinecage with surfaces that were tangency-symetric on both sides of the spline:
phpBB [video]

(I rendered this in blender 2.4 I think, maybe 2.5)

Back then I already knew about opencascade and the methods that support constraining the curvature of a surface at the edges, but I never got further than a few prototypes in c++ and pythonocc. I noticed I like geometry, but boy do I hate coding a UI.

So, last week I decided to give FreeCAD a better look and whipped up a nice macro that populates a 3 curve lofted surface (which incidentally is only available in python):

Image
Image

The windows are actual Arch windows, but the structure is not realistic in detailing. I should do this structure I designed when I worked at ONL:
Image
image c/o ONL,

So what I want to say is:
THANK YOU !

And the added bonus of being on Linux full-time is sweet too, big thanks for that to you and the good people at blender, scribus and inkscape.
User avatar
bitacovir
Posts: 678
Joined: Sat Apr 19, 2014 6:23 am
Contact:

Re: Freecad finally scratched that itch I had for so long.

Postby bitacovir » Tue Sep 10, 2019 1:40 pm

sanderboer wrote:
Mon Sep 09, 2019 8:30 pm
So what I want to say is:
THANK YOU !
I think Yorik is traveling at this moment. He is one of the main developers of FreeCAD for Architecture.
But it is interesting to know more architects working on FreeCAD in real cases. Please, consider supporting Yorik's dedication in Patreon. Another developer with Patreon account is Kremitzki.

https://www.patreon.com/yorikvanhavre
https://www.patreon.com/kkremitzki

Also, you could make a tutorial to teach other architects on how to produce those designs.
Regards.
::bitacovir::
===================================
One must be absolutely modern.
Arthur Rimbaud (A Season in Hell -1873)

My Blog
Mini Airflow Tunnel Project
carlopav
Posts: 214
Joined: Mon Dec 31, 2018 1:49 pm

Re: Freecad finally scratched that itch I had for so long.

Postby carlopav » Tue Sep 10, 2019 2:54 pm

Really interesting to have you here!
dimitar wrote:
Wed Aug 14, 2019 10:17 pm
dimitar also could be interested
User avatar
Kunda1
Posts: 5148
Joined: Thu Jan 05, 2017 9:03 pm

Re: Freecad finally scratched that itch I had for so long.

Postby Kunda1 » Tue Sep 10, 2019 3:45 pm

These guys as well!
paullee wrote:
Thu Sep 05, 2019 11:34 pm
regis wrote:
Thu Mar 14, 2019 2:59 am
Want to contribute back to FC? Checkout:
#lowhangingfruit | Use the Source, Luke. | How to Help FreeCAD | How to report FC bugs and features
paullee
Posts: 1629
Joined: Wed May 04, 2016 3:58 pm

Re: Freecad finally scratched that itch I had for so long.

Postby paullee » Tue Sep 10, 2019 4:49 pm

Yes, this is impressive!

A tutorial on how to do this would be appreciated :D
sanderboer
Posts: 21
Joined: Fri Aug 30, 2019 9:47 am

Re: Freecad finally scratched that itch I had for so long.

Postby sanderboer » Wed Sep 11, 2019 8:43 am

I am quite busy right now for a fully fleshed out tutorial, not in the least because I am diving head first in with freecad for a project. ;)

But I added the files I made above images with in my github:
https://github.com/sanderboer/FreeCAD/t ... scratchpad

The macro is a nurbs population script and the selection of the base surface is hardcoded in the macro:
surf = doc.Shape001

But after that, it is off to the races. The script loops through the U and V topology of the surface, gets a point and a normal on that surface at regular intervals and connects them in triangles, which is boring, but structurally sound and each triangle is always flat. Triangles are the most structurally sound and are guaranted flat, so in principle we can use regular building methods. Each triangle is different in dimensions, but they all have the same detail. One building, one detail as we liked to say in the ONL days.

Now the base surface is a Part.makeLoft, because this type of surface is untrimmed. Untrimmed surfaces allows for us to use the UV coordinates of the surface for mapping the construction on. I did try out an edge constrained surface, but that is almost always a trimmed surface and then I need to externally map a grid onto the surface which is very hard to formalise and is very dependent on the design intent.

cheers, sander
User avatar
dimitar
Posts: 145
Joined: Thu Jun 13, 2019 6:10 am
Location: UK
Contact:

Re: Freecad finally scratched that itch I had for so long.

Postby dimitar » Wed Sep 11, 2019 10:31 am

This looks great! And it is exactly the type of flexibility that Freecad is missing at the moment. But Freecad definitely has all the right ingredients.

Seems something like Catia's knowledge patterns.

FYI: I've started collecting inspiration from elsewhere (mostly Catia) on another thread here: https://forum.freecadweb.org/viewtopic.php?f=23&t=38510
User avatar
saso
Posts: 1305
Joined: Fri May 16, 2014 1:14 pm
Contact:

Re: Freecad finally scratched that itch I had for so long.

Postby saso » Wed Sep 11, 2019 11:33 am

Hot :)

... creating most of it from the script is however not very much in the "fully parametric spirit" (but I am not saying that it is bad :)), however if we take the above example for scriptable distribution of components + this example for fully parametric surface control https://forum.freecadweb.org/viewtopic. ... 26#p325226 + this example for fully parametric custom components https://forum.freecadweb.org/viewtopic. ... 97#p325613 + get some control over U-V, then we can probably already do something very close to this https://www.youtube.com/watch?time_cont ... 8F_RBj1nnM

... on the other hand microelly2 is probably able to take the above macro, break it down in to simple generic "basic blocks", turn them in to nodes and reimplement this in his node workflow https://forum.freecadweb.org/viewtopic. ... 9&start=70 :)
User avatar
bitacovir
Posts: 678
Joined: Sat Apr 19, 2014 6:23 am
Contact:

Re: Freecad finally scratched that itch I had for so long.

Postby bitacovir » Wed Sep 11, 2019 3:02 pm

sanderboer wrote:
Wed Sep 11, 2019 8:43 am
But I added the files I made above images with in my github:
https://github.com/sanderboer/FreeCAD/t ... scratchpad

Thanks for sharing. I hope someone can take that macro to develop a nice tool in FreeCAD to build this kind of structures.
::bitacovir::
===================================
One must be absolutely modern.
Arthur Rimbaud (A Season in Hell -1873)

My Blog
Mini Airflow Tunnel Project
paullee
Posts: 1629
Joined: Wed May 04, 2016 3:58 pm

Re: Freecad finally scratched that itch I had for so long.

Postby paullee » Wed Sep 18, 2019 5:38 pm

Trying to understand the Macro.

It is cool!

Any yes, if anyone can push it further to make a kind of parametric CurtainWall object :D