Skip to content

Commit

Permalink
update 2024-01-15
Browse files Browse the repository at this point in the history
  • Loading branch information
yorikvanhavre committed Jan 15, 2024
1 parent 83778bd commit 3759f5f
Show file tree
Hide file tree
Showing 6,775 changed files with 179,954 additions and 88,298 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
14 changes: 7 additions & 7 deletions wiki/3Dconnexion_input_devices.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ sudo yum install spacenavd
apt-get install spacenavd libspnav-dev
```

: spacenav needs these permissions:
Spacenav needs these permissions:



Expand All @@ -47,7 +47,7 @@ apt-get install spacenavd libspnav-dev



: Restart spnavd and FreeCAD
Restart spnavd and FreeCAD



Expand Down Expand Up @@ -154,7 +154,7 @@ This is recommended if your distribution might provide an outdated version.

```

- \... then you need to install libgtkmm-2.4-dev. Under Ubuntu, this is done like this:
- \... then you need to install **libgtkmm-2.4-dev**. Under Ubuntu, this is done like this:



Expand All @@ -178,7 +178,7 @@ This is recommended if your distribution might provide an outdated version.

- Look in the directory libspnav-x.x.x/examples/. If you want to test your device, compile and run either one of the two examples.

- Follow the same pattern to compile and install spnavcfg. Make sure to run spnavcfg as root, or no settings will be saved!
- Follow the same pattern to compile and install **spnavcfg**. Make sure to run spnavcfg as root, or no settings will be saved!

#### Starting spacenavd as a systemd service at boot

Expand All @@ -193,7 +193,7 @@ This is only necessary for the installation from source.

#### Restarting spacenavd

If sometimes navigator stops working, it is good to restart driver. To restart it, go to Terminal and execute:
If sometimes SpaceNavigator stops working, it is good to restart driver. To restart it, go to Terminal and execute:


