Dynamo and FreeCAD

An user is creating nodes in Dynamo to control FreeCAD
https://github.com/infeeeee/DynFreeCAD

Moultjtm2020hyoAce

Comments

  • Yay, it's me!
    It's in a very early state yet, this screenshot is already outdated, I added a new one to the readme.
    There are some already working examples in the Examples folder of the repo

    Moultbitacovirnikitron
  • @infeeeee your work is awesome! I see that @duncan has already added it to the OSArch wiki directory - it's missing a logo though :)

  • Wait, so Dynamo is both a $325 a year Autodesk product and an Apache licensed github project?

    nikitron
  • @brunopostle said:
    Wait, so Dynamo is both a $325 a year Autodesk product and an Apache licensed github project?

    No, that's Dynamo Studio. You can get DynamoSandbox for free from https://dynamobuilds.com/. Download one of the DynamoCoreRuntimes, extract and you will find DynamoSandbox.exe there. Dynamo Studio adds some advanced features, e.g. you cannot upload to package manager from sandbox, only from Revit or from Studio.

    Here they list all options to get dynamo: https://dynamobim.org/download/

    Jesusbillbrunopostle
  • @Moult I created a logo by combining the FreeCAD logo with the style of the Dynamo logo, I will upload to the wiki rn:

    MoultJesusbillnikitronjtm2020hyo
  • @infeeeee I have just give your Wiki user upload access :)

    infeeeee
  • @infeeeee Noted that in FreeCAD forum, just not sure what exactly it is helping, and what PyFlow does ?
    Thanks !

  • JQLJQL
    edited September 2020

    Hi and interesting read.

    What this means is that dynamo and FreeCAD can be used together for free using dynfreecad?

    That is very cool indeed!

    If it is python could dynamo be ported to blender too?

  • edited September 2020

    As a Rhino/Grasshopper user I would love to see a Grasshopper integration into FreeCAD rather than a Dynamo one.
    Also McNeel is a MUCH nicer company to work with than Autodesk.
    Also Rhino7 will have an option to be run as a plugin into other apps! Maybe Rhino7 inside FreeCAD?
    https://rhino3d.com/inside
    Rhino.Inside® is an open source Rhino WIP project which allows Rhino and Grasshopper to run inside other 64-bit Windows applications such as Revit, AutoCAD, etc.

    nikitron
  • @paullee I'm not familiar with pyflow, it seems it can be more easily integrated into FreeCAD, as it's a python module. Maybe someone will create a new workbench around it? So comparing the two:
    Pyflow:
    Pros:

    • Not backed by an evil corporation
    • Can be integrated to FreeCAD more easier

    Cons:

    • It's developement is stopped? Last commit was in april on github, no closed issues since than.

    Dynamo:
    Pros:

    • Much bigger user and developer community, with a lot of packages. Imagine you can pipe data from Navisworks to FreeCAD simply, etc...
    • I know Dynamo
    • It's backed by an evil corporation, so development is funded, until this corporation decides other way. But as this is open source, it can be forked if something wrong happens

    Cons:

    • Not fully open source. Namely the core nodes are not open source.
    paullee
  • @dacicusan
    I'm not too familiar with Grasshopper, I used it once or twice in my life, as a Dynamo user it wasn't really different. ParametricMonkey has some guide for the grasshopper users to find the same things in dynamo: https://parametricmonkey.com/2016/01/19/dynamo-for-grasshopper-users/ Download the pdf on the bottom of the page.

    As a Rhino/Grasshopper user I would love to see a Grasshopper integration into FreeCAD rather than a Dynamo one.

    I don't have that much time, also I'm not a pro developer and it sounds like a much bigger task, but your contributions are welcomed ;)

    nikitron
  • edited September 2020

    @paullee @JQL
    So the full story:
    You could run python code inside dynamo since the beginning. Now they added support for python3, also changed the python engine from ironPython to cPython, as python2 official support is ended, and the development of ironPython slowed. Other users tried to integrate FreeCAD into Dynamo before, but it wasn't compatible with ironPython, see this thread: https://forum.freecadweb.org/viewtopic.php?f=22&t=30732
    FreeCAD can be imported as a python module into other python applications. DynFreeCAD works this way: it just imports FreeCAD as a python module, than you can do anything in Dynamo Python node, as you can do it in the Python console in FreeCAD, basically FreeCAD running in the background while you use these nodes. Even the FreeCAD gui can be started from inside Dynamo, but there are some compatibility problems, so I couldn't figure out how to do this yet, but I'm working on it.

    Blender also has a python api, so it's possible that it can be imported to Dynamo the same way, but I'm not familiar with Blender, so someone else have to work on this, or maybe after I finished working on this project.

    Edit: ironpython's development is not stopped

  • Very simple and straightforward answers. Thanks. Congratulations on your work!

  • Issue with both> @infeeeee said:

    the development of ironPython stopped.

    Second I hear this. May I ask your source because development is still active on github : https://github.com/IronLanguages/ironpython3 and I saw no announcement.
    I assume they have implemented cpython through pythonnet as Ehsan did inside pyRevit ?

  • edited September 2020

    Maybe I misunderstood something, or just remember it wrongly, sorry, the repo seems active. I looked the sources about why dynamo left ironpython, and the reason is python 2 is not supported since 2020-04-20 and ironpython3 is not finished nor has an ETA:

    In short: We are integrating the CPython 3 native Python interpreter to enable Python 3 access in Dynamo as the IronPython project (Which we have used in Dynamo up until now) has not yet had a 3.0 release and has no ETA on it – #sadness.

    Source: https://dynamobim.org/dynamo-core-2-7-release/
    Yes, they are using python.net, more info here.
    https://github.com/DynamoDS/Dynamo/wiki/Work-in-progress-to-improve-Python-3-support#iron-python-and-pythonnet

    P.S: I will edit my comment and change development stopped to slowed.

    Edit: I also found this comment: https://forum.dynamobim.com/t/new-feature-preview-python-3-support-issue-thread/51649/28

    Unfortunate that Ironpython 3 is still not released (even if work has resumed recently)

    So it seems there was a time when development was halted? so it's not true nowadays, but was true some time ago? I don't follow python engine development that closely...

    Cyril
  • Of blender.
    https://github.com/nortikin/sverchok/pull/3501#event-3733089617
    https://blenderartists.org/t/freecad-sverchok-subd-to-nurbs/1218702
    Sverchok now has nodes for FreeCAD (conda in windows and sudo apt-get pythonfreecad18 installation in linux)
    So, solid surfaces operations avalable.
    As i see your intergration implementation purposes - to deal with publishing. I don't like how layouts in freecad are made. If you can handle one this thing it excuses all other. But it can be great if

    @infeeeee said:
    @paullee @JQL
    So the full story:
    You could run python code inside dynamo since the beginning. Now they added support for python3, also changed the python engine from ironPython to cPython, as python2 official support is ended, and the development of ironPython slowed. Other users tried to integrate FreeCAD into Dynamo before, but it wasn't compatible with ironPython, see this thread: https://forum.freecadweb.org/viewtopic.php?f=22&t=30732
    FreeCAD can be imported as a python module into other python applications. DynFreeCAD works this way: it just imports FreeCAD as a python module, than you can do anything in Dynamo Python node, as you can do it in the Python console in FreeCAD, basically FreeCAD running in the background while you use these nodes. Even the FreeCAD gui can be started from inside Dynamo, but there are some compatibility problems, so I couldn't figure out how to do this yet, but I'm working on it.

    Blender also has a python api, so it's possible that it can be imported to Dynamo the same way, but I'm not familiar with Blender, so someone else have to work on this, or maybe after I finished working on this project.

    Edit: ironpython's development is not stopped

    infeeeee
  • @nikitron
    Sverchok was also mentioned in the FreeCAD forum thread: https://forum.freecadweb.org/viewtopic.php?f=8&t=49910&p=431516#p430966
    I will check how you manage some things, as I can see it's also written in python. Of course not straight copy, I think your GPL license is not compatible with MIT. Mabe I will collect alternatives working with FreeCAD in the readme.

    As i see your intergration implementation purposes - to deal with publishing. I don't like how layouts in freecad are made. If you can handle one this thing it excuses all other. But it can be great if

    What are my integration purposes? I don't even know. I'm trying to build something generic, like the integration with Revit: you can do everything in dynamo as you can do it on the gui. What do you mean by 'to deal with publishing', to integrate TechDraw?

    nikitron
  • In any case, it's really thrilling to see different bridges to freecad being built!! it furnishes many new alternative creation interfaces. i'd also like to see grasshopper entering the game ;) did anyone already try?

    Moult
  • If anyone is able to better integrate this discussion/project into our wiki page I would appreciate the help. I don't really understand enough to make a useful text.

    https://wiki.osarch.org/index.php?title=Dynamo
    @yorik @infeeeee

    paullee
  • A lot of things changed in my life since the last update, and I'm planning to continue working on this project again. I will document it on the wiki as well, and I was thinking about adding dynamo related topics there

    bitacovirpaulleeduncan
Sign In or Register to comment.