Arch Profile

Description
The Profile tool builds a parametric 2D profile object. This object can then be used as a base in different other tools that perform extrusions, such as Arch Frame, Arch CurtainWall or Part Extrude.

See the list of available presets.

The profile tool is also integrated to the Arch Structure tool, all preset profiles are also available there.

Usage

 * 1) Press the  button
 * 2) Select a preset in the tool task panel
 * 3) Click a point in the 3D view to place the profile

Data

 * : The overall height of the profile
 * : The overall width of the profile
 * : The diameter of the profile (circular profiles only)
 * : The thickness of the tube wall (circular and rectangular hollow profiles only)
 * : The thickness of the profile web (H and I profiles only)
 * : The thickness of the profile flange (H and I profiles only)

Adding custom profiles
An additional csv file can be created by the user, containing custom profile definitions. It must be named profiles.csv, and placed in $FREECAD_USER_DIR/Mod/Arch. Use your FreeCAD user folder in place of $FREECAD_USER_DIR. Your FreeCAD user folder location can be obtained by typing in the FreeCAD Python console:

FreeCAD.getUserAppDataDir

The contents of your custom profiles.csv file must be modeled upon the same rules as the built-in profiles.csv file:

The CSV file must contain one line per available profile, formatted as follows:


 * For C profiles: Category, Name, Class, Diameter, Thickness
 * For H and U profiles: Category, Name, Class, Width, Height, Web thickness, Flange thickness
 * For R profiles: Category, Name, Class, Width, Height
 * For RH profiles: Category, Name, Class, Width, Height, Thickness

All measures must be in millimeters. Possible profile classes are:


 * C: Circular tube
 * H: H- or I-profile
 * R: Rectangular
 * RH: Rectangular hollow
 * U: U-profile

Additional profile types can be created, but a corresponding class must be created in ArchProfile.py

Scripting
The Profile tool can be used in macros and from the Python console by using the following function:

Where profile_list contains the different elements of a list in the csv file.

Example:

Where the first element of the list is an order number that is not used yet.