```python
Expand Down Expand Up @@ -246,7 +246,7 @@ ref: <https://freecadweb.org/tracker/view.php?id=1893>

## Setting up FreeCAD

3D mouse support was made with spnav project on Linux, and on a very low level on Windows. This means there was no support for any settings for a device, since on Linux there is no good support for this, and on Windows it is overridden. This is why two additional pages were added to \"Customize\" dialog.
3D mouse support was made with *spnav project* on Linux, and on a very low level on Windows. This means there was no support for any settings for a device, since on Linux there is no good support for this, and on Windows it is overridden. This is why two additional pages were added to \"Customize\" dialog.

<img alt="" src=images/Spaceball_Motion.png style="width:450px;"> <img alt="" src=images/Spaceball_Buttons.png style="width:450px;">

Expand Down Expand Up @@ -288,7 +288,7 @@ If none of them appears then your FreeCAD build doesn\'t link to the spacenav li

## Related

- Forum thread [spacenav on windows](https://forum.freecadweb.org/viewtopic.php?f=3&t=51023)
- Forum thread [spacenav on Windows](https://forum.freecadweb.org/viewtopic.php?f=3&t=51023)
- Forum thread [Space navigator axis confusion](https://forum.freecadweb.org/viewtopic.php?f=8&t=57188)


Expand Down
20 changes: 10 additions & 10 deletions wiki/ANSI_templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,51 +6,51 @@ This page lists the templates according to American National Standards Institute

### ANSI A

#### ANSI_A\_Landscape
#### ANSI_A_Landscape

<img alt="" src=images/ANSI_A_Landscape.svg style="width:800px;">

#### ANSI_A\_Portrait
#### ANSI_A_Portrait

<img alt="" src=images/ANSI_A_Portrait.svg style="width:800px;">

### ANSI B

#### ANSI_B\_Landscape
#### ANSI_B_Landscape

<img alt="" src=images/ANSI_B_Landscape.svg style="width:800px;">

#### ANSI_B\_Portrait
#### ANSI_B_Portrait

<img alt="" src=images/ANSI_B_Portrait.svg style="width:800px;">

### ANSI C

#### ANSI_C\_Landscape
#### ANSI_C_Landscape

<img alt="" src=images/ANSI_C_Landscape.svg style="width:800px;">

#### ANSI_C\_Portrait
#### ANSI_C_Portrait

<img alt="" src=images/ANSI_C_Portrait.svg style="width:800px;">

### ANSI D

#### ANSI_D\_Landscape
#### ANSI_D_Landscape

<img alt="" src=images/ANSI_D_Landscape.svg style="width:800px;">

#### ANSI_D\_Portrait
#### ANSI_D_Portrait

<img alt="" src=images/ANSI_D_Portrait.svg style="width:800px;">

### ANSI E

#### ANSI_E\_Landscape
#### ANSI_E_Landscape

<img alt="" src=images/ANSI_E_Landscape.svg style="width:800px;">

#### ANSI_E\_Portrait
#### ANSI_E_Portrait

<img alt="" src=images/ANSI_E_Portrait.svg style="width:800px;">

Expand Down
14 changes: 9 additions & 5 deletions wiki/About_FreeCAD.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# <img alt="" src=images/Freecad_default.jpg style="width:1024px;"> About FreeCAD

**FreeCAD** is a general purpose parametric 3D [**CAD**](http://en.wikipedia.org/wiki/CAD) modeler, whose development is completely [open source](http://en.wikipedia.org/wiki/Open_source) ([LGPL License](https://www.gnu.org/licenses/lgpl-3.0.en.html)). FreeCAD is aimed directly at [mechanical engineering](http://en.wikipedia.org/wiki/Mechanical_engineering) and [product design](http://en.wikipedia.org/wiki/Product_design) but also fits in a wider range of uses around engineering, such as architecture, finite element analysis, 3D printing, and other tasks.
**FreeCAD** is a general purpose [open source](http://en.wikipedia.org/wiki/Open_source) parametric 3D [**CAD**](http://en.wikipedia.org/wiki/CAD) modeler licensed under the [LGPL License](https://www.gnu.org/licenses/lgpl-3.0.en.html). FreeCAD is aimed directly at [mechanical engineering](http://en.wikipedia.org/wiki/Mechanical_engineering) and [product design](http://en.wikipedia.org/wiki/Product_design) but, being very generic, also fits in a wider range of uses around engineering, such as architecture, finite element analysis, 3D printing, and other tasks.

FreeCAD features tools similar to [CATIA](https://en.wikipedia.org/wiki/CATIA), [SolidWorks](http://en.wikipedia.org/wiki/Solidworks) or [Solid Edge](http://en.wikipedia.org/wiki/Solid_Edge), and therefore also falls into the category of [**CAD**](http://en.wikipedia.org/wiki/CAD), [**PLM**](http://en.wikipedia.org/wiki/Product_Lifecycle_Management), [**CAx**](http://en.wikipedia.org/wiki/CAx) and [**CAE**](http://en.wikipedia.org/wiki/Computer-aided_engineering). It is a [feature based parametric modeler](http://en.wikipedia.org/wiki/Parametric_feature_based_modeler) with a modular software architecture which makes it possible to provide additional functionality without modifying the core system.
FreeCAD features tools similar to [CATIA](https://en.wikipedia.org/wiki/CATIA), [SolidWorks](http://en.wikipedia.org/wiki/Solidworks), [Solid Edge](http://en.wikipedia.org/wiki/Solid_Edge) or [Revit](https://en.wikipedia.org/wiki/Autodesk_Revit), and therefore also falls into the category of [**CAD**](http://en.wikipedia.org/wiki/CAD), [**PLM**](http://en.wikipedia.org/wiki/Product_Lifecycle_Management), [**CAx**](http://en.wikipedia.org/wiki/CAx), [**CAE**](http://en.wikipedia.org/wiki/Computer-aided_engineering) and [**BIM**](https://en.wikipedia.org/wiki/Building_information_modeling). It is a [feature based parametric modeler](http://en.wikipedia.org/wiki/Parametric_feature_based_modeler) with a modular software architecture making it possible to provide additional functionality without modifying the core system.

As with many CAD modelers it has many 2D components in order to sketch planar shapes or create production drawings. However, direct 2D drawing (like [Inkscape](https://inkscape.org/) or [AutoCAD LT](http://en.wikipedia.org/wiki/AutoCAD#AutoCAD_LT)) is not the focus, neither are animation or mesh editing (like [Blender](https://www.blender.org/), [Maya](http://en.wikipedia.org/wiki/Maya_(software)), [3ds Max](http://en.wikipedia.org/wiki/3ds_Max), or [Cinema 4D](http://en.wikipedia.org/wiki/CINEMA_4D)). Nevertheless, thanks to its wide adaptability, FreeCAD might become useful in a much broader area than its current focus.
As with other CAD modelers it has many 2D components in order to sketch planar shapes or create production drawings. However, direct 2D drawing (like [Inkscape](https://inkscape.org/) or [AutoCAD LT](http://en.wikipedia.org/wiki/AutoCAD#AutoCAD_LT)) is not the focus, neither are animation or mesh editing (like [Blender](https://www.blender.org/), [Maya](http://en.wikipedia.org/wiki/Maya_(software)), [3ds Max](http://en.wikipedia.org/wiki/3ds_Max), or [Cinema 4D](http://en.wikipedia.org/wiki/CINEMA_4D)). Nevertheless, thanks to its wide adaptability, FreeCAD is useful in a much broader area around its base feature set.

FreeCAD makes heavy use of open-source libraries that exist in the field of [scientific computing](http://en.wikipedia.org/wiki/Scientific_Computation). Among them are [Open Cascade Technology (OCCT)](http://OpenCascade.org), a powerful CAD kernel; [Coin3D](https://github.com/coin3d/coin/wiki), a toolkit for 3D graphics development compatible with [Open Inventor](http://en.wikipedia.org/wiki/Open_Inventor); [Qt](http://www.qt.io/), the world-famous user interface framework; and [Python](http://www.python.org), a modern scripting language. FreeCAD itself can also be used as a library by other programs.

Expand All @@ -14,9 +14,13 @@ For more information about FreeCAD\'s capabilities, take a look at the [feature

### About the FreeCAD project

The FreeCAD project was started as far back as 2001, as described in its [history](history.md) page.
The FreeCAD project was started as far back as 2001, as described on the [history](History.md) page.

FreeCAD is maintained and developed by a community of enthusiastic developers and users (see the [contributors](contributors.md) page). They work on FreeCAD voluntarily, in their free time. They cannot guarantee that FreeCAD contains everything you might wish, but they will do their best! The community gathers on the [FreeCAD forum](http://forum.freecadweb.org), where most of the ideas and decisions are discussed. Feel free to join us there!
FreeCAD is maintained and developed by a [community of enthusiastic developers and users](contributors.md) and is built through the patient work of hundreds of contributors, some regular, some occasional. Most work on FreeCAD as volunteers. The [FreeCAD forum](http://forum.freecad.org) is where most of the ideas and decisions are discussed, and the [GitHub repository](https://github.com/FreeCAD/FreeCAD) is where the code is being kept, shared, discussed and worked on. Anybody is [welcome to participate](Help_FreeCAD.md).

### About the FPA

The FreeCAD project is also supported by a non-profit organization, the [FreeCAD project association (FPA)](https://fpa.freecad.org). The FPA is an independent body created by some FreeCAD veterans in 2021 to collect [donations](donate.md) and other resources to support the project and its community, to help protect that community and allow it to continue developing in the best conditions, and to represent the project against other bodies such as companies and institutions.



Expand Down
6 changes: 3 additions & 3 deletions wiki/Add_Button_to_FEM_Toolbar_Tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

## Introduction

The FEM workbench has toolbars and menus. This tutorial shows how to add a test button to a toolbar. It also shows how to add a menuitem to a menu.
The FEM workbench has toolbars and menus. This tutorial shows how to add a test button to a toolbar. It also shows how to add a menu item to a menu.

The task can be split into four parts:

Expand All @@ -27,13 +27,13 @@ The task can be split into four parts:

## Create a new icon file

For the button we need an icon file. You can use any of your favorite tools to create it, but it must be in the SVG format. Here we will use the **FEM_testButton.svg** file as an example.
For the button, we need an icon file. You can use any of your favorite tools to create it, but it must be in the SVG format. Here we will use the **FEM_testButton.svg** file as an example.

It must be placed in: `src/Mod/Fem/Gui/Resources/icons/`.

## Register the new icon file

The new SVG icon file has to be registered for the GUI-button by inserting it in `src/Mod/Fem/Gui/Resources/Fem.qrc`:
The new SVG icon file has to be registered for the GUI button by inserting it in `src/Mod/Fem/Gui/Resources/Fem.qrc`:

{{code|code=
<file>icons/FEM_testButton.svg</file>
Expand Down
24 changes: 12 additions & 12 deletions wiki/Add_FEM_Constraint_Tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@

## Introduction

In this tutorial we are going to add the flow velocity constraint to FreeCAD and implement support for the Elmer solver. Please make sure you have read and understood [Extend FEM Module](Extend_FEM_Module.md) before reading this tutorial.
In this tutorial, we are going to add the flow velocity constraint to FreeCAD and implement support for the Elmer solver. Please make sure you have read and understood [Extend FEM Module](Extend_FEM_Module.md) before reading this tutorial.

This tutorial only covers how to implement constraints in python. In contrast to solver and equations constraints follow the classic FEM module structure. That is, all modules of a constraint have their place in either the {{Incode|femobjects}} or {{Incode|femviewprovider}} package.
This tutorial only covers how to implement constraints in Python. In contrast to solver and equations, constraints follow the classic FEM module structure. That is, all modules of a constraint have their place in either the {{Incode|femobjects}} or {{Incode|femviewprovider}} package.

## Summary

1. **Create document object:** The document object that resides inside the analysis and though which the constraint can be parametrized and attached to boundaries.
1. **Create document object:** The document object that resides inside the analysis and through which the constraint can be parametrized and attached to boundaries.
2. **Create GUI command:** Add a command to the FEM workbench that adds a flow constraint to the active analysis.
3. **Create a task panel:** The task panel is necessary to allow the user to set the boundaries at which he wants to set the velocity constraint. It also makes entering the parameters a little more user friendly.
4. **Extend elmers writer:** Add support for the new constraint to Elmer by extending its sif file exporter.
3. **Create a task panel:** The task panel is necessary to allow the user to set the boundaries at which he wants to set the velocity constraint. It also makes entering the parameters a little more user-friendly.
4. **Extend Elmer\'s writer:** Add support for the new constraint to Elmer by extending its sif file exporter.

## Create document object

Expand Down Expand Up @@ -102,9 +102,9 @@ class ViewProxy(FemConstraint.ViewProxy):
return ":/icons/fem-constraint-flow-velocity.svg"
```

