Skip to main content
Advertisement
Browse Subject Areas
?

Click through the PLOS taxonomy to find articles in your field.

For more information about PLOS Subject Areas, click here.

< Back to Article

Table 1.

FOSS CAD tools with scripting capabilities.

More »

Table 1 Expand

Fig 1.

Arrangement example of the configurable filter stage.

Printable parts are highlighted with colors: motor bracket (green), filter holder (yellow), belt tensioner (blue and orange).

More »

Fig 1 Expand

Fig 2.

Motor bracket.

(A) Drawing of the motor bracket. (B) Side view of the motor mount. The bracket and the stepper motor are partially transparent to show the internal parts.

More »

Fig 2 Expand

Fig 3.

Filter holder.

(A) Drawing showing the filter holder parts. (B) Exploded view of the filter holder assembly to a linear guide.

More »

Fig 3 Expand

Fig 4.

Belt tensioner.

(A) Belt tensioner side-front view. (B) Belt tensioner side-back view.

More »

Fig 4 Expand

Fig 5.

Exploded view of the belt tensioner.

The two printable parts are drawn in colors: tensioner holder (blue) and idler tensioner (orange).

More »

Fig 5 Expand

Fig 6.

Belt tensioner operation.

The leadscrew tightens or loosens the idler tensioner (orange). (A) Side view of the retracted belt tensioner. (B) Side view of the extended belt tensioner.

More »

Fig 6 Expand

Fig 7.

3D printing orientation of the four printable models to avoid supports.

More »

Fig 7 Expand

Fig 8.

Motor bracket main parameters.

More »

Fig 8 Expand

Fig 9.

Two brackets for different stepper motor sizes.

More »

Fig 9 Expand

Fig 10.

Main filter holder parameters.

More »

Fig 10 Expand

Fig 11.

Two filter holders for different filter sizes and linear guides.

More »

Fig 11 Expand

Fig 12.

Example of an idler pulley made out of a bearing and some washers.

More »

Fig 12 Expand

Fig 13.

Comparing two idler tensioners made out of different components.

The size of the idler tensioner is smaller when it contains an idler pulley using a M3 bolt (A), than when using a M4 bolt (B). For example, the space for the pulley or the tensioner width are smaller for case A than case B, as the figure shows that sep_m3 < sep_m4 and tens_w_m3 < tens_w_m4.

More »

Fig 13 Expand

Fig 14.

Idler tensioners with different stroke lengths.

More »

Fig 14 Expand

Fig 15.

Idler tensioners with different wall thickness.

More »

Fig 15 Expand

Fig 16.

Idler tensioners with different leadscrew diameters.

More »

Fig 16 Expand

Fig 17.

Tensioner holder dimensions depending on idler tensioner sizes.

More »

Fig 17 Expand

Fig 18.

Belt height parameter.

(A) Definition of the belt height. (B) Belt tensioners with different belt heights.

More »

Fig 18 Expand

Fig 19.

Belt tensioners with different base width.

More »

Fig 19 Expand

Fig 20.

Sample codes to model a rectangular cuboid.

Code (A) is modeled in OpenSCAD. Codes (B) and (C) are modeled using FreeCAD Python scripts. Code (D) is modeled using a Python script for FreeCAD CadQuery workbench.

More »

Fig 20 Expand

Fig 21.

OpenSCAD sample codes to show the effect of its functional programming paradigm.

(A) Assignment in line 1 has no effect since variables keep a constant value during their entire lifetime. (B) The code shows an invalid assignment since variables cannot change their values.

More »

Fig 21 Expand

Fig 22.

Sample codes to show the variable scope in OpenSCAD.

(A) Assignment in line 4 has no effect outside the if statement; therefore the sphere in line 7 will have a radius of 1. (B) This code produces the same result as in (A) even that the variable assignments are placed after the sphere function calls that use those variables.

More »

Fig 22 Expand

Fig 23.

Parametric design and variable scope in OpenSCAD.

Code (A) will not work because h has not been defined outside the if statement. Codes (B) and (C) will work.

More »

Fig 23 Expand

Fig 24.

Sample codes of dictionaries for defining component dimensions in Python.

(A) Dictionary DIN125_H defines the height (thickness) of some DIN 125 washers. Keys can be a float number, as in line 2. Line 6 shows how to obtain the height (0.5) of a DIN125 M2.5 washer from the dictionary. (B) Dictionaries can be multidimensional and can have strings as keys.

More »

Fig 24 Expand

Fig 25.

Source codes and their generated models.

(A) OpenSCAD can export to polygonal mesh models, but not export to parametric models. (B) FreeCAD can export to both polygonal mesh models and standard parametric models.

More »

Fig 25 Expand

Table 2.

Time to generate parametric models.

More »

Table 2 Expand

Table 3.

Selected parameter values to get different mesh resolutions.

More »

Table 3 Expand

Table 4.

Motor bracket: Number of vertices, edges and facets of the meshes and time to generate them.

More »

Table 4 Expand

Table 5.

Filter holder: Number of vertices, edges and facets of the meshes and time to generate them.

More »

Table 5 Expand

Table 6.

Idler tensioner: Number of vertices, edges and facets of the meshes and time to generate them.

More »

Table 6 Expand

Fig 26.

Mesh generation times in OpenSCAD an FreeCAD.

More »

Fig 26 Expand

Table 7.

General project metrics.

More »

Table 7 Expand

Table 8.

Tool characteristics summary.

The table is divided in the four topics: (1) geometric modeling kernel; (2) easy of use, (3) programming languages characteristics and (4) tool features.

More »

Table 8 Expand