FreeCAD, установка верстака Assembly2
Прошу помощи с настройкой рабочего пространства во FreeCAD, а именно с установкой дополнительных верстаков. Интересует верстак Assembly2, но и другие тоже не могу установить.
Попробовал 2 способа:
1. Вручную копировал содержимое в папку AppdataRoamingFreeCAD.
2. Использовал макрос addons_installer.FCMacro. Макрос работает, файлы в папкеAppdataRoamingFreeCAD появляются.
После перезагрузки FreeCAD, перечень верстаков не меняется.
Пробовал запускать программу от имени администратора, отключать антивирус. Пробовал на другом компьютере, результат аналогичный. Пришел к выводу что что то не допонял в инструкции по установке.
Может кто-нибудь подсказать решение проблемы?
Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
A convenient gathering of useful and well-developed FreeCAD plugins made by the community.
FreeCAD/FreeCAD-addons
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
- Local
- Codespaces
HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
fdfb88e Oct 27, 2023
Added scikit-learn to ALLOWED_PYTHON_PACKAGES.txt
Git stats
Files
Failed to load latest commit information.
Latest commit message
Commit time
pyrate @ 108fd1b
README.md
FreeCAD Addons Repository
This repository is a collection of useful additional workbenches and modules for FreeCAD made by its community members, conveniently available for seamless integration in to the application itself.
Important Notes:
- Since these Addons are not part of the official FreeCAD package and not supported by the FreeCAD team, although this list is curated and maintained by the FreeCAD team, you should read the information provided on each of the addons page before installing any of them, to make sure you know what you are installing.
- Bug reports and feature requests should be made directly on each addon page. Any reports opened in this repository should be related directly to the Addon Manager itself.
- The commit number indicated in the github tree above is not considered by the Addons Manager. What is installed or updated is always the latest HEAD of the specified branch of each addon. If no branch is specified in the .gitmodules file, «master» is assumed.
Addon Descriptions
For a description of each Addon you can either:
- within FreeCAD use the Addon Manager to scroll between all available Addon/External Workbenches.
- click on each individually linked Addons in this repository to read their README files.
Installing
Important Note: As of FreeCAD v0.17.9940 the Addon Manager was finally implemented in to FreeCAD. It can be accessed from within the Tools → ‘Addon Manager’ dropdown menu. For earlier versions (≤v0.16), please see the Deprecated Installation Methods section.
1. Builtin Addon Manager
The recommended way is using the built-in Addon Manager that installs 3rd party workbenches, addons, and macros. Access it via Tools → Addon Manager:
2. Manual install
For any reason the first option is not available, then manual installation is always possible. Github provides users to ‘Clone or download’ each of the addons listed in this repository. They can be downloaded by:
- navigating to the specific addon repository
- clicking the green ‘Clone or download’ → Download ZIP’ buttons found in the top right of each addon page
OR - Using git clone
Most of the addons must either be placed in your user’s FreeCAD/Mod folder, or in the Macros folder. Refer to the instructions on each addon page.
Note: Your user’s FreeCAD folder location is obtained by typing in FreeCAD’s python console: FreeCAD.ConfigGet(«UserAppData») while the Macros folder location is indicated in the dialog opened from Macro -> Macros. dropdown menu.
Adding your workbench to the collection
Have you made an interesting workbench or module that we are not aware of? Tell us on the FreeCAD forum so we can add it here!
To submit your workbench to the repository
- Announce your Workbench on the FreeCAD Forums
- Create a dedicated page for your workbench on the FreeCAD wiki (don’t forget to add [[Category:Addons]] to it) + add it to https://freecadweb.org/wiki/External_workbenches
- Tag (AKA ‘label’) your Github repo with the following: freecad , addons , and workbench
- Make sure you have a simple SVG logo of your workbench (no larger than 10kb) that can be used to represent it in the Addon Manager dialog.
- Please structure the README.md file in a way that makes it easy to understand while reading from the Addon Manager dialog. Example: SheetMetal Workbench
Note the use of: screenshots, screencasts, mentioning of Licence, Changelog etc. - Ensure that your Addon includes a package.xml metadata file, and that that file includes an icon, repository url, and readme url. The readme url should be a direct link to the HTML-rendered README.md file (e.g. https://github.com/shaise/FreeCAD_SheetMetal/blob/master/README.md)
- Submit a Pull Request to this repository adding your Addon to the .gitmodules file. Supported git hosts are GitHub, Gitlab, Framagit, and salsa.debian.org.
Translating External Workbenches
For wider usage of external workbenches, we recommend that workbench developers integrate the ability to translate their workbench(es). FreeCAD uses a 3rd-party crowdsource translation service called Crowdin. There are some automated scripts that we use to push and pull translations from Crowdin via their API. Developers are invited to help improve these scripts so as to include their own workbenches in the process. Further discussion on this forum thread.
Addon Manager Source Code
Source code for the Addon Manager lives in FreeCAD master FreeCAD/src/Mod/AddonManager/ .
Deprecated Installation Methods
Before FreeCAD v. 0.17.9940 the methods below were utilized to automate the installation of workbenches and macros. This sections is being kept for historical purposes.
1. Using the installer macro
The installer macro can be launched from inside FreeCAD, and will download and install any of the addons above automatically. To install the installer macro:
- Download addons_installer.FCMacro
- Place the downloaded macro in your FreeCAD Macros folder. The FreeCAD Macros folder location is indicated in menu Macros -> Macros -> User macros location:
- Restart FreeCAD. The addons installer will now be listed in menu Macro -> Macros and can be launched by selecting it then clicking the Execute button:
2. Using the «pluginloader» addon
The plugin loader is a much more elaborate way to install and manage additional content for freecad. Install it with the method above, or following the instructions on the pluginloader page.
About
A convenient gathering of useful and well-developed FreeCAD plugins made by the community.
Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
kbwbe / A2plus Public
Another assembly workbench for FreeCAD, following and extending Hamish’s Assembly 2 workbench
License
kbwbe/A2plus
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
- Local
- Codespaces
HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
22243a7 May 14, 2023
Update file for PEP8
Git stats
Files
Failed to load latest commit information.
Latest commit message
Commit time
October 4, 2022 22:56
September 24, 2022 13:24
May 9, 2023 18:54
December 21, 2018 20:22
February 12, 2019 12:39
November 19, 2022 19:56
February 18, 2023 23:27
April 30, 2023 22:14
December 9, 2022 22:14
April 21, 2022 14:32
December 4, 2022 19:33
June 28, 2018 18:25
February 23, 2023 15:37
June 28, 2018 18:25
February 23, 2023 20:14
June 28, 2018 18:25
January 3, 2023 21:32
January 3, 2023 21:15
April 30, 2023 22:01
October 20, 2022 23:57
February 21, 2021 15:51
February 18, 2023 23:38
April 30, 2023 22:36
January 15, 2023 13:46
October 4, 2022 23:38
March 16, 2022 19:31
January 15, 2023 13:30
February 23, 2023 17:44
March 16, 2022 19:31
March 16, 2022 19:31
February 20, 2021 14:59
November 19, 2022 18:13
September 5, 2022 18:46
February 23, 2023 17:01
October 15, 2022 21:27
January 15, 2023 13:33
October 15, 2022 21:38
October 29, 2022 23:04
October 4, 2022 21:57
March 16, 2022 19:31
March 16, 2022 19:31
January 15, 2023 13:23
November 7, 2022 22:44
August 27, 2022 01:35
May 7, 2023 21:49
README.md
A2plus
Description
Another assembly workbench for FreeCAD, following and extending Hamish’s Assembly 2 workbench hence Assembly2plus.
The main goal of A2plus is to create a very simple, easy to use, and not over-featured workbench for FreeCAD assemblies. Using the KISS principle: KEEP IT SIMPLE, STUPID
A2plus workbench tries to implement a new constraint solving algorithm to avoid some problems that occurred with the original solver. It is still under development and experimental at this moment but is showing some potential.
This project started as a fork of Hamish’s Assembly 2 workbench (development on A2 went dormant and was unmaintained for a long period). A2plus can be used with FreeCAD from v0.16 including support for importing parts from external files.
Assembly2 and A2plus
Similarities
- The workflow and the UI, so users of Assembly 2 can use it in an intuitive way
- Same as Assembly 2 it mainly aims at importing external files to the assembly.
Differences
- A new designed solving algorithm, able to solve some more complicated relations.
- Different and in future more constraints, internally with different names.
- No animation for degrees of freedom, as difficult for new solver type.
- No collision check of parts at moment. Planned for future versions
- Some new small features as visibility helpers (isolate and show only selected parts, transparency of whole assembly)
Is A2plus compatible with Assembly2 ?
No. A2plus would have to handle everything in same way as Assembly 2, including bugs, exact orientations, etc. You have to assemble existing projects again.
Releases
There are prereleases available, please browse the releases section of this repository.
Known Issues
A weak point is, and is similar to Assembly 2, updating / reimporting parts from external files. Constraints will break. You should delete constraints of parts before reimporting them. After that please constrain these parts again.
This behaviour is due to FreeCAD’s lack of Topological Naming and is difficult to correct at the moment. This phenomena is seen in many proprietary CAD solutions. Some work is being done to address this in future releases of FreeCAD which will improve this behaviour.
Installation
Automatic Installation
The recommended way to install A2plus is via FreeCAD’s Addon Manager under the Tools → ‘Addon Manager’ dropdown menu.
Manual Installation
The following directions explain how to install A2plus manually on different platforms
Linux
FreeCAD(version of your choice) has to be installed beforehand.
Use the CLI to install A2plus:
$ sudo apt-get install git python-numpy python-pyside $ mkdir ~/.FreeCAD/Mod $ cd ~/.FreeCAD/Mod $ git clone https://github.com/kbwbe/A2plus.git
Once installed, use git to easily update to the latest version:
$ cd ~/.FreeCAD/Mod/A2plus $ git pull $ rm *.pyc
Windows
Pre-requisite: FreeCAD >= v0.16+
Download the git repository as a ZIP on to you local drive.
Refer to the corresponding tutorial on the FreeCAD wiki.
Unzip the downloaded repository within your Mod/ folder. A A2plus-folder should appear within you Mod/ folder.
If you a familiar with git you can git clone https://github.com/kbwbe/A2plus.git directly in to your Mod/ folder.
MacOS
(borrowed from Hamish2014)
- download the git repository as ZIP
- assuming FreeCAD is installed in «/Applications/FreeCAD/v 0.17», go to «/Applications/FreeCAD/v 0.17» in the Browser, and select FreeCAD.app
- right-click and select «Show Package Contents», a new window will appear with a folder named «Contents»
- single-click on the folder «Contents» and select the folder «Mod»
- in the folder «Mod» create a new folder named «A2plus»
- unzip downloaded repository in the folder «Contents/Mod/A2plus»
Features of the A2plus workbench
(work in progress)
Current Features like shown in the workbench’s toolbar:
- Add a part from external file (Shift+A) — Begin and continue here with importing existing part or subassembly .fcstd files to the assembly
- Update parts imported into the assembly — Use this to refresh changed parts already assembled
- Move part — Just move selected part
- Duplicate part — Adds one or more previously imported part(s) into assembly (hold Shift for multiple times)
- Convert part to A2plus form — Converts an imported part to internal representation without external dependency
- Edit — Opens the selected assembly part or subassembly in a new tab, to be changed, don’t forget to save and refresh the assembly
- Constraint Tools — Open a dialog to define constraints. Find all constraints in the opening dialog! This is the access to the A2plus constraining possibilities. Depending on the context, like selected faces, edges, vertices, one or more of the following list of constraints may get selectable: (After selecting the constraint, a ‘Constraint Properties’ dialog will appear to appropriately ask you for details, like offsets, angles and directions.) Below, first selection is meant for the first part of the constraint (parent) and the second for the second part (child). Choices lists, what you can expect to edit in «Constraint Properties» and with the «Edit selected constraint» button later on.
- Add a point-to-point identity — (1. one point vertex, 2. second point vertex)
- Add a point-on-line match — (1. one point vertex, 2. a line vertex/ edge)
- Add a point-on-plane match — (1. point vertex or center of a circle, 2. a plane) Choices: offset
- Add a sphere-to-sphere constraint — (1. first spherical surface or vertex, 2. second spherical surface or vertex)
- Add a circular-to-circular-edge match — (1. parent’s circular edge, 2. child’s circular edge) Choices: direction (aligned, opposed) +Flip, offset
- Add an axis-to-axis identity — (1. first cylinder face/linear edge, 2. second cylinder face/linear edge) Choices: direction (aligned, opposed) + Flip, lockRotation
- Add an axis-to-axis parallelism (1. first cylinder face/linear edge, 2. second cylinder face/linear edge) Selected parts will get rotated, but the axis not coincident.
- Add an axis-to-plane parallelism (1. first cylinder axis or linear edge, 2. second part’s plane face)
- Add a plane-to-plane parallelism — (1. parent’s plane, 2. child’s plane) Selected planes would be parallel but not coincident. Choices: direction (aligned, opposed) +Flip
- Add a plane-to-plane coincident match — (1. parent’s plane, 2. child’s plane) Selected planes would be parallel and you have more choices: Choices: direction (aligned, opposed) +Flip, offset
- Add an angle-between-planes — Selected planes make the latter object to be rotated by your edited ‘angle’ value. Keep the angle between aprox. 0.1° and 179.9° and use planesParallel for 0° and 180°.
Usage hints for the A2plus workbench
(work in progress)
Have a look on the Feature list above, and. Please, follow the Tooltips in the workbench’s toolbar and in the «Constraint Tools» toolbox. They describe what to do in which order.
First steps to create an A2plus assembly:
- Create a new empty document.
- Save the active document with a name. If not, you’d be asked for by A2plus.
- Add a part or shapes from external file. The first imported part or shape gets set as fixed position (by default). You can change it later.
- Add a second part or shapes from external file.
- Select some faces or edges or vertices, you want to constrain, and push the «Constraint Tools» button, the Tools menu pops-up, alternatively you can push the button first and select the constraint’s context afterwards
- Related to the context you’d be asked in the «Constraints Properties» (sub-menu), to edit the appropriate parameters, to delete the constraint, to solve and or accept it.
- You can edit once-set «Constraints Properties» at any time later via the «Edit selected constraint» button.
Editing a subassembly:
- As you can also load a subassembly as a .fcstd file, you can also open it via the A2plus edit command, to edit it. Please just make sure for higher assembly stages, to reload the changes file(s).
Exploring the A2plus workbench
We’ve already talked about the need for a default assembly workbench in FreeCAD and reviewed Assembly 2. Now let’s get into the nitty-gritty of the A2plus workbench.
History
A FreeCAD user kbwbe started working on this project in 2018 following experiments with a new solver developed on top of the pre-existing Assembly 2 workbench:
I developed a small prototype of yet another solver. It is in a very early state now and is only capable of handling plane/circularedge/axis-constraints. But it can easily be extended. It consists only of one file, which is attached. The base concept is inspired by physics. [. ] It is just a prototype and many things are still missing. But the idea seems to work. I am working with a refurbished assembly2-workbench. I like the base concepts of it very much and did some bigger projects with it.
Having received initial feedback, kbwbe created a public repository on GitHub and continued hacking on the new workbench publicly.
Despite an activity plunge during the pandemic, A2plus is still being actively developed and receives new features and bug fixes.
Workflow and ease of use
A2plus follows the same general idea as its predecessor: create parts as separate files, align them with constraints, solve. Just like Assembly 2, this workbench supports sub-assemblies. There are some differences though. The one that stands out immediately is that, rather than creating one constraint object in the project tree, A2plus creates references to the same constraint in both involved parts.
Another difference is that a part in A2plus is a special type of an object. So it’s possible to create a new part from within the workbench and fill it with objects e.g. in the Part Design workbench. But the part will have to be manually converted to an A2plus part to become usable in the workbench. The caveat here is that even then such a part will not be added to the BOM: only the parts imported from external files will be displayed there. Overall, the top-down design approach is not favored by A2plus, as earlier noted by kbwbe in the FreeCAD forum:
Leaving PartDesign bodies within the assembly is not the intended workflow. Best way is to import everything. Converting is also not the preferred way. Even all parametrics of the parts get lost.
Unlike Assembly 2, the A2plus workbench can also load user-selected objects from another FreeCAD project. In this case, the workbench will reference the object from the file, so FreeCAD will pick any changes made to the original project when you click the Update button.
In terms of general user experience, A2plus is a major improvement over Assembly 2. Here are some examples of user-visible changes:
- When features (points, planes etc.) of multiple parts are selected, the workbench automatically makes available only the constraints that can be used with these features. This removes a lot of guesswork for new users.
- Imported parts can easily be opened for editing as separate documents. All edited parts then can be updated with a single click.
- When cleaning up an assembly, it’s possible to easily delete all constraints associated with a part.
Features
The workbench has a respectable set of constraints: Point-to-Point, Point-on-Line, Point-on-Plane, Sphere-to-Sphere, Circular-Edge, Axis-to-Axis, Axis-to-Plane, Axis-Plane-Normal, Angular Axis-to-Plane, Planes-Parallelism, Planes-Coincident, Angled-Planes, Center-of-Mass. This covers a variety of use cases.
A2plus comes with an autosolver. The way it works, however, is somewhat unreliable. Case in point: select two planes, create a Plane-Coincident constraint, solve, accept. Then select the constraint and change its Offset parameter in the Combo View. The autosolver will not update the position of the object that has the first plane, you will have to click the Solve button for this change to take effect.
There’s a number of convenience features specific to A2plus (as compared to Assembly 2) such as placing labels on parts in the viewport for easier navigation or making parts’ fills transparent. The behavior of A2plus is configurable. Settings are available in the Preferences dialog:
Some features of the original Assembly 2 workbench are unavailable. Notably, the animation of the assembly for collision analysis is missing.
The A2plus workbench has a good reference guide on FreeCAD’s wiki but lacks official tutorials that explain the workflow. The community, however, stepped up and provided a sufficient number of YouTube tutorials on using A2plus for a variety of use cases: mechanical design, woodworking, etc.
Update 2023-03-26: There is at least one documented case where the precision of the A2plus solver was not sufficient to get the job done. The workbench developer explained this by having to find a compromise between speed (responsiveness of the WB) and accuracy due to limited calculation power available to a solver written in Python. 1
Consistency
A2plus does a few things differently from many other workbenches. The most user-visible difference is how constraint settings are displayed. When a new constraint is being added, FreeCAD displays a floating dialog:
Double-clicking the constraint in the project tree reopens this floating dialog. However, the very same information is displayed in the Combo View. So there’s two competing approaches to editing settings of a constraint.
Similarly, the first button in the Constraint toolbar opens another floating window that duplicates the list of constraints that is already available in that toolbar. This is not a common (although fairly optional-to-use) UI solution for FreeCAD.
As already noted, some objects require a conversion to an A2plus part, like the basic 3D objects created in the Part workbench. At the same time, this assembly workbench has no problem working with parts created in e.g. SheetMetal WB.
One important caveat of A2plus is that it doesn’t use the standard App::Link machinery to reference objects in other documents. Parts added to the document this way cannot be used in an assembly.
Some actions, like adding a part from an external file are not correctly added to the undo buffer so they cannot be reverted in the normal way.
Stability
As of publishing this overview, there are no reported crashers that aren’t fixed. There haven’t even been many before: the issue tracker only lists 3 bugs in A2plus that ever crashed FreeCAD, and git log likewise lists only a few fixes for crashes. However, we were able to crash the program by pressing Ctrl+Z to undo while moving a part under constraints.
The main developer typically responds to bug reports within the first few days. There’s a small number of bug reports with mild severity from 2019 where either no detailed information was provided by the reporter, or the developer couldn’t replicate the issue, or the report slipped through developer’s fingers. The workbench occasionally exhibits inconsistent or glitchy behavior like failing to delete a conflicting constraint. Other than that, nothing particularly bad stands out.
Performance
Assemblies are inherently complex beasts. It takes a substantial amount of talent, time, and effort to make a fast solver — a combination that not every volunteer has at their disposal. We’ve definitely seen complaints like this one about performance issues in the A2plus workbench even with fairly simple assemblies. However, in our limited testing, we were unable to come up with conclusive evidence for assemblies “blowing up” after changes. Simple assemblies (up to 40 parts) did not represent a major issue for A2plus. But there was noticeable rendering slowdown when moving parts under constraints.
At least one of the reasons for possible performance issues according to the main A2plus developer is the inefficient use of memory. This is how he explains it and goes on to give very useful hints about ways a programmer could deal with Python limitations:
Memory management using Python as a programming language is not that easy and some memory leaks cannot be completely avoided. Python is keeping a lot of internal lists, which are immortal and their memory is not given back to the system during the lifetime of the program. So it is not possible to delete no more used objects from memory directly, as it is possible with «C/C++». Every object, which is not used anymore, is deleted (or sometimes it is not for various reasons), from Python’s garbage collector. The code can only be optimized in order to reduce memory consumption. (using slots, avoiding string concatenation etc). I will have a look at this next time, where it is possible. But this is a bunch of work and will need a lot of time. And it will never be perfect.
Development
The main developer responds to proposed contributions rather fast: many PRs by drive-by contributors are merged within days of submission, sometimes on the same day. Just 1 out of 452 pull requests is sitting unapplied on GitHub.
In the fall of 2022, a new regular contributor joined the project. His activity now rivals that of kbwbe.
Unlike with the original Assembly 2 workbench that had zero releases, the main developer of A2plus regularly tagged releases until November 2022 (a total of 101 tags so far). Releases mostly represent one or two bug fixes.
Community
A2plus has one of the longest dedicated threads in the forum. However, since 2021, the activity of discussions has noticeably decreased: just 16 messages in the main thread in 2021, and 12 messages in 2022. The reason for this is unclear but might indicate that the interest towards the workbench has been decreasing as users move to other options.
Summary
A2plus represents a major improvement over the original Assembly 2 workbench in terms of both workflow, features, and usability. It has more types of constraints, more convenience features, and better supports single-user workflows. It’s also sufficiently stable and has two developers who actively merge patches from other contributors. At the same time, the workbench has some unconventional UX/UI solutions and is reportedly prone to performance issues that are not easily resolved.
Next up
In the next installment, we’ll take a close look at Assembly 3, a workbench that actively uses a solver from another free/libre CAD program, SolveSpace.
I’m Brad Collette, longtime FreeCAD contributor and CTO of Ondsel, a new open core company built on top of FreeCAD. Ondsel helps you share useful aspects of your solid models without giving away your designs. We’re working on improving collaboration and feature accessibility and integrating with your existing tools. You can read more about my vision for FreeCAD and Ondsel here
- This issue was raised in community discussion↩