Add the two new modules to the build system like described in [Extend FEM Module](https://www.freecadweb.org/wiki/Extend_FEM_Module). Locate the correct list by searching for constraint modules.
Add the two new modules to the build system as described in [Extend FEM Module](https://www.freecadweb.org/wiki/Extend_FEM_Module). Locate the correct list by searching for constraint modules.

As all objects of the FEM workbench the velocity constraint must be registered in {{Incode|ObjectsFem.py}}. The following method adds a velocity constraint to the active document. This method will be used by the GUI command to add the constraint. It must be inserted somewhere in {{Incode|ObjectsFem.py}}.
As all objects of the FEM workbench, the velocity constraint must be registered in {{Incode|ObjectsFem.py}}. The following method adds a velocity constraint to the active document. This method will be used by the GUI command to add the constraint. It must be inserted somewhere in {{Incode|ObjectsFem.py}}.


```python
Expand Down Expand Up @@ -175,18 +175,18 @@ Put the command into Gui/Workbench.cpp to add it to the toolbar and menu. Search

## Create a task panel

In this step we are going to modify the following file:
In this step, we are going to modify the following file:

- **src/Mod/Fem/femviewprovider/view_constraint_flowvelocity.py**




In FreeCAD constraint objects benefit greatly from task panels. Task panels can make use of more powerful input widgets which expose the unit of entered values directely to the user. The velocity constraint even requires the use of a task panel since a task panel is the only way of specifieing the face(s) on which the constraint shall be applied.
In FreeCAD, constraint objects benefit greatly from task panels. Task panels can make use of more powerful input widgets that expose the unit of entered values directly to the user. The velocity constraint even requires the use of a task panel since a task panel is the only way of specifying the face(s) on which the constraint shall be applied.

The location of the module in which task panels are implemented is not strictely defined. For the velocity constraint we are just going to put the task panel in the same module we put the view proxy. The task panel is quite complicated. It makes use of the FemSolectionWidgets.BoundarySelector(). Thats a qt widget which allows the user to select the boundaries on which the constraint shall be applied. In addition to this widget it generates another one by loading a ui file specifically created for the velocity constraint. Via this widget the velocity vector can be specified.
The location of the module in which task panels are implemented is not strictly defined. For the velocity constraint, we are just going to put the task panel in the same module where we put the view proxy. The task panel is quite complicated. It makes use of the FemSolectionWidgets.BoundarySelector(). That\'s a qt widget that allows the user to select the boundaries on which the constraint shall be applied. In addition to this widget, it generates another one by loading a UI file specifically created for the velocity constraint. Via this widget, the velocity vector can be specified.

Most of the time is should be sufficient to just copy this class, use a suitable ui file (instead of TaskPanelFemFlowVelocity.ui) and adjust \_initParamWidget() as well as \_applyWidgetChanges(). If the new constraint requires bodies as references instead of boundaries just replace the BoundarySelector object with the SolidSelector.
Most of the time it should be sufficient to just copy this class, use a suitable UI file (instead of TaskPanelFemFlowVelocity.ui) and adjust \_initParamWidget() as well as \_applyWidgetChanges(). If the new constraint requires bodies as references instead of boundaries just replace the BoundarySelector object with the SolidSelector.


```python
Expand Down Expand Up @@ -274,7 +274,7 @@ class _TaskPanel(object):
self._obj.NormalToBoundary = self._paramWidget.normalBox.isChecked()
```

The view proxy must be extended to support the task panel we just implemented. The following extended view proxy opens the task panel when the user makes a double click on the constraint object in the tree view.
The view proxy must be extended to support the task panel we just implemented. The following extended view proxy opens the task panel when the user makes a double-click on the constraint object in the tree view.


```python
Expand Down
Loading

0 comments on commit 3759f5f

Please sign in to comment.