If you're reading this, we've just migrated servers! If anything looks broken please email dion@thinkmoult.com :)

Geometry Sketcher

2

Comments

  • @theoryshaw said:
    @JanF In the example above, how did you not create a 'face' on the mesh?
    As you can see below, mine has a 'face'.

    That's actually a good question :D
    Currently closed shapes are filled, i assume @JanF's example wasn't closed...?

    Anyway i've added an option next to the convert_type, get the newest version and you can check it out.

  • @JanF said:

    Does this help?

    sure does thank you, works very nicely

    matthew_fullerIonut_BimStudio
  • @JanF said:

    Coming from an AutoCAD back ground to drawing with constraints for the first time in FreeCAD, I really hated it.
    BlendCAD here however looks very doable to me!

    matthew_fullerengfernando
  • Wondering the difference are ?

  • @paullee said:
    Wondering the difference are ?

    I don't know how much of Freecad has changed in the last few years, but it certainly felt painful to use then and I was always amazed at more accomplished users who didn't feel so. Clearly it's down to me currently being a lot more accustomed to Blender now than I was to Freecad then.

  • @DADA_universe said:
    Coming from an AutoCAD back ground to drawing with constraints for the first time in FreeCAD, I really hated it.

    I started using AutoCAD about 30 years ago :D and indeed FreeCAD Sketcher constraints driven approach is something take some time for me to adapt to. Once found its benefits, e.g. sketching a floor layout with dimensional constraints for ease of design development, seems all the troubles of learning and setting it up worth it.

    The demonstration in above posts seems it is quite intuitive in Blender BIM also.

    BTW, anybody can comment if Sketch in FreeCAD and Blender could be exported/imported between both software ? Doable ?

    Thanks.

    DADA_universehlorus
  • @paullee said:
    BTW, anybody can comment if Sketch in FreeCAD and Blender could be exported/imported between both software ? Doable ?

    There might be something to this question, I see that Geometry Sketch is based on a fork of SolveSpace (on which Geometry Sketcher is based) by Real Thunder, better known for his more intuitive fork of FreeCAD. Indeed there might be something there to explore for interoperability between FreeCAD and Blender for starters and other cad tools by extension, with the 'sketch' being the vehicle that conveys the required CAD data between the different tools.

    paulleeJanF
  • Just have opened a discussion at FreeCAD to bring to attention of @abdullah and @realthunder there.
    (@abdullah is the main sketcher developer at FreeCAD at the moment to my understanding)

    DADA_universehlorus
  • Feature request @hlorus :
    Constraining by area.
    Useful for early stage design, where you have indicative areas for spaces you need to design for and you want to be able to drop in 'parametric bubbles', fix the area for each one and tweak the shape as required while the area is fixed. I guess this can be done manually with drivers, but a one-click built in feature would be great.

    JanFhlorusMassimo
  • @hlorus said:
    I've made a "quick" demo script to show how external addons could use the functionality of BGS. Note that for this specific demo to work the python module "scipy" has to be installed in blenders python. If you don't know how to install it, it should work by pasting following lines into the console inside blender:
    from geometry_sketcher.functions import install_package
    install_package("scipy")

    Getting: ModuleNotFoundError: No module named 'geometry_sketcher' when I try to run from geometry_sketcher.functions import install_package in the Blender console. Indeed no such module in the module folder.

  • @DADA_universe said:

    @hlorus said:
    I've made a "quick" demo script to show how external addons could use the functionality of BGS. Note that for this specific demo to work the python module "scipy" has to be installed in blenders python. If you don't know how to install it, it should work by pasting following lines into the console inside blender:
    from geometry_sketcher.functions import install_package
    install_package("scipy")

    Getting: ModuleNotFoundError: No module named 'geometry_sketcher' when I try to run from geometry_sketcher.functions import install_package in the Blender console. Indeed no such module in the module folder.

    Yeah, had the same problem, you can just install scipy manually through your blender python https://blenderartists.org/t/how-do-i-install-scipy-for-blender-2-93-on-windows-10/1309641

    (I know you probably know this, but others might not)

    paullee
  • Installing scipy without dependency check (numpy) may break blender's numpy !
    So basically you must find relevant version depending on python + numpy and setup without dep.

  • @JanF said:
    Yeah, had the same problem, you can just install scipy manually through your blender python https://blenderartists.org/t/how-do-i-install-scipy-for-blender-2-93-on-windows-10/1309641

    Indeed. I had followed this process in the past to have pip set up in Blender, so all I had to do was to run
    import pip
    pip.main(['install','scipy'])
    The script is bugging out though. I figured out that the GP sketch needs to be done on a Grease Pencil layer called Lines. I guess this can be exposed in a Blender panel where the Layer name to work with Geometry Sketcher can be set as a variable. Next I'm getting: "TypeError: Improper input: func input vector length N=2 must not exceed func output vector length M=1".
    Will see.

  • @stephen_l said:
    Installing scipy without dependency check (numpy) may break blender's numpy !
    So basically you must find relevant version depending on python + numpy and setup without dep.

    I might have broken something! :o)

  • @DADA_universe said:

    @JanF said:
    Yeah, had the same problem, you can just install scipy manually through your blender python https://blenderartists.org/t/how-do-i-install-scipy-for-blender-2-93-on-windows-10/1309641

    Indeed. I had followed this process in the past to have pip set up in Blender, so all I had to do was to run
    import pip
    pip.main(['install','scipy'])
    The script is bugging out though. I figured out that the GP sketch needs to be done on a Grease Pencil layer called Lines. I guess this can be exposed in a Blender panel where the Layer name to work with Geometry Sketcher can be set as a variable. Next I'm getting: "TypeError: Improper input: func input vector length N=2 must not exceed func output vector length M=1".
    Will see.

    Yeah, I suppose that comes from the default layer name when you add the GP stroke - if you add GP empty it's called GP_Layer. It also only works in the XZ Plane and sometimes throws an error when the strokes are too weird (ie you use eraser but miss a small part)

  • @JanF said:
    Yeah, I suppose that comes from the default layer name when you add the GP stroke - if you add GP empty it's called GP_Layer. It also only works in the XZ Plane and sometimes throws an error when the strokes are too weird (ie you use eraser but miss a small part)

    Thanks, your tips helped. I was adding a GP empty. And yes it does say it works with the XZ Plane. Still not so fault tolerant and buggy, but the demo shows promise of what's possible with GS.

  • @paullee said:
    BTW, anybody can comment if Sketch in FreeCAD and Blender could be exported/imported between both software ? Doable ?

    Sorry, i've missed that question. I think this would be really great to support. Let's see where the discussion leads in the Freecad forum...

    @DADA_universe said:
    Thanks, your tips helped. I was adding a GP empty. And yes it does say it works with the XZ Plane. Still not so fault tolerant and buggy, but the demo shows promise of what's possible with GS.

    Sorry for the trouble, this was really just a quick demo to show how external scripts could access BGS functionality.

    @DADA_universe said:
    Feature request @hlorus :
    Constraining by area.
    Useful for early stage design, where you have indicative areas for spaces you need to design for and you want to be able to drop in 'parametric bubbles', fix the area for each one and tweak the shape as required while the area is fixed. I guess this can be done manually with drivers, but a one-click built in feature would be great.

    Sound interesting however that would have to be implemented by solvespace probably. Is that a common feature in BIM software?

    paullee
  • @hlorus said:
    Sound interesting however that would have to be implemented by solvespace probably. Is that a common feature in BIM software?

    Not that I know of.
    Thought some nifty python math would do it.

  • @DADA_universe
    The addon just exposes solvespace's constraint types and let's the solver do the hard work. Adding further constraint types in python would require another solver mechanism which isn't straight forward to implement probably.

    Not sure if it would be worth the effort but feel free to try :)

    DADA_universe
  • edited November 2021

    Just incorporated Geometry Sketcher into Sverchok - MeasureitArch "2D Cad" workflow:

    Acehlorusbruno_perdigaoJesusbillDarth_BlenderDADA_universebasweinLaurensJNCadGiruhtlcnnand 2 others.
  • Hey thanks for sharing, i've tried it out. As far as i can tell sverchok is simply used to convert the bezier curve to mesh here, would be interesting to know if the conversion could be achieved with native tools (like geometry nodes) as well. Then it might be possible to integrate it directly into BGS.

    paullee
  • Yeah, it's very basic, basically a workaround for the standard mesh output. But for me it's also important to have the data in sverchok, as that's what I mostly use - I can couple it with topologic and so on.

  • edited February 2022

    Is there a way to not have the resultant geometry be so triangulated?

  • @theoryshaw You could try to work with bezier curves, the conversion currently always works by first converting to bezier. To get a mesh blenders native to_mesh function is used. There's currently no direct mesh converter since it would be difficult to correctly fill in the surface.

  • Hi David, still seems triangulated with Bezier...

  • Here's one way, i guess...

  • Hmm yeah but i assume that's just the display, when you edit the bezier there will just be the minimum number of controlpoints...

  • Sorry, not sure i follow you.

  • Why exactly would you like to avoid the triangulation? Simply because of the appearance or is it a problem with the topology?

Sign In or Register to comment.