{"id":20326741,"url":"https://github.com/infeeeee/dynfreecad","last_synced_at":"2025-04-11T20:06:53.826Z","repository":{"id":61559589,"uuid":"289720803","full_name":"infeeeee/DynFreeCAD","owner":"infeeeee","description":"Dynamo nodes for FreeCAD","archived":false,"fork":false,"pushed_at":"2020-11-14T23:55:28.000Z","size":2015,"stargazers_count":55,"open_issues_count":1,"forks_count":8,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-11T20:06:46.130Z","etag":null,"topics":["dynamo","dynamobim","freecad"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/infeeeee.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-23T16:08:40.000Z","updated_at":"2025-02-14T22:43:57.000Z","dependencies_parsed_at":"2022-10-19T09:45:23.907Z","dependency_job_id":null,"html_url":"https://github.com/infeeeee/DynFreeCAD","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infeeeee%2FDynFreeCAD","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infeeeee%2FDynFreeCAD/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infeeeee%2FDynFreeCAD/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/infeeeee%2FDynFreeCAD/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/infeeeee","download_url":"https://codeload.github.com/infeeeee/DynFreeCAD/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248473127,"owners_count":21109628,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dynamo","dynamobim","freecad"],"created_at":"2024-11-14T19:45:05.274Z","updated_at":"2025-04-11T20:06:53.799Z","avatar_url":"https://github.com/infeeeee.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](https://raw.githubusercontent.com/infeeeee/DynFreeCAD/master/Logo/DynFreeCAD_256.png) \n\n# DynFreeCAD\n\nDynamo nodes for the FreeCAD API\n\n**Early, work in progress**, PRs are welcomed!\n\n## Requirements\n\n- Dynamo 2.8+. Download from [dynamobuilds.com](https://dynamobuilds.com/)\n  \n  - Select one of DynamoCoreRuntimes. Download, extract, you will find DynamoSandbox.exe inside\n\n- FreeCAD built with python 3.8: \n  \n  - **Recommended:** Daily 0.19 **Conda** build: [Release 0.19_pre · FreeCAD/FreeCAD · GitHub](https://github.com/FreeCAD/FreeCAD/releases/tag/0.19_pre) *(Python 3.8.6)*\n  \n  - If daily builds are down: [Release FreeCAD Win Conda PY3.8 · sgrogan/FreeCAD · GitHub](https://github.com/sgrogan/FreeCAD/releases/tag/PY3.8) The 'site_packages1' version works better. *(Python 3.8.1)*\n  \n  - You can build yourself a different verision, follow FreeCAD's doumentation\n\n## Installation\n\n- Clone this repo\n\n- Open DynamoSandbox.exe\n\n- Settings ➡ Manage Node and  Package Paths... ➡ Add a new folder with ➕, select the `Dyf` subfolder from where you cloned ➡ Accept changes\n\n- (Dynamo package manager soon!)\n\n### FreeCAD API in Dynamo\n\nDynamo 2.7 added support for CPython 3.7, so FreeCAD can be called inside dynamo. Everything should work inside Python nodes, I want to add more common FreeCAD commands as nodes, so graphical programming can get a boost in FreeCAD.\n\nUnfortunately due to a bug in Dynamo 2.7, these nodes are only usable in 2.8 with Python 3.8. \n\n### Compatibility matrix\n\nTable updated: 2020-11-13\n\n| Dynamo | Stable Dynamo | cPython in Dynamo | FreeCAD API | DynFreeCAD | Revit  |\n| ------ |:-------------:|:-----------------:|:-----------:|:----------:|:------:|\n| 2.6    | ✔             | ❌                 | ❌           | ❌          | 2021.1 |\n| 2.7    | ✔             | 3.7.3             | ✔           | ❌          | ❌      |\n| 2.8    | ✔             | 3.8.3             | ✔           | ✔          | ❌      |\n| 2.9    | ✔             | 3.8.3             | ✔           | ✔          | ❌      |\n| 2.10   | ❌             | 3.8.3             | ✔           | ✔          | ❌      |\n\n## Usage and tips\n\n\u003cp align=\"center\"\u003e\n⚠️\u003cb\u003eAs DynFreeCAD is under developement, it's possible that some screenshots and documentation are outdated\u003c/b\u003e⚠️\n\u003c/p\u003e\n\nDetailed documentation is in the [wiki](https://github.com/infeeeee/DynFreeCAD/wiki). \n\nSee `Examples` folder for some Dynamo documents.\n\n### Load the FreeCAD API\n\n[There is a bug in Dynamo](https://forum.dynamobim.com/t/how-to-use-import-from-custom-path-in-multiple-cpython-blocks/55071), so you cannot load FreeCAD libs on latter nodes, unless they were loaded in a first python node. So before using DynFreeCAD, you have to load libraries:\n\n- Open `ApiLoader.dyn` from `Examples\\ApiLoaders` folder. \n  \n  - If you want to use Arch and Draft nodes open `ApiLoaderArch.dyn` instead. They require other dependencies, see [Arch and Draft Setup in the wiki](https://github.com/infeeeee/DynFreeCAD/wiki/Arch-and-Draft-Setup)\n\n- Click `Run`\n\n- If no errors given, just close this graph. Do not close Dynamo, only close the graph!\n\n- You can now start working with the FreeCAD api, create new graphs, or open other examples.\n\nYou have to do this every time you want to use the FreeCAD api in Dynamo. I hope sometimes this will be fixed, or at least I find a better workaround. \n\n### Using with the FreeCAD Gui visible\n\n*Soon...*\n\nCurrently it's not possible. Run the graph, save the file, than open it in FreeCAD.\n\n### Open or create a new document\n\nAlways start with these nodes. Add the path to the `bin` folder of FreeCAD.\n\n![Initialize and open a document](Screenshots/Initialize+open.png)\n\n### Manage documents\n\nUse the ouput of the OpenDocument or CreateDocument nodes output if you just work on one document. The bottom nodes just showing how these nodes are connectable. \n\n![Documents](Screenshots/Documents.png)\n\n### Manage properties\n\n![Properties](Screenshots/Properties.png)\n\n### Python script\n\nYou can use the FreeCAD API in a Python Script this way:\n\n![Api](Screenshots/Api.png)\n\nSee UseTheApi.dyn in Examples folder.\n\n## Troubleshooting\n\nIf you have some problems, open an issue!\n\nYou can also ask questions on the related project's forums:\n\n- [Dynamo Forum](https://forum.dynamobim.com/)\n- [FreeCAD Forum](https://forum.freecadweb.org/)\n- [OSArch Community](https://community.osarch.org/)\n\n## Alternativ graphical programing interfaces for FreeCAD\n\n- [GitHub - microelly2/NodeEditor: Node editor for FreeCAD with PyFLow](https://github.com/microelly2/NodeEditor)\n\n- [GitHub - nortikin/sverchok: Sverchok](https://github.com/nortikin/sverchok) Blender addin with FreeCAD support\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfeeeee%2Fdynfreecad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfeeeee%2Fdynfreecad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfeeeee%2Fdynfreecad/lists"}