https://wiki.freecad.org/api.php?action=feedcontributions&user=Dprojects&feedformat=atomFreeCAD Documentation - User contributions [en]2024-03-29T12:32:53ZUser contributionsMediaWiki 1.40.1https://wiki.freecad.org/index.php?title=Macros_recipes&diff=1227916Macros recipes2023-02-07T19:21:08Z<p>Dprojects: link changed because of caching problem</p>
<hr />
<div><languages/><br />
<br />
<translate><br />
<br />
<!--T:95--><br />
This page lists [[Macros|macros]] that can add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you have written a macro and want to include it in one of the categories on this page, then go to [[Macro_documentation|Macro documentation]] to learn more about properly documenting a macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg|32px]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:170--><br />
* {{MacroLink|Icon=Macro_Align_Face_Object_to_View.png|Macro_Align_Face_Object_to_View|Macro Align Face Object to View}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:171--><br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro_Align_View_to_Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:172--><br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro_Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard.<br />
<br />
<!--T:173--><br />
* {{MacroLink|Icon=FCCamera_00.png|Macro_FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
<br />
<!--T:174--><br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro_Mouse_Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
<br />
<!--T:175--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro_Rotate_View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
<br />
<!--T:176--><br />
* {{MacroLink|Icon=Text_console_python.png|Macro_Rotate_View_Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
<br />
<!--T:177--><br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro_Rotate_ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in View Axonometric.<br />
<br />
<!--T:178--><br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro Screen Wiki}}: This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions.<br />
<br />
<!--T:179--><br />
* {{MacroLink|Icon=Snip.png|Macro_Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
<br />
<!--T:180--><br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro_View_Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
<br />
<!--T:181--><br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro_Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg|32px]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:182--><br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro_Animated_Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
<br />
<!--T:183--><br />
* {{MacroLink|Icon=Animator.svg|Macro_Animator|Macro Animator}}: Animate your model by animating its properties with this feature Python object.<br />
<br />
<!--T:184--><br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro_Assemblage_Imprimante_3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
<br />
<!--T:185--><br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro_Assembly|Macro Assembly}}: Assembly animate.<br />
<br />
<!--T:186--><br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro_Constraint_Draft|Macro Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
<!--T:187--><br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro_crank_simul|Macro crank simul}}: Rotation rod and piston.<br />
<br />
<!--T:188--><br />
* {{MacroLink|Icon=Macro_hinge.png|Macro_hinge|Macro hinge}}: Open and close hinge.<br />
<br />
<!--T:189--><br />
* {{MacroLink|Icon=Macro_Spring.png|Macro_Spring|Macro Spring}}: Simulation of one spring.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg|32px]] Code and scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:190--><br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro_Build_Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
<br />
<!--T:191--><br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro_clone_explicit|Macro clone explicit}}: Creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
<br />
<!--T:192--><br />
* {{MacroLink|Icon=Editor_Assistant_Icon.svg|Macro_Editor_Assistant|Macro Editor Assistant}}: Extends the capabilities of FreeCAD's integrated Python editor.<br />
<br />
<!--T:193--><br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro_Global_Variable_Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
<br />
<!--T:194--><br />
* {{MacroLink|Icon=Macro_MessageBox.png|Macro_MessageBox|Macro MessageBox}}: Shows how to give information to the user through the GUI.<br />
<br />
<!--T:195--><br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro_Print_SceneGraph|Macro Print SceneGraph}}: Prints the SceneGraph.<br />
<br />
<!--T:196--><br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro_Python_Assistant_Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
<br />
</translate><br />
<!--THIS MACRO "Macro ZTest Over 128" SHOULD NOT BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro_ZTest_Over_128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
<translate><br />
<br />
<!--T:197--><br />
* {{MacroLink|Icon=MEPlan.png|Qt_Example|Qt Example}}: Example of using Qt commands, their connections, extraction and data assignment.<br />
<br />
<!--T:198--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: Inspection tool for FreeCAD macro development and project debug.<br />
<br />
<!--T:388--><br />
* {{MacroLink|Icon=TNP_solution.png|Macro_TNP_Solution|Macro TNP Solution}}: A basic example of how the Topological Naming Problem can be solved. The macro is intended for programmers only.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg|32px]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:199--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
<br />
<!--T:200--><br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draft command set in a small macro for the 2D sketch example: work with the DXF files.<br />
<br />
<!--T:201--><br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro_Creating_faces_from_a_DXF_file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
<br />
<!--T:202--><br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
<br />
<!--T:203--><br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro_DXF_to_Face_and_Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported DXF file to face and sketch.<br />
<br />
<!--T:204--><br />
* {{MacroLink|Icon=Macro_Dxf_To_Shape.png|Macro_Dxf_To_Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve.<br />
<br />
<!--T:205--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro_Extract_Wires_from_Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes.<br />
<br />
<!--T:206--><br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro_FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
<br />
<!--T:207--><br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro_FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
<br />
<!--T:208--><br />
* {{MacroLink|Icon=Macro_FCWire_To_Volume.png|Macro_FCWire_To_Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create".<br />
<br />
<!--T:209--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Iges_PyImporter|Macro Iges PyImporter}}: Imports an iges file with entity 128, for example an iges-file from FreeShip, into FreeCAD.<br />
<br />
<!--T:210--><br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro_MeshToPart|Macro MeshToPart}}: Converts selected meshes to parts.<br />
<br />
<!--T:211--><br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
<br />
<!--T:212--><br />
* {{MacroLink|Icon=PartToVRML.png|Macro_PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Draft.svg|32px]] Draft Workbench and 2D=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:213--><br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro_Align_Camera_to_Working_Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft_SelectPlane|Draft Working Plane]].<br />
<br />
<!--T:214--><br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro_Align_Working_Plane_to_Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft_SelectPlane|Draft Working Plane]] to the center of the current view.<br />
<br />
<!--T:215--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points|Macro Draft Circle 3 Points}}: Creates a circle from 3 selected points 2D orthogonal.<br />
<br />
<!--T:216--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points_3D|Macro Draft Circle 3 Points 3D}}: Creates a circle from 3 selected points in the space 3D.<br />
<br />
<!--T:389--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Draft_Circle_Tangent|Macro Draft Circle Tangent}}: Makes tangents to Draft circles.<br />
<br />
<!--T:217--><br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro_EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
<br />
<!--T:218--><br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro_Ellipse-Center+2Points|Macro Ellipse-Center+2Points}}: Makes an ellipse by selecting three points (in this order): center, major radius and minor radius.<br />
<br />
<!--T:219--><br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro_FCConvertLines|Macro FC Convert Lines}}: This macro convert the object line, wire in line Dash, DashDot, DashDotDot, ZigZag and Hand with the dimensions given.<br />
<br />
<!--T:220--><br />
* {{MacroLink|Icon=Macro_Make_Arc_3_Points.png|Macro_Make_Arc_3_Points|Macro Make Arc 3 Points}}: Creates a arc from 3 selected points.<br />
<br />
<!--T:221--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Make_Circle_3_Points|Macro Make Circle 3 Points}}: Creates a circle from 3 selected points, the points can be objects.<br />
<br />
<!--T:222--><br />
* {{MacroLink|Icon=Macro_Rectellipse.png|Macro_Rectellipse|Macro Rectellipse}}: Creates a parametric rectellipse.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg|32px]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:223--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro_Automatic_drawing|Macro Automatic drawing}}: Allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective.<br />
<br />
<!--T:224--><br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro_CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:225--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro_CartoucheFC_2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
<br />
<!--T:226--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro_CartoucheFC_Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|Misc templates Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:227--><br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro_Normal_Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_FEM.svg|32px]] Fem Workbench=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:228--><br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing.<br />
<br />
<!--T:229--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro_GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_Windows.svg|32px]] Gui=== <!--T:230--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:231--><br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro_GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
<br />
<!--T:232--><br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro_MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD.<br />
<br />
<!--T:233--><br />
* {{MacroLink|Macro_SplitPropEditor|Macro SplitPropEditor}}: Temporarily split the property editor from the combo view to a separated dock widget.<br />
<br />
<!--T:234--><br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro_Toggle_Panels_Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Linear.svg|32px]] Info and measurements=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:235--><br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro_BoundingBox_Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles.<br />
<br />
<!--T:236--><br />
* {{MacroLink|Icon=CenterFace.png|Macro_CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates.<br />
<br />
<!--T:237--><br />
* {{MacroLink|Icon=Macro_CenterOfMass.png|Macro_CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
<br />
<!--T:238--><br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro_cross_section|Macro cross section}}: Displays an interactively slidable cross-section.<br />
<br />
<!--T:239--><br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro_Delta_xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points.<br />
<br />
<!--T:240--><br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro_Dump_Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
<br />
<!--T:241--><br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro_FC_element_selector|Macro FC element selector}}: This macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed).<br />
<br />
<!--T:242--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units.<br />
<br />
<!--T:243--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo_Alternate_Linux|Macro FCInfo Alternate Linux}}: Same as above, but for Linux (obsolete).<br />
<br />
<!--T:244--><br />
* {{MacroLink|Icon=FCInfoToolBar.png|Macro_FCInfo_ToolBar|Macro FCInfo ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar.<br />
<br />
<!--T:245--><br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro_FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D.<br />
<br />
<!--T:246--><br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro_FCInfoToMouse|Macro FCInfoToMouse}}: Provides informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen.<br />
<br />
<!--T:247--><br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
<br />
<!--T:248--><br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro_HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
<br />
<!--T:249--><br />
* {{MacroLink|Icon=HighlightDifference.png|Macro_HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
<br />
<!--T:250--><br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro_MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
<br />
<!--T:251--><br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro_Mouse_over_cb|Macro Mouse over cb}}: This macro display all elements below cursor (elements covered by other elements will also be displayed).<br />
<br />
<!--T:252--><br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro_ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user.<br />
<br />
<!--T:381--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/showSpaceModel.py Macro showSpaceModel]: Allows to calculate occupied space in 3D by the full model.<br />
<br />
<!--T:382--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/showSpaceSelected.py Macro showSpaceSelected]: Allows to calculate occupied space in 3D by all selected elements.<br />
<br />
<!--T:253--><br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro_SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg|32px]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:254--><br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro_BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
<br />
<!--T:255--><br />
* {{MacroLink|Icon=FreeCAD_Doc.png|Macro_PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser.<br />
<br />
<!--T:256--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro_screw_maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg|32px]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:257--><br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro_3D_Parametric_Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
<br />
<!--T:258--><br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro_Draw_2D_Function|Macro Draw 2D Function}}: Draws a function described by an equation z=F(x).<br />
<br />
<!--T:259--><br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro_Draw_Parametric_2D_Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar.<br />
<br />
<!--T:260--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro_Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature Python update of Macro 3D Parametric Curve.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Primitives.svg|32px]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:261--><br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
<!--T:262--><br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro_Airfoil_Import_&_Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
<br />
<!--T:263--><br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro_Apothem_Based_Prism_GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
<br />
<!--T:385--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_BSurf_from_grid|Macro BSurf from grid}}: Makes a B-spline surface through a grid of points.<br />
<br />
<!--T:264--><br />
* {{MacroLink|Icon=Macro_Circle.png|Macro_Circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
<br />
<!--T:265--><br />
* {{MacroLink|Icon=Macro_CirclePlus.png|Macro_CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
<br />
<!--T:266--><br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro_Cut_Circle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
<br />
<!--T:267--><br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro_Cut_Line|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
<br />
<!--T:268--><br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro_FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
<br />
<!--T:269--><br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro FCCircularText}}: This macro create a text around a cylinder.<br />
<br />
<!--T:270--><br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro_FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
<br />
<!--T:271--><br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro_FCSpring_Helix_Variable|Macro FCSpring Helix Variable}}: This macro creates one spring truncate, the troncature is adjustable on the all coil to choice.<br />
<br />
<!--T:272--><br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring_On_Surface|Macro FCSpring On Surface}}: This macro creates one spring (helix) on the surface of the object (solide).<br />
<br />
<!--T:274--><br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro_Geodesic_Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell.<br />
<br />
<!--T:275--><br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro_Guitar_fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker.<br />
<br />
<!--T:276--><br />
* {{MacroLink|Icon=Macro_Guitar_Nut.png|Macro_Guitar_Nut|Macro Guitar Nut}}: Guitar Nut Maker.<br />
<br />
<!--T:361--><br />
* {{MacroLink|Icon=Macro_Half_turn_stairs.png|Macro_Half_turn_stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
<br />
<!--T:362--><br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro_Half-Hull_Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
<br />
<!--T:277--><br />
* {{MacroLink|Icon=Hilbert_curve_icon.png|Macro_HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
<br />
<!--T:278--><br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature Python Honeycomb object compatible in and out of PartDesign.<br />
<br />
<!--T:279--><br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch.<br />
<br />
<!--T:280--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro_Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature Python object containing the shape of the intersection.<br />
<br />
<!--T:281--><br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro_Line_Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y.<br />
<br />
<!--T:273--><br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro_Loft|Macro Loft}}: Create a loft with a list of wire (specially created for [[Macro_Texture|Macro Texture]]).<br />
<br />
<!--T:282--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro_Make_Cube|Macro Make Cube}}: Creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points.<br />
<br />
<!--T:391--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Place_Image|Macro Place Image}}: Creates an [[Image_CreateImagePlane|ImagePlane]] and aligns it to an existing [[Draft_Rectangle|Draft Rectangle]].<br />
<br />
<!--T:283--><br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro_Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
<br />
<!--T:284--><br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro_Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
<br />
<!--T:285--><br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro_Repro_Wire|Macro Repro Wire}}: This macro reproduces all element selected subobject wire or face.<br />
<br />
<!--T:286--><br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro_Site_From_Contours|Macro Site From Contours}}: Creates an Arch Site from a series of contour lines.<br />
<br />
<!--T:287--><br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro_Solid_Sweep|Macro Solid Sweep}}: Creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
<br />
<!--T:367--><br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro_Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
<br />
<!--T:288--><br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro_Triangle_AH|Macro Triangle AH}}: This macro creates a triangle by giving the head angle and the height of the triangle (the head of the triangle is positioned to the xyz coordinates 0.0).<br />
<br />
<!--T:289--><br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro_WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_TransformManip.svg|32px]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:290--><br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro_Align_Object_to_View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
<br />
<!--T:291--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro_ArrayCopy|Macro ArrayCopy}}: Copies the selected object several times, on an array grid.<br />
<br />
<!--T:292--><br />
* {{MacroLink|Icon=Bevel.svg|Macro_Bevel|Macro Bevel}}: Bevels selected vertices, creates parametric feature Python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
<br />
<!--T:293--><br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro_Center_Align_Objects_with_Faces_or_Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: Concentric constraint among non cylindrical parts; and Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
<br />
<!--T:294--><br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro_CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
<br />
<!--T:295--><br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro_Connect_And_Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
<br />
<!--T:296--><br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro_FlattenWire|Macro FlattenWire}}: Flattens draft wires that are not planar to their median Z coordinate.<br />
<br />
<!--T:297--><br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro_FlattenWire3Points|Macro FlattenWire3Points}}: Flattens draft wires that are not planar to a plane defined by 3 points.<br />
<br />
<!--T:298--><br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro_HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
<br />
<!--T:299--><br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro_Image_Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
<br />
<!--T:300--><br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro_JointWire|Macro JointWire}}: Allows to find and joint all non connected edge to the closest non connected one using a line.<br />
<br />
<!--T:383--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/x_magicAngle.py Macro magicAngle]: Small GUI for the Draft.rotate function. Allows to rotate panels and even other more complicated objects, like construction profiles.<br />
<br />
<!--T:301--><br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro_MatrixTransform|Macro MatrixTransform}}: Apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
<br />
<!--T:302--><br />
* {{MacroLink|Icon=Centericon.png|Macro_MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
<br />
<!--T:386--><br />
* {{MacroLink|Icon=multiCuts.png|Macro_MultiCuts|Macro MultiCuts}}: This macro improves boolean cut hierarchy by automatic labeling and using copies for cut.<br />
<br />
<!--T:303--><br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro_Overlap|Macro Overlap}}: Boolean operation. Similar to [[Part_Common|Part Common]], but with custom overlap count threshold (parametric).<br />
<br />
<!--T:304--><br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro_Parametric_Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
<br />
<!--T:305--><br />
* {{MacroLink|Icon=Macro_Perpendicular_To_Wire.png|Macro_Perpendicular_To_Wire|Macro Perpendicular To Wire}}: This macro positions an object perpendicularl to a selected wire.<br />
<br />
<!--T:306--><br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro_PlacementAbsolufy|Macro PlacementAbsolufy}}: Reset Part containers to global origin while maintaining objects absolute position.<br />
<br />
<!--T:307--><br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro_Remove_parametric_history|Macro Remove parametric history}}: Removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
<br />
<!--T:308--><br />
* {{MacroLink|Icon=Macro_Rotate_To_Point.png|Macro_Rotate_To_Point|Macro Rotate To Point}}: Macro to rotate an object around the center of its boundbox, its center of mass, or the last clicked point.<br />
<br />
<!--T:309--><br />
* {{MacroLink|Icon=Part_Section.png|Macro_Section|Macro Section}}: Alternative implementation of Part Section tool, more suitable for making sweep paths (parametric).<br />
<br />
<!--T:310--><br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro_StraightenObject|Macro StraightenObject}}: Re-align object(s) with FreeCAD coordinate system according reference face/edge.<br />
<br />
<!--T:311--><br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro_SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
<br />
<!--T:312--><br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Part_FaceColors.svg|32px]] Object visibility, view properties and textures === <!--T:313--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:314--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/colorManager.py colorManager]: Allows to set face colors for all objects from a spreadsheet. Also you can browse colors for a manually selected face or object and see the effect in the 3D model in real-time.<br />
<br />
<!--T:315--><br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
<!--T:316--><br />
* {{MacroLink|Icon=Macro_HiddenAlls.png|Macro_HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
<br />
<!--T:317--><br />
* {{MacroLink|Icon=FCTexture.png|Macro_Texture|Macro Texture}}: Create a project from a bmp image to create a texture easily.<br />
<br />
<!--T:318--><br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro_Texture_Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
<br />
<!--T:319--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro_Toggle_Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object.<br />
<br />
<!--T:320--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro_Toggle_Drawstyle_Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same as Macro Toggle Drawstyle above but optimized for all languages).<br />
<br />
<!--T:321--><br />
* {{MacroLink|Icon=Macro_SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
<br />
<!--T:322--><br />
* {{MacroLink|Icon=Macro_SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:323--><br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:324--><br />
* {{MacroLink|Icon=Macro_VisibleAlls.png|Macro_VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
<br />
<!--T:325--><br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro Visibility Manager}}: Manage visibility of document objects by type or individually.<br />
<br />
<!--T:326--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/setTextures setTextures]: Allows to permanently store the URL of textures in a FreeCAD project and load stored textures.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg|32px]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro_PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg|32px]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:327--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro_3d_Printer_Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
<br />
<!--T:328--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slicer by changing the SLICERAPP variable in the source code.<br />
<br />
<!--T:390--><br />
* {{MacroLink|Icon=Macro_3D_Printer_Workflow.png|Macro_3D_Printer_Workflow|Macro 3D Printer Workflow}}: Macro that creates an stl file with perfect rounding, i.e. without visible facets, from selected objects. It also allows to launch programs of your choice. For example to automate the FreeCAD -> Slicer -> printing workflow.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg|32px]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro_FreeCAD_to_Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea.<br />
<br />
<!--T:387--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Z_Height_Map|Macro Z Height Map}}: Makes a grayscale heightmap in Z.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg|32px]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:329--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro_Alias_Manager|Macro Alias Manager}}: Helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
<br />
<!--T:330--><br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro_EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
<br />
<!--T:331--><br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro_FCSpreadSheet_Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
<br />
<!--T:332--><br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro_SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
<br />
<!--T:333--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
<br />
<!--T:334--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/sheet2export sheet2export]: Allows to export FreeCAD spreadsheet to file formats (.md, .html, .csv, .json).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg|32px]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:335--><br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro_Arch_Axis_System_Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a set of parameters.<br />
<br />
<!--T:336--><br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro_Duplicate_Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate, select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
<br />
<!--T:337--><br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro_Easy_cutouts_for_Enclosure_Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way.<br />
<br />
<!--T:338--><br />
* {{MacroLink|Icon=Macro_ExpandTreeItem.png|Macro_ExpandTreeItem|Macro ExpandTreeItem}}: This macro expand selected items in the tree view. If not selection all item are expand/collapse.<br />
<br />
<!--T:339--><br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro_findConfigFiles|Macro findConfigFiles}}: Finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
<br />
<!--T:340--><br />
* {{MacroLink|Icon=Force_Recompute.png|Macro_ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model.<br />
<br />
<!--T:341--><br />
* {{MacroLink|Icon=Macro_If_Selected_Stay_If_Not_Then_Delete.png|Macro_If_Selected_Stay_If_Not_Then_Delete|Macro If Selected Stay If Not Then Delete}}: All object not selected are deleted!<br />
<br />
<!--T:342--><br />
* {{MacroLink|Macro_ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views.<br />
<br />
<!--T:343--><br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro_merge_duplicate_materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
<br />
<!--T:384--><br />
* {{MacroLink|Icon=Pcbway.png|Macro_PCBWay|Macro PCBWay}}: Sends a selected object to [https://pcbway.com PCBWay] for manufacturing through CNC milling, laser cutting or 3D printing.<br />
<br />
<!--T:344--><br />
* {{MacroLink|Icon=Pinger_Icon.svg|Macro_Pinger|Macro Pinger}}: Ping users on the forum with ease.<br />
<br />
<!--T:345--><br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro_Recompute_Profiler|Macro Recompute Profiler}}: Measures time it takes to recompute each object in a project.<br />
<br />
<!--T:346--><br />
* {{MacroLink|Icon=Replace_Part.png|Macro_Replace_Part_in_Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
<br />
<!--T:347--><br />
* {{MacroLink|Icon=Macro_Select_Hovering.png|Macro_Select_Hovering|Macro Select Hovering}}: This macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
<br />
<!--T:348--><br />
* {{MacroLink|Icon=SelectVisible.png|Macro_SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
<br />
<!--T:349--><br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro_Shake_Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
<br />
<!--T:350--><br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro_SketchUnmap|Macro SketchUnmap}}: Unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
<br />
<!--T:351--><br />
* {{MacroLink|Macro_TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document.<br />
<br />
<!--T:352--><br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro_Unbind_Numpad_Shortcuts|Macro Unbind Numpad Shortcuts}}: Rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
<br />
<!--T:353--><br />
* {{MacroLink|Icon=WF_wf.png|Macro_WorkFeatures|Macro WorkFeatures}}: Tool utility to create points, axes, planes and many other useful features to facilitate the creation of your project.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg|32px]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:354--><br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: Pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece.<br />
<br />
<!--T:355--><br />
* {{MacroLink|Icon=Gearworkbech.png|Macro_FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
<br />
<!--T:356--><br />
* {{MacroLink|Icon=Macro_Fonts_Win10_PYMP.png|Macro_Fonts_Win10_PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the [[Draft_ShapeString|ShapeString]] is empty and this little macro can help you see easily the font to use.<br />
<br />
<!--T:357--><br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
<br />
<!--T:358--><br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
<br />
<!--T:359--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
<br />
<!--T:360--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel_GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
<br />
<!--T:363--><br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro_Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
<br />
<!--T:364--><br />
* {{MacroLink|Icon=PropertyMemo.png|Macro_PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft).<br />
<br />
<!--T:365--><br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro_Rubik_Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
<br />
<!--T:366--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro_Sheet_Metal_Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
<br />
<!--T:368--><br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro_Unfold_Box|Macro Unfold Box}}: Allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
<br />
<!--T:369--><br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro_Unroll_Ruled_Surface|Macro Unroll Ruled Surface}}: Allows to unroll ruled surfaces and to draw them on a page.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Arch_Equipment.svg|32px]] Woodworking === <!--T:168--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:370--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions getDimensions]: FreeCAD macro to get chipboards dimensions to cut (BOM, cutlist).<br />
<br />
<!--T:371--><br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro_Cabinets32|Macro Cabinets32}}: Creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
<br />
<!--T:372--><br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: Creates a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
<br />
<!--T:373--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/makeTransparent.py makeTransparent]: Switches all parts from non-transparent to transparent, and back, allowing you to preview pilot holes, countersinks and other joints.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:374--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
<br />
<!--T:375--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : FreeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
<br />
<!--T:376--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: Flamingo (workbench for metal structures).<br />
<br />
<!--T:377--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 Workbench, and more.<br />
<br />
<!--T:378--><br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
<br />
<!--T:379--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: Workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
<br />
<!--T:380--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173824Macro TNP Solution2022-08-17T11:19:47Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
This is solution for Topological Naming Problem example described at the page: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. Because if the Sketch and Face were at the same plane XY. The Z axis value was the same for both. At the PartDesign you cannot move 3rd Pad above the 2nd Pad, to have gap between, this is single object, the next Pad with the Sketch always will be touching the face. At the new face the Z axis value always will be the same with the stored key. So, return the face index. Nothing more to be done. <br />
<br />
{{MacroCode|code=<br />
<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
if bb == iBB:<br />
return index<br />
<br />
return -1<br />
<br />
}}<br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
==Code for the example==<br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]. <br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}<br />
<br />
<br />
==THE Solution==<br />
<br />
This code above shows how to solve the example from Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]] but exactly the same rules you can use to solve other problems. The approach is simple:<br />
<br />
# Store the key before any operation<br />
# Search for the key after operation<br />
<br />
The specific implementation may be different. In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. At [https://github.com/dprojects/Woodworking Woodworking project] I make many operations at non-existing objects, so I had to solve the Topological Naming Problem many times. <br />
<br />
Here I change Cube objects into PartDesign Thickness objects:<br />
<br />
[[File:TNP_solution_1.gif]]<br />
<br />
At this example below I change Cubes into PartDesign Chamfers, so I had to store key for edges: <br />
<br />
[[File:TNP_solution_2.gif]]<br />
<br />
This example below is little more complicated because as you see at the GUI screen, the references to the object and face changes automatically. But also to make a hole I call function defined in my library not directly in the tool. So, I had to use small trick with selection and deselection, to get new reference:<br />
<br />
[[File:TNP_solution_3.gif]]<br />
<br />
There are many such problems when programming in FreeCAD, but they can all be solved in a similar way. <br />
I hope, it helps.</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173822Macro TNP Solution2022-08-17T11:13:31Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
This is solution for Topological Naming Problem example described at the page: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. Because if the Sketch and Face were at the same plane XY. The Z axis value was the same for both. At the PartDesign you cannot move 3rd Pad above the 2nd Pad, to have gap between, this is single object, the next Pad with the Sketch always will be touching the face. At the new face the Z axis value always will be the same with the stored key. So, return the face index. Nothing more to be done. <br />
<br />
{{MacroCode|code=<br />
<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
if bb == iBB:<br />
return index<br />
<br />
return -1<br />
<br />
}}<br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
==Code for the example==<br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]. <br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}<br />
<br />
<br />
==THE Solution==<br />
<br />
This code above shows how to solve the example from Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]] but exactly the same rules you can use to solve other problems. The approach is simple:<br />
<br />
# Store the key before any operation<br />
# Search for the key after operation<br />
<br />
The specific implementation may be different. In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. At [https://github.com/dprojects/Woodworking Woodworking project] I make many operations at non-existing objects, so I had to solve the Topological Naming Problem many times. <br />
<br />
Here I change Cube objects into PartDesign Thickness objects:<br />
<br />
[[File:TNP_solution_1.gif]]<br />
<br />
At this example below I change Cubes into PartDesign Chamfers, so I had to store key for edges: <br />
<br />
[[File:TNP_solution_2.gif]]<br />
<br />
This example below is little more complicated because as you see at the GUI screen, the references to the object and face changes automatically. Bu also I call function from library to make hole:<br />
<br />
[[File:TNP_solution_3.gif]]<br />
<br />
There are many such problems when programming in FreeCAD, but they can all be solved in a similar way. I hope, it helps.</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173821Macro TNP Solution2022-08-17T11:13:05Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
This is solution for Topological Naming Problem example described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. Because if the Sketch and Face were at the same plane XY. The Z axis value was the same for both. At the PartDesign you cannot move 3rd Pad above the 2nd Pad, to have gap between, this is single object, the next Pad with the Sketch always will be touching the face. At the new face the Z axis value always will be the same with the stored key. So, return the face index. Nothing more to be done. <br />
<br />
{{MacroCode|code=<br />
<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
if bb == iBB:<br />
return index<br />
<br />
return -1<br />
<br />
}}<br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
==Code for the example==<br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]. <br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}<br />
<br />
<br />
==THE Solution==<br />
<br />
This code above shows how to solve the example from Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]] but exactly the same rules you can use to solve other problems. The approach is simple:<br />
<br />
# Store the key before any operation<br />
# Search for the key after operation<br />
<br />
The specific implementation may be different. In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. At [https://github.com/dprojects/Woodworking Woodworking project] I make many operations at non-existing objects, so I had to solve the Topological Naming Problem many times. <br />
<br />
Here I change Cube objects into PartDesign Thickness objects:<br />
<br />
[[File:TNP_solution_1.gif]]<br />
<br />
At this example below I change Cubes into PartDesign Chamfers, so I had to store key for edges: <br />
<br />
[[File:TNP_solution_2.gif]]<br />
<br />
This example below is little more complicated because as you see at the GUI screen, the references to the object and face changes automatically. Bu also I call function from library to make hole:<br />
<br />
[[File:TNP_solution_3.gif]]<br />
<br />
There are many such problems when programming in FreeCAD, but they can all be solved in a similar way. I hope, it helps.</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173820Macro TNP Solution2022-08-17T11:12:28Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
This is solution for Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. Because if the Sketch and Face were at the same plane XY. The Z axis value was the same for both. At the PartDesign you cannot move 3rd Pad above the 2nd Pad, to have gap between, this is single object, the next Pad with the Sketch always will be touching the face. At the new face the Z axis value always will be the same with the stored key. So, return the face index. Nothing more to be done. <br />
<br />
{{MacroCode|code=<br />
<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
if bb == iBB:<br />
return index<br />
<br />
return -1<br />
<br />
}}<br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
==Code for the example==<br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]. <br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}<br />
<br />
<br />
==THE Solution==<br />
<br />
This code above shows how to solve the example from Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]] but exactly the same rules you can use to solve other problems. The approach is simple:<br />
<br />
# Store the key before any operation<br />
# Search for the key after operation<br />
<br />
The specific implementation may be different. In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. At [https://github.com/dprojects/Woodworking Woodworking project] I make many operations at non-existing objects, so I had to solve the Topological Naming Problem many times. <br />
<br />
Here I change Cube objects into PartDesign Thickness objects:<br />
<br />
[[File:TNP_solution_1.gif]]<br />
<br />
At this example below I change Cubes into PartDesign Chamfers, so I had to store key for edges: <br />
<br />
[[File:TNP_solution_2.gif]]<br />
<br />
This example below is little more complicated because as you see at the GUI screen, the references to the object and face changes automatically. Bu also I call function from library to make hole:<br />
<br />
[[File:TNP_solution_3.gif]]<br />
<br />
There are many such problems when programming in FreeCAD, but they can all be solved in a similar way. I hope, it helps.</div>Dprojectshttps://wiki.freecad.org/index.php?title=File:TNP_solution_3.gif&diff=1173811File:TNP solution 3.gif2022-08-17T10:52:06Z<p>Dprojects: </p>
<hr />
<div></div>Dprojectshttps://wiki.freecad.org/index.php?title=File:TNP_solution_2.gif&diff=1173810File:TNP solution 2.gif2022-08-17T10:51:28Z<p>Dprojects: </p>
<hr />
<div></div>Dprojectshttps://wiki.freecad.org/index.php?title=File:TNP_solution_1.gif&diff=1173809File:TNP solution 1.gif2022-08-17T10:50:54Z<p>Dprojects: </p>
<hr />
<div></div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173370Macro TNP Solution2022-08-16T11:31:17Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
==Solution description==<br />
<br />
This is solution for Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. Because if the Sketch and Face were at the same plane XY. The Z axis value was the same for both. At the PartDesign you cannot move 3rd Pad above the 2nd Pad, to have gap between, this is single object, the next Pad with the Sketch always will be touching the face. At the new face the Z axis value always will be the same with the stored key. So, return the face index. Nothing more to be done. <br />
<br />
{{MacroCode|code=<br />
<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
if bb == iBB:<br />
return index<br />
<br />
return -1<br />
<br />
}}<br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
'''Summary'''<br />
<br />
In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. The same you <br />
can do for edges at Chamfer or Fillets. This is already solved <br />
at [https://github.com/dprojects/Woodworking Woodworking project] and is already available in its library. <br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]. <br />
However, this example is not important. The [[Topological_naming_problem|Topological Naming Problem]] page describe in details how to create such example. One thing I added there is Constraint to be able to resize the Pad from script. This solution show how to approach the Topological Naming Problem. There are many such problems when programming in FreeCAD, but they can all be solved in a similar way.<br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173369Macro TNP Solution2022-08-16T11:26:52Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
==Solution description==<br />
<br />
This is solution for Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. Because if the Sketch and Face for to stored key were at the same plane XY. The Z axis value was the same for both. At the PartDesign you cannot move 3rd Pad above the 2nd Pad, to have gap between, this is single object, the next Pad with the Sketch always will be touching the face. At the new face the Z axis value always will be the same with the stored key. So, return the face index. Nothing more to be done. <br />
<br />
{{MacroCode|code=<br />
<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
if bb == iBB:<br />
return index<br />
<br />
return -1<br />
<br />
}}<br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
'''Summary'''<br />
<br />
In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. The same you <br />
can do for edges at Chamfer or Fillets. This is already solved <br />
at [https://github.com/dprojects/Woodworking Woodworking project] and is already available in its library. <br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]. <br />
However, this example is not important. The [[Topological_naming_problem|Topological Naming Problem]] page describe in details how to create such example. One thing I added there is Constraint to be able to resize the Pad from script. This solution show how to approach the Topological Naming Problem. There are many such problems when programming in FreeCAD, but they can all be solved in a similar way.<br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173368Macro TNP Solution2022-08-16T11:23:22Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
==Solution description==<br />
<br />
This is solution for Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. Because if the Sketch and Face for to stored key were at the same plane XY. The Z axis value was the same for both. At the PartDesign you cannot move 3rd Pad above the 2nd Pad, to have gap between, this is single object, the next Pad with the Sketch always will be touching the face. At the new face the Z axis value always will be the same with the stored key. So, return the face index. Nothing more to be done. <br />
<br />
{{MacroCode|code=<br />
<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
if bb == iBB:<br />
return index<br />
<br />
return -1<br />
<br />
}}<br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
'''Summary'''<br />
<br />
In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. The same you <br />
can do for edges at Chamfer or Fillets. This is already solved <br />
at [https://github.com/dprojects/Woodworking Woodworking project] and is already available in its library. <br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]. <br />
However, this example is not important. The [[Topological_naming_problem|Topological Naming Problem]] page describe in details how to create such example. One thing I added there is Constraint to be able to resize the Pad from script. This solution show how to approach the Topological Naming Problem.<br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173367Macro TNP Solution2022-08-16T11:20:31Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
==Solution description==<br />
<br />
This is solution for Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. Because if the Sketch and Face for to stored key were at the same plane XY. The Z axis value was the same for both. At the PartDesign you cannot move 3rd Pad above the 2nd Pad, the next Pad with the Sketch always will be touching the face. At the new face the Z axis value always will be the same with the stored key. So, just return the index. Nothing more to do. <br />
<br />
{{MacroCode|code=<br />
<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
if bb == iBB:<br />
return index<br />
<br />
return -1<br />
<br />
}}<br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
'''Summary'''<br />
<br />
In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. The same you <br />
can do for edges at Chamfer or Fillets. This is already solved <br />
at [https://github.com/dprojects/Woodworking Woodworking project] and is already available in its library. <br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]. <br />
However, this example is not important. The [[Topological_naming_problem|Topological Naming Problem]] page describe in details how to create such example. One thing I added there is Constraint to be able to resize the Pad from script. This solution show how to approach the Topological Naming Problem.<br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173366Macro TNP Solution2022-08-16T11:18:33Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
==Solution description==<br />
<br />
This is solution for Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. Because if the Sketch and Face for to stored key were at the same plane XY. The Z axis value was the same for both. So, at at PartDesign you can move 3rd Pad above and the Pad with the Sketch always will be touching the face. At the new face the Z axis value always will be the same with the stored key. So, just return the index. Nothing more to do. <br />
<br />
{{MacroCode|code=<br />
<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
if bb == iBB:<br />
return index<br />
<br />
return -1<br />
<br />
}}<br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
'''Summary'''<br />
<br />
In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. The same you <br />
can do for edges at Chamfer or Fillets. This is already solved <br />
at [https://github.com/dprojects/Woodworking Woodworking project] and is already available in its library. <br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]. <br />
However, this example is not important. The [[Topological_naming_problem|Topological Naming Problem]] page describe in details how to create such example. One thing I added there is Constraint to be able to resize the Pad from script. This solution show how to approach the Topological Naming Problem.<br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173365Macro TNP Solution2022-08-16T11:02:53Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
==Solution description==<br />
<br />
This is solution for Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. <br />
<br />
{{MacroCode|code=<br />
<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
if bb == iBB:<br />
return index<br />
<br />
return -1<br />
<br />
}}<br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
'''Summary'''<br />
<br />
In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. The same you <br />
can do for edges at Chamfer or Fillets. This is already solved <br />
at [https://github.com/dprojects/Woodworking Woodworking project] and is already available in its library. <br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]. <br />
However, this example is not important. The [[Topological_naming_problem|Topological Naming Problem]] page describe in details how to create such example. One thing I added there is Constraint to be able to resize the Pad from script. This solution show how to approach the Topological Naming Problem.<br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173364Macro TNP Solution2022-08-16T11:00:24Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]. <br />
However, this example is not important. This solution show how to approach <br />
the Topological Naming Problem.<br />
<br />
==Solution description==<br />
<br />
This is solution for Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. <br />
<br />
{{MacroCode|code=<br />
<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
if bb == iBB:<br />
return index<br />
<br />
return -1<br />
<br />
}}<br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
'''Summary'''<br />
<br />
In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. The same you <br />
can do for edges at Chamfer or Fillets. This is already solved <br />
at [https://github.com/dprojects/Woodworking Woodworking project] and is already available in its library. <br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173363Macro TNP Solution2022-08-16T10:56:04Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
File for testing has been uploaded at FreeCAD forum: <br />
[https://forum.freecadweb.org/download/file.php?id=198537 TNP.FCStd]<br />
<br />
==Solution description==<br />
<br />
This is solution for Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward to solve, because you know two things:<br />
<br />
# Points from Sketch is always part of the face below<br />
# The Sketch and the face below are in the same plane <br />
<br />
To solve Topological Naming Problem problem you can:<br />
<br />
'''Store the key before any operation:'''<br />
<br />
You need only store the key before any operation. For this <br />
example described at [[Topological_naming_problem|Topological Naming Problem]] page <br />
the object is at XY plane. So, I use Z axis value from Sketch BoundBox center:<br />
<br />
{{MacroCode|code=<br />
ad = FreeCAD.ActiveDocument<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
}}<br />
<br />
'''Next search all faces for the stored key:'''<br />
<br />
After the resize I search all faces for the stored key. <br />
<br />
'''Final steps'''<br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
'''Summary'''<br />
<br />
In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. The same you <br />
can do for edges at Chamfer or Fillets. This is already solved <br />
at [https://github.com/dprojects/Woodworking Woodworking project] and is already available in its library. <br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Topological_naming_problem&diff=1173327Topological naming problem2022-08-16T09:18:35Z<p>Dprojects: solution</p>
<hr />
<div><languages/><br />
<translate><br />
== Introduction == <!--T:1--><br />
<br />
</translate><br />
{{TOCright}}<br />
<translate><br />
<br />
<!--T:2--><br />
The [[topological naming problem|topological naming problem]] in FreeCAD refers to the issue of a shape changing its internal name after a modelling operation (pad, cut, union, chamfer, fillet, etc.) is performed. This will result in other parametric features that depend on that shape to break or be incorrectly computed. This issue affects all objects in FreeCAD but is especially notable when building solids with the [[Image:Workbench_PartDesign.svg|24px]] [[PartDesign Workbench|PartDesign Workbench]], and when dimensioning those solids with the [[Image:Workbench_TechDraw.svg|24px]] [[TechDraw Workbench|TechDraw Workbench]].<br />
* In [[Image:Workbench_PartDesign.svg|24px]] [[PartDesign Workbench|PartDesign]], if a feature is supported on a face (or edge or vertex), the feature may break if the underlying solid changes size or orientation, as the original face (or edge or vertex) may be internally renamed.<br />
* In [[Image:Workbench_TechDraw.svg|24px]] [[TechDraw Workbench|TechDraw]], if a dimension is measuring the length of a projected edge, the dimension may break if the 3D model is changed, as the vertices may be renamed thus changing the measured edge.<br />
<br />
<!--T:3--><br />
The topological naming issue is a complex problem in CAD modelling that stems from the way the internal FreeCAD routines handle updates of the geometrical shapes created with the [[OpenCASCADE|OCCT kernel]]. As of FreeCAD 0.19 there are ongoing efforts to improve the core handling of shapes in order to reduce or eliminate such issues.<br />
* Forum thread: [https://forum.freecadweb.org/viewtopic.php?t=27278 Topological Naming, My Take]<br />
<br />
<!--T:4--><br />
The topological naming problem most often affects and confuses new users of FreeCAD. In PartDesign, the user is advised to follow the best practices discussed in the [[feature editing|feature editing]] page. Use of supporting datum objects like [[PartDesign Plane|planes]] and [[PartDesign CoordinateSystem|local coordinate systems]] is strongly recommended to produce models that aren't easily subject to such topological errors. In TechDraw, the user is advised to add dimensions only when the 3D model is complete and won't be modified further.<br />
<br />
== Example == <!--T:5--><br />
<br />
<!--T:6--><br />
1. In the [[Image:Workbench_PartDesign.svg|24px]] [[PartDesign Workbench|PartDesign Workbench]], create a [[Image:PartDesign_Body.svg|24px]] [[PartDesign Body|PartDesign Body]], then use [[Image:PartDesign_NewSketch.svg|24px]] [[PartDesign NewSketch|PartDesign NewSketch]] and select the XY plane to draw the base sketch; then perform a [[Image:PartDesign_Pad.svg|24px]] [[PartDesign Pad|PartDesign Pad]] to create a first solid.<br />
<br />
</translate><br />
[[Image:FreeCAD_topological_problem_01_solid.png|x400px]]<br />
<translate><br />
<br />
<!--T:7--><br />
2. Select the top face of the previous solid, and then use [[Image:PartDesign_NewSketch.svg|24px]] [[PartDesign NewSketch|PartDesign NewSketch]] to draw another sketch; then perform a second pad.<br />
<br />
</translate><br />
{|<br />
| [[Image:FreeCAD_topological_problem_02_solid_sketch_2.png|x400px]] || [[Image:FreeCAD_topological_problem_03_solid_2.png|x400px]]<br />
|}<br />
<translate><br />
<br />
<!--T:8--><br />
3. Select the top face of the previous extrusion, and once again create a sketch, and a pad.<br />
<br />
</translate><br />
[[Image:FreeCAD_topological_problem_04_solid_3.png|x400px]]<br />
<translate><br />
<br />
<!--T:9--><br />
4. Now, double click the second sketch, and modify it so that its length is along the X direction; doing this will recreate the second pad. The third sketch and pad will stay in the same place.<br />
<br />
</translate><br />
{|<br />
| [[Image:FreeCAD_topological_problem_05_solid_sketch_2.png|x400px]] || [[Image:FreeCAD_topological_problem_06_solid_2.png|x400px]]<br />
|}<br />
<br />
[[Image:FreeCAD_topological_problem_07_solid_3.png|x400px]]<br />
<translate><br />
<br />
<!--T:10--><br />
5. Now, double click the second sketch again, and adjust its points so that a portion of it is outside the limits defined by the first pad. By doing this, the second pad will recompute correctly, however, when looking at the [[tree view]], an error will be indicated in the third pad.<br />
<br />
</translate><br />
{|<br />
| [[Image:FreeCAD_topological_problem_08_solid_sketch_2.png|x400px]] || [[Image:FreeCAD_topological_problem_09_solid_2.png|x400px]]<br />
|}<br />
<translate><br />
<br />
</translate><br />
[[Image:FreeCAD_topological_problem_12_broken_tree.png]]<br />
<translate><br />
<br />
<!--T:12--><br />
6. By making visible the third sketch and pad, it is clear that the computation of the new solid did not proceed correctly. The third sketch, instead of being supported by the top face of the second pad, appears in a strange place, with its normal oriented towards the X direction. This results in an invalid pad, as this pad would be disconnected from the rest of the [[Image:PartDesign_Body.svg|24px]] [[PartDesign Body|PartDesign Body]], which is not allowed.<br />
<br />
<!--T:13--><br />
The problem appears to be that when the second sketch was modified, the top face of the second pad was renamed from {{incode|Face13}} to {{incode|Face14}}. The third sketch is attached to {{incode|Face13}} as it originally was, but since this face is now on the side (not at the top), the sketch follows its orientation and now is incorrectly positioned.<br />
<br />
</translate><br />
{|<br />
| [[Image:FreeCAD_topological_problem_10_solid_2_sketch_3.png|x400px]] || [[Image:FreeCAD_topological_problem_11_solid_2_faces.png|x400px]]<br />
|}<br />
<translate><br />
<br />
<!--T:14--><br />
7. To fix the issue, the third sketch should be mapped to the top face again. Select the sketch, click on the ellipsis (three dots) next to the {{PropertyData|Map Mode}} property, and choose the top face of the second pad again. Then the sketch moves to the top of the existing solid, and the third pad is generated without issues.<br />
<br />
</translate><br />
[[Image:FreeCAD_topological_problem_13_remap_sketch_2.png]]<br />
<translate><br />
<br />
</translate><br />
{|<br />
| [[Image:FreeCAD_topological_problem_14_solid_2_sketch_3.png|x400px]] || [[Image:FreeCAD_topological_problem_15_solid_3.png|x400px]]<br />
|}<br />
<translate><br />
<br />
<!--T:16--><br />
Remapping a sketch in this way can be done every time there is a topological naming error, however, this may be tedious if the model is complicated and there are many such sketches that need to be adjusted.<br />
<br />
== Solution == <!--T:17--><br />
<br />
</translate><br />
[[Image:FreeCAD_topological_problem_16_dependency_graph.png|left]]<br />
<translate><br />
<br />
<!--T:18--><br />
The [[Std_DependencyGraph|dependency graph]] is a tool that is helpful to observe the relationships between the different bodies in the document. Using the original modelling workflow reveals the direct relationship that exists between the sketches and the pads. Like a chain, it is easy to see that this direct dependence will be subject to topological naming problems if any of the links in the sequence changes.<br />
<br />
<!--T:20--><br />
As explained in the [[feature editing|feature editing]] page, a solution to this problem is to support sketches not on faces but on datum planes which are offset from the main planes of the [[PartDesign Body|PartDesign Body's]] Origin.<br />
<br />
<!--T:21--><br />
1. Select the origin of the [[PartDesign Body|PartDesign Body]] and make sure that it is visible. Then select the XY plane, and click on [[PartDesign Plane|PartDesign Plane]]. In the attachment offset dialog, give it an offset in the Z direction so that the datum plane is coplanar with the top face of the first pad.<br />
<br />
<!--T:22--><br />
2. Repeat the process but this time add a larger offset so that the second datum plane is coplanar with the top face of the second pad.<br />
<br />
</translate><br />
{{clear}}<br />
{|<br />
| [[Image:FreeCAD_topological_problem_17_datum_plane_1.png|x400px]] || [[Image:FreeCAD_topological_problem_18_datum_plane_2.png|x400px]]<br />
|}<br />
<translate><br />
<br />
<!--T:23--><br />
3. Select the second sketch, click on the ellipsis next to the {{PropertyData|Map Mode}} property, and then select the first datum plane. The datum plane is already offset from the body's XY plane, so no further Z offset is required for the sketch.<br />
<br />
<!--T:24--><br />
4. Repeat the process with the third sketch, and select the second datum plane as support. Again, no further Z offset is necessary.<br />
<br />
<!--T:25--><br />
5. The dependency graph now shows that the sketches and pads are supported by the datum planes. This model is more stable as each sketch can be modified essentially independently from each other.<br />
<br />
</translate><br />
[[Image:FreeCAD_topological_problem_19_dependency_graph_datum_planes.png]]<br />
<translate><br />
<br />
<!--T:27--><br />
6. Double click the second sketch and modify the shape. The second pad should update immediately without causing topological problems with the third sketch and the third pad.<br />
<br />
</translate><br />
[[Image:FreeCAD_topological_problem_20_independent_solid_2.png|x400px]]<br />
<translate><br />
<br />
<!--T:28--><br />
7. In fact, every sketch can be modified without interfering with each other's pads. As long as the pads have sufficient extrusion length, so that they touch and form a contiguous solid, the entire body will be valid.<br />
<br />
</translate><br />
[[Image:FreeCAD_topological_problem_21_independent_solids_all.png|x400px]]<br />
<translate><br />
<br />
== Final remarks == <!--T:29--><br />
<br />
<!--T:30--><br />
Adding datum objects is more work for the user but ultimately produces more stable models that are less subject to the topological naming problem.<br />
<br />
<!--T:31--><br />
Naturally, datum objects can be created before any sketches are drawn, and pads are produced. This may be helpful to visualize the approximate shape and dimensions of the final body.<br />
<br />
<!--T:32--><br />
Datum planes can also be based on other datum planes. This creates a chain of dependencies that could also result in topological problems; however, since datum planes are very simple objects, the risks of having these issues is less than if the face of a solid object is used as support.<br />
<br />
<!--T:33--><br />
Datum objects, [[PartDesign Point|points]], [[PartDesign Line|lines]], [[PartDesign Plane|planes]], and [[PartDesign CoordinateSystem|coordinate systems]], may also be useful as reference geometry, that is, as visual aids to show the important features in the model, even if no sketch is directly attached to them.<br />
<br />
== Links == <!--T:38--><br />
<br />
<!--T:39--><br />
* [[PartDesign_Fillet#Topological_naming|PartDesign Fillet - Topological naming]]<br />
* [https://forum.freecadweb.org/viewtopic.php?t=27278 Topological Naming, My Take]: a possible solution, by realthunder.<br />
* [[Topological_Naming_Project|Topological Naming Project]]: idea to solve the problem, by ickby.<br />
* [[Topological_data_scripting|Topological data scripting]]<br />
* [[Feature_editing|Feature editing]]: contains alternate advice for stable modelling techniques.<br />
* [[TNP_solution|TNP solution]]: Solution for this example with description how to solve Topological Naming Problem.<br />
<br />
== Videos == <!--T:40--><br />
<br />
<!--T:41--><br />
* [https://youtu.be/6p2vqEEmWq4 Why do my FreeCAD models break? - "Topological Naming Problem"]: A Video explanation of the underlying issues of [[Topological_naming_problem|Topological naming problem]]<br />
* [https://www.youtube.com/watch?v=QSsVFu929jo FreeCAD Is Fundamentally Broken! - Now what... Help Me Decide...]: A Maker Tales Video<br />
<br />
</translate><br />
{{Userdocnavi{{#translation:}}}}<br />
{{TechDraw Tools navi{{#translation:}}}}<br />
{{PartDesign Tools navi{{#translation:}}}}<br />
{{Part Tools navi{{#translation:}}}}<br />
[[Category:Common Questions{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=1173319Macros recipes2022-08-16T09:15:33Z<p>Dprojects: solution for Topological Naming Problem</p>
<hr />
<div><languages/><br />
<br />
{|class="fcinfobox wikitable ct" height=100% style="width: 230px; float: right; margin-left: 1em" |<br />
| class="ctTitle" style="font-weight: bold; font-size: 125%;" | [[Image:Text-x-python.png|32px]] Macros<br />
|-<br />
| class="ctToc"|<br/>__TOC__<br />
|}<br />
<translate><br />
<br />
<!--T:95--><br />
This page lists [[Macros|macros]] that can add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you have written a macro and want to include it in one of the categories on this page, then go to [[Macro_documentation|Macro documentation]] to learn more about properly documenting a macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg|32px]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:170--><br />
* {{MacroLink|Icon=Macro_Align_Face_Object_to_View.png|Macro_Align_Face_Object_to_View|Macro Align Face Object to View}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:171--><br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro_Align_View_to_Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:172--><br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro_Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard.<br />
<br />
<!--T:173--><br />
* {{MacroLink|Icon=FCCamera_00.png|Macro_FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
<br />
<!--T:174--><br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro_Mouse_Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
<br />
<!--T:175--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro_Rotate_View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
<br />
<!--T:176--><br />
* {{MacroLink|Icon=Text_console_python.png|Macro_Rotate_View_Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
<br />
<!--T:177--><br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro_Rotate_ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in View Axonometric.<br />
<br />
<!--T:178--><br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro Screen Wiki}}: This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions.<br />
<br />
<!--T:179--><br />
* {{MacroLink|Icon=Snip.png|Macro_Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
<br />
<!--T:180--><br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro_View_Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
<br />
<!--T:181--><br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro_Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg|32px]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:182--><br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro_Animated_Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
<br />
<!--T:183--><br />
* {{MacroLink|Icon=Animator.svg|Macro_Animator|Macro Animator}}: Animate your model by animating its properties with this feature Python object.<br />
<br />
<!--T:184--><br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro_Assemblage_Imprimante_3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
<br />
<!--T:185--><br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro_Assembly|Macro Assembly}}: Assembly animate.<br />
<br />
<!--T:186--><br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro_Constraint_Draft|Macro Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
<!--T:187--><br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro_crank_simul|Macro crank simul}}: Rotation rod and piston.<br />
<br />
<!--T:188--><br />
* {{MacroLink|Icon=Macro_hinge.png|Macro_hinge|Macro hinge}}: Open and close hinge.<br />
<br />
<!--T:189--><br />
* {{MacroLink|Icon=Macro_Spring.png|Macro_Spring|Macro Spring}}: Simulation of one spring.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg|32px]] Code and scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:190--><br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro_Build_Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
<br />
<!--T:191--><br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro_clone_explicit|Macro clone explicit}}: Creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
<br />
<!--T:192--><br />
* {{MacroLink|Icon=Editor_Assistant_Icon.svg|Macro_Editor_Assistant|Macro Editor Assistant}}: Extends the capabilities of FreeCAD's integrated Python editor.<br />
<br />
<!--T:193--><br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro_Global_Variable_Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
<br />
<!--T:194--><br />
* {{MacroLink|Icon=Macro_MessageBox.png|Macro_MessageBox|Macro MessageBox}}: Shows how to give information to the user through the GUI.<br />
<br />
<!--T:195--><br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro_Print_SceneGraph|Macro Print SceneGraph}}: Prints the SceneGraph.<br />
<br />
<!--T:196--><br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro_Python_Assistant_Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
<br />
</translate><br />
<!--THIS MACRO "Macro ZTest Over 128" SHOULD NOT BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro_ZTest_Over_128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
<translate><br />
<br />
<!--T:197--><br />
* {{MacroLink|Icon=MEPlan.png|Qt_Example|Qt Example}}: Example of using Qt commands, their connections, extraction and data assignment.<br />
<br />
<!--T:198--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: Inspection tool for FreeCAD macro development and project debug.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg|32px]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:199--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
<br />
<!--T:200--><br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draft command set in a small macro for the 2D sketch example: work with the DXF files.<br />
<br />
<!--T:201--><br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro_Creating_faces_from_a_DXF_file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
<br />
<!--T:202--><br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
<br />
<!--T:203--><br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro_DXF_to_Face_and_Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported DXF file to face and sketch.<br />
<br />
<!--T:204--><br />
* {{MacroLink|Icon=Macro_Dxf_To_Shape.png|Macro_Dxf_To_Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve.<br />
<br />
<!--T:205--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro_Extract_Wires_from_Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes.<br />
<br />
<!--T:206--><br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro_FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
<br />
<!--T:207--><br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro_FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
<br />
<!--T:208--><br />
* {{MacroLink|Icon=Macro_FCWire_To_Volume.png|Macro_FCWire_To_Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create".<br />
<br />
<!--T:209--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Iges_PyImporter|Macro Iges PyImporter}}: Imports an iges file with entity 128, for example an iges-file from FreeShip, into FreeCAD.<br />
<br />
<!--T:210--><br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro_MeshToPart|Macro MeshToPart}}: Converts selected meshes to parts.<br />
<br />
<!--T:211--><br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
<br />
<!--T:212--><br />
* {{MacroLink|Icon=PartToVRML.png|Macro_PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Draft.svg|32px]] Draft Workbench and 2D=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:213--><br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro_Align_Camera_to_Working_Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft_SelectPlane|Draft Working Plane]].<br />
<br />
<!--T:214--><br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro_Align_Working_Plane_to_Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft_SelectPlane|Draft Working Plane]] to the center of the current view.<br />
<br />
<!--T:215--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points|Macro Draft Circle 3 Points}}: Creates a circle from 3 selected points 2D orthogonal.<br />
<br />
<!--T:216--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points_3D|Macro Draft Circle 3 Points 3D}}: Creates a circle from 3 selected points in the space 3D.<br />
<br />
<!--T:217--><br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro_EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
<br />
<!--T:218--><br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro_Ellipse-Center+2Points|Macro Ellipse-Center+2Points}}: Makes an ellipse by selecting three points (in this order): center, major radius and minor radius.<br />
<br />
<!--T:219--><br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro_FCConvertLines|Macro FC Convert Lines}}: This macro convert the object line, wire in line Dash, DashDot, DashDotDot, ZigZag and Hand with the dimensions given.<br />
<br />
<!--T:220--><br />
* {{MacroLink|Icon=Macro_Make_Arc_3_Points.png|Macro_Make_Arc_3_Points|Macro Make Arc 3 Points}}: Creates a arc from 3 selected points.<br />
<br />
<!--T:221--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Make_Circle_3_Points|Macro Make Circle 3 Points}}: Creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
<br />
<!--T:222--><br />
* {{MacroLink|Icon=Macro_Rectellipse.png|Macro_Rectellipse|Macro Rectellipse}}: Creates a parametric rectellipse.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg|32px]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:223--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro_Automatic_drawing|Macro Automatic drawing}}: Allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective.<br />
<br />
<!--T:224--><br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro_CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:225--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro_CartoucheFC_2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
<br />
<!--T:226--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro_CartoucheFC_Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|Misc templates Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:227--><br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro_Normal_Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_FEM.svg|32px]] Fem Workbench=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:228--><br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing.<br />
<br />
<!--T:229--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro_GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_Windows.svg|32px]] Gui=== <!--T:230--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:231--><br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro_GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
<br />
<!--T:232--><br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro_MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD.<br />
<br />
<!--T:233--><br />
* {{MacroLink|Macro_SplitPropEditor|Macro SplitPropEditor}}: Temporarily split the property editor from the combo view to a separated dock widget.<br />
<br />
<!--T:234--><br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro_Toggle_Panels_Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Linear.svg|32px]] Info and measurements=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:235--><br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro_BoundingBox_Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles.<br />
<br />
<!--T:236--><br />
* {{MacroLink|Icon=CenterFace.png|Macro_CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates.<br />
<br />
<!--T:237--><br />
* {{MacroLink|Icon=Macro_CenterOfMass.png|Macro_CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
<br />
<!--T:238--><br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro_cross_section|Macro cross section}}: Displays an interactively slidable cross-section.<br />
<br />
<!--T:239--><br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro_Delta_xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points.<br />
<br />
<!--T:240--><br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro_Dump_Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
<br />
<!--T:241--><br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro_FC_element_selector|Macro FC element selector}}: This macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed).<br />
<br />
<!--T:242--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units.<br />
<br />
<!--T:243--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo_Alternate_Linux|Macro FCInfo Alternate Linux}}: Same as above, but for Linux (obsolete).<br />
<br />
<!--T:244--><br />
* {{MacroLink|Icon=FCInfoToolBar.png|Macro_FCInfo_ToolBar|Macro FCInfo ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar.<br />
<br />
<!--T:245--><br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro_FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D.<br />
<br />
<!--T:246--><br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro_FCInfoToMouse|Macro FCInfoToMouse}}: Provides informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen.<br />
<br />
<!--T:247--><br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
<br />
<!--T:248--><br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro_HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
<br />
<!--T:249--><br />
* {{MacroLink|Icon=HighlightDifference.png|Macro_HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
<br />
<!--T:250--><br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro_MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
<br />
<!--T:251--><br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro_Mouse_over_cb|Macro Mouse over cb}}: This macro display all elements below cursor (elements covered by other elements will also be displayed).<br />
<br />
<!--T:252--><br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro_ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user.<br />
<br />
<!--T:381--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/showSpaceModel.py Macro showSpaceModel]: Allows to calculate occupied space in 3D by the full model.<br />
<br />
<!--T:382--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/showSpaceSelected.py Macro showSpaceSelected]: Allows to calculate occupied space in 3D by all selected elements.<br />
<br />
<!--T:253--><br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro_SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg|32px]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:254--><br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro_BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
<br />
<!--T:255--><br />
* {{MacroLink|Icon=FreeCAD_Doc.png|Macro_PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser.<br />
<br />
<!--T:256--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro_screw_maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg|32px]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:257--><br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro_3D_Parametric_Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
<br />
<!--T:258--><br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro_Draw_2D_Function|Macro Draw 2D Function}}: Draws a function described by an equation z=F(x).<br />
<br />
<!--T:259--><br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro_Draw_Parametric_2D_Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar.<br />
<br />
<!--T:260--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro_Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature Python update of Macro 3D Parametric Curve.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Primitives.svg|32px]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:261--><br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
<!--T:262--><br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro_Airfoil_Import_&_Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
<br />
<!--T:263--><br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro_Apothem_Based_Prism_GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
<br />
<!--T:385--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_BSurf_from_grid|Macro BSurf from grid}}: Makes a B-spline surface through a grid of points.<br />
<br />
<!--T:264--><br />
* {{MacroLink|Icon=Macro_Circle.png|Macro_circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
<br />
<!--T:265--><br />
* {{MacroLink|Icon=Macro_CirclePlus.png|Macro_CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
<br />
<!--T:266--><br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro_Cut_Circle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
<br />
<!--T:267--><br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro_Cut_Line|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
<br />
<!--T:268--><br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro_FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
<br />
<!--T:269--><br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro FCCircularText}}: This macro create a text around a cylinder.<br />
<br />
<!--T:270--><br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro_FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
<br />
<!--T:271--><br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro_FCSpring_Helix_Variable|Macro FCSpring Helix Variable}}: This macro creates one spring truncate, the troncature is adjustable on the all coil to choice.<br />
<br />
<!--T:272--><br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring_On_Surface|Macro FCSpring On Surface}}: This macro creates one spring (helix) on the surface of the object (solide).<br />
<br />
<!--T:274--><br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro_Geodesic_Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell.<br />
<br />
<!--T:275--><br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro_Guitar_fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker.<br />
<br />
<!--T:276--><br />
* {{MacroLink|Icon=Macro_Guitar_Nut.png|Macro_Guitar_Nut|Macro Guitar Nut}}: Guitar Nut Maker.<br />
<br />
<!--T:361--><br />
* {{MacroLink|Icon=Macro_Half_turn_stairs.png|Macro_Half_turn_stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
<br />
<!--T:362--><br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro_Half-Hull_Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
<br />
<!--T:277--><br />
* {{MacroLink|Icon=Hilbert_curve_icon.png|Macro_HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
<br />
<!--T:278--><br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature Python Honeycomb object compatible in and out of PartDesign.<br />
<br />
<!--T:279--><br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch.<br />
<br />
<!--T:280--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro_Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature Python object containing the shape of the intersection.<br />
<br />
<!--T:281--><br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro_Line_Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y.<br />
<br />
<!--T:273--><br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro_Loft|Macro Loft}}: Create a loft with a list of wire (specially created for [[Macro_Texture|Macro Texture]]).<br />
<br />
<!--T:282--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro_Make_Cube|Macro Make Cube}}: Creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points.<br />
<br />
<!--T:283--><br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro_Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
<br />
<!--T:284--><br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro_Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
<br />
<!--T:285--><br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro_Repro_Wire|Macro Repro Wire}}: This macro reproduces all element selected subobject wire or face.<br />
<br />
<!--T:286--><br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro_Site_From_Contours|Macro Site From Contours}}: Creates an Arch Site from a series of contour lines.<br />
<br />
<!--T:287--><br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro_Solid_Sweep|Macro Solid Sweep}}: Creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
<br />
<!--T:367--><br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro_Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
<br />
<!--T:288--><br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro_Triangle_AH|Macro Triangle AH}}: This macro creates a triangle by giving the head angle and the height of the triangle (the head of the triangle is positioned to the xyz coordinates 0.0).<br />
<br />
<!--T:289--><br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro_WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_TransformManip.svg|32px]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:290--><br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro_Align_Object_to_View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
<br />
<!--T:291--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro_ArrayCopy|Macro ArrayCopy}}: Copies the selected object several times, on an array grid.<br />
<br />
<!--T:292--><br />
* {{MacroLink|Icon=Bevel.svg|Macro_Bevel|Macro Bevel}}: Bevels selected vertices, creates parametric feature Python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
<br />
<!--T:293--><br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro_Center_Align_Objects_with_Faces_or_Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: Concentric constraint among non cylindrical parts; and Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
<br />
<!--T:294--><br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro_CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
<br />
<!--T:295--><br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro_Connect_And_Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
<br />
<!--T:296--><br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro_FlattenWire|Macro FlattenWire}}: Flattens draft wires that are not planar to their median Z coordinate.<br />
<br />
<!--T:297--><br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro_FlattenWire3Points|Macro FlattenWire3Points}}: Flattens draft wires that are not planar to a plane defined by 3 points.<br />
<br />
<!--T:298--><br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro_HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
<br />
<!--T:299--><br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro_Image_Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
<br />
<!--T:300--><br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro_JointWire|Macro JointWire}}: Allows to find and joint all non connected edge to the closest non connected one using a line.<br />
<br />
<!--T:383--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/magicAngle.py Macro magicAngle]: Small GUI for the Draft.rotate function. Allows to rotate panels and even other more complicated objects, like construction profiles.<br />
<br />
<!--T:301--><br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro_MatrixTransform|Macro MatrixTransform}}: Apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
<br />
<!--T:302--><br />
* {{MacroLink|Icon=Centericon.png|Macro_MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
<br />
<!--T:303--><br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro_Overlap|Macro Overlap}}: Boolean operation. Similar to [[Part_Common|Part Common]], but with custom overlap count threshold (parametric).<br />
<br />
<!--T:304--><br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro_Parametric_Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
<br />
<!--T:305--><br />
* {{MacroLink|Icon=Macro_Perpendicular_To_Wire.png|Macro_Perpendicular_To_Wire|Macro Perpendicular To Wire}}: This macro positions an object perpendicularl to a selected wire.<br />
<br />
<!--T:306--><br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro_PlacementAbsolufy|Macro PlacementAbsolufy}}: Reset Part containers to global origin while maintaining objects absolute position.<br />
<br />
<!--T:307--><br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro_Remove_parametric_history|Macro Remove parametric history}}: Removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
<br />
<!--T:308--><br />
* {{MacroLink|Icon=Macro_Rotate_To_Point.png|Macro_Rotate_To_Point|Macro Rotate To Point}}: Macro to rotate an object around the center of its boundbox, its center of mass, or the last clicked point.<br />
<br />
<!--T:309--><br />
* {{MacroLink|Icon=Part_Section.png|Macro_Section|Macro Section}}: Alternative implementation of Part Section tool, more suitable for making sweep paths (parametric).<br />
<br />
<!--T:310--><br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro_StraightenObject|Macro StraightenObject}}: Re-align object(s) with FreeCAD coordinate system according reference face/edge.<br />
<br />
<!--T:311--><br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro_SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
<br />
<!--T:312--><br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
<br />
<!--T:313--><br />
* {{MacroLink|Icon=multiCuts.png|Macro_multiCuts|multiCuts}}: This macro improves bool cut hierarchy by automatic labeling and using copies for cut.<br />
<br />
<!--T:314--><br />
* {{MacroLink|Icon=TNP_solution.png|TNP_solution|TNP_solution}}: Solution for Topological Naming Problem.<br />
<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Part_FaceColors.svg|32px]] Object visibility, view properties and textures === <!--T:313--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:314--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/colorManager.py colorManager]: Allows to set face colors for all objects from a spreadsheet. Also you can browse colors for a manually selected face or object and see the effect in the 3D model in real-time.<br />
<br />
<!--T:315--><br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
<!--T:316--><br />
* {{MacroLink|Icon=Macro_HiddenAlls.png|Macro_HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
<br />
<!--T:317--><br />
* {{MacroLink|Icon=FCTexture.png|Macro_Texture|Macro Texture}}: Create a project from a bmp image to create a texture easily.<br />
<br />
<!--T:318--><br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro_Texture_Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
<br />
<!--T:319--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro_Toggle_Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object.<br />
<br />
<!--T:320--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro_Toggle_Drawstyle_Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same as Macro Toggle Drawstyle above but optimized for all languages).<br />
<br />
<!--T:321--><br />
* {{MacroLink|Icon=Macro_SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
<br />
<!--T:322--><br />
* {{MacroLink|Icon=Macro_SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:323--><br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:324--><br />
* {{MacroLink|Icon=Macro_VisibleAlls.png|Macro_VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
<br />
<!--T:325--><br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro Visibility Manager}}: Manage visibility of document objects by type or individually.<br />
<br />
<!--T:326--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/setTextures setTextures]: Allows to permanently store the URL of textures in a FreeCAD project and load stored textures.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg|32px]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro_PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg|32px]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:327--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro_3d_Printer_Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
<br />
<!--T:328--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slicer by changing the SLICERAPP variable in the source code.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg|32px]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro_FreeCAD_to_Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg|32px]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:329--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro_Alias_Manager|Macro Alias Manager}}: Helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
<br />
<!--T:330--><br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro_EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
<br />
<!--T:331--><br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro_FCSpreadSheet_Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
<br />
<!--T:332--><br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro_SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
<br />
<!--T:333--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
<br />
<!--T:334--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/sheet2export sheet2export]: Allows to export FreeCAD spreadsheet to file formats (.md, .html, .csv, .json).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg|32px]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:335--><br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro_Arch_Axis_System_Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a set of parameters.<br />
<br />
<!--T:336--><br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro_Duplicate_Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate, select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
<br />
<!--T:337--><br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro_Easy_cutouts_for_Enclosure_Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way.<br />
<br />
<!--T:338--><br />
* {{MacroLink|Icon=Macro_ExpandTreeItem.png|Macro_ExpandTreeItem|Macro ExpandTreeItem}}: This macro expand selected items in the tree view. If not selection all item are expand/collapse.<br />
<br />
<!--T:339--><br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro_findConfigFiles|Macro findConfigFiles}}: Finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
<br />
<!--T:340--><br />
* {{MacroLink|Icon=Force_Recompute.png|Macro_ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model.<br />
<br />
<!--T:341--><br />
* {{MacroLink|Icon=Macro_If_Selected_Stay_If_Not_Then_Delete.png|Macro_If_Selected_Stay_If_Not_Then_Delete|Macro If Selected Stay If Not Then Delete}}: All object not selected are deleted!<br />
<br />
<!--T:342--><br />
* {{MacroLink|Macro_ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views.<br />
<br />
<!--T:343--><br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro_merge_duplicate_materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
<br />
<!--T:384--><br />
* {{MacroLink|Icon=Pcbway.png|Macro_PCBWay|Macro PCBWay}}: Sends a selected object to [https://pcbway.com PCBWay] for manufacturing through CNC milling, laser cutting or 3D printing.<br />
<br />
<!--T:344--><br />
* {{MacroLink|Icon=Pinger_Icon.svg|Macro_Pinger|Macro Pinger}}: Ping users on the forum with ease.<br />
<br />
<!--T:345--><br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro_Recompute_Profiler|Macro Recompute Profiler}}: Measures time it takes to recompute each object in a project.<br />
<br />
<!--T:346--><br />
* {{MacroLink|Icon=Replace_Part.png|Macro_Replace_Part_in_Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
<br />
<!--T:347--><br />
* {{MacroLink|Icon=Macro_Select_Hovering.png|Macro_Select_Hovering|Macro Select Hovering}}: This macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
<br />
<!--T:348--><br />
* {{MacroLink|Icon=SelectVisible.png|Macro_SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
<br />
<!--T:349--><br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro_Shake_Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
<br />
<!--T:350--><br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro_SketchUnmap|Macro SketchUnmap}}: Unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
<br />
<!--T:351--><br />
* {{MacroLink|Macro_TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document.<br />
<br />
<!--T:352--><br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro_Unbind_Numpad_Shortcuts|Macro Unbind Numpad Shortcuts}}: Rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
<br />
<!--T:353--><br />
* {{MacroLink|Icon=WF_wf.png|Macro_WorkFeatures|Macro WorkFeatures}}: Tool utility to create points, axes, planes and many other useful features to facilitate the creation of your project.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg|32px]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:354--><br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: Pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece.<br />
<br />
<!--T:355--><br />
* {{MacroLink|Icon=Gearworkbech.png|Macro_FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
<br />
<!--T:356--><br />
* {{MacroLink|Icon=Macro_Fonts_Win10_PYMP.png|Macro_Fonts_Win10_PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the [[Draft_ShapeString|ShapeString]] is empty and this little macro can help you see easily the font to use.<br />
<br />
<!--T:357--><br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
<br />
<!--T:358--><br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
<br />
<!--T:359--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
<br />
<!--T:360--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel_GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
<br />
<!--T:363--><br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro_Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
<br />
<!--T:364--><br />
* {{MacroLink|Icon=PropertyMemo.png|Macro_PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft).<br />
<br />
<!--T:365--><br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro_Rubik_Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
<br />
<!--T:366--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro_Sheet_Metal_Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
<br />
<!--T:368--><br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro_Unfold_Box|Macro Unfold Box}}: Allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
<br />
<!--T:369--><br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro_Unroll_Ruled_Surface|Macro Unroll Ruled Surface}}: Allows to unroll ruled surfaces and to draw them on a page.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Arch_Equipment.svg|32px]] Woodworking === <!--T:168--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:370--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions getDimensions]: FreeCAD macro to get chipboards dimensions to cut (BOM, cutlist).<br />
<br />
<!--T:371--><br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro_Cabinets32|Macro Cabinets32}}: Creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
<br />
<!--T:372--><br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: Creates a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
<br />
<!--T:373--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/makeTransparent.py makeTransparent]: Switches all parts from non-transparent to transparent, and back, allowing you to preview pilot holes, countersinks and other joints.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:374--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
<br />
<!--T:375--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : FreeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
<br />
<!--T:376--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: Flamingo (workbench for metal structures).<br />
<br />
<!--T:377--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 Workbench, and more.<br />
<br />
<!--T:378--><br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
<br />
<!--T:379--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: Workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
<br />
<!--T:380--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=File:TNP_solution.png&diff=1173318File:TNP solution.png2022-08-16T09:12:51Z<p>Dprojects: </p>
<hr />
<div></div>Dprojectshttps://wiki.freecad.org/index.php?title=File:TNP_solution.gif&diff=1173317File:TNP solution.gif2022-08-16T09:11:58Z<p>Dprojects: </p>
<hr />
<div></div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173268Macro TNP Solution2022-08-16T09:04:36Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
==Solution description==<br />
<br />
This is solution for Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward, because you know two things:<br />
<br />
* Points from Sketch is always part of the face below<br />
* The Sketch and the face below are in the same plane <br />
<br />
You need only store the key before any operation. For this <br />
example the object is at XY plane. So, I use Z axis value <br />
from Sketch BoundBox center (s2.Shape.BoundBox.Center[2]).<br />
Before resize operation I store the value as a key. <br />
After the resize I search all faces for the stored key. <br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. <br />
The same you can do for edges at Chamfer. <br />
This is already solved [https://github.com/dprojects/Woodworking Woodworking project] <br />
and is already available in its library. <br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_TNP_Solution&diff=1173263Macro TNP Solution2022-08-16T09:01:27Z<p>Dprojects: init</p>
<hr />
<div>{{Macro<br />
|Name=TNP_solution<br />
|Icon=TNP_solution.png<br />
|Description=This is solution for Topological Naming Problem.<br />
|Author=Dprojects<br />
|Date=2022-08-16<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:TNP_solution.gif]]<br />
<br />
==Solution description==<br />
<br />
This is solution for Topological Naming Problem described at: <br />
[[Topological_naming_problem|Topological Naming Problem]]<br />
<br />
If you build object at another object, and also with Sketch <br />
it is straightforward, because you know two things:<br />
<br />
1. Points from Sketch is always part of the face below<br />
2. The Sketch and the face below are in the same plane <br />
<br />
You need only store the key before any operation. For this <br />
example the object is at XY plane. So, I use Z axis value <br />
from Sketch BoundBox center (s2.Shape.BoundBox.Center[2]).<br />
Before resize operation I store the value as a key. <br />
After the resize I search all faces for the stored key. <br />
<br />
At the end I assign the new face to the Sketch and recompute. <br />
To be honest, the most difficult part was to assign the face <br />
to Sketch.Support, for me the syntax is mind-blowing ;-)<br />
<br />
In this example the plane is XY, but you can do exactly the <br />
same for other axes. Also you can choose other key. <br />
The same you can do for edges at Chamfer. <br />
This is already solved [https://github.com/dprojects/Woodworking Woodworking project] <br />
and is already available in its library. <br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="TNP_solution"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-16"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/TNP_solution"<br />
__Icon__ = "TNP_solution.png"<br />
__IconW__ = "TNP_solution.png"<br />
__Help__ = "solution for Topological Naming Problem"<br />
__Status__ = "stable"<br />
__Requires__ = ""<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This is solution for Topological Naming Problem described at <br />
# https://wiki.freecadweb.org/Topological_naming_problem<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD<br />
<br />
# this should be set according <br />
# FreeCAD user GUI precision settings<br />
precision = 5<br />
<br />
# global settings<br />
ad = FreeCAD.ActiveDocument<br />
<br />
# middle object to be resized<br />
p1 = ad.Pad001<br />
s1 = p1.Profile[0]<br />
<br />
# top object bottom to store key<br />
p2 = ad.Pad002<br />
s2 = p2.Profile[0]<br />
<br />
# ####################################################################<br />
def getFaceIndex(iObj, iBB):<br />
<br />
index = 0 <br />
<br />
for f in iObj.Shape.Faces:<br />
<br />
index += 1<br />
bb = round(f.BoundBox.Center[2], precision)<br />
<br />
FreeCAD.Console.PrintMessage("\n")<br />
FreeCAD.Console.PrintMessage(index)<br />
FreeCAD.Console.PrintMessage(" | ")<br />
FreeCAD.Console.PrintMessage(bb)<br />
<br />
if bb == iBB:<br />
FreeCAD.Console.PrintMessage(" <=== found")<br />
return index<br />
<br />
return -1<br />
<br />
# ####################################################################<br />
def makeTNP():<br />
<br />
# set key<br />
key = round(s2.Shape.BoundBox.Center[2], precision)<br />
<br />
# resize and cause TNP<br />
s1.setDatum(9, FreeCAD.Units.Quantity('350'))<br />
<br />
# recompute<br />
s1.recompute()<br />
p1.recompute()<br />
ad.recompute()<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Stored key:"+str(key))<br />
FreeCAD.Console.PrintMessage("\n")<br />
<br />
# search all faces for solution<br />
solutionIndex = getFaceIndex(p1, key)<br />
solution = "Face"+str(solutionIndex)<br />
<br />
FreeCAD.Console.PrintMessage("\n\n")<br />
FreeCAD.Console.PrintMessage("Solution: "+solution)<br />
<br />
# set exact face to Sketch<br />
s2.Support = (p1, (solution,))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
def moveBack():<br />
<br />
s1.setDatum(9, FreeCAD.Units.Quantity('250'))<br />
s2.Support = (p1, ('Face13',))<br />
ad.recompute()<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
# uncomment what you want<br />
makeTNP()<br />
#moveBack()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_MultiCuts&diff=1172494Macro MultiCuts2022-08-15T14:54:36Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=multiCuts<br />
|Icon=multiCuts.png<br />
|Description=This macro improve bool cut hierarchy by automatic labeling and using copies for cut.<br />
|Author=Dprojects<br />
|Date=2022-08-15<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:MultiCuts_test.gif]]<br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="multiCuts"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-15"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "https://wiki.freecadweb.org/Macro_multiCuts"<br />
__Icon__ = "multiCuts.png"<br />
__IconW__ = "multiCuts.png"<br />
__Help__ = "select base object and next objects to cut the base"<br />
__Status__ = "stable"<br />
__Requires__ = "freecad 0.20.29177"<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This macro allows to create multi bool cut operation at <br />
# selected objects. First selected object should be the base <br />
# element and all other selected will cut the base. The copies will <br />
# be created for cut, so the objects tree not change. Also there is <br />
# automatic labeling for better cut hierarchy look. This macro has <br />
# been created for special request <br />
# https://forum.freecadweb.org/viewtopic.php?f=31&t=70941 <br />
# but is also available at Woodworking workbench.<br />
#<br />
# Certified platform:<br />
# <br />
# OS: Ubuntu 22.04 LTS (XFCE/xubuntu)<br />
# Word size of FreeCAD: 64-bit<br />
# Version: 0.20.29177 (Git) AppImage<br />
# Build type: Release<br />
# Branch: (HEAD detached at 0.20)<br />
# Hash: 68e337670e227889217652ddac593c93b5e8dc94<br />
# Python 3.9.13, Qt 5.12.9, Coin 4.0.0, Vtk 9.1.0, OCC 7.5.3<br />
# Locale: English/United States (en_US)<br />
# Installed mods: <br />
# * Woodworking 0.20.29177<br />
#<br />
# https://github.com/dprojects/Woodworking<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD, FreeCADGui<br />
<br />
<br />
def multiCuts(iObjects):<br />
<br />
cuts = []<br />
<br />
i = 0<br />
for o in iObjects:<br />
<br />
i = i + 1<br />
<br />
if i == 1:<br />
base = o<br />
baseName = str(base.Name)<br />
baseLabel = str(base.Label)<br />
continue<br />
<br />
copy = FreeCAD.ActiveDocument.copyObject(o)<br />
copy.Label = "copy, " + o.Label<br />
<br />
cutName = baseName + str(i-1)<br />
cut = FreeCAD.ActiveDocument.addObject("Part::Cut", cutName)<br />
cut.Base = base<br />
cut.Tool = copy<br />
cut.Label = "Cut " + str(i-1) + ", " + baseLabel<br />
<br />
FreeCAD.activeDocument().recompute()<br />
<br />
base = cut<br />
cuts.append(cut)<br />
<br />
cut.Label = "Cut, " + baseLabel<br />
<br />
return cuts<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
multiCuts(FreeCADGui.Selection.getSelection())<br />
FreeCADGui.Selection.clearSelection()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_MultiCuts&diff=1172484Macro MultiCuts2022-08-15T14:46:33Z<p>Dprojects: </p>
<hr />
<div>{{Macro<br />
|Name=multiCuts<br />
|Icon=multiCuts.png<br />
|Description=This macro improve bool cut hierarchy by automatic labeling and using copies for cut.<br />
|Author=Dprojects<br />
|Date=2022-08-15<br />
|Version=1.0<br />
}}<br />
<br />
==Description==<br />
<br />
[[File:MultiCuts_test.gif]]<br />
<br />
==Code==<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="multiCuts"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-15"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "http://www.freecadweb.org/wiki/index.php?title=Macro_Title_Of_macro"<br />
__Icon__ = ""<br />
__IconW__ = ""<br />
__Help__ = "select objects and start the macro, first object should be the base objects, all others will cut base"<br />
__Status__ = "stable"<br />
__Requires__ = "freecad 0.20.29177"<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This macro allows to create multi bool cut operation at <br />
# selected objects. First selected object should be the base <br />
# element and all other selected will cut the base. The copies will <br />
# be created for cut, so the objects tree not change. Also there is <br />
# automatic labeling for better cut hierarchy look. This macro has <br />
# been created for special request <br />
# https://forum.freecadweb.org/viewtopic.php?f=31&t=70941 <br />
# but is also available at Woodworking workbench.<br />
#<br />
# Certified platform:<br />
# <br />
# OS: Ubuntu 22.04 LTS (XFCE/xubuntu)<br />
# Word size of FreeCAD: 64-bit<br />
# Version: 0.20.29177 (Git) AppImage<br />
# Build type: Release<br />
# Branch: (HEAD detached at 0.20)<br />
# Hash: 68e337670e227889217652ddac593c93b5e8dc94<br />
# Python 3.9.13, Qt 5.12.9, Coin 4.0.0, Vtk 9.1.0, OCC 7.5.3<br />
# Locale: English/United States (en_US)<br />
# Installed mods: <br />
# * Woodworking 0.20.29177<br />
#<br />
# https://github.com/dprojects/Woodworking<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD, FreeCADGui<br />
<br />
<br />
def multiCuts(iObjects):<br />
<br />
cuts = []<br />
<br />
i = 0<br />
for o in iObjects:<br />
<br />
i = i + 1<br />
<br />
if i == 1:<br />
base = o<br />
baseName = str(base.Name)<br />
baseLabel = str(base.Label)<br />
continue<br />
<br />
copy = FreeCAD.ActiveDocument.copyObject(o)<br />
copy.Label = "copy, " + o.Label<br />
<br />
cutName = baseName + str(i-1)<br />
cut = FreeCAD.ActiveDocument.addObject("Part::Cut", cutName)<br />
cut.Base = base<br />
cut.Tool = copy<br />
cut.Label = "Cut " + str(i-1) + ", " + baseLabel<br />
<br />
FreeCAD.activeDocument().recompute()<br />
<br />
base = cut<br />
cuts.append(cut)<br />
<br />
cut.Label = "Cut, " + baseLabel<br />
<br />
return cuts<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
multiCuts(FreeCADGui.Selection.getSelection())<br />
FreeCADGui.Selection.clearSelection()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=File:MultiCuts_test.gif&diff=1172473File:MultiCuts test.gif2022-08-15T14:39:42Z<p>Dprojects: </p>
<hr />
<div></div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=1172431Macros recipes2022-08-15T14:28:35Z<p>Dprojects: new macro, my first wiki page ;-)</p>
<hr />
<div><languages/><br />
<br />
{|class="fcinfobox wikitable ct" height=100% style="width: 230px; float: right; margin-left: 1em" |<br />
| class="ctTitle" style="font-weight: bold; font-size: 125%;" | [[Image:Text-x-python.png|32px]] Macros<br />
|-<br />
| class="ctToc"|<br/>__TOC__<br />
|}<br />
<translate><br />
<br />
<!--T:95--><br />
This page lists [[Macros|macros]] that can add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you have written a macro and want to include it in one of the categories on this page, then go to [[Macro_documentation|Macro documentation]] to learn more about properly documenting a macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg|32px]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:170--><br />
* {{MacroLink|Icon=Macro_Align_Face_Object_to_View.png|Macro_Align_Face_Object_to_View|Macro Align Face Object to View}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:171--><br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro_Align_View_to_Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:172--><br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro_Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard.<br />
<br />
<!--T:173--><br />
* {{MacroLink|Icon=FCCamera_00.png|Macro_FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
<br />
<!--T:174--><br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro_Mouse_Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
<br />
<!--T:175--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro_Rotate_View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
<br />
<!--T:176--><br />
* {{MacroLink|Icon=Text_console_python.png|Macro_Rotate_View_Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
<br />
<!--T:177--><br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro_Rotate_ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in View Axonometric.<br />
<br />
<!--T:178--><br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro Screen Wiki}}: This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions.<br />
<br />
<!--T:179--><br />
* {{MacroLink|Icon=Snip.png|Macro_Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
<br />
<!--T:180--><br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro_View_Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
<br />
<!--T:181--><br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro_Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg|32px]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:182--><br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro_Animated_Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
<br />
<!--T:183--><br />
* {{MacroLink|Icon=Animator.svg|Macro_Animator|Macro Animator}}: Animate your model by animating its properties with this feature Python object.<br />
<br />
<!--T:184--><br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro_Assemblage_Imprimante_3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
<br />
<!--T:185--><br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro_Assembly|Macro Assembly}}: Assembly animate.<br />
<br />
<!--T:186--><br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro_Constraint_Draft|Macro Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
<!--T:187--><br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro_crank_simul|Macro crank simul}}: Rotation rod and piston.<br />
<br />
<!--T:188--><br />
* {{MacroLink|Icon=Macro_hinge.png|Macro_hinge|Macro hinge}}: Open and close hinge.<br />
<br />
<!--T:189--><br />
* {{MacroLink|Icon=Macro_Spring.png|Macro_Spring|Macro Spring}}: Simulation of one spring.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg|32px]] Code and scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:190--><br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro_Build_Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
<br />
<!--T:191--><br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro_clone_explicit|Macro clone explicit}}: Creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
<br />
<!--T:192--><br />
* {{MacroLink|Icon=Editor_Assistant_Icon.svg|Macro_Editor_Assistant|Macro Editor Assistant}}: Extends the capabilities of FreeCAD's integrated Python editor.<br />
<br />
<!--T:193--><br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro_Global_Variable_Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
<br />
<!--T:194--><br />
* {{MacroLink|Icon=Macro_MessageBox.png|Macro_MessageBox|Macro MessageBox}}: Shows how to give information to the user through the GUI.<br />
<br />
<!--T:195--><br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro_Print_SceneGraph|Macro Print SceneGraph}}: Prints the SceneGraph.<br />
<br />
<!--T:196--><br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro_Python_Assistant_Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
<br />
</translate><br />
<!--THIS MACRO "Macro ZTest Over 128" SHOULD NOT BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro_ZTest_Over_128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
<translate><br />
<br />
<!--T:197--><br />
* {{MacroLink|Icon=MEPlan.png|Qt_Example|Qt Example}}: Example of using Qt commands, their connections, extraction and data assignment.<br />
<br />
<!--T:198--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: Inspection tool for FreeCAD macro development and project debug.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg|32px]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:199--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
<br />
<!--T:200--><br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draft command set in a small macro for the 2D sketch example: work with the DXF files.<br />
<br />
<!--T:201--><br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro_Creating_faces_from_a_DXF_file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
<br />
<!--T:202--><br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
<br />
<!--T:203--><br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro_DXF_to_Face_and_Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported DXF file to face and sketch.<br />
<br />
<!--T:204--><br />
* {{MacroLink|Icon=Macro_Dxf_To_Shape.png|Macro_Dxf_To_Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve.<br />
<br />
<!--T:205--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro_Extract_Wires_from_Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes.<br />
<br />
<!--T:206--><br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro_FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
<br />
<!--T:207--><br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro_FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
<br />
<!--T:208--><br />
* {{MacroLink|Icon=Macro_FCWire_To_Volume.png|Macro_FCWire_To_Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create".<br />
<br />
<!--T:209--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Iges_PyImporter|Macro Iges PyImporter}}: Imports an iges file with entity 128, for example an iges-file from FreeShip, into FreeCAD.<br />
<br />
<!--T:210--><br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro_MeshToPart|Macro MeshToPart}}: Converts selected meshes to parts.<br />
<br />
<!--T:211--><br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
<br />
<!--T:212--><br />
* {{MacroLink|Icon=PartToVRML.png|Macro_PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Draft.svg|32px]] Draft Workbench and 2D=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:213--><br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro_Align_Camera_to_Working_Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft_SelectPlane|Draft Working Plane]].<br />
<br />
<!--T:214--><br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro_Align_Working_Plane_to_Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft_SelectPlane|Draft Working Plane]] to the center of the current view.<br />
<br />
<!--T:215--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points|Macro Draft Circle 3 Points}}: Creates a circle from 3 selected points 2D orthogonal.<br />
<br />
<!--T:216--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points_3D|Macro Draft Circle 3 Points 3D}}: Creates a circle from 3 selected points in the space 3D.<br />
<br />
<!--T:217--><br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro_EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
<br />
<!--T:218--><br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro_Ellipse-Center+2Points|Macro Ellipse-Center+2Points}}: Makes an ellipse by selecting three points (in this order): center, major radius and minor radius.<br />
<br />
<!--T:219--><br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro_FCConvertLines|Macro FC Convert Lines}}: This macro convert the object line, wire in line Dash, DashDot, DashDotDot, ZigZag and Hand with the dimensions given.<br />
<br />
<!--T:220--><br />
* {{MacroLink|Icon=Macro_Make_Arc_3_Points.png|Macro_Make_Arc_3_Points|Macro Make Arc 3 Points}}: Creates a arc from 3 selected points.<br />
<br />
<!--T:221--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Make_Circle_3_Points|Macro Make Circle 3 Points}}: Creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
<br />
<!--T:222--><br />
* {{MacroLink|Icon=Macro_Rectellipse.png|Macro_Rectellipse|Macro Rectellipse}}: Creates a parametric rectellipse.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg|32px]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:223--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro_Automatic_drawing|Macro Automatic drawing}}: Allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective.<br />
<br />
<!--T:224--><br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro_CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:225--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro_CartoucheFC_2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
<br />
<!--T:226--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro_CartoucheFC_Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|Misc templates Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:227--><br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro_Normal_Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_FEM.svg|32px]] Fem Workbench=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:228--><br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing.<br />
<br />
<!--T:229--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro_GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_Windows.svg|32px]] Gui=== <!--T:230--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:231--><br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro_GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
<br />
<!--T:232--><br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro_MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD.<br />
<br />
<!--T:233--><br />
* {{MacroLink|Macro_SplitPropEditor|Macro SplitPropEditor}}: Temporarily split the property editor from the combo view to a separated dock widget.<br />
<br />
<!--T:234--><br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro_Toggle_Panels_Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Linear.svg|32px]] Info and measurements=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:235--><br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro_BoundingBox_Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles.<br />
<br />
<!--T:236--><br />
* {{MacroLink|Icon=CenterFace.png|Macro_CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates.<br />
<br />
<!--T:237--><br />
* {{MacroLink|Icon=Macro_CenterOfMass.png|Macro_CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
<br />
<!--T:238--><br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro_cross_section|Macro cross section}}: Displays an interactively slidable cross-section.<br />
<br />
<!--T:239--><br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro_Delta_xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points.<br />
<br />
<!--T:240--><br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro_Dump_Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
<br />
<!--T:241--><br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro_FC_element_selector|Macro FC element selector}}: This macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed).<br />
<br />
<!--T:242--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units.<br />
<br />
<!--T:243--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo_Alternate_Linux|Macro FCInfo Alternate Linux}}: Same as above, but for Linux (obsolete).<br />
<br />
<!--T:244--><br />
* {{MacroLink|Icon=FCInfoToolBar.png|Macro_FCInfo_ToolBar|Macro FCInfo ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar.<br />
<br />
<!--T:245--><br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro_FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D.<br />
<br />
<!--T:246--><br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro_FCInfoToMouse|Macro FCInfoToMouse}}: Provides informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen.<br />
<br />
<!--T:247--><br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
<br />
<!--T:248--><br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro_HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
<br />
<!--T:249--><br />
* {{MacroLink|Icon=HighlightDifference.png|Macro_HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
<br />
<!--T:250--><br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro_MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
<br />
<!--T:251--><br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro_Mouse_over_cb|Macro Mouse over cb}}: This macro display all elements below cursor (elements covered by other elements will also be displayed).<br />
<br />
<!--T:252--><br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro_ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user.<br />
<br />
<!--T:381--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/showSpaceModel.py Macro showSpaceModel]: Allows to calculate occupied space in 3D by the full model.<br />
<br />
<!--T:382--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/showSpaceSelected.py Macro showSpaceSelected]: Allows to calculate occupied space in 3D by all selected elements.<br />
<br />
<!--T:253--><br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro_SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg|32px]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:254--><br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro_BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
<br />
<!--T:255--><br />
* {{MacroLink|Icon=FreeCAD_Doc.png|Macro_PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser.<br />
<br />
<!--T:256--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro_screw_maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg|32px]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:257--><br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro_3D_Parametric_Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
<br />
<!--T:258--><br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro_Draw_2D_Function|Macro Draw 2D Function}}: Draws a function described by an equation z=F(x).<br />
<br />
<!--T:259--><br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro_Draw_Parametric_2D_Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar.<br />
<br />
<!--T:260--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro_Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature Python update of Macro 3D Parametric Curve.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Primitives.svg|32px]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:261--><br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
<!--T:262--><br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro_Airfoil_Import_&_Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
<br />
<!--T:263--><br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro_Apothem_Based_Prism_GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
<br />
<!--T:385--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_BSurf_from_grid|Macro BSurf from grid}}: Makes a B-spline surface through a grid of points.<br />
<br />
<!--T:264--><br />
* {{MacroLink|Icon=Macro_Circle.png|Macro_circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
<br />
<!--T:265--><br />
* {{MacroLink|Icon=Macro_CirclePlus.png|Macro_CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
<br />
<!--T:266--><br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro_Cut_Circle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
<br />
<!--T:267--><br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro_Cut_Line|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
<br />
<!--T:268--><br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro_FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
<br />
<!--T:269--><br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro FCCircularText}}: This macro create a text around a cylinder.<br />
<br />
<!--T:270--><br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro_FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
<br />
<!--T:271--><br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro_FCSpring_Helix_Variable|Macro FCSpring Helix Variable}}: This macro creates one spring truncate, the troncature is adjustable on the all coil to choice.<br />
<br />
<!--T:272--><br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring_On_Surface|Macro FCSpring On Surface}}: This macro creates one spring (helix) on the surface of the object (solide).<br />
<br />
<!--T:274--><br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro_Geodesic_Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell.<br />
<br />
<!--T:275--><br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro_Guitar_fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker.<br />
<br />
<!--T:276--><br />
* {{MacroLink|Icon=Macro_Guitar_Nut.png|Macro_Guitar_Nut|Macro Guitar Nut}}: Guitar Nut Maker.<br />
<br />
<!--T:361--><br />
* {{MacroLink|Icon=Macro_Half_turn_stairs.png|Macro_Half_turn_stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
<br />
<!--T:362--><br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro_Half-Hull_Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
<br />
<!--T:277--><br />
* {{MacroLink|Icon=Hilbert_curve_icon.png|Macro_HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
<br />
<!--T:278--><br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature Python Honeycomb object compatible in and out of PartDesign.<br />
<br />
<!--T:279--><br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch.<br />
<br />
<!--T:280--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro_Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature Python object containing the shape of the intersection.<br />
<br />
<!--T:281--><br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro_Line_Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y.<br />
<br />
<!--T:273--><br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro_Loft|Macro Loft}}: Create a loft with a list of wire (specially created for [[Macro_Texture|Macro Texture]]).<br />
<br />
<!--T:282--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro_Make_Cube|Macro Make Cube}}: Creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points.<br />
<br />
<!--T:283--><br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro_Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
<br />
<!--T:284--><br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro_Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
<br />
<!--T:285--><br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro_Repro_Wire|Macro Repro Wire}}: This macro reproduces all element selected subobject wire or face.<br />
<br />
<!--T:286--><br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro_Site_From_Contours|Macro Site From Contours}}: Creates an Arch Site from a series of contour lines.<br />
<br />
<!--T:287--><br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro_Solid_Sweep|Macro Solid Sweep}}: Creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
<br />
<!--T:367--><br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro_Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
<br />
<!--T:288--><br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro_Triangle_AH|Macro Triangle AH}}: This macro creates a triangle by giving the head angle and the height of the triangle (the head of the triangle is positioned to the xyz coordinates 0.0).<br />
<br />
<!--T:289--><br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro_WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_TransformManip.svg|32px]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:290--><br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro_Align_Object_to_View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
<br />
<!--T:291--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro_ArrayCopy|Macro ArrayCopy}}: Copies the selected object several times, on an array grid.<br />
<br />
<!--T:292--><br />
* {{MacroLink|Icon=Bevel.svg|Macro_Bevel|Macro Bevel}}: Bevels selected vertices, creates parametric feature Python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
<br />
<!--T:293--><br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro_Center_Align_Objects_with_Faces_or_Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: Concentric constraint among non cylindrical parts; and Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
<br />
<!--T:294--><br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro_CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
<br />
<!--T:295--><br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro_Connect_And_Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
<br />
<!--T:296--><br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro_FlattenWire|Macro FlattenWire}}: Flattens draft wires that are not planar to their median Z coordinate.<br />
<br />
<!--T:297--><br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro_FlattenWire3Points|Macro FlattenWire3Points}}: Flattens draft wires that are not planar to a plane defined by 3 points.<br />
<br />
<!--T:298--><br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro_HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
<br />
<!--T:299--><br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro_Image_Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
<br />
<!--T:300--><br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro_JointWire|Macro JointWire}}: Allows to find and joint all non connected edge to the closest non connected one using a line.<br />
<br />
<!--T:383--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/magicAngle.py Macro magicAngle]: Small GUI for the Draft.rotate function. Allows to rotate panels and even other more complicated objects, like construction profiles.<br />
<br />
<!--T:301--><br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro_MatrixTransform|Macro MatrixTransform}}: Apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
<br />
<!--T:302--><br />
* {{MacroLink|Icon=Centericon.png|Macro_MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
<br />
<!--T:303--><br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro_Overlap|Macro Overlap}}: Boolean operation. Similar to [[Part_Common|Part Common]], but with custom overlap count threshold (parametric).<br />
<br />
<!--T:304--><br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro_Parametric_Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
<br />
<!--T:305--><br />
* {{MacroLink|Icon=Macro_Perpendicular_To_Wire.png|Macro_Perpendicular_To_Wire|Macro Perpendicular To Wire}}: This macro positions an object perpendicularl to a selected wire.<br />
<br />
<!--T:306--><br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro_PlacementAbsolufy|Macro PlacementAbsolufy}}: Reset Part containers to global origin while maintaining objects absolute position.<br />
<br />
<!--T:307--><br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro_Remove_parametric_history|Macro Remove parametric history}}: Removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
<br />
<!--T:308--><br />
* {{MacroLink|Icon=Macro_Rotate_To_Point.png|Macro_Rotate_To_Point|Macro Rotate To Point}}: Macro to rotate an object around the center of its boundbox, its center of mass, or the last clicked point.<br />
<br />
<!--T:309--><br />
* {{MacroLink|Icon=Part_Section.png|Macro_Section|Macro Section}}: Alternative implementation of Part Section tool, more suitable for making sweep paths (parametric).<br />
<br />
<!--T:310--><br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro_StraightenObject|Macro StraightenObject}}: Re-align object(s) with FreeCAD coordinate system according reference face/edge.<br />
<br />
<!--T:311--><br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro_SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
<br />
<!--T:312--><br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
<br />
<!--T:313--><br />
* {{MacroLink|Icon=multiCuts.png|Macro_multiCuts|multiCuts}}: This macro improves bool cut hierarchy by automatic labeling and using copies for cut.<br />
<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Part_FaceColors.svg|32px]] Object visibility, view properties and textures === <!--T:313--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:314--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/colorManager.py colorManager]: Allows to set face colors for all objects from a spreadsheet. Also you can browse colors for a manually selected face or object and see the effect in the 3D model in real-time.<br />
<br />
<!--T:315--><br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
<!--T:316--><br />
* {{MacroLink|Icon=Macro_HiddenAlls.png|Macro_HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
<br />
<!--T:317--><br />
* {{MacroLink|Icon=FCTexture.png|Macro_Texture|Macro Texture}}: Create a project from a bmp image to create a texture easily.<br />
<br />
<!--T:318--><br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro_Texture_Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
<br />
<!--T:319--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro_Toggle_Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object.<br />
<br />
<!--T:320--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro_Toggle_Drawstyle_Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same as Macro Toggle Drawstyle above but optimized for all languages).<br />
<br />
<!--T:321--><br />
* {{MacroLink|Icon=Macro_SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
<br />
<!--T:322--><br />
* {{MacroLink|Icon=Macro_SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:323--><br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:324--><br />
* {{MacroLink|Icon=Macro_VisibleAlls.png|Macro_VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
<br />
<!--T:325--><br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro Visibility Manager}}: Manage visibility of document objects by type or individually.<br />
<br />
<!--T:326--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/setTextures setTextures]: Allows to permanently store the URL of textures in a FreeCAD project and load stored textures.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg|32px]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro_PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg|32px]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:327--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro_3d_Printer_Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
<br />
<!--T:328--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slicer by changing the SLICERAPP variable in the source code.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg|32px]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro_FreeCAD_to_Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg|32px]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:329--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro_Alias_Manager|Macro Alias Manager}}: Helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
<br />
<!--T:330--><br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro_EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
<br />
<!--T:331--><br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro_FCSpreadSheet_Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
<br />
<!--T:332--><br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro_SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
<br />
<!--T:333--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
<br />
<!--T:334--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/sheet2export sheet2export]: Allows to export FreeCAD spreadsheet to file formats (.md, .html, .csv, .json).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg|32px]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:335--><br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro_Arch_Axis_System_Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a set of parameters.<br />
<br />
<!--T:336--><br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro_Duplicate_Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate, select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
<br />
<!--T:337--><br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro_Easy_cutouts_for_Enclosure_Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way.<br />
<br />
<!--T:338--><br />
* {{MacroLink|Icon=Macro_ExpandTreeItem.png|Macro_ExpandTreeItem|Macro ExpandTreeItem}}: This macro expand selected items in the tree view. If not selection all item are expand/collapse.<br />
<br />
<!--T:339--><br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro_findConfigFiles|Macro findConfigFiles}}: Finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
<br />
<!--T:340--><br />
* {{MacroLink|Icon=Force_Recompute.png|Macro_ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model.<br />
<br />
<!--T:341--><br />
* {{MacroLink|Icon=Macro_If_Selected_Stay_If_Not_Then_Delete.png|Macro_If_Selected_Stay_If_Not_Then_Delete|Macro If Selected Stay If Not Then Delete}}: All object not selected are deleted!<br />
<br />
<!--T:342--><br />
* {{MacroLink|Macro_ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views.<br />
<br />
<!--T:343--><br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro_merge_duplicate_materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
<br />
<!--T:384--><br />
* {{MacroLink|Icon=Pcbway.png|Macro_PCBWay|Macro PCBWay}}: Sends a selected object to [https://pcbway.com PCBWay] for manufacturing through CNC milling, laser cutting or 3D printing.<br />
<br />
<!--T:344--><br />
* {{MacroLink|Icon=Pinger_Icon.svg|Macro_Pinger|Macro Pinger}}: Ping users on the forum with ease.<br />
<br />
<!--T:345--><br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro_Recompute_Profiler|Macro Recompute Profiler}}: Measures time it takes to recompute each object in a project.<br />
<br />
<!--T:346--><br />
* {{MacroLink|Icon=Replace_Part.png|Macro_Replace_Part_in_Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
<br />
<!--T:347--><br />
* {{MacroLink|Icon=Macro_Select_Hovering.png|Macro_Select_Hovering|Macro Select Hovering}}: This macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
<br />
<!--T:348--><br />
* {{MacroLink|Icon=SelectVisible.png|Macro_SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
<br />
<!--T:349--><br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro_Shake_Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
<br />
<!--T:350--><br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro_SketchUnmap|Macro SketchUnmap}}: Unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
<br />
<!--T:351--><br />
* {{MacroLink|Macro_TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document.<br />
<br />
<!--T:352--><br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro_Unbind_Numpad_Shortcuts|Macro Unbind Numpad Shortcuts}}: Rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
<br />
<!--T:353--><br />
* {{MacroLink|Icon=WF_wf.png|Macro_WorkFeatures|Macro WorkFeatures}}: Tool utility to create points, axes, planes and many other useful features to facilitate the creation of your project.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg|32px]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:354--><br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: Pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece.<br />
<br />
<!--T:355--><br />
* {{MacroLink|Icon=Gearworkbech.png|Macro_FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
<br />
<!--T:356--><br />
* {{MacroLink|Icon=Macro_Fonts_Win10_PYMP.png|Macro_Fonts_Win10_PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the [[Draft_ShapeString|ShapeString]] is empty and this little macro can help you see easily the font to use.<br />
<br />
<!--T:357--><br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
<br />
<!--T:358--><br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
<br />
<!--T:359--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
<br />
<!--T:360--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel_GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
<br />
<!--T:363--><br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro_Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
<br />
<!--T:364--><br />
* {{MacroLink|Icon=PropertyMemo.png|Macro_PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft).<br />
<br />
<!--T:365--><br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro_Rubik_Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
<br />
<!--T:366--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro_Sheet_Metal_Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
<br />
<!--T:368--><br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro_Unfold_Box|Macro Unfold Box}}: Allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
<br />
<!--T:369--><br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro_Unroll_Ruled_Surface|Macro Unroll Ruled Surface}}: Allows to unroll ruled surfaces and to draw them on a page.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Arch_Equipment.svg|32px]] Woodworking === <!--T:168--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:370--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions getDimensions]: FreeCAD macro to get chipboards dimensions to cut (BOM, cutlist).<br />
<br />
<!--T:371--><br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro_Cabinets32|Macro Cabinets32}}: Creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
<br />
<!--T:372--><br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: Creates a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
<br />
<!--T:373--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/makeTransparent.py makeTransparent]: Switches all parts from non-transparent to transparent, and back, allowing you to preview pilot holes, countersinks and other joints.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:374--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
<br />
<!--T:375--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : FreeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
<br />
<!--T:376--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: Flamingo (workbench for metal structures).<br />
<br />
<!--T:377--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 Workbench, and more.<br />
<br />
<!--T:378--><br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
<br />
<!--T:379--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: Workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
<br />
<!--T:380--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=File:MultiCuts.png&diff=1172424File:MultiCuts.png2022-08-15T14:23:07Z<p>Dprojects: </p>
<hr />
<div></div>Dprojectshttps://wiki.freecad.org/index.php?title=Macro_MultiCuts&diff=1172421Macro MultiCuts2022-08-15T14:22:11Z<p>Dprojects: init page</p>
<hr />
<div>{{Macro<br />
|Name=multiCuts<br />
|Icon=multiCuts.png<br />
|Description=This macro improve bool cut hierarchy by automatic labeling and using copies for cut.<br />
|Author=Dprojects<br />
|Date=2022-08-15<br />
|Version=1.0<br />
}}<br />
<br />
<br />
{{MacroCode|code=<br />
<br />
__Title__="multiCuts"<br />
__Author__ = "Dprojects"<br />
__Version__ = "1.0"<br />
__Date__ = "2022-08-15"<br />
__Comment__ = ""<br />
__Web__ = "https://github.com/dprojects/Woodworking"<br />
__Wiki__ = "http://www.freecadweb.org/wiki/index.php?title=Macro_Title_Of_macro"<br />
__Icon__ = ""<br />
__IconW__ = ""<br />
__Help__ = "select objects and start the macro, first object should be the base objects, all others will cut base"<br />
__Status__ = "stable"<br />
__Requires__ = "freecad 0.20.29177"<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:Dprojects"<br />
<br />
# ####################################################################<br />
#<br />
# This macro allows to create multi bool cut operation at <br />
# selected objects. First selected object should be the base <br />
# element and all other selected will cut the base. The copies will <br />
# be created for cut, so the objects tree not change. Also there is <br />
# automatic labeling for better cut hierarchy look. This macro has <br />
# been created for special request <br />
# https://forum.freecadweb.org/viewtopic.php?f=31&t=70941 <br />
# but is also available at Woodworking workbench.<br />
#<br />
# Certified platform:<br />
# <br />
# OS: Ubuntu 22.04 LTS (XFCE/xubuntu)<br />
# Word size of FreeCAD: 64-bit<br />
# Version: 0.20.29177 (Git) AppImage<br />
# Build type: Release<br />
# Branch: (HEAD detached at 0.20)<br />
# Hash: 68e337670e227889217652ddac593c93b5e8dc94<br />
# Python 3.9.13, Qt 5.12.9, Coin 4.0.0, Vtk 9.1.0, OCC 7.5.3<br />
# Locale: English/United States (en_US)<br />
# Installed mods: <br />
# * Woodworking 0.20.29177<br />
#<br />
# https://github.com/dprojects/Woodworking<br />
#<br />
# MIT License<br />
# <br />
# Copyright (c) 2022 Darek L github.com/dprojects<br />
# <br />
# Permission is hereby granted, free of charge, to any <br />
# person obtaining a copy of this software and associated <br />
# documentation files (the "Software"), to deal in the <br />
# Software without restriction, including without limitation <br />
# the rights to use, copy, modify, merge, publish, distribute, <br />
# sublicense, and/or sell copies of the Software, and to permit <br />
# persons to whom the Software is furnished to do so, subject <br />
# to the following conditions:<br />
# <br />
# The above copyright notice and this permission notice shall <br />
# be included in all copies or substantial portions of the Software.<br />
# <br />
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, <br />
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES <br />
# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND <br />
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT <br />
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, <br />
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, <br />
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER <br />
# DEALINGS IN THE SOFTWARE.<br />
# <br />
# ####################################################################<br />
<br />
import FreeCAD, FreeCADGui<br />
<br />
<br />
def multiCuts(iObjects):<br />
<br />
cuts = []<br />
<br />
i = 0<br />
for o in iObjects:<br />
<br />
i = i + 1<br />
<br />
if i == 1:<br />
base = o<br />
baseName = str(base.Name)<br />
baseLabel = str(base.Label)<br />
continue<br />
<br />
copy = FreeCAD.ActiveDocument.copyObject(o)<br />
copy.Label = "copy, " + o.Label<br />
<br />
cutName = baseName + str(i-1)<br />
cut = FreeCAD.ActiveDocument.addObject("Part::Cut", cutName)<br />
cut.Base = base<br />
cut.Tool = copy<br />
cut.Label = "Cut " + str(i-1) + ", " + baseLabel<br />
<br />
FreeCAD.activeDocument().recompute()<br />
<br />
base = cut<br />
cuts.append(cut)<br />
<br />
cut.Label = "Cut, " + baseLabel<br />
<br />
return cuts<br />
<br />
# ####################################################################<br />
# main<br />
# ####################################################################<br />
<br />
multiCuts(FreeCADGui.Selection.getSelection())<br />
FreeCADGui.Selection.clearSelection()<br />
<br />
# ####################################################################<br />
<br />
}}</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=1162496Macros recipes2022-07-13T12:07:13Z<p>Dprojects: more accurate naming</p>
<hr />
<div><languages/><br />
<br />
{|class="fcinfobox wikitable ct" height=100% style="width: 230px; float: right; margin-left: 1em" |<br />
| class="ctTitle" style="font-weight: bold; font-size: 125%;" | [[Image:Text-x-python.png|32px]] Macros<br />
|-<br />
| class="ctToc"|<br/>__TOC__<br />
|}<br />
<translate><br />
<br />
<!--T:95--><br />
This page lists [[Macros|macros]] that can add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you have written a macro and want to include it in one of the categories on this page, then go to [[Macro_documentation|Macro documentation]] to learn more about properly documenting a macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg|32px]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:170--><br />
* {{MacroLink|Icon=Macro_Align_Face_Object_to_View.png|Macro_Align_Face_Object_to_View|Macro Align Face Object to View}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:171--><br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro_Align_View_to_Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:172--><br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro_Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard.<br />
<br />
<!--T:173--><br />
* {{MacroLink|Icon=FCCamera_00.png|Macro_FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
<br />
<!--T:174--><br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro_Mouse_Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
<br />
<!--T:175--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro_Rotate_View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
<br />
<!--T:176--><br />
* {{MacroLink|Icon=Text_console_python.png|Macro_Rotate_View_Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
<br />
<!--T:177--><br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro_Rotate_ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in View Axonometric.<br />
<br />
<!--T:178--><br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro Screen Wiki}}: This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions.<br />
<br />
<!--T:179--><br />
* {{MacroLink|Icon=Snip.png|Macro_Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
<br />
<!--T:180--><br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro_View_Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
<br />
<!--T:181--><br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro_Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg|32px]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:182--><br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro_Animated_Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
<br />
<!--T:183--><br />
* {{MacroLink|Icon=Animator.svg|Macro_Animator|Macro Animator}}: Animate your model by animating its properties with this feature Python object.<br />
<br />
<!--T:184--><br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro_Assemblage_Imprimante_3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
<br />
<!--T:185--><br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro_Assembly|Macro Assembly}}: Assembly animate.<br />
<br />
<!--T:186--><br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro_Constraint_Draft|Macro Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
<!--T:187--><br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro_crank_simul|Macro crank simul}}: Rotation rod and piston.<br />
<br />
<!--T:188--><br />
* {{MacroLink|Icon=Macro_hinge.png|Macro_hinge|Macro hinge}}: Open and close hinge.<br />
<br />
<!--T:189--><br />
* {{MacroLink|Icon=Macro_Spring.png|Macro_Spring|Macro Spring}}: Simulation of one spring.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg|32px]] Code and scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:190--><br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro_Build_Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
<br />
<!--T:191--><br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro_clone_explicit|Macro clone explicit}}: Creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
<br />
<!--T:192--><br />
* {{MacroLink|Icon=Editor_Assistant_Icon.svg|Macro_Editor_Assistant|Macro Editor Assistant}}: Extends the capabilities of FreeCAD's integrated Python editor.<br />
<br />
<!--T:193--><br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro_Global_Variable_Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
<br />
<!--T:194--><br />
* {{MacroLink|Icon=Macro_MessageBox.png|Macro_MessageBox|Macro MessageBox}}: Shows how to give information to the user through the GUI.<br />
<br />
<!--T:195--><br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro_Print_SceneGraph|Macro Print SceneGraph}}: Prints the SceneGraph.<br />
<br />
<!--T:196--><br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro_Python_Assistant_Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
<br />
</translate><br />
<!--THIS MACRO "Macro ZTest Over 128" SHOULD NOT BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro_ZTest_Over_128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
<translate><br />
<br />
<!--T:197--><br />
* {{MacroLink|Icon=MEPlan.png|Qt_Example|Qt Example}}: Example of using Qt commands, their connections, extraction and data assignment.<br />
<br />
<!--T:198--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: Inspection tool for FreeCAD macro development and project debug.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg|32px]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:199--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
<br />
<!--T:200--><br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draft command set in a small macro for the 2D sketch example: work with the DXF files.<br />
<br />
<!--T:201--><br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro_Creating_faces_from_a_DXF_file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
<br />
<!--T:202--><br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
<br />
<!--T:203--><br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro_DXF_to_Face_and_Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported DXF file to face and sketch.<br />
<br />
<!--T:204--><br />
* {{MacroLink|Icon=Macro_Dxf_To_Shape.png|Macro_Dxf_To_Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve.<br />
<br />
<!--T:205--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro_Extract_Wires_from_Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes.<br />
<br />
<!--T:206--><br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro_FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
<br />
<!--T:207--><br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro_FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
<br />
<!--T:208--><br />
* {{MacroLink|Icon=Macro_FCWire_To_Volume.png|Macro_FCWire_To_Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create".<br />
<br />
<!--T:209--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Iges_PyImporter|Macro Iges PyImporter}}: Imports an iges file with entity 128, for example an iges-file from FreeShip, into FreeCAD.<br />
<br />
<!--T:210--><br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro_MeshToPart|Macro MeshToPart}}: Converts selected meshes to parts.<br />
<br />
<!--T:211--><br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
<br />
<!--T:212--><br />
* {{MacroLink|Icon=PartToVRML.png|Macro_PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Draft.svg|32px]] Draft Workbench and 2D=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:213--><br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro_Align_Camera_to_Working_Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft_SelectPlane|Draft Working Plane]].<br />
<br />
<!--T:214--><br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro_Align_Working_Plane_to_Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft_SelectPlane|Draft Working Plane]] to the center of the current view.<br />
<br />
<!--T:215--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points|Macro Draft Circle 3 Points}}: Creates a circle from 3 selected points 2D orthogonal.<br />
<br />
<!--T:216--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points_3D|Macro Draft Circle 3 Points 3D}}: Creates a circle from 3 selected points in the space 3D.<br />
<br />
<!--T:217--><br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro_EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
<br />
<!--T:218--><br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro_Ellipse-Center+2Points|Macro Ellipse-Center+2Points}}: Makes an ellipse by selecting three points (in this order): center, major radius and minor radius.<br />
<br />
<!--T:219--><br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro_FCConvertLines|Macro FC Convert Lines}}: This macro convert the object line, wire in line Dash, DashDot, DashDotDot, ZigZag and Hand with the dimensions given.<br />
<br />
<!--T:220--><br />
* {{MacroLink|Icon=Macro_Make_Arc_3_Points.png|Macro_Make_Arc_3_Points|Macro Make Arc 3 Points}}: Creates a arc from 3 selected points.<br />
<br />
<!--T:221--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Make_Circle_3_Points|Macro Make Circle 3 Points}}: Creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
<br />
<!--T:222--><br />
* {{MacroLink|Icon=Macro_Rectellipse.png|Macro_Rectellipse|Macro Rectellipse}}: Creates a parametric rectellipse.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg|32px]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:223--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro_Automatic_drawing|Macro Automatic drawing}}: Allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective.<br />
<br />
<!--T:224--><br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro_CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:225--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro_CartoucheFC_2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
<br />
<!--T:226--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro_CartoucheFC_Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|Misc templates Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:227--><br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro_Normal_Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_FEM.svg|32px]] Fem Workbench=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:228--><br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing.<br />
<br />
<!--T:229--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro_GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_Windows.svg|32px]] Gui=== <!--T:230--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:231--><br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro_GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
<br />
<!--T:232--><br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro_MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD.<br />
<br />
<!--T:233--><br />
* {{MacroLink|Macro_SplitPropEditor|Macro SplitPropEditor}}: Temporarily split the property editor from the combo view to a separated dock widget.<br />
<br />
<!--T:234--><br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro_Toggle_Panels_Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Linear.svg|32px]] Info and measurements=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:235--><br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro_BoundingBox_Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles.<br />
<br />
<!--T:236--><br />
* {{MacroLink|Icon=CenterFace.png|Macro_CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates.<br />
<br />
<!--T:237--><br />
* {{MacroLink|Icon=Macro_CenterOfMass.png|Macro_CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
<br />
<!--T:238--><br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro_cross_section|Macro cross section}}: Displays an interactively slidable cross-section.<br />
<br />
<!--T:239--><br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro_Delta_xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points.<br />
<br />
<!--T:240--><br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro_Dump_Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
<br />
<!--T:241--><br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro_FC_element_selector|Macro FC element selector}}: This macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed).<br />
<br />
<!--T:242--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units.<br />
<br />
<!--T:243--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo_Alternate_Linux|Macro FCInfo Alternate Linux}}: Same as above, but for Linux (obsolete).<br />
<br />
<!--T:244--><br />
* {{MacroLink|Icon=FCInfoToolBar.png|Macro_FCInfo_ToolBar|Macro FCInfo ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar.<br />
<br />
<!--T:245--><br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro_FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D.<br />
<br />
<!--T:246--><br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro_FCInfoToMouse|Macro FCInfoToMouse}}: Provides informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen.<br />
<br />
<!--T:247--><br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
<br />
<!--T:248--><br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro_HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
<br />
<!--T:249--><br />
* {{MacroLink|Icon=HighlightDifference.png|Macro_HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
<br />
<!--T:250--><br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro_MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
<br />
<!--T:251--><br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro_Mouse_over_cb|Macro Mouse over cb}}: This macro display all elements below cursor (elements covered by other elements will also be displayed).<br />
<br />
<!--T:252--><br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro_ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user.<br />
<br />
<!--T:253--><br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro_SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...).<br />
<br />
<!--T:381--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/showSpaceModel.py showSpaceModel]: Allows to calculate occupied space in 3D by the full model.<br />
<br />
<!--T:382--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/showSpaceSelected.py showSpaceSelected]: Allows to calculate occupied space in 3D by all selected elements.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg|32px]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:254--><br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro_BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
<br />
<!--T:255--><br />
* {{MacroLink|Icon=FreeCAD_Doc.png|Macro_PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser.<br />
<br />
<!--T:256--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro_screw_maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg|32px]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:257--><br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro_3D_Parametric_Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
<br />
<!--T:258--><br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro_Draw_2D_Function|Macro Draw 2D Function}}: Draws a function described by an equation z=F(x).<br />
<br />
<!--T:259--><br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro_Draw_Parametric_2D_Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar.<br />
<br />
<!--T:260--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro_Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature Python update of Macro 3D Parametric Curve.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Primitives.svg|32px]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:261--><br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
<!--T:262--><br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro_Airfoil_Import_&_Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
<br />
<!--T:263--><br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro_Apothem_Based_Prism_GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
<br />
<!--T:264--><br />
* {{MacroLink|Icon=Macro_Circle.png|Macro_circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
<br />
<!--T:265--><br />
* {{MacroLink|Icon=Macro_CirclePlus.png|Macro_CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
<br />
<!--T:266--><br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro_Cut_Circle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
<br />
<!--T:267--><br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro_Cut_Line|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
<br />
<!--T:268--><br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro_FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
<br />
<!--T:269--><br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro FCCircularText}}: This macro create a text around a cylinder.<br />
<br />
<!--T:270--><br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro_FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
<br />
<!--T:271--><br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro_FCSpring_Helix_Variable|Macro FCSpring Helix Variable}}: This macro creates one spring truncate, the troncature is adjustable on the all coil to choice.<br />
<br />
<!--T:272--><br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring_On_Surface|Macro FCSpring On Surface}}: This macro creates one spring (helix) on the surface of the object (solide).<br />
<br />
<!--T:273--><br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro_Loft|Macro Loft}}: Create a loft with a list of wire (specially created for [[Macro_Texture|Macro Texture]]).<br />
<br />
<!--T:274--><br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro_Geodesic_Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell.<br />
<br />
<!--T:275--><br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro_Guitar_fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker.<br />
<br />
<!--T:276--><br />
* {{MacroLink|Icon=Macro_Guitar_Nut.png|Macro_Guitar_Nut|Macro Guitar Nut}}: Guitar Nut Maker.<br />
<br />
<!--T:277--><br />
* {{MacroLink|Icon=Hilbert_curve_icon.png|Macro_HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
<br />
<!--T:278--><br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature Python Honeycomb object compatible in and out of PartDesign.<br />
<br />
<!--T:279--><br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch.<br />
<br />
<!--T:280--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro_Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature Python object containing the shape of the intersection.<br />
<br />
<!--T:281--><br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro_Line_Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y.<br />
<br />
<!--T:282--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro_Make_Cube|Macro Make Cube}}: Creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points.<br />
<br />
<!--T:283--><br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro_Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
<br />
<!--T:284--><br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro_Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
<br />
<!--T:285--><br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro_Repro_Wire|Macro Repro Wire}}: This macro reproduces all element selected subobject wire or face.<br />
<br />
<!--T:286--><br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro_Site_From_Contours|Macro Site From Contours}}: Creates an Arch Site from a series of contour lines.<br />
<br />
<!--T:287--><br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro_Solid_Sweep|Macro Solid Sweep}}: Creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
<br />
<!--T:288--><br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro_Triangle_AH|Macro Triangle AH}}: This macro creates a triangle by giving the head angle and the height of the triangle (the head of the triangle is positioned to the xyz coordinates 0.0).<br />
<br />
<!--T:289--><br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro_WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_TransformManip.svg|32px]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:290--><br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro_Align_Object_to_View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
<br />
<!--T:291--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro_ArrayCopy|Macro ArrayCopy}}: Copies the selected object several times, on an array grid.<br />
<br />
<!--T:292--><br />
* {{MacroLink|Icon=Bevel.svg|Macro_Bevel|Macro Bevel}}: Bevels selected vertices, creates parametric feature Python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
<br />
<!--T:293--><br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro_Center_Align_Objects_with_Faces_or_Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: Concentric constraint among non cylindrical parts; and Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
<br />
<!--T:294--><br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro_CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
<br />
<!--T:295--><br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro_Connect_And_Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
<br />
<!--T:296--><br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro_FlattenWire|Macro FlattenWire}}: Flattens draft wires that are not planar to their median Z coordinate.<br />
<br />
<!--T:297--><br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro_FlattenWire3Points|Macro FlattenWire3Points}}: Flattens draft wires that are not planar to a plane defined by 3 points.<br />
<br />
<!--T:298--><br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro_HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
<br />
<!--T:299--><br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro_Image_Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
<br />
<!--T:300--><br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro_JointWire|Macro JointWire}}: Allows to find and joint all non connected edge to the closest non connected one using a line.<br />
<br />
<!--T:301--><br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro_MatrixTransform|Macro MatrixTransform}}: Apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
<br />
<!--T:302--><br />
* {{MacroLink|Icon=Centericon.png|Macro_MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
<br />
<!--T:303--><br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro_Overlap|Macro Overlap}}: Boolean operation. Similar to [[Part_Common|Part Common]], but with custom overlap count threshold (parametric).<br />
<br />
<!--T:304--><br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro_Parametric_Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
<br />
<!--T:305--><br />
* {{MacroLink|Icon=Macro_Perpendicular_To_Wire.png|Macro_Perpendicular_To_Wire|Macro Perpendicular To Wire}}: This macro positions an object perpendicularl to a selected wire.<br />
<br />
<!--T:306--><br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro_PlacementAbsolufy|Macro PlacementAbsolufy}}: Reset Part containers to global origin while maintaining objects absolute position.<br />
<br />
<!--T:307--><br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro_Remove_parametric_history|Macro Remove parametric history}}: Removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
<br />
<!--T:308--><br />
* {{MacroLink|Icon=Macro_Rotate_To_Point.png|Macro_Rotate_To_Point|Macro Rotate To Point}}: Macro to rotate an object around the center of its boundbox, its center of mass, or the last clicked point.<br />
<br />
<!--T:309--><br />
* {{MacroLink|Icon=Part_Section.png|Macro_Section|Macro Section}}: Alternative implementation of Part Section tool, more suitable for making sweep paths (parametric).<br />
<br />
<!--T:310--><br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro_StraightenObject|Macro StraightenObject}}: Re-align object(s) with FreeCAD coordinate system according reference face/edge.<br />
<br />
<!--T:311--><br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro_SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
<br />
<!--T:312--><br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
<br />
<!--T:383--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/magicAngle.py magicAngle]: Small GUI for Draft.rotate function. Allows to rotate panels and even other more complicated objects, like construction profiles.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Part_FaceColors.svg|32px]] Object visibility, view properties and textures === <!--T:313--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:314--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/colorManager.py colorManager]: Allows to set face colors for all objects from a spreadsheet. Also you can browse colors for a manually selected face or object and see the effect in the 3D model in real-time.<br />
<br />
<!--T:315--><br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
<!--T:316--><br />
* {{MacroLink|Icon=Macro_HiddenAlls.png|Macro_HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
<br />
<!--T:317--><br />
* {{MacroLink|Icon=FCTexture.png|Macro_Texture|Macro Texture}}: Create a project from a bmp image to create a texture easily.<br />
<br />
<!--T:318--><br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro_Texture_Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
<br />
<!--T:319--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro_Toggle_Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object.<br />
<br />
<!--T:320--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro_Toggle_Drawstyle_Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same as Macro Toggle Drawstyle above but optimized for all languages).<br />
<br />
<!--T:321--><br />
* {{MacroLink|Icon=Macro_SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
<br />
<!--T:322--><br />
* {{MacroLink|Icon=Macro_SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:323--><br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:324--><br />
* {{MacroLink|Icon=Macro_VisibleAlls.png|Macro_VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
<br />
<!--T:325--><br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro Visibility Manager}}: Manage visibility of document objects by type or individually.<br />
<br />
<!--T:326--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/setTextures setTextures]: Allows to permanently store the URL of textures in a FreeCAD project and load stored textures.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg|32px]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro_PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg|32px]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:327--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro_3d_Printer_Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
<br />
<!--T:328--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slicer by changing the SLICERAPP variable in the source code.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg|32px]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro_FreeCAD_to_Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg|32px]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:329--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro_Alias_Manager|Macro Alias Manager}}: Helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
<br />
<!--T:330--><br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro_EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
<br />
<!--T:331--><br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro_FCSpreadSheet_Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
<br />
<!--T:332--><br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro_SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
<br />
<!--T:333--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
<br />
<!--T:334--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/sheet2export sheet2export]: Allows to export FreeCAD spreadsheet to file formats (.md, .html, .csv, .json).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg|32px]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:335--><br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro_Arch_Axis_System_Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a set of parameters.<br />
<br />
<!--T:336--><br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro_Duplicate_Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate, select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
<br />
<!--T:337--><br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro_Easy_cutouts_for_Enclosure_Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way.<br />
<br />
<!--T:338--><br />
* {{MacroLink|Icon=Macro_ExpandTreeItem.png|Macro_ExpandTreeItem|Macro ExpandTreeItem}}: This macro expand selected items in the tree view. If not selection all item are expand/collapse.<br />
<br />
<!--T:339--><br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro_findConfigFiles|Macro findConfigFiles}}: Finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
<br />
<!--T:340--><br />
* {{MacroLink|Icon=Force_Recompute.png|Macro_ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model.<br />
<br />
<!--T:341--><br />
* {{MacroLink|Icon=Macro_If_Selected_Stay_If_Not_Then_Delete.png|Macro_If_Selected_Stay_If_Not_Then_Delete|Macro If Selected Stay If Not Then Delete}}: All object not selected are deleted!<br />
<br />
<!--T:342--><br />
* {{MacroLink|Macro_ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views.<br />
<br />
<!--T:343--><br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro_merge_duplicate_materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
<br />
<!--T:344--><br />
* {{MacroLink|Icon=Pinger_Icon.svg|Macro_Pinger|Macro Pinger}}: Ping users on the forum with ease.<br />
<br />
<!--T:345--><br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro_Recompute_Profiler|Macro Recompute Profiler}}: Measures time it takes to recompute each object in a project.<br />
<br />
<!--T:346--><br />
* {{MacroLink|Icon=Replace_Part.png|Macro_Replace_Part_in_Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
<br />
<!--T:347--><br />
* {{MacroLink|Icon=Macro_Select_Hovering.png|Macro_Select_Hovering|Macro Select Hovering}}: This macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
<br />
<!--T:348--><br />
* {{MacroLink|Icon=SelectVisible.png|Macro_SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
<br />
<!--T:349--><br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro_Shake_Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
<br />
<!--T:350--><br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro_SketchUnmap|Macro SketchUnmap}}: Unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
<br />
<!--T:351--><br />
* {{MacroLink|Macro_TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document.<br />
<br />
<!--T:352--><br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro_Unbind_Numpad_Shortcuts|Macro Unbind Numpad Shortcuts}}: Rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
<br />
<!--T:353--><br />
* {{MacroLink|Icon=WF_wf.png|Macro_WorkFeatures|Macro WorkFeatures}}: Tool utility to create points, axes, planes and many other useful features to facilitate the creation of your project.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg|32px]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:354--><br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: Pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece.<br />
<br />
<!--T:355--><br />
* {{MacroLink|Icon=Gearworkbech.png|Macro_FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
<br />
<!--T:356--><br />
* {{MacroLink|Icon=Macro_Fonts_Win10_PYMP.png|Macro_Fonts_Win10_PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the [[Draft_ShapeString|ShapeString]] is empty and this little macro can help you see easily the font to use.<br />
<br />
<!--T:357--><br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
<br />
<!--T:358--><br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
<br />
<!--T:359--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
<br />
<!--T:360--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel_GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
<br />
<!--T:361--><br />
* {{MacroLink|Icon=Macro_Half_turn_stairs.png|Macro_Half_turn_stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
<br />
<!--T:362--><br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro_Half-Hull_Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
<br />
<!--T:363--><br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro_Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
<br />
<!--T:364--><br />
* {{MacroLink|Icon=PropertyMemo.png|Macro_PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft).<br />
<br />
<!--T:365--><br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro_Rubik_Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
<br />
<!--T:366--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro_Sheet_Metal_Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
<br />
<!--T:367--><br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro_Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
<br />
<!--T:368--><br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro_Unfold_Box|Macro Unfold Box}}: Allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
<br />
<!--T:369--><br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro_Unroll_Ruled_Surface|Macro Unroll Ruled Surface}}: Allows to unroll ruled surfaces and to draw them on a page.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Arch_Equipment.svg|32px]] Woodworking === <!--T:168--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:370--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions getDimensions]: FreeCAD macro to get chipboards dimensions to cut (BOM, cutlist).<br />
<br />
<!--T:371--><br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro_Cabinets32|Macro Cabinets32}}: Creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
<br />
<!--T:372--><br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: Creates a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
<br />
<!--T:373--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/makeTransparent.py makeTransparent]: Switches all parts from non-transparent to transparent, and back, allowing you to preview pilot holes, countersinks and other joints.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:374--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
<br />
<!--T:375--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : FreeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
<br />
<!--T:376--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: Flamingo (workbench for metal structures).<br />
<br />
<!--T:377--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 Workbench, and more.<br />
<br />
<!--T:378--><br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
<br />
<!--T:379--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: Workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
<br />
<!--T:380--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=1160651Macros recipes2022-07-04T14:51:06Z<p>Dprojects: </p>
<hr />
<div><languages/><br />
<br />
{|class="fcinfobox wikitable ct" height=100% style="width: 230px; float: right; margin-left: 1em" |<br />
| class="ctTitle" style="font-weight: bold; font-size: 125%;" | [[Image:Text-x-python.png|32px]] Macros<br />
|-<br />
| class="ctToc"|<br/>__TOC__<br />
|}<br />
<translate><br />
<br />
<!--T:95--><br />
This page lists [[Macros|macros]] that can add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you have written a macro and want to include it in one of the categories on this page, then go to [[Macro_documentation|Macro documentation]] to learn more about properly documenting a macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg|32px]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:170--><br />
* {{MacroLink|Icon=Macro_Align_Face_Object_to_View.png|Macro_Align_Face_Object_to_View|Macro Align Face Object to View}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:171--><br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro_Align_View_to_Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:172--><br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro_Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard.<br />
<br />
<!--T:173--><br />
* {{MacroLink|Icon=FCCamera_00.png|Macro_FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
<br />
<!--T:174--><br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro_Mouse_Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
<br />
<!--T:175--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro_Rotate_View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
<br />
<!--T:176--><br />
* {{MacroLink|Icon=Text_console_python.png|Macro_Rotate_View_Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
<br />
<!--T:177--><br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro_Rotate_ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in View Axonometric.<br />
<br />
<!--T:178--><br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro Screen Wiki}}: This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions.<br />
<br />
<!--T:179--><br />
* {{MacroLink|Icon=Snip.png|Macro_Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
<br />
<!--T:180--><br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro_View_Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
<br />
<!--T:181--><br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro_Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg|32px]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:182--><br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro_Animated_Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
<br />
<!--T:183--><br />
* {{MacroLink|Icon=Animator.svg|Macro_Animator|Macro Animator}}: Animate your model by animating its properties with this feature Python object.<br />
<br />
<!--T:184--><br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro_Assemblage_Imprimante_3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
<br />
<!--T:185--><br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro_Assembly|Macro Assembly}}: Assembly animate.<br />
<br />
<!--T:186--><br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro_Constraint_Draft|Macro Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
<!--T:187--><br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro_crank_simul|Macro crank simul}}: Rotation rod and piston.<br />
<br />
<!--T:188--><br />
* {{MacroLink|Icon=Macro_hinge.png|Macro_hinge|Macro hinge}}: Open and close hinge.<br />
<br />
<!--T:189--><br />
* {{MacroLink|Icon=Macro_Spring.png|Macro_Spring|Macro Spring}}: Simulation of one spring.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg|32px]] Code and scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:190--><br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro_Build_Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
<br />
<!--T:191--><br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro_clone_explicit|Macro clone explicit}}: Creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
<br />
<!--T:192--><br />
* {{MacroLink|Icon=Editor_Assistant_Icon.svg|Macro_Editor_Assistant|Macro Editor Assistant}}: Extends the capabilities of FreeCAD's integrated Python editor.<br />
<br />
<!--T:193--><br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro_Global_Variable_Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
<br />
<!--T:194--><br />
* {{MacroLink|Icon=Macro_MessageBox.png|Macro_MessageBox|Macro MessageBox}}: Shows how to give information to the user through the GUI.<br />
<br />
<!--T:195--><br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro_Print_SceneGraph|Macro Print SceneGraph}}: Prints the SceneGraph.<br />
<br />
<!--T:196--><br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro_Python_Assistant_Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
<br />
</translate><br />
<!--THIS MACRO "Macro ZTest Over 128" SHOULD NOT BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro_ZTest_Over_128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
<translate><br />
<br />
<!--T:197--><br />
* {{MacroLink|Icon=MEPlan.png|Qt_Example|Qt Example}}: Example of using Qt commands, their connections, extraction and data assignment.<br />
<br />
<!--T:198--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: Inspection tool for FreeCAD macro development and project debug.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg|32px]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:199--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
<br />
<!--T:200--><br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draft command set in a small macro for the 2D sketch example: work with the DXF files.<br />
<br />
<!--T:201--><br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro_Creating_faces_from_a_DXF_file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
<br />
<!--T:202--><br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
<br />
<!--T:203--><br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro_DXF_to_Face_and_Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported DXF file to face and sketch.<br />
<br />
<!--T:204--><br />
* {{MacroLink|Icon=Macro_Dxf_To_Shape.png|Macro_Dxf_To_Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve.<br />
<br />
<!--T:205--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro_Extract_Wires_from_Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes.<br />
<br />
<!--T:206--><br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro_FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
<br />
<!--T:207--><br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro_FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
<br />
<!--T:208--><br />
* {{MacroLink|Icon=Macro_FCWire_To_Volume.png|Macro_FCWire_To_Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create".<br />
<br />
<!--T:209--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Iges_PyImporter|Macro Iges PyImporter}}: Imports an iges file with entity 128, for example an iges-file from FreeShip, into FreeCAD.<br />
<br />
<!--T:210--><br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro_MeshToPart|Macro MeshToPart}}: Converts selected meshes to parts.<br />
<br />
<!--T:211--><br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
<br />
<!--T:212--><br />
* {{MacroLink|Icon=PartToVRML.png|Macro_PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Draft.svg|32px]] Draft Workbench and 2D=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:213--><br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro_Align_Camera_to_Working_Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft_SelectPlane|Draft Working Plane]].<br />
<br />
<!--T:214--><br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro_Align_Working_Plane_to_Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft_SelectPlane|Draft Working Plane]] to the center of the current view.<br />
<br />
<!--T:215--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points|Macro Draft Circle 3 Points}}: Creates a circle from 3 selected points 2D orthogonal.<br />
<br />
<!--T:216--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points_3D|Macro Draft Circle 3 Points 3D}}: Creates a circle from 3 selected points in the space 3D.<br />
<br />
<!--T:217--><br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro_EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
<br />
<!--T:218--><br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro_Ellipse-Center+2Points|Macro Ellipse-Center+2Points}}: Makes an ellipse by selecting three points (in this order): center, major radius and minor radius.<br />
<br />
<!--T:219--><br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro_FCConvertLines|Macro FC Convert Lines}}: This macro convert the object line, wire in line Dash, DashDot, DashDotDot, ZigZag and Hand with the dimensions given.<br />
<br />
<!--T:220--><br />
* {{MacroLink|Icon=Macro_Make_Arc_3_Points.png|Macro_Make_Arc_3_Points|Macro Make Arc 3 Points}}: Creates a arc from 3 selected points.<br />
<br />
<!--T:221--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Make_Circle_3_Points|Macro Make Circle 3 Points}}: Creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
<br />
<!--T:222--><br />
* {{MacroLink|Icon=Macro_Rectellipse.png|Macro_Rectellipse|Macro Rectellipse}}: Creates a parametric rectellipse.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg|32px]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:223--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro_Automatic_drawing|Macro Automatic drawing}}: Allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective.<br />
<br />
<!--T:224--><br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro_CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:225--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro_CartoucheFC_2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
<br />
<!--T:226--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro_CartoucheFC_Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|Misc templates Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:227--><br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro_Normal_Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_FEM.svg|32px]] Fem Workbench=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:228--><br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing.<br />
<br />
<!--T:229--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro_GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_Windows.svg|32px]] Gui=== <!--T:230--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:231--><br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro_GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
<br />
<!--T:232--><br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro_MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD.<br />
<br />
<!--T:233--><br />
* {{MacroLink|Macro_SplitPropEditor|Macro SplitPropEditor}}: Temporarily split the property editor from the combo view to a separated dock widget.<br />
<br />
<!--T:234--><br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro_Toggle_Panels_Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Linear.svg|32px]] Info and measurements=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:235--><br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro_BoundingBox_Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles.<br />
<br />
<!--T:236--><br />
* {{MacroLink|Icon=CenterFace.png|Macro_CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates.<br />
<br />
<!--T:237--><br />
* {{MacroLink|Icon=Macro_CenterOfMass.png|Macro_CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
<br />
<!--T:238--><br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro_cross_section|Macro cross section}}: Displays an interactively slidable cross-section.<br />
<br />
<!--T:239--><br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro_Delta_xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points.<br />
<br />
<!--T:240--><br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro_Dump_Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
<br />
<!--T:241--><br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro_FC_element_selector|Macro FC element selector}}: This macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed).<br />
<br />
<!--T:242--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units.<br />
<br />
<!--T:243--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo_Alternate_Linux|Macro FCInfo Alternate Linux}}: Same as above, but for Linux (obsolete).<br />
<br />
<!--T:244--><br />
* {{MacroLink|Icon=FCInfoToolBar.png|Macro_FCInfo_ToolBar|Macro FCInfo ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar.<br />
<br />
<!--T:245--><br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro_FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D.<br />
<br />
<!--T:246--><br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro_FCInfoToMouse|Macro FCInfoToMouse}}: Provides informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen.<br />
<br />
<!--T:247--><br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
<br />
<!--T:248--><br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro_HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
<br />
<!--T:249--><br />
* {{MacroLink|Icon=HighlightDifference.png|Macro_HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
<br />
<!--T:250--><br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro_MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
<br />
<!--T:251--><br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro_Mouse_over_cb|Macro Mouse over cb}}: This macro display all elements below cursor (elements covered by other elements will also be displayed).<br />
<br />
<!--T:252--><br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro_ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user.<br />
<br />
<!--T:253--><br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro_SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...).<br />
<br />
<!--T:254--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/showModelSize.py showModelSize]: Allows to calculate occupied space in 3D by the full model.<br />
<br />
<!--T:255--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/showSelectedSize.py showSelectedSize]: Allows to calculate occupied space in 3D by all selected elements.<br />
<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg|32px]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:254--><br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro_BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
<br />
<!--T:255--><br />
* {{MacroLink|Icon=FreeCAD_Doc.png|Macro_PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser.<br />
<br />
<!--T:256--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro_screw_maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg|32px]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:257--><br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro_3D_Parametric_Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
<br />
<!--T:258--><br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro_Draw_2D_Function|Macro Draw 2D Function}}: Draws a function described by an equation z=F(x).<br />
<br />
<!--T:259--><br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro_Draw_Parametric_2D_Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar.<br />
<br />
<!--T:260--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro_Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature Python update of Macro 3D Parametric Curve.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Primitives.svg|32px]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:261--><br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
<!--T:262--><br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro_Airfoil_Import_&_Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
<br />
<!--T:263--><br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro_Apothem_Based_Prism_GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
<br />
<!--T:264--><br />
* {{MacroLink|Icon=Macro_Circle.png|Macro_circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
<br />
<!--T:265--><br />
* {{MacroLink|Icon=Macro_CirclePlus.png|Macro_CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
<br />
<!--T:266--><br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro_Cut_Circle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
<br />
<!--T:267--><br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro_Cut_Line|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
<br />
<!--T:268--><br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro_FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
<br />
<!--T:269--><br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro FCCircularText}}: This macro create a text around a cylinder.<br />
<br />
<!--T:270--><br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro_FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
<br />
<!--T:271--><br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro_FCSpring_Helix_Variable|Macro FCSpring Helix Variable}}: This macro creates one spring truncate, the troncature is adjustable on the all coil to choice.<br />
<br />
<!--T:272--><br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring_On_Surface|Macro FCSpring On Surface}}: This macro creates one spring (helix) on the surface of the object (solide).<br />
<br />
<!--T:273--><br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro_Loft|Macro Loft}}: Create a loft with a list of wire (specially created for [[Macro_Texture|Macro Texture]]).<br />
<br />
<!--T:274--><br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro_Geodesic_Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell.<br />
<br />
<!--T:275--><br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro_Guitar_fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker.<br />
<br />
<!--T:276--><br />
* {{MacroLink|Icon=Macro_Guitar_Nut.png|Macro_Guitar_Nut|Macro Guitar Nut}}: Guitar Nut Maker.<br />
<br />
<!--T:277--><br />
* {{MacroLink|Icon=Hilbert_curve_icon.png|Macro_HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
<br />
<!--T:278--><br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature Python Honeycomb object compatible in and out of PartDesign.<br />
<br />
<!--T:279--><br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch.<br />
<br />
<!--T:280--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro_Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature Python object containing the shape of the intersection.<br />
<br />
<!--T:281--><br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro_Line_Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y.<br />
<br />
<!--T:282--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro_Make_Cube|Macro Make Cube}}: Creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points.<br />
<br />
<!--T:283--><br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro_Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
<br />
<!--T:284--><br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro_Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
<br />
<!--T:285--><br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro_Repro_Wire|Macro Repro Wire}}: This macro reproduces all element selected subobject wire or face.<br />
<br />
<!--T:286--><br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro_Site_From_Contours|Macro Site From Contours}}: Creates an Arch Site from a series of contour lines.<br />
<br />
<!--T:287--><br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro_Solid_Sweep|Macro Solid Sweep}}: Creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
<br />
<!--T:288--><br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro_Triangle_AH|Macro Triangle AH}}: This macro creates a triangle by giving the head angle and the height of the triangle (the head of the triangle is positioned to the xyz coordinates 0.0).<br />
<br />
<!--T:289--><br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro_WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_TransformManip.svg|32px]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:290--><br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro_Align_Object_to_View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
<br />
<!--T:291--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro_ArrayCopy|Macro ArrayCopy}}: Copies the selected object several times, on an array grid.<br />
<br />
<!--T:292--><br />
* {{MacroLink|Icon=Bevel.svg|Macro_Bevel|Macro Bevel}}: Bevels selected vertices, creates parametric feature Python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
<br />
<!--T:293--><br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro_Center_Align_Objects_with_Faces_or_Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: Concentric constraint among non cylindrical parts; and Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
<br />
<!--T:294--><br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro_CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
<br />
<!--T:295--><br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro_Connect_And_Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
<br />
<!--T:296--><br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro_FlattenWire|Macro FlattenWire}}: Flattens draft wires that are not planar to their median Z coordinate.<br />
<br />
<!--T:297--><br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro_FlattenWire3Points|Macro FlattenWire3Points}}: Flattens draft wires that are not planar to a plane defined by 3 points.<br />
<br />
<!--T:298--><br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro_HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
<br />
<!--T:299--><br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro_Image_Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
<br />
<!--T:300--><br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro_JointWire|Macro JointWire}}: Allows to find and joint all non connected edge to the closest non connected one using a line.<br />
<br />
<!--T:301--><br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro_MatrixTransform|Macro MatrixTransform}}: Apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
<br />
<!--T:302--><br />
* {{MacroLink|Icon=Centericon.png|Macro_MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
<br />
<!--T:303--><br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro_Overlap|Macro Overlap}}: Boolean operation. Similar to [[Part_Common|Part Common]], but with custom overlap count threshold (parametric).<br />
<br />
<!--T:304--><br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro_Parametric_Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
<br />
<!--T:305--><br />
* {{MacroLink|Icon=Macro_Perpendicular_To_Wire.png|Macro_Perpendicular_To_Wire|Macro Perpendicular To Wire}}: This macro positions an object perpendicularl to a selected wire.<br />
<br />
<!--T:306--><br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro_PlacementAbsolufy|Macro PlacementAbsolufy}}: Reset Part containers to global origin while maintaining objects absolute position.<br />
<br />
<!--T:307--><br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro_Remove_parametric_history|Macro Remove parametric history}}: Removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
<br />
<!--T:308--><br />
* {{MacroLink|Icon=Macro_Rotate_To_Point.png|Macro_Rotate_To_Point|Macro Rotate To Point}}: Macro to rotate an object around the center of its boundbox, its center of mass, or the last clicked point.<br />
<br />
<!--T:309--><br />
* {{MacroLink|Icon=Part_Section.png|Macro_Section|Macro Section}}: Alternative implementation of Part Section tool, more suitable for making sweep paths (parametric).<br />
<br />
<!--T:310--><br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro_StraightenObject|Macro StraightenObject}}: Re-align object(s) with FreeCAD coordinate system according reference face/edge.<br />
<br />
<!--T:311--><br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro_SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
<br />
<!--T:312--><br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
<br />
<!--T:313--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/magicAngle.py magicAngle]: Small GUI for Draft.rotate function. Allows to rotate panels and even other more complicated objects, like construction profiles.<br />
<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Part_FaceColors.svg|32px]] Object visibility, view properties and textures === <!--T:313--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:314--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/colorManager.py colorManager]: Allows to set face colors for all objects from a spreadsheet. Also you can browse colors for a manually selected face or object and see the effect in the 3D model in real-time.<br />
<br />
<!--T:315--><br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
<!--T:316--><br />
* {{MacroLink|Icon=Macro_HiddenAlls.png|Macro_HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
<br />
<!--T:317--><br />
* {{MacroLink|Icon=FCTexture.png|Macro_Texture|Macro Texture}}: Create a project from a bmp image to create a texture easily.<br />
<br />
<!--T:318--><br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro_Texture_Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
<br />
<!--T:319--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro_Toggle_Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object.<br />
<br />
<!--T:320--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro_Toggle_Drawstyle_Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same as Macro Toggle Drawstyle above but optimized for all languages).<br />
<br />
<!--T:321--><br />
* {{MacroLink|Icon=Macro_SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
<br />
<!--T:322--><br />
* {{MacroLink|Icon=Macro_SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:323--><br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:324--><br />
* {{MacroLink|Icon=Macro_VisibleAlls.png|Macro_VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
<br />
<!--T:325--><br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro Visibility Manager}}: Manage visibility of document objects by type or individually.<br />
<br />
<!--T:326--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/setTextures setTextures]: Allows to permanently store the URL of textures in a FreeCAD project and load stored textures.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg|32px]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro_PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg|32px]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:327--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro_3d_Printer_Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
<br />
<!--T:328--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slicer by changing the SLICERAPP variable in the source code.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg|32px]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro_FreeCAD_to_Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg|32px]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:329--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro_Alias_Manager|Macro Alias Manager}}: Helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
<br />
<!--T:330--><br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro_EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
<br />
<!--T:331--><br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro_FCSpreadSheet_Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
<br />
<!--T:332--><br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro_SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
<br />
<!--T:333--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
<br />
<!--T:334--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/sheet2export sheet2export]: Allows to export FreeCAD spreadsheet to file formats (.md, .html, .csv, .json).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg|32px]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:335--><br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro_Arch_Axis_System_Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a set of parameters.<br />
<br />
<!--T:336--><br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro_Duplicate_Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate, select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
<br />
<!--T:337--><br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro_Easy_cutouts_for_Enclosure_Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way.<br />
<br />
<!--T:338--><br />
* {{MacroLink|Icon=Macro_ExpandTreeItem.png|Macro_ExpandTreeItem|Macro ExpandTreeItem}}: This macro expand selected items in the tree view. If not selection all item are expand/collapse.<br />
<br />
<!--T:339--><br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro_findConfigFiles|Macro findConfigFiles}}: Finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
<br />
<!--T:340--><br />
* {{MacroLink|Icon=Force_Recompute.png|Macro_ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model.<br />
<br />
<!--T:341--><br />
* {{MacroLink|Icon=Macro_If_Selected_Stay_If_Not_Then_Delete.png|Macro_If_Selected_Stay_If_Not_Then_Delete|Macro If Selected Stay If Not Then Delete}}: All object not selected are deleted!<br />
<br />
<!--T:342--><br />
* {{MacroLink|Macro_ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views.<br />
<br />
<!--T:343--><br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro_merge_duplicate_materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
<br />
<!--T:344--><br />
* {{MacroLink|Icon=Pinger_Icon.svg|Macro_Pinger|Macro Pinger}}: Ping users on the forum with ease.<br />
<br />
<!--T:345--><br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro_Recompute_Profiler|Macro Recompute Profiler}}: Measures time it takes to recompute each object in a project.<br />
<br />
<!--T:346--><br />
* {{MacroLink|Icon=Replace_Part.png|Macro_Replace_Part_in_Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
<br />
<!--T:347--><br />
* {{MacroLink|Icon=Macro_Select_Hovering.png|Macro_Select_Hovering|Macro Select Hovering}}: This macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
<br />
<!--T:348--><br />
* {{MacroLink|Icon=SelectVisible.png|Macro_SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
<br />
<!--T:349--><br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro_Shake_Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
<br />
<!--T:350--><br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro_SketchUnmap|Macro SketchUnmap}}: Unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
<br />
<!--T:351--><br />
* {{MacroLink|Macro_TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document.<br />
<br />
<!--T:352--><br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro_Unbind_Numpad_Shortcuts|Macro Unbind Numpad Shortcuts}}: Rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
<br />
<!--T:353--><br />
* {{MacroLink|Icon=WF_wf.png|Macro_WorkFeatures|Macro WorkFeatures}}: Tool utility to create points, axes, planes and many other useful features to facilitate the creation of your project.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg|32px]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:354--><br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: Pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece.<br />
<br />
<!--T:355--><br />
* {{MacroLink|Icon=Gearworkbech.png|Macro_FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
<br />
<!--T:356--><br />
* {{MacroLink|Icon=Macro_Fonts_Win10_PYMP.png|Macro_Fonts_Win10_PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the [[Draft_ShapeString|ShapeString]] is empty and this little macro can help you see easily the font to use.<br />
<br />
<!--T:357--><br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
<br />
<!--T:358--><br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
<br />
<!--T:359--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
<br />
<!--T:360--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel_GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
<br />
<!--T:361--><br />
* {{MacroLink|Icon=Macro_Half_turn_stairs.png|Macro_Half_turn_stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
<br />
<!--T:362--><br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro_Half-Hull_Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
<br />
<!--T:363--><br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro_Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
<br />
<!--T:364--><br />
* {{MacroLink|Icon=PropertyMemo.png|Macro_PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft).<br />
<br />
<!--T:365--><br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro_Rubik_Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
<br />
<!--T:366--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro_Sheet_Metal_Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
<br />
<!--T:367--><br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro_Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
<br />
<!--T:368--><br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro_Unfold_Box|Macro Unfold Box}}: Allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
<br />
<!--T:369--><br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro_Unroll_Ruled_Surface|Macro Unroll Ruled Surface}}: Allows to unroll ruled surfaces and to draw them on a page.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Arch_Equipment.svg|32px]] Woodworking === <!--T:168--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:370--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions getDimensions]: FreeCAD macro to get chipboards dimensions to cut (BOM, cutlist).<br />
<br />
<!--T:371--><br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro_Cabinets32|Macro Cabinets32}}: Creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
<br />
<!--T:372--><br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: Creates a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
<br />
<!--T:373--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/makeTransparent.py makeTransparent]: Switches all parts from non-transparent to transparent, and back, allowing you to preview pilot holes, countersinks and other joints.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:374--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
<br />
<!--T:375--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : FreeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
<br />
<!--T:376--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: Flamingo (workbench for metal structures).<br />
<br />
<!--T:377--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 Workbench, and more.<br />
<br />
<!--T:378--><br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
<br />
<!--T:379--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: Workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
<br />
<!--T:380--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=1160650Macros recipes2022-07-04T14:46:05Z<p>Dprojects: </p>
<hr />
<div><languages/><br />
<br />
{|class="fcinfobox wikitable ct" height=100% style="width: 230px; float: right; margin-left: 1em" |<br />
| class="ctTitle" style="font-weight: bold; font-size: 125%;" | [[Image:Text-x-python.png|32px]] Macros<br />
|-<br />
| class="ctToc"|<br/>__TOC__<br />
|}<br />
<translate><br />
<br />
<!--T:95--><br />
This page lists [[Macros|macros]] that can add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you have written a macro and want to include it in one of the categories on this page, then go to [[Macro_documentation|Macro documentation]] to learn more about properly documenting a macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg|32px]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:170--><br />
* {{MacroLink|Icon=Macro_Align_Face_Object_to_View.png|Macro_Align_Face_Object_to_View|Macro Align Face Object to View}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:171--><br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro_Align_View_to_Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
<br />
<!--T:172--><br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro_Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard.<br />
<br />
<!--T:173--><br />
* {{MacroLink|Icon=FCCamera_00.png|Macro_FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
<br />
<!--T:174--><br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro_Mouse_Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
<br />
<!--T:175--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro_Rotate_View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
<br />
<!--T:176--><br />
* {{MacroLink|Icon=Text_console_python.png|Macro_Rotate_View_Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
<br />
<!--T:177--><br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro_Rotate_ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in View Axonometric.<br />
<br />
<!--T:178--><br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro Screen Wiki}}: This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions.<br />
<br />
<!--T:179--><br />
* {{MacroLink|Icon=Snip.png|Macro_Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
<br />
<!--T:180--><br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro_View_Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
<br />
<!--T:181--><br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro_Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg|32px]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:182--><br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro_Animated_Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
<br />
<!--T:183--><br />
* {{MacroLink|Icon=Animator.svg|Macro_Animator|Macro Animator}}: Animate your model by animating its properties with this feature Python object.<br />
<br />
<!--T:184--><br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro_Assemblage_Imprimante_3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
<br />
<!--T:185--><br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro_Assembly|Macro Assembly}}: Assembly animate.<br />
<br />
<!--T:186--><br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro_Constraint_Draft|Macro Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
<!--T:187--><br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro_crank_simul|Macro crank simul}}: Rotation rod and piston.<br />
<br />
<!--T:188--><br />
* {{MacroLink|Icon=Macro_hinge.png|Macro_hinge|Macro hinge}}: Open and close hinge.<br />
<br />
<!--T:189--><br />
* {{MacroLink|Icon=Macro_Spring.png|Macro_Spring|Macro Spring}}: Simulation of one spring.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg|32px]] Code and scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:190--><br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro_Build_Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
<br />
<!--T:191--><br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro_clone_explicit|Macro clone explicit}}: Creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
<br />
<!--T:192--><br />
* {{MacroLink|Icon=Editor_Assistant_Icon.svg|Macro_Editor_Assistant|Macro Editor Assistant}}: Extends the capabilities of FreeCAD's integrated Python editor.<br />
<br />
<!--T:193--><br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro_Global_Variable_Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
<br />
<!--T:194--><br />
* {{MacroLink|Icon=Macro_MessageBox.png|Macro_MessageBox|Macro MessageBox}}: Shows how to give information to the user through the GUI.<br />
<br />
<!--T:195--><br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro_Print_SceneGraph|Macro Print SceneGraph}}: Prints the SceneGraph.<br />
<br />
<!--T:196--><br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro_Python_Assistant_Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
<br />
</translate><br />
<!--THIS MACRO "Macro ZTest Over 128" SHOULD NOT BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro_ZTest_Over_128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
<translate><br />
<br />
<!--T:197--><br />
* {{MacroLink|Icon=MEPlan.png|Qt_Example|Qt Example}}: Example of using Qt commands, their connections, extraction and data assignment.<br />
<br />
<!--T:198--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: Inspection tool for FreeCAD macro development and project debug.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg|32px]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:199--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
<br />
<!--T:200--><br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draft command set in a small macro for the 2D sketch example: work with the DXF files.<br />
<br />
<!--T:201--><br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro_Creating_faces_from_a_DXF_file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
<br />
<!--T:202--><br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
<br />
<!--T:203--><br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro_DXF_to_Face_and_Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported DXF file to face and sketch.<br />
<br />
<!--T:204--><br />
* {{MacroLink|Icon=Macro_Dxf_To_Shape.png|Macro_Dxf_To_Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve.<br />
<br />
<!--T:205--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro_Extract_Wires_from_Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes.<br />
<br />
<!--T:206--><br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro_FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
<br />
<!--T:207--><br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro_FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
<br />
<!--T:208--><br />
* {{MacroLink|Icon=Macro_FCWire_To_Volume.png|Macro_FCWire_To_Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create".<br />
<br />
<!--T:209--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Iges_PyImporter|Macro Iges PyImporter}}: Imports an iges file with entity 128, for example an iges-file from FreeShip, into FreeCAD.<br />
<br />
<!--T:210--><br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro_MeshToPart|Macro MeshToPart}}: Converts selected meshes to parts.<br />
<br />
<!--T:211--><br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
<br />
<!--T:212--><br />
* {{MacroLink|Icon=PartToVRML.png|Macro_PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Draft.svg|32px]] Draft Workbench and 2D=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:213--><br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro_Align_Camera_to_Working_Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft_SelectPlane|Draft Working Plane]].<br />
<br />
<!--T:214--><br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro_Align_Working_Plane_to_Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft_SelectPlane|Draft Working Plane]] to the center of the current view.<br />
<br />
<!--T:215--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points|Macro Draft Circle 3 Points}}: Creates a circle from 3 selected points 2D orthogonal.<br />
<br />
<!--T:216--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Draft_Circle_3_Points_3D|Macro Draft Circle 3 Points 3D}}: Creates a circle from 3 selected points in the space 3D.<br />
<br />
<!--T:217--><br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro_EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
<br />
<!--T:218--><br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro_Ellipse-Center+2Points|Macro Ellipse-Center+2Points}}: Makes an ellipse by selecting three points (in this order): center, major radius and minor radius.<br />
<br />
<!--T:219--><br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro_FCConvertLines|Macro FC Convert Lines}}: This macro convert the object line, wire in line Dash, DashDot, DashDotDot, ZigZag and Hand with the dimensions given.<br />
<br />
<!--T:220--><br />
* {{MacroLink|Icon=Macro_Make_Arc_3_Points.png|Macro_Make_Arc_3_Points|Macro Make Arc 3 Points}}: Creates a arc from 3 selected points.<br />
<br />
<!--T:221--><br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro_Make_Circle_3_Points|Macro Make Circle 3 Points}}: Creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
<br />
<!--T:222--><br />
* {{MacroLink|Icon=Macro_Rectellipse.png|Macro_Rectellipse|Macro Rectellipse}}: Creates a parametric rectellipse.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg|32px]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:223--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro_Automatic_drawing|Macro Automatic drawing}}: Allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective.<br />
<br />
<!--T:224--><br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro_CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:225--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro_CartoucheFC_2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
<br />
<!--T:226--><br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro_CartoucheFC_Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|Misc templates Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
<br />
<!--T:227--><br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro_Normal_Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_FEM.svg|32px]] Fem Workbench=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:228--><br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing.<br />
<br />
<!--T:229--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro_GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_Windows.svg|32px]] Gui=== <!--T:230--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:231--><br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro_GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
<br />
<!--T:232--><br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro_MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD.<br />
<br />
<!--T:233--><br />
* {{MacroLink|Macro_SplitPropEditor|Macro SplitPropEditor}}: Temporarily split the property editor from the combo view to a separated dock widget.<br />
<br />
<!--T:234--><br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro_Toggle_Panels_Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Linear.svg|32px]] Info and measurements=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:235--><br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro_BoundingBox_Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles.<br />
<br />
<!--T:236--><br />
* {{MacroLink|Icon=CenterFace.png|Macro_CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates.<br />
<br />
<!--T:237--><br />
* {{MacroLink|Icon=Macro_CenterOfMass.png|Macro_CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
<br />
<!--T:238--><br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro_cross_section|Macro cross section}}: Displays an interactively slidable cross-section.<br />
<br />
<!--T:239--><br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro_Delta_xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points.<br />
<br />
<!--T:240--><br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro_Dump_Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
<br />
<!--T:241--><br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro_FC_element_selector|Macro FC element selector}}: This macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed).<br />
<br />
<!--T:242--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units.<br />
<br />
<!--T:243--><br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo_Alternate_Linux|Macro FCInfo Alternate Linux}}: Same as above, but for Linux (obsolete).<br />
<br />
<!--T:244--><br />
* {{MacroLink|Icon=FCInfoToolBar.png|Macro_FCInfo_ToolBar|Macro FCInfo ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar.<br />
<br />
<!--T:245--><br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro_FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D.<br />
<br />
<!--T:246--><br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro_FCInfoToMouse|Macro FCInfoToMouse}}: Provides informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen.<br />
<br />
<!--T:247--><br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
<br />
<!--T:248--><br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro_HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
<br />
<!--T:249--><br />
* {{MacroLink|Icon=HighlightDifference.png|Macro_HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
<br />
<!--T:250--><br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro_MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
<br />
<!--T:251--><br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro_Mouse_over_cb|Macro Mouse over cb}}: This macro display all elements below cursor (elements covered by other elements will also be displayed).<br />
<br />
<!--T:252--><br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro_ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user.<br />
<br />
<!--T:253--><br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro_SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg|32px]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:254--><br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro_BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
<br />
<!--T:255--><br />
* {{MacroLink|Icon=FreeCAD_Doc.png|Macro_PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser.<br />
<br />
<!--T:256--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro_screw_maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg|32px]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:257--><br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro_3D_Parametric_Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
<br />
<!--T:258--><br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro_Draw_2D_Function|Macro Draw 2D Function}}: Draws a function described by an equation z=F(x).<br />
<br />
<!--T:259--><br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro_Draw_Parametric_2D_Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar.<br />
<br />
<!--T:260--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro_Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature Python update of Macro 3D Parametric Curve.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Primitives.svg|32px]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:261--><br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
<!--T:262--><br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro_Airfoil_Import_&_Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
<br />
<!--T:263--><br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro_Apothem_Based_Prism_GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
<br />
<!--T:264--><br />
* {{MacroLink|Icon=Macro_Circle.png|Macro_circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
<br />
<!--T:265--><br />
* {{MacroLink|Icon=Macro_CirclePlus.png|Macro_CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
<br />
<!--T:266--><br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro_Cut_Circle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
<br />
<!--T:267--><br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro_Cut_Line|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
<br />
<!--T:268--><br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro_FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
<br />
<!--T:269--><br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro FCCircularText}}: This macro create a text around a cylinder.<br />
<br />
<!--T:270--><br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro_FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
<br />
<!--T:271--><br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro_FCSpring_Helix_Variable|Macro FCSpring Helix Variable}}: This macro creates one spring truncate, the troncature is adjustable on the all coil to choice.<br />
<br />
<!--T:272--><br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring_On_Surface|Macro FCSpring On Surface}}: This macro creates one spring (helix) on the surface of the object (solide).<br />
<br />
<!--T:273--><br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro_Loft|Macro Loft}}: Create a loft with a list of wire (specially created for [[Macro_Texture|Macro Texture]]).<br />
<br />
<!--T:274--><br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro_Geodesic_Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell.<br />
<br />
<!--T:275--><br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro_Guitar_fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker.<br />
<br />
<!--T:276--><br />
* {{MacroLink|Icon=Macro_Guitar_Nut.png|Macro_Guitar_Nut|Macro Guitar Nut}}: Guitar Nut Maker.<br />
<br />
<!--T:277--><br />
* {{MacroLink|Icon=Hilbert_curve_icon.png|Macro_HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
<br />
<!--T:278--><br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature Python Honeycomb object compatible in and out of PartDesign.<br />
<br />
<!--T:279--><br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch.<br />
<br />
<!--T:280--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro_Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature Python object containing the shape of the intersection.<br />
<br />
<!--T:281--><br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro_Line_Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y.<br />
<br />
<!--T:282--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro_Make_Cube|Macro Make Cube}}: Creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points.<br />
<br />
<!--T:283--><br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro_Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
<br />
<!--T:284--><br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro_Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
<br />
<!--T:285--><br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro_Repro_Wire|Macro Repro Wire}}: This macro reproduces all element selected subobject wire or face.<br />
<br />
<!--T:286--><br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro_Site_From_Contours|Macro Site From Contours}}: Creates an Arch Site from a series of contour lines.<br />
<br />
<!--T:287--><br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro_Solid_Sweep|Macro Solid Sweep}}: Creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
<br />
<!--T:288--><br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro_Triangle_AH|Macro Triangle AH}}: This macro creates a triangle by giving the head angle and the height of the triangle (the head of the triangle is positioned to the xyz coordinates 0.0).<br />
<br />
<!--T:289--><br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro_WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_TransformManip.svg|32px]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:290--><br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro_Align_Object_to_View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
<br />
<!--T:291--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro_ArrayCopy|Macro ArrayCopy}}: Copies the selected object several times, on an array grid.<br />
<br />
<!--T:292--><br />
* {{MacroLink|Icon=Bevel.svg|Macro_Bevel|Macro Bevel}}: Bevels selected vertices, creates parametric feature Python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
<br />
<!--T:293--><br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro_Center_Align_Objects_with_Faces_or_Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: Concentric constraint among non cylindrical parts; and Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
<br />
<!--T:294--><br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro_CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
<br />
<!--T:295--><br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro_Connect_And_Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
<br />
<!--T:296--><br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro_FlattenWire|Macro FlattenWire}}: Flattens draft wires that are not planar to their median Z coordinate.<br />
<br />
<!--T:297--><br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro_FlattenWire3Points|Macro FlattenWire3Points}}: Flattens draft wires that are not planar to a plane defined by 3 points.<br />
<br />
<!--T:298--><br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro_HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
<br />
<!--T:299--><br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro_Image_Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
<br />
<!--T:300--><br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro_JointWire|Macro JointWire}}: Allows to find and joint all non connected edge to the closest non connected one using a line.<br />
<br />
<!--T:301--><br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro_MatrixTransform|Macro MatrixTransform}}: Apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
<br />
<!--T:302--><br />
* {{MacroLink|Icon=Centericon.png|Macro_MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
<br />
<!--T:303--><br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro_Overlap|Macro Overlap}}: Boolean operation. Similar to [[Part_Common|Part Common]], but with custom overlap count threshold (parametric).<br />
<br />
<!--T:304--><br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro_Parametric_Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
<br />
<!--T:305--><br />
* {{MacroLink|Icon=Macro_Perpendicular_To_Wire.png|Macro_Perpendicular_To_Wire|Macro Perpendicular To Wire}}: This macro positions an object perpendicularl to a selected wire.<br />
<br />
<!--T:306--><br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro_PlacementAbsolufy|Macro PlacementAbsolufy}}: Reset Part containers to global origin while maintaining objects absolute position.<br />
<br />
<!--T:307--><br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro_Remove_parametric_history|Macro Remove parametric history}}: Removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
<br />
<!--T:308--><br />
* {{MacroLink|Icon=Macro_Rotate_To_Point.png|Macro_Rotate_To_Point|Macro Rotate To Point}}: Macro to rotate an object around the center of its boundbox, its center of mass, or the last clicked point.<br />
<br />
<!--T:309--><br />
* {{MacroLink|Icon=Part_Section.png|Macro_Section|Macro Section}}: Alternative implementation of Part Section tool, more suitable for making sweep paths (parametric).<br />
<br />
<!--T:310--><br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro_StraightenObject|Macro StraightenObject}}: Re-align object(s) with FreeCAD coordinate system according reference face/edge.<br />
<br />
<!--T:311--><br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro_SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
<br />
<!--T:312--><br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
<br />
<!--T:313--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/magicAngle.py magicAngle]: Small GUI for Draft.rotate function. Allows to rotate panels and even other more complicated objects, like construction profiles.<br />
<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Part_FaceColors.svg|32px]] Object visibility, view properties and textures === <!--T:313--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:314--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/colorManager.py colorManager]: Allows to set face colors for all objects from a spreadsheet. Also you can browse colors for a manually selected face or object and see the effect in the 3D model in real-time.<br />
<br />
<!--T:315--><br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
<!--T:316--><br />
* {{MacroLink|Icon=Macro_HiddenAlls.png|Macro_HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
<br />
<!--T:317--><br />
* {{MacroLink|Icon=FCTexture.png|Macro_Texture|Macro Texture}}: Create a project from a bmp image to create a texture easily.<br />
<br />
<!--T:318--><br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro_Texture_Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
<br />
<!--T:319--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro_Toggle_Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object.<br />
<br />
<!--T:320--><br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro_Toggle_Drawstyle_Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same as Macro Toggle Drawstyle above but optimized for all languages).<br />
<br />
<!--T:321--><br />
* {{MacroLink|Icon=Macro_SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
<br />
<!--T:322--><br />
* {{MacroLink|Icon=Macro_SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:323--><br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
<br />
<!--T:324--><br />
* {{MacroLink|Icon=Macro_VisibleAlls.png|Macro_VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
<br />
<!--T:325--><br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro Visibility Manager}}: Manage visibility of document objects by type or individually.<br />
<br />
<!--T:326--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/setTextures setTextures]: Allows to permanently store the URL of textures in a FreeCAD project and load stored textures.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg|32px]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro_PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg|32px]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:327--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro_3d_Printer_Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
<br />
<!--T:328--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slicer by changing the SLICERAPP variable in the source code.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg|32px]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro_FreeCAD_to_Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg|32px]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:329--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro_Alias_Manager|Macro Alias Manager}}: Helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
<br />
<!--T:330--><br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro_EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
<br />
<!--T:331--><br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro_FCSpreadSheet_Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
<br />
<!--T:332--><br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro_SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
<br />
<!--T:333--><br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
<br />
<!--T:334--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/sheet2export sheet2export]: Allows to export FreeCAD spreadsheet to file formats (.md, .html, .csv, .json).<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg|32px]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:335--><br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro_Arch_Axis_System_Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a set of parameters.<br />
<br />
<!--T:336--><br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro_Duplicate_Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate, select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
<br />
<!--T:337--><br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro_Easy_cutouts_for_Enclosure_Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way.<br />
<br />
<!--T:338--><br />
* {{MacroLink|Icon=Macro_ExpandTreeItem.png|Macro_ExpandTreeItem|Macro ExpandTreeItem}}: This macro expand selected items in the tree view. If not selection all item are expand/collapse.<br />
<br />
<!--T:339--><br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro_findConfigFiles|Macro findConfigFiles}}: Finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
<br />
<!--T:340--><br />
* {{MacroLink|Icon=Force_Recompute.png|Macro_ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model.<br />
<br />
<!--T:341--><br />
* {{MacroLink|Icon=Macro_If_Selected_Stay_If_Not_Then_Delete.png|Macro_If_Selected_Stay_If_Not_Then_Delete|Macro If Selected Stay If Not Then Delete}}: All object not selected are deleted!<br />
<br />
<!--T:342--><br />
* {{MacroLink|Macro_ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views.<br />
<br />
<!--T:343--><br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro_merge_duplicate_materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
<br />
<!--T:344--><br />
* {{MacroLink|Icon=Pinger_Icon.svg|Macro_Pinger|Macro Pinger}}: Ping users on the forum with ease.<br />
<br />
<!--T:345--><br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro_Recompute_Profiler|Macro Recompute Profiler}}: Measures time it takes to recompute each object in a project.<br />
<br />
<!--T:346--><br />
* {{MacroLink|Icon=Replace_Part.png|Macro_Replace_Part_in_Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
<br />
<!--T:347--><br />
* {{MacroLink|Icon=Macro_Select_Hovering.png|Macro_Select_Hovering|Macro Select Hovering}}: This macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
<br />
<!--T:348--><br />
* {{MacroLink|Icon=SelectVisible.png|Macro_SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
<br />
<!--T:349--><br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro_Shake_Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
<br />
<!--T:350--><br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro_SketchUnmap|Macro SketchUnmap}}: Unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
<br />
<!--T:351--><br />
* {{MacroLink|Macro_TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document.<br />
<br />
<!--T:352--><br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro_Unbind_Numpad_Shortcuts|Macro Unbind Numpad Shortcuts}}: Rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
<br />
<!--T:353--><br />
* {{MacroLink|Icon=WF_wf.png|Macro_WorkFeatures|Macro WorkFeatures}}: Tool utility to create points, axes, planes and many other useful features to facilitate the creation of your project.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg|32px]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:354--><br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: Pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece.<br />
<br />
<!--T:355--><br />
* {{MacroLink|Icon=Gearworkbech.png|Macro_FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
<br />
<!--T:356--><br />
* {{MacroLink|Icon=Macro_Fonts_Win10_PYMP.png|Macro_Fonts_Win10_PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the [[Draft_ShapeString|ShapeString]] is empty and this little macro can help you see easily the font to use.<br />
<br />
<!--T:357--><br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
<br />
<!--T:358--><br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
<br />
<!--T:359--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
<br />
<!--T:360--><br />
* {{MacroLink|Icon=GW_Dim.png|Macro_Geneva_Wheel_GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
<br />
<!--T:361--><br />
* {{MacroLink|Icon=Macro_Half_turn_stairs.png|Macro_Half_turn_stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
<br />
<!--T:362--><br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro_Half-Hull_Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
<br />
<!--T:363--><br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro_Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
<br />
<!--T:364--><br />
* {{MacroLink|Icon=PropertyMemo.png|Macro_PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft).<br />
<br />
<!--T:365--><br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro_Rubik_Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
<br />
<!--T:366--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro_Sheet_Metal_Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
<br />
<!--T:367--><br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro_Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
<br />
<!--T:368--><br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro_Unfold_Box|Macro Unfold Box}}: Allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
<br />
<!--T:369--><br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro_Unroll_Ruled_Surface|Macro Unroll Ruled Surface}}: Allows to unroll ruled surfaces and to draw them on a page.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Arch_Equipment.svg|32px]] Woodworking === <!--T:168--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:370--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions getDimensions]: FreeCAD macro to get chipboards dimensions to cut (BOM, cutlist).<br />
<br />
<!--T:371--><br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro_Cabinets32|Macro Cabinets32}}: Creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
<br />
<!--T:372--><br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: Creates a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
<br />
<!--T:373--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/makeTransparent.py makeTransparent]: Switches all parts from non-transparent to transparent, and back, allowing you to preview pilot holes, countersinks and other joints.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:374--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
<br />
<!--T:375--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : FreeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
<br />
<!--T:376--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: Flamingo (workbench for metal structures).<br />
<br />
<!--T:377--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 Workbench, and more.<br />
<br />
<!--T:378--><br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
<br />
<!--T:379--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: Workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
<br />
<!--T:380--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=1140230Macros recipes2022-05-19T07:48:51Z<p>Dprojects: colorManager tool</p>
<hr />
<div><languages/><br />
<br />
{|class="fcinfobox wikitable ct" height=100% style="width: 230px; float: right; margin-left: 1em" |<br />
| class="ctTitle" style="font-weight: bold; font-size: 125%;" | [[Image:Text-x-python.png|32px]] Macros<br />
|-<br />
| class="ctToc"|<br/>__TOC__<br />
|}<br />
<translate><br />
<!--T:95--><br />
This page contains [[macros|macros]] that add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you wrote a macro, and want to include it in the categories in this page, see '''[[macro documentation|macro documentation]]''' to learn about properly documenting the macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:98--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro Rotate View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro Rotate ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in ViewAxonometric.<br />
* {{MacroLink|Icon=Text_console_python.png|Macro Rotate View Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro View Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro Texture Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro Mouse Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
* {{MacroLink|Icon=Centericon.png|Macro MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro Align View to Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro Align Object to View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro Align Camera to Working Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft SelectPlane|Draft Working Plane]]<br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro Align Working Plane to Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft SelectPlane|Draft Working Plane]] to the center of the current view<br />
* {{MacroLink|Icon=Macro Align Face Object to View.png|Macro Align Face Object to View|Macro Align Face Object to View}}: This macro align the face of the selected object to the current View (in case face hole the hole is placed to the view).<br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro Toggle Panels Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
* {{MacroLink|Icon=FCCamera_00.png|Macro FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
* {{MacroLink|Icon=Macro SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
* {{MacroLink|Icon=Macro VisibleAlls.png|Macro VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
* {{MacroLink|Icon=Macro HiddenAlls.png|Macro HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
* {{MacroLink|Icon=Macro If Selected Stay If Not Then Delete.png|Macro If Selected Stay If Not Then Delete|Macro If Selected Stay If Not Then Delete}} :All object not selected hare deletted !!.<br />
* {{MacroLink|Icon=Macro SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=SelectVisible.png|Macro SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles1.png|Macro_Manage_Navigational_Style|Macro Manage Navigational Style1}}: This pair of macros allow you to alter the Navigation Style to 'CAD'.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles2.png|Macro_Manage_Navigational_Style2|Macro Manage Navigational Style2}}: This pair of macros allow you to alter the Navigation Style to 'Inventor'.<br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro Duplicate Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard .<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro Rotate To Point.png|Macro Rotate To Point|Macro Rotate To Point}}: Macro for rotate on object on itself with the axis of rotation the boundbox center, center of mass or last point clicked<br />
* {{MacroLink|Icon=Macro Select Hovering.png|Macro Select Hovering|Macro Select Hovering}}: this macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
* {{MacroLink|Icon=Macro ExpandTreeItem.png|Macro ExpandTreeItem|Macro ExpandTreeItem}}: this macro expand selected items in the tree view.. If not selection all item are expand/collapse<br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro Mouse over cb|Macro Mouse over cb}}: this macro display all elements below cursor (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro FC element selector|Macro FC element selector}}: this macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro_Screen_Wiki}}: Special macro for the Wiki Worker. This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions. <br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen. <br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/setTextures setTextures]: Allows to permanently store the URL of textures in a FreeCAD project and load stored textures.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/colorManager.py colorManager]: allows to set face colors for all objects from spreadsheet. Also you can browse colors for manually selected face or object and see the effect at 3D model in real-time.<br />
<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:100--><br />
* {{MacroLink|Icon=Animator.svg|Macro Animator|Macro Animator}}: Animate your model by animating its properties with this feature python object.<br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro crank simul|Macro crank simul}}: Rotation rod and piston.<br />
* {{MacroLink|Icon=Macro_Spring.png|Macro Spring|Macro Spring}}: Simulation of one spring.<br />
* {{MacroLink|Icon=Macro_hinge.png|Macro hinge|Macro hinge}}: Open and close hinge.<br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro Assembly|Macro Assembly}}: Assembly animate.<br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro Animated Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro Assemblage Imprimante 3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro Constraint Draft|Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg]] Code and Scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:102--><br />
* {{MacroLink|Icon=Editor_Assistant_Icon.svg|Macro Editor Assistant|Macro Editor Assistant}}: extends the capabilities of FreeCAD's integrated Python editor.<br />
* {{MacroLink|Icon=Macro MessageBox.png|Macro MessageBox|Macro MessageBox}}: shows how to give information to the user through the GUI.<br />
* {{MacroLink|Icon=MEPlan.png|Qt Example|Qt Example}}: example of using Qt commands, their connections, extraction and data assignment. <br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro Python Assistant Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro Build Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro Global Variable Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro clone explicit|Macro clone explicit}}: creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: inspection tool for FreeCAD macro development and project debug.<br />
<br />
</translate><br />
<!--NOT MODIFY THE POSITION OF THIS MACRO THIS MACRO "Macro ZTest Over 128" DO NOT HAVE TO BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro ZTest Over 128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:104--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro Extract Wires from Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes<br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro MeshToPart|Macro MeshToPart}}: converts selected meshes to parts<br />
* {{MacroLink|Icon=PartToVRML.png|Macro PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible)<br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
* {{MacroLink|Icon=Macro FCWire To Volume.png|Macro FCWire To Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create"<br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Iges_PyImporter|Macro Iges PyImporter}}: Imports an iges file with entity 128, for example an iges-file from FreeShip, into FreeCAD.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is considered obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:106--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro Automatic drawing|Macro Automatic drawing}}: allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective<br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro CartoucheFC Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|templates_Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro CartoucheFC 2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro Normal Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_BSpline.svg]] Dxf 2D Draft=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:108--><br />
* {{MacroLink|Icon=Macro Rectellipse.png|Macro Rectellipse|Macro Rectellipse}}: creates a parametric rectellipse<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Make Circle 3 Points|Macro Make Circle 3 Points}}: creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points|Macro Draft Circle 3 Points}}: creates a circle from 3 selected points 2D orthogonal<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points 3D|Macro Draft Circle 3 Points 3D}}: creates a circle from 3 selected points in the space 3D<br />
* {{MacroLink|Icon=Macro Make Arc 3 Points.png|Macro Make Arc 3 Points|Macro Make Arc 3 Points}}: creates a arc from 3 selected points<br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro Ellipse-Center+2Points|Macro Ellipse-Center+2Points}} Makes an ellipse by selecting three points (in this order): centre, major radius and minor radius<br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro FCConvertLines|Macro FC Convert Lines}}: this macro convert the object line, wire in line Dash, DashDot, DashDotDot,ZigZag and Hand with the dimensions given.<br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro Creating faces from a DXF file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro DXF to Face and Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported dxf to face and sketch.<br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draf command set in a small macro for the 2D sketch example: work with the DXF files.<br />
* {{MacroLink|Icon=Macro Dxf To Shape.png|Macro Dxf To Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Fem_ResultDisplacement.svg]] Fem=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:110--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator<br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing. <br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Clear_All.svg]] Info and measures=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:112--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature python object containing the shape of the intersection.<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units<br />
* {{MacroLink|Icon=FCInfoToolBar.png|Macro_FCInfo_ToolBar|FCInfo_ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo Alternate Linux|Macro FCInfo Alternate Linux}}: same as above, but for Linux (obsolete)<br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D<br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro FCInfoToMouse|Macro FCInfoToMouse}}: Provide informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen<br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro Delta xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points<br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user<br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro Dump Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
* {{MacroLink|Icon=Macro CenterOfMass.png|Macro CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...)<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:114--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro screw maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
* {{MacroLink|Icon=FreeCAD Doc.png|Macro PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:116--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature python update of Macro 3D Parametric Curve.<br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro 3D Parametric Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro Draw 2D Function|Macro Draw 2D Function}}: draws a function described by an equation z=F(x)<br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro Draw Parametric 2D Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar<br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility : Tab > Wire > Curves And Surfaces {{KEY|Launch Curves and Surfaces Menu ...}}<br />
equations.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:IFC.svg]] Multifunctional=== <!--T:117--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:118--><br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility to create plans of the axes, planes from 3 points, axes on a form, information on the coordinates of the shape and many other useful features to facilitate the creation of your project. This utility is up next in the combo view.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Image.svg]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:120--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro Make Cube|Macro Make Cube}}: creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points<br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro Solid Sweep|Macro Solid Sweep}}: creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro Geodesic Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell<br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro Line Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y<br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro cutLine|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
* {{MacroLink|Icon=Macro CirclePlus.png|Macro CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
* {{MacroLink|Icon=Macro_Circle.png|Macro circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro cutCircle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro triangleAH|Macro Triangle AH}}: This macro create one triangle creates a triangle by giving the head angle and the height of the triangle (the triangle of the head is positioned to the xyz coordinates 0.0)<br />
* {{MacroLink|Icon=FCTexture.png|Macro FCTexture|Macro Texture}}: Create a project from a bmp image to create a texture easily<br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro FCCreaLoft|Macro Loft}}: Create a loft with a list of wire (specially created for Macro Texture see above)<br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro Circular Text}}: This macro create a text around a cylinder<br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro ReproWire|Macro Repro Wire}}: This macro reproduce all element selected subobject wire or face.<br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro Apothem Based Prism GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro FCSpring Helix Variable|Macro FCSpring Helix Variable}}: This macro create one spring truncate, the troncature is adjustable on the all coil to choice.<br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring On Surface|Macro FCSpring On Surface}}: This macro create one spring (helix) on the surface of the object (solide).<br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro Guitar fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker<br />
* {{MacroLink|Icon=Macro Guitar Nut.png|Macro Guitar Nut|Macro Guitar Nut}}: Guitar Nut Maker<br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro Site From Contours|Macro Site From Contours}}: creates an Arch Site from a series of contour lines<br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature python Honeycomb object compatible in and out of PartDesign.<br />
* {{MacroLink|Icon=Hilbert curve icon.png|Macro HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:122--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro ArrayCopy|Macro ArrayCopy}}: copies the selected object several times, on an array grid.<br />
* {{MacroLink|Icon=Bevel.svg|Macro Bevel|Macro Bevel}}: bevels selected vertices, creates parametric feature python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro FlattenWire|Macro FlattenWire}}: flattens draft wires that are not planar to their median Z coordinate.<br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro FlattenWire3Points|Macro FlattenWire3Points}}: flattens draft wires that are not planar to a plane defined by 3 points.<br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro JointWire|Macro JointWire}}: allows to find and joint all non connected edge to the closest non connected one using a line.<br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro Remove parametric history|Macro Remove parametric history}}: removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro Image Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro Parametric Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro MatrixTransform|Macro MatrixTransform}}: apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro Connect And Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
* {{MacroLink|Icon=Part_Section.png|Macro Section|Macro Section}}: (parametric): alternative implementation of Part Section tool, more suitable for making sweep paths.<br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro Overlap|Macro Overlap}}: (parametric): Boolean operation. Similar to Part Common, but with custom overlap count threshold.<br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:124--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro 3d Printer Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slider by changing the SLICERAPP variable in the source code. <br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro FreeCAD to Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:128--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro Alias Manager|Macro Alias Manager}}: helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro FCSpreadSheet Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/sheet2export sheet2export]: allows to export FreeCAD spreadsheet to file formats (.md, .html, .csv, .json).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:130--><br />
* {{MacroLink|Icon=CenterFace.png|Macro CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates<br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro Center Align Objects with Faces or Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: - Concentric constraint among non cylindrical parts; - Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro Easy cutouts for Enclosure Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way<br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD<br />
* {{MacroLink|Icon=Force_Recompute.png|Macro ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model<br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro Recompute Profiler|Macro Recompute Profiler}}: measures time it takes to recompute each object in a project<br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro Shake Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
* {{MacroLink|Icon=Replace_Part.png|Macro Replace Part in Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro Toggle Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro Toggle Drawstyle Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same Macro Toggle Drawstyle above optimized all language)<br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
* {{MacroLink|Icon=HighlightDifference.png|Macro HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro cross section|Macro cross section}}: displays an interactively slidable cross-section.<br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro Print_SceneGraph|Macro Print_SceneGraph}}: prints the SceneGraph.<br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro BoundingBox Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles<br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro Arch Axis System Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro merge duplicate materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro Unbind Numpad Shortcuts|Macro Unbind Numpad Shortcuts}}: rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro findConfigFiles|Macro findConfigFiles}}: finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
* {{MacroLink|Icon=Snip.png|Macro Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
* {{MacroLink|Icon=Pinger_Icon.svg|Macro Pinger|Macro Pinger}}: Ping users on the forum with ease.<br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro SketchUnmap|Macro SketchUnmap}}: unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro PlacementAbsolufy|Macro PlacementAbsolufy}}: reset Part containers to global origin while maintaining objects absolute position.<br />
* {{MacroLink|Macro SplitPropEditor|Macro SplitPropEditor}}: temporarily split the property editor from the combo view to a separated dock widget<br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro StraightenObject|Macro StraightenObject}}: re-align object(s) with FreeCAD coordinate system according reference face/edge<br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro_Visibility_Manager}}: manage visibility of document objects by type or individually<br />
* {{MacroLink|Macro TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document<br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label .... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
* {{MacroLink|Macro ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:132--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro Sheet Metal Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro Unroll Ruled Surface|Macro Unroll Ruled Surface}}: allows to unroll ruled surfaces and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro Unfold Box|Macro Unfold Box}}: allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro Airfoil Import & Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
* {{MacroLink|Icon=Macro Half_turn_stairs.png|Macro Half turn stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro Half-Hull Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
* {{MacroLink|Icon=Gearworkbech.png|Macro FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro Corner shapes wizard|Macro Corner shapes wizard}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=PropertyMemo.png|Macro PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft)<br />
* {{MacroLink|Icon=Macro Fonts Win10 PYMP.png|Macro Fonts Win10 PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the ShapeString is empty and this little macro can help you see aesily the font to use.<br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro Rubik Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch. <br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Std_FreeCADWebsite.svg|32px]] Woodworking === <!--T:168--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:169--><br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro Cabinets32|Macro Cabinets32}}: Creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: Creates a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions getDimensions]: FreeCAD macro to get chipboards dimensions to cut (BOM, cutlist).<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/makeTransparent.py makeTransparent]: allows to make all parts transparent and back to normal. You can preview all pilot holes, countersinks or any other joints like that.<br />
<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:134--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : freeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: flamingo (workbench for metal structures).<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 workbench, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=1140229Macros recipes2022-05-19T07:45:56Z<p>Dprojects: makeTransparent tool</p>
<hr />
<div><languages/><br />
<br />
{|class="fcinfobox wikitable ct" height=100% style="width: 230px; float: right; margin-left: 1em" |<br />
| class="ctTitle" style="font-weight: bold; font-size: 125%;" | [[Image:Text-x-python.png|32px]] Macros<br />
|-<br />
| class="ctToc"|<br/>__TOC__<br />
|}<br />
<translate><br />
<!--T:95--><br />
This page contains [[macros|macros]] that add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you wrote a macro, and want to include it in the categories in this page, see '''[[macro documentation|macro documentation]]''' to learn about properly documenting the macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:98--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro Rotate View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro Rotate ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in ViewAxonometric.<br />
* {{MacroLink|Icon=Text_console_python.png|Macro Rotate View Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro View Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro Texture Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro Mouse Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
* {{MacroLink|Icon=Centericon.png|Macro MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro Align View to Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro Align Object to View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro Align Camera to Working Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft SelectPlane|Draft Working Plane]]<br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro Align Working Plane to Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft SelectPlane|Draft Working Plane]] to the center of the current view<br />
* {{MacroLink|Icon=Macro Align Face Object to View.png|Macro Align Face Object to View|Macro Align Face Object to View}}: This macro align the face of the selected object to the current View (in case face hole the hole is placed to the view).<br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro Toggle Panels Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
* {{MacroLink|Icon=FCCamera_00.png|Macro FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
* {{MacroLink|Icon=Macro SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
* {{MacroLink|Icon=Macro VisibleAlls.png|Macro VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
* {{MacroLink|Icon=Macro HiddenAlls.png|Macro HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
* {{MacroLink|Icon=Macro If Selected Stay If Not Then Delete.png|Macro If Selected Stay If Not Then Delete|Macro If Selected Stay If Not Then Delete}} :All object not selected hare deletted !!.<br />
* {{MacroLink|Icon=Macro SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=SelectVisible.png|Macro SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles1.png|Macro_Manage_Navigational_Style|Macro Manage Navigational Style1}}: This pair of macros allow you to alter the Navigation Style to 'CAD'.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles2.png|Macro_Manage_Navigational_Style2|Macro Manage Navigational Style2}}: This pair of macros allow you to alter the Navigation Style to 'Inventor'.<br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro Duplicate Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard .<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro Rotate To Point.png|Macro Rotate To Point|Macro Rotate To Point}}: Macro for rotate on object on itself with the axis of rotation the boundbox center, center of mass or last point clicked<br />
* {{MacroLink|Icon=Macro Select Hovering.png|Macro Select Hovering|Macro Select Hovering}}: this macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
* {{MacroLink|Icon=Macro ExpandTreeItem.png|Macro ExpandTreeItem|Macro ExpandTreeItem}}: this macro expand selected items in the tree view.. If not selection all item are expand/collapse<br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro Mouse over cb|Macro Mouse over cb}}: this macro display all elements below cursor (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro FC element selector|Macro FC element selector}}: this macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro_Screen_Wiki}}: Special macro for the Wiki Worker. This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions. <br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen. <br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/setTextures setTextures]: Allows to permanently store the URL of textures in a FreeCAD project and load stored textures.<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:100--><br />
* {{MacroLink|Icon=Animator.svg|Macro Animator|Macro Animator}}: Animate your model by animating its properties with this feature python object.<br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro crank simul|Macro crank simul}}: Rotation rod and piston.<br />
* {{MacroLink|Icon=Macro_Spring.png|Macro Spring|Macro Spring}}: Simulation of one spring.<br />
* {{MacroLink|Icon=Macro_hinge.png|Macro hinge|Macro hinge}}: Open and close hinge.<br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro Assembly|Macro Assembly}}: Assembly animate.<br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro Animated Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro Assemblage Imprimante 3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro Constraint Draft|Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg]] Code and Scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:102--><br />
* {{MacroLink|Icon=Editor_Assistant_Icon.svg|Macro Editor Assistant|Macro Editor Assistant}}: extends the capabilities of FreeCAD's integrated Python editor.<br />
* {{MacroLink|Icon=Macro MessageBox.png|Macro MessageBox|Macro MessageBox}}: shows how to give information to the user through the GUI.<br />
* {{MacroLink|Icon=MEPlan.png|Qt Example|Qt Example}}: example of using Qt commands, their connections, extraction and data assignment. <br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro Python Assistant Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro Build Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro Global Variable Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro clone explicit|Macro clone explicit}}: creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: inspection tool for FreeCAD macro development and project debug.<br />
<br />
</translate><br />
<!--NOT MODIFY THE POSITION OF THIS MACRO THIS MACRO "Macro ZTest Over 128" DO NOT HAVE TO BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro ZTest Over 128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:104--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro Extract Wires from Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes<br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro MeshToPart|Macro MeshToPart}}: converts selected meshes to parts<br />
* {{MacroLink|Icon=PartToVRML.png|Macro PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible)<br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
* {{MacroLink|Icon=Macro FCWire To Volume.png|Macro FCWire To Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create"<br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Iges_PyImporter|Macro Iges PyImporter}}: Imports an iges file with entity 128, for example an iges-file from FreeShip, into FreeCAD.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is considered obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:106--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro Automatic drawing|Macro Automatic drawing}}: allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective<br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro CartoucheFC Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|templates_Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro CartoucheFC 2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro Normal Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_BSpline.svg]] Dxf 2D Draft=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:108--><br />
* {{MacroLink|Icon=Macro Rectellipse.png|Macro Rectellipse|Macro Rectellipse}}: creates a parametric rectellipse<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Make Circle 3 Points|Macro Make Circle 3 Points}}: creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points|Macro Draft Circle 3 Points}}: creates a circle from 3 selected points 2D orthogonal<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points 3D|Macro Draft Circle 3 Points 3D}}: creates a circle from 3 selected points in the space 3D<br />
* {{MacroLink|Icon=Macro Make Arc 3 Points.png|Macro Make Arc 3 Points|Macro Make Arc 3 Points}}: creates a arc from 3 selected points<br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro Ellipse-Center+2Points|Macro Ellipse-Center+2Points}} Makes an ellipse by selecting three points (in this order): centre, major radius and minor radius<br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro FCConvertLines|Macro FC Convert Lines}}: this macro convert the object line, wire in line Dash, DashDot, DashDotDot,ZigZag and Hand with the dimensions given.<br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro Creating faces from a DXF file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro DXF to Face and Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported dxf to face and sketch.<br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draf command set in a small macro for the 2D sketch example: work with the DXF files.<br />
* {{MacroLink|Icon=Macro Dxf To Shape.png|Macro Dxf To Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Fem_ResultDisplacement.svg]] Fem=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:110--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator<br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing. <br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Clear_All.svg]] Info and measures=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:112--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature python object containing the shape of the intersection.<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units<br />
* {{MacroLink|Icon=FCInfoToolBar.png|Macro_FCInfo_ToolBar|FCInfo_ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo Alternate Linux|Macro FCInfo Alternate Linux}}: same as above, but for Linux (obsolete)<br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D<br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro FCInfoToMouse|Macro FCInfoToMouse}}: Provide informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen<br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro Delta xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points<br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user<br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro Dump Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
* {{MacroLink|Icon=Macro CenterOfMass.png|Macro CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...)<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:114--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro screw maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
* {{MacroLink|Icon=FreeCAD Doc.png|Macro PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:116--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature python update of Macro 3D Parametric Curve.<br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro 3D Parametric Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro Draw 2D Function|Macro Draw 2D Function}}: draws a function described by an equation z=F(x)<br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro Draw Parametric 2D Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar<br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility : Tab > Wire > Curves And Surfaces {{KEY|Launch Curves and Surfaces Menu ...}}<br />
equations.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:IFC.svg]] Multifunctional=== <!--T:117--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:118--><br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility to create plans of the axes, planes from 3 points, axes on a form, information on the coordinates of the shape and many other useful features to facilitate the creation of your project. This utility is up next in the combo view.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Image.svg]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:120--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro Make Cube|Macro Make Cube}}: creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points<br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro Solid Sweep|Macro Solid Sweep}}: creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro Geodesic Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell<br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro Line Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y<br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro cutLine|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
* {{MacroLink|Icon=Macro CirclePlus.png|Macro CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
* {{MacroLink|Icon=Macro_Circle.png|Macro circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro cutCircle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro triangleAH|Macro Triangle AH}}: This macro create one triangle creates a triangle by giving the head angle and the height of the triangle (the triangle of the head is positioned to the xyz coordinates 0.0)<br />
* {{MacroLink|Icon=FCTexture.png|Macro FCTexture|Macro Texture}}: Create a project from a bmp image to create a texture easily<br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro FCCreaLoft|Macro Loft}}: Create a loft with a list of wire (specially created for Macro Texture see above)<br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro Circular Text}}: This macro create a text around a cylinder<br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro ReproWire|Macro Repro Wire}}: This macro reproduce all element selected subobject wire or face.<br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro Apothem Based Prism GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro FCSpring Helix Variable|Macro FCSpring Helix Variable}}: This macro create one spring truncate, the troncature is adjustable on the all coil to choice.<br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring On Surface|Macro FCSpring On Surface}}: This macro create one spring (helix) on the surface of the object (solide).<br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro Guitar fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker<br />
* {{MacroLink|Icon=Macro Guitar Nut.png|Macro Guitar Nut|Macro Guitar Nut}}: Guitar Nut Maker<br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro Site From Contours|Macro Site From Contours}}: creates an Arch Site from a series of contour lines<br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature python Honeycomb object compatible in and out of PartDesign.<br />
* {{MacroLink|Icon=Hilbert curve icon.png|Macro HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:122--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro ArrayCopy|Macro ArrayCopy}}: copies the selected object several times, on an array grid.<br />
* {{MacroLink|Icon=Bevel.svg|Macro Bevel|Macro Bevel}}: bevels selected vertices, creates parametric feature python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro FlattenWire|Macro FlattenWire}}: flattens draft wires that are not planar to their median Z coordinate.<br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro FlattenWire3Points|Macro FlattenWire3Points}}: flattens draft wires that are not planar to a plane defined by 3 points.<br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro JointWire|Macro JointWire}}: allows to find and joint all non connected edge to the closest non connected one using a line.<br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro Remove parametric history|Macro Remove parametric history}}: removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro Image Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro Parametric Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro MatrixTransform|Macro MatrixTransform}}: apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro Connect And Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
* {{MacroLink|Icon=Part_Section.png|Macro Section|Macro Section}}: (parametric): alternative implementation of Part Section tool, more suitable for making sweep paths.<br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro Overlap|Macro Overlap}}: (parametric): Boolean operation. Similar to Part Common, but with custom overlap count threshold.<br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:124--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro 3d Printer Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slider by changing the SLICERAPP variable in the source code. <br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro FreeCAD to Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:128--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro Alias Manager|Macro Alias Manager}}: helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro FCSpreadSheet Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/sheet2export sheet2export]: allows to export FreeCAD spreadsheet to file formats (.md, .html, .csv, .json).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:130--><br />
* {{MacroLink|Icon=CenterFace.png|Macro CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates<br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro Center Align Objects with Faces or Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: - Concentric constraint among non cylindrical parts; - Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro Easy cutouts for Enclosure Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way<br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD<br />
* {{MacroLink|Icon=Force_Recompute.png|Macro ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model<br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro Recompute Profiler|Macro Recompute Profiler}}: measures time it takes to recompute each object in a project<br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro Shake Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
* {{MacroLink|Icon=Replace_Part.png|Macro Replace Part in Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro Toggle Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro Toggle Drawstyle Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same Macro Toggle Drawstyle above optimized all language)<br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
* {{MacroLink|Icon=HighlightDifference.png|Macro HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro cross section|Macro cross section}}: displays an interactively slidable cross-section.<br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro Print_SceneGraph|Macro Print_SceneGraph}}: prints the SceneGraph.<br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro BoundingBox Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles<br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro Arch Axis System Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro merge duplicate materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro Unbind Numpad Shortcuts|Macro Unbind Numpad Shortcuts}}: rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro findConfigFiles|Macro findConfigFiles}}: finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
* {{MacroLink|Icon=Snip.png|Macro Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
* {{MacroLink|Icon=Pinger_Icon.svg|Macro Pinger|Macro Pinger}}: Ping users on the forum with ease.<br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro SketchUnmap|Macro SketchUnmap}}: unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro PlacementAbsolufy|Macro PlacementAbsolufy}}: reset Part containers to global origin while maintaining objects absolute position.<br />
* {{MacroLink|Macro SplitPropEditor|Macro SplitPropEditor}}: temporarily split the property editor from the combo view to a separated dock widget<br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro StraightenObject|Macro StraightenObject}}: re-align object(s) with FreeCAD coordinate system according reference face/edge<br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro_Visibility_Manager}}: manage visibility of document objects by type or individually<br />
* {{MacroLink|Macro TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document<br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label .... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
* {{MacroLink|Macro ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:132--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro Sheet Metal Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro Unroll Ruled Surface|Macro Unroll Ruled Surface}}: allows to unroll ruled surfaces and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro Unfold Box|Macro Unfold Box}}: allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro Airfoil Import & Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
* {{MacroLink|Icon=Macro Half_turn_stairs.png|Macro Half turn stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro Half-Hull Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
* {{MacroLink|Icon=Gearworkbech.png|Macro FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro Corner shapes wizard|Macro Corner shapes wizard}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=PropertyMemo.png|Macro PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft)<br />
* {{MacroLink|Icon=Macro Fonts Win10 PYMP.png|Macro Fonts Win10 PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the ShapeString is empty and this little macro can help you see aesily the font to use.<br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro Rubik Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch. <br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Std_FreeCADWebsite.svg|32px]] Woodworking === <!--T:168--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:169--><br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro Cabinets32|Macro Cabinets32}}: Creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: Creates a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions getDimensions]: FreeCAD macro to get chipboards dimensions to cut (BOM, cutlist).<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking/blob/master/Tools/makeTransparent.py makeTransparent]: allows to make all parts transparent and back to normal. You can preview all pilot holes, countersinks or any other joints like that.<br />
<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:134--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : freeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: flamingo (workbench for metal structures).<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 workbench, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=1121975Macros recipes2022-03-29T19:31:55Z<p>Dprojects: macro to store and load textures</p>
<hr />
<div><languages/><br />
<br />
{|class="fcinfobox wikitable ct" height=100% style="width: 230px; float: right; margin-left: 1em" |<br />
| class="ctTitle" style="font-weight: bold; font-size: 125%;" | [[Image:Text-x-python.png|32px]] Macros<br />
|-<br />
| class="ctToc"|<br/>__TOC__<br />
|}<br />
<translate><br />
<!--T:95--><br />
This page contains [[macros|macros]] that add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you wrote a macro, and want to include it in the categories in this page, see '''[[macro documentation|macro documentation]]''' to learn about properly documenting the macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:98--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro Rotate View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro Rotate ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in ViewAxonometric.<br />
* {{MacroLink|Icon=Text_console_python.png|Macro Rotate View Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro View Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro Texture Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro Mouse Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
* {{MacroLink|Icon=Centericon.png|Macro MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro Align View to Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro Align Object to View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro Align Camera to Working Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft SelectPlane|Draft Working Plane]]<br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro Align Working Plane to Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft SelectPlane|Draft Working Plane]] to the center of the current view<br />
* {{MacroLink|Icon=Macro Align Face Object to View.png|Macro Align Face Object to View|Macro Align Face Object to View}}: This macro align the face of the selected object to the current View (in case face hole the hole is placed to the view).<br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro Toggle Panels Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
* {{MacroLink|Icon=FCCamera_00.png|Macro FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
* {{MacroLink|Icon=Macro SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
* {{MacroLink|Icon=Macro VisibleAlls.png|Macro VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
* {{MacroLink|Icon=Macro HiddenAlls.png|Macro HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
* {{MacroLink|Icon=Macro If Selected Stay If Not Then Delete.png|Macro If Selected Stay If Not Then Delete|Macro If Selected Stay If Not Then Delete}} :All object not selected hare deletted !!.<br />
* {{MacroLink|Icon=Macro SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=SelectVisible.png|Macro SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles1.png|Macro_Manage_Navigational_Style|Macro Manage Navigational Style1}}: This pair of macros allow you to alter the Navigation Style to 'CAD'.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles2.png|Macro_Manage_Navigational_Style2|Macro Manage Navigational Style2}}: This pair of macros allow you to alter the Navigation Style to 'Inventor'.<br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro Duplicate Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard .<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro Rotate To Point.png|Macro Rotate To Point|Macro Rotate To Point}}: Macro for rotate on object on itself with the axis of rotation the boundbox center, center of mass or last point clicked<br />
* {{MacroLink|Icon=Macro Select Hovering.png|Macro Select Hovering|Macro Select Hovering}}: this macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
* {{MacroLink|Icon=Macro ExpandTreeItem.png|Macro ExpandTreeItem|Macro ExpandTreeItem}}: this macro expand selected items in the tree view.. If not selection all item are expand/collapse<br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro Mouse over cb|Macro Mouse over cb}}: this macro display all elements below cursor (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro FC element selector|Macro FC element selector}}: this macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro_Screen_Wiki}}: Special macro for the Wiki Worker. This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions. <br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen. <br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/setTextures setTextures]: allow to store permanently URL to texture at FreeCAD project and load stored textures.<br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:100--><br />
* {{MacroLink|Icon=Animator.svg|Macro Animator|Macro Animator}}: Animate your model by animating its properties with this feature python object.<br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro crank simul|Macro crank simul}}: Rotation rod and piston.<br />
* {{MacroLink|Icon=Macro_Spring.png|Macro Spring|Macro Spring}}: Simulation of one spring.<br />
* {{MacroLink|Icon=Macro_hinge.png|Macro hinge|Macro hinge}}: Open and close hinge.<br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro Assembly|Macro Assembly}}: Assembly animate.<br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro Animated Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro Assemblage Imprimante 3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro Constraint Draft|Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg]] Code and Scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:102--><br />
* {{MacroLink|Icon=Macro MessageBox.png|Macro MessageBox|Macro MessageBox}}: shows how to give information to the user through the GUI.<br />
* {{MacroLink|Icon=MEPlan.png|Qt Example|Qt Example}}: example of using Qt commands, their connections, extraction and data assignment. <br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro Python Assistant Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro Build Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro Global Variable Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro clone explicit|Macro clone explicit}}: creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: inspection tool for FreeCAD macro development and project debug.<br />
<br />
</translate><br />
<!--NOT MODIFY THE POSITION OF THIS MACRO THIS MACRO "Macro ZTest Over 128" DO NOT HAVE TO BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro ZTest Over 128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:104--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro Extract Wires from Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes<br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro MeshToPart|Macro MeshToPart}}: converts selected meshes to parts<br />
* {{MacroLink|Icon=PartToVRML.png|Macro PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible)<br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
* {{MacroLink|Icon=Macro FCWire To Volume.png|Macro FCWire To Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create"<br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro_Iges_PyImporter|Macro Iges PyImporter}}: Imports an iges file with entity 128, for example an iges-file from FreeShip, into FreeCAD.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is considered obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:106--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro Automatic drawing|Macro Automatic drawing}}: allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective<br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro CartoucheFC Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|templates_Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro CartoucheFC 2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro Normal Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_BSpline.svg]] Dxf 2D Draft=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:108--><br />
* {{MacroLink|Icon=Macro Rectellipse.png|Macro Rectellipse|Macro Rectellipse}}: creates a parametric rectellipse<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Make Circle 3 Points|Macro Make Circle 3 Points}}: creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points|Macro Draft Circle 3 Points}}: creates a circle from 3 selected points 2D orthogonal<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points 3D|Macro Draft Circle 3 Points 3D}}: creates a circle from 3 selected points in the space 3D<br />
* {{MacroLink|Icon=Macro Make Arc 3 Points.png|Macro Make Arc 3 Points|Macro Make Arc 3 Points}}: creates a arc from 3 selected points<br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro Ellipse-Center+2Points|Macro Ellipse-Center+2Points}} Makes an ellipse by selecting three points (in this order): centre, major radius and minor radius<br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro FCConvertLines|Macro FC Convert Lines}}: this macro convert the object line, wire in line Dash, DashDot, DashDotDot,ZigZag and Hand with the dimensions given.<br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro Creating faces from a DXF file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro DXF to Face and Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported dxf to face and sketch.<br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draf command set in a small macro for the 2D sketch example: work with the DXF files.<br />
* {{MacroLink|Icon=Macro Dxf To Shape.png|Macro Dxf To Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Fem_ResultDisplacement.svg]] Fem=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:110--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator<br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing. <br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Clear_All.svg]] Info and measures=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:112--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature python object containing the shape of the intersection.<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units<br />
* {{MacroLink|Icon=FCInfoToolBar.png|Macro_FCInfo_ToolBar|FCInfo_ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo Alternate Linux|Macro FCInfo Alternate Linux}}: same as above, but for Linux (obsolete)<br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D<br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro FCInfoToMouse|Macro FCInfoToMouse}}: Provide informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen<br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro Delta xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points<br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user<br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro Dump Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
* {{MacroLink|Icon=Macro CenterOfMass.png|Macro CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...)<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:114--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro screw maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
* {{MacroLink|Icon=FreeCAD Doc.png|Macro PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:116--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature python update of Macro 3D Parametric Curve.<br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro 3D Parametric Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro Draw 2D Function|Macro Draw 2D Function}}: draws a function described by an equation z=F(x)<br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro Draw Parametric 2D Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar<br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility : Tab > Wire > Curves And Surfaces {{KEY|Launch Curves and Surfaces Menu ...}}<br />
equations.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:IFC.svg]] Multifunctional=== <!--T:117--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:118--><br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility to create plans of the axes, planes from 3 points, axes on a form, information on the coordinates of the shape and many other useful features to facilitate the creation of your project. This utility is up next in the combo view.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Image.svg]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:120--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro Make Cube|Macro Make Cube}}: creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points<br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro Solid Sweep|Macro Solid Sweep}}: creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro Geodesic Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell<br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro Line Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y<br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro cutLine|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
* {{MacroLink|Icon=Macro CirclePlus.png|Macro CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
* {{MacroLink|Icon=Macro_Circle.png|Macro circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro cutCircle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro triangleAH|Macro Triangle AH}}: This macro create one triangle creates a triangle by giving the head angle and the height of the triangle (the triangle of the head is positioned to the xyz coordinates 0.0)<br />
* {{MacroLink|Icon=FCTexture.png|Macro FCTexture|Macro Texture}}: Create a project from a bmp image to create a texture easily<br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro FCCreaLoft|Macro Loft}}: Create a loft with a list of wire (specially created for Macro Texture see above)<br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro Circular Text}}: This macro create a text around a cylinder<br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro ReproWire|Macro Repro Wire}}: This macro reproduce all element selected subobject wire or face.<br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro Apothem Based Prism GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro FCSpring Helix Variable|Macro FCSpring Helix Variable}}: This macro create one spring truncate, the troncature is adjustable on the all coil to choice.<br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring On Surface|Macro FCSpring On Surface}}: This macro create one spring (helix) on the surface of the object (solide).<br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro Guitar fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker<br />
* {{MacroLink|Icon=Macro Guitar Nut.png|Macro Guitar Nut|Macro Guitar Nut}}: Guitar Nut Maker<br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro Site From Contours|Macro Site From Contours}}: creates an Arch Site from a series of contour lines<br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature python Honeycomb object compatible in and out of PartDesign.<br />
* {{MacroLink|Icon=Hilbert curve icon.png|Macro HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:122--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro ArrayCopy|Macro ArrayCopy}}: copies the selected object several times, on an array grid.<br />
* {{MacroLink|Icon=Bevel.svg|Macro Bevel|Macro Bevel}}: bevels selected vertices, creates parametric feature python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro FlattenWire|Macro FlattenWire}}: flattens draft wires that are not planar to their median Z coordinate.<br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro FlattenWire3Points|Macro FlattenWire3Points}}: flattens draft wires that are not planar to a plane defined by 3 points.<br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: create a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro JointWire|Macro JointWire}}: allows to find and joint all non connected edge to the closest non connected one using a line.<br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro Remove parametric history|Macro Remove parametric history}}: removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro Image Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro Parametric Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro MatrixTransform|Macro MatrixTransform}}: apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro Connect And Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
* {{MacroLink|Icon=Part_Section.png|Macro Section|Macro Section}}: (parametric): alternative implementation of Part Section tool, more suitable for making sweep paths.<br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro Overlap|Macro Overlap}}: (parametric): Boolean operation. Similar to Part Common, but with custom overlap count threshold.<br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:124--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro 3d Printer Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slider by changing the SLICERAPP variable in the source code. <br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro FreeCAD to Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:128--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro Alias Manager|Macro Alias Manager}}: helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro FCSpreadSheet Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/sheet2export sheet2export]: allows to export FreeCAD spreadsheet to file formats (.md, .html, .csv, .json).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:130--><br />
* {{MacroLink|Icon=CenterFace.png|Macro CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates<br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro Center Align Objects with Faces or Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: - Concentric constraint among non cylindrical parts; - Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro Easy cutouts for Enclosure Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way<br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD<br />
* {{MacroLink|Icon=Force_Recompute.png|Macro ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model<br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro Recompute Profiler|Macro Recompute Profiler}}: measures time it takes to recompute each object in a project<br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro Shake Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
* {{MacroLink|Icon=Replace_Part.png|Macro Replace Part in Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro Toggle Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro Toggle Drawstyle Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same Macro Toggle Drawstyle above optimized all language)<br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
* {{MacroLink|Icon=HighlightDifference.png|Macro HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro cross section|Macro cross section}}: displays an interactively slidable cross-section.<br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro Print_SceneGraph|Macro Print_SceneGraph}}: prints the SceneGraph.<br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro BoundingBox Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles<br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro Arch Axis System Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro merge duplicate materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro Unbind Numpad Shortcuts|Macro Unbind Numpad Shortcuts}}: rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro findConfigFiles|Macro findConfigFiles}}: finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
* {{MacroLink|Icon=Snip.png|Macro Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
* {{MacroLink|Icon=Pinger_Icon.svg|Macro Pinger|Macro Pinger}}: Ping users on the forum with ease.<br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro SketchUnmap|Macro SketchUnmap}}: unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro PlacementAbsolufy|Macro PlacementAbsolufy}}: reset Part containers to global origin while maintaining objects absolute position.<br />
* {{MacroLink|Macro SplitPropEditor|Macro SplitPropEditor}}: temporarily split the property editor from the combo view to a separated dock widget<br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro StraightenObject|Macro StraightenObject}}: re-align object(s) with FreeCAD coordinate system according reference face/edge<br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro_Visibility_Manager}}: manage visibility of document objects by type or individually<br />
* {{MacroLink|Macro TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document<br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label .... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
* {{MacroLink|Macro ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:132--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro Sheet Metal Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro Unroll Ruled Surface|Macro Unroll Ruled Surface}}: allows to unroll ruled surfaces and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro Unfold Box|Macro Unfold Box}}: allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro Airfoil Import & Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro Cabinets32|Macro Cabinets32}}: creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
* {{MacroLink|Icon=Macro Half_turn_stairs.png|Macro Half turn stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro Half-Hull Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
* {{MacroLink|Icon=Gearworkbech.png|Macro FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro Corner shapes wizard|Macro Corner shapes wizard}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=PropertyMemo.png|Macro PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft)<br />
* {{MacroLink|Icon=Macro Fonts Win10 PYMP.png|Macro Fonts Win10 PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the ShapeString is empty and this little macro can help you see aesily the font to use.<br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro Rubik Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch. <br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
=== [[File:Std_FreeCADWebsite.svg|32px]] Woodworking === <!--T:168--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:169--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions getDimensions]: FreeCAD macro to get chipboards dimensions to cut (BOM, cutlist).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:134--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : freeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: flamingo (workbench for metal structures).<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 workbench, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=User:Dprojects&diff=1105050User:Dprojects2022-02-27T16:25:28Z<p>Dprojects: </p>
<hr />
<div>Hello, my name is Darek. I am from Poland. I stared to use FreeCAD because of my woodworking hobby.<br />
<br />
You can see my FreeCAD projects at my GitHub page: [https://github.com/dprojects https://github.com/dprojects].</div>Dprojectshttps://wiki.freecad.org/index.php?title=User:Dprojects&diff=1105049User:Dprojects2022-02-27T16:24:40Z<p>Dprojects: </p>
<hr />
<div>Hello, my name is Darek. I am from Poland. I stared to use FreeCAD because of my woodworking hobby.<br />
<br />
You can see my FreeCAD projects at my GitHub page: [https://github.com/dprojects, https://github.com/dprojects].</div>Dprojectshttps://wiki.freecad.org/index.php?title=User:Dprojects&diff=1105048User:Dprojects2022-02-27T16:22:37Z<p>Dprojects: Created page with "Hello, my name is Darek. I am from Poland. I stared to use FreeCAD because of my woodworking hobby. You can see my FreeCAD projects at [http://my%20dprojects%20GitHub%20page...."</p>
<hr />
<div>Hello, my name is Darek. I am from Poland. I stared to use FreeCAD because of my woodworking hobby.<br />
<br />
You can see my FreeCAD projects at [http://my%20dprojects%20GitHub%20page. https://github.com/dprojects].</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=1105045Macros recipes2022-02-27T16:17:05Z<p>Dprojects: </p>
<hr />
<div><languages/><br />
<br />
{|class="fcinfobox wikitable ct" height=100% style="width: 230px; float: right; margin-left: 1em" |<br />
| class="ctTitle" style="font-weight: bold; font-size: 125%;" | [[Image:Text-x-python.png|32px]] Macros<br />
|-<br />
| class="ctToc"|<br/>__TOC__<br />
|}<br />
<translate><br />
<!--T:95--><br />
This page contains [[macros|macros]] that add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you wrote a macro, and want to include it in the categories in this page, see '''[[macro documentation|macro documentation]]''' to learn about properly documenting the macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:98--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro Rotate View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro Rotate ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in ViewAxonometric.<br />
* {{MacroLink|Icon=Text_console_python.png|Macro Rotate View Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro View Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro Texture Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro Mouse Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
* {{MacroLink|Icon=Centericon.png|Macro MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro Align View to Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro Align Object to View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro Align Camera to Working Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft SelectPlane|Draft Working Plane]]<br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro Align Working Plane to Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft SelectPlane|Draft Working Plane]] to the center of the current view<br />
* {{MacroLink|Icon=Macro Align Face Object to View.png|Macro Align Face Object to View|Macro Align Face Object to View}}: This macro align the face of the selected object to the current View (in case face hole the hole is placed to the view).<br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro Toggle Panels Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
* {{MacroLink|Icon=FCCamera_00.png|Macro FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
* {{MacroLink|Icon=Macro SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
* {{MacroLink|Icon=Macro VisibleAlls.png|Macro VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
* {{MacroLink|Icon=Macro HiddenAlls.png|Macro HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
* {{MacroLink|Icon=Macro If Selected Stay If Not Then Delete.png|Macro If Selected Stay If Not Then Delete|Macro If Selected Stay If Not Then Delete}} :All object not selected hare deletted !!.<br />
* {{MacroLink|Icon=Macro SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=SelectVisible.png|Macro SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles1.png|Macro_Manage_Navigational_Style|Macro Manage Navigational Style1}}: This pair of macros allow you to alter the Navigation Style to 'CAD'.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles2.png|Macro_Manage_Navigational_Style2|Macro Manage Navigational Style2}}: This pair of macros allow you to alter the Navigation Style to 'Inventor'.<br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro Duplicate Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard .<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro Rotate To Point.png|Macro Rotate To Point|Macro Rotate To Point}}: Macro for rotate on object on itself with the axis of rotation the boundbox center, center of mass or last point clicked<br />
* {{MacroLink|Icon=Macro Select Hovering.png|Macro Select Hovering|Macro Select Hovering}}: this macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
* {{MacroLink|Icon=Macro ExpandTreeItem.png|Macro ExpandTreeItem|Macro ExpandTreeItem}}: this macro expand selected items in the tree view.. If not selection all item are expand/collapse<br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro Mouse over cb|Macro Mouse over cb}}: this macro display all elements below cursor (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro FC element selector|Macro FC element selector}}: this macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro_Screen_Wiki}}: Special macro for the Wiki Worker. This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions. <br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen. <br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:100--><br />
* {{MacroLink|Icon=Animator.svg|Macro Animator|Macro Animator}}: Animate your model by animating its properties with this feature python object.<br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro crank simul|Macro crank simul}}: Rotation rod and piston.<br />
* {{MacroLink|Icon=Macro_Spring.png|Macro Spring|Macro Spring}}: Simulation of one spring.<br />
* {{MacroLink|Icon=Macro_hinge.png|Macro hinge|Macro hinge}}: Open and close hinge.<br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro Assembly|Macro Assembly}}: Assembly animate.<br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro Animated Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro Assemblage Imprimante 3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro Constraint Draft|Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg]] Code and Scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:102--><br />
* {{MacroLink|Icon=Macro MessageBox.png|Macro MessageBox|Macro MessageBox}}: shows how to give information to the user through the GUI.<br />
* {{MacroLink|Icon=MEPlan.png|Qt Example|Qt Example}}: example of using Qt commands, their connections, extraction and data assignment. <br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro Python Assistant Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro Build Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro Global Variable Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro clone explicit|Macro clone explicit}}: creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: inspection tool for FreeCAD macro development and project debug.<br />
<br />
</translate><br />
<!--NOT MODIFY THE POSITION OF THIS MACRO THIS MACRO "Macro ZTest Over 128" DO NOT HAVE TO BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro ZTest Over 128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:104--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro Extract Wires from Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes<br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro MeshToPart|Macro MeshToPart}}: converts selected meshes to parts<br />
* {{MacroLink|Icon=PartToVRML.png|Macro PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible)<br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
* {{MacroLink|Icon=Macro FCWire To Volume.png|Macro FCWire To Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create"<br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is considered obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:106--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro Automatic drawing|Macro Automatic drawing}}: allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective<br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro CartoucheFC Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|templates_Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro CartoucheFC 2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro Normal Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_BSpline.svg]] Dxf 2D Draft=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:108--><br />
* {{MacroLink|Icon=Macro Rectellipse.png|Macro Rectellipse|Macro Rectellipse}}: creates a parametric rectellipse<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Make Circle 3 Points|Macro Make Circle 3 Points}}: creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points|Macro Draft Circle 3 Points}}: creates a circle from 3 selected points 2D orthogonal<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points 3D|Macro Draft Circle 3 Points 3D}}: creates a circle from 3 selected points in the space 3D<br />
* {{MacroLink|Icon=Macro Make Arc 3 Points.png|Macro Make Arc 3 Points|Macro Make Arc 3 Points}}: creates a arc from 3 selected points<br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro Ellipse-Center+2Points|Macro Ellipse-Center+2Points}} Makes an ellipse by selecting three points (in this order): centre, major radius and minor radius<br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro FCConvertLines|Macro FC Convert Lines}}: this macro convert the object line, wire in line Dash, DashDot, DashDotDot,ZigZag and Hand with the dimensions given.<br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro Creating faces from a DXF file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro DXF to Face and Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported dxf to face and sketch.<br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draf command set in a small macro for the 2D sketch example: work with the DXF files.<br />
* {{MacroLink|Icon=Macro Dxf To Shape.png|Macro Dxf To Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Fem_ResultDisplacement.svg]] Fem=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:110--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator<br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing. <br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Clear_All.svg]] Info and measures=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:112--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature python object containing the shape of the intersection.<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units<br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo_ToolBar|FCInfo_ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo Alternate Linux|Macro FCInfo Alternate Linux}}: same as above, but for Linux<br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D<br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro FCInfoToMouse|Macro FCInfoToMouse}}: Provide informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen<br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro Delta xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points<br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user<br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro Dump Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
* {{MacroLink|Icon=Macro CenterOfMass.png|Macro CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...)<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:114--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro screw maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
* {{MacroLink|Icon=FreeCAD Doc.png|Macro PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:116--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature python update of Macro 3D Parametric Curve.<br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro 3D Parametric Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro Draw 2D Function|Macro Draw 2D Function}}: draws a function described by an equation z=F(x)<br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro Draw Parametric 2D Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar<br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility : Tab > Wire > Curves And Surfaces {{KEY|Launch Curves and Surfaces Menu ...}}<br />
equations.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:IFC.svg]] Multifunctional=== <!--T:117--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:118--><br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility to create plans of the axes, planes from 3 points, axes on a form, information on the coordinates of the shape and many other useful features to facilitate the creation of your project. This utility is up next in the combo view.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Image.svg]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:120--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro Make Cube|Macro Make Cube}}: creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points<br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro Solid Sweep|Macro Solid Sweep}}: creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro Geodesic Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell<br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro Line Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y<br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro cutLine|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
* {{MacroLink|Icon=Macro CirclePlus.png|Macro CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
* {{MacroLink|Icon=Macro_Circle.png|Macro circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro cutCircle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro triangleAH|Macro Triangle AH}}: This macro create one triangle creates a triangle by giving the head angle and the height of the triangle (the triangle of the head is positioned to the xyz coordinates 0.0)<br />
* {{MacroLink|Icon=FCTexture.png|Macro FCTexture|Macro Texture}}: Create a project from a bmp image to create a texture easily<br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro FCCreaLoft|Macro Loft}}: Create a loft with a list of wire (specially created for Macro Texture see above)<br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro Circular Text}}: This macro create a text around a cylinder<br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro ReproWire|Macro Repro Wire}}: This macro reproduce all element selected subobject wire or face.<br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro Apothem Based Prism GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro FCSpring Helix Variable|Macro FCSpring Helix Variable}}: This macro create one spring truncate, the troncature is adjustable on the all coil to choice.<br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring On Surface|Macro FCSpring On Surface}}: This macro create one spring (helix) on the surface of the object (solide).<br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro Guitar fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker<br />
* {{MacroLink|Icon=Macro Guitar Nut.png|Macro Guitar Nut|Macro Guitar Nut}}: Guitar Nut Maker<br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro Site From Contours|Macro Site From Contours}}: creates an Arch Site from a series of contour lines<br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature python Honeycomb object compatible in and out of PartDesign.<br />
* {{MacroLink|Icon=Hilbert curve icon.png|Macro HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:122--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro ArrayCopy|Macro ArrayCopy}}: copies the selected object several times, on an array grid.<br />
* {{MacroLink|Icon=Bevel.svg|Macro Bevel|Macro Bevel}}: bevels selected vertices, creates parametric feature python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro FlattenWire|Macro FlattenWire}}: flattens draft wires that are not planar to their median Z coordinate.<br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro FlattenWire3Points|Macro FlattenWire3Points}}: flattens draft wires that are not planar to a plane defined by 3 points.<br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: create a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro JointWire|Macro JointWire}}: allows to find and joint all non connected edge to the closest non connected one using a line.<br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro Remove parametric history|Macro Remove parametric history}}: removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro Image Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro Parametric Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro MatrixTransform|Macro MatrixTransform}}: apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro Connect And Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
* {{MacroLink|Icon=Part_Section.png|Macro Section|Macro Section}}: (parametric): alternative implementation of Part Section tool, more suitable for making sweep paths.<br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro Overlap|Macro Overlap}}: (parametric): Boolean operation. Similar to Part Common, but with custom overlap count threshold.<br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:124--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro 3d Printer Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slider by changing the SLICERAPP variable in the source code. <br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro FreeCAD to Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:128--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro Alias Manager|Macro Alias Manager}}: helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro FCSpreadSheet Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/sheet2export sheet2export]: allows to export FreeCAD spreadsheet to file formats (.md, .html, .csv, .json).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:130--><br />
* {{MacroLink|Icon=CenterFace.png|Macro CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates<br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro Center Align Objects with Faces or Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: - Concentric constraint among non cylindrical parts; - Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro Easy cutouts for Enclosure Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way<br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD<br />
* {{MacroLink|Icon=Force_Recompute.png|Macro ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model<br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro Recompute Profiler|Macro Recompute Profiler}}: measures time it takes to recompute each object in a project<br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro Shake Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
* {{MacroLink|Icon=Replace_Part.png|Macro Replace Part in Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro Toggle Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro Toggle Drawstyle Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same Macro Toggle Drawstyle above optimized all language)<br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
* {{MacroLink|Icon=HighlightDifference.png|Macro HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro cross section|Macro cross section}}: displays an interactively slidable cross-section.<br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro Print_SceneGraph|Macro Print_SceneGraph}}: prints the SceneGraph.<br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro BoundingBox Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles<br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro Arch Axis System Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro merge duplicate materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro Unbind Numpad Shortcuts|Macro Unbind Numpad Shortcuts}}: rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro findConfigFiles|Macro findConfigFiles}}: finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
* {{MacroLink|Icon=Snip.png|Macro Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro SketchUnmap|Macro SketchUnmap}}: unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro PlacementAbsolufy|Macro PlacementAbsolufy}}: reset Part containers to global origin while maintaining objects absolute position.<br />
* {{MacroLink|Macro SplitPropEditor|Macro SplitPropEditor}}: temporarily split the property editor from the combo view to a separated dock widget<br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro StraightenObject|Macro StraightenObject}}: re-align object(s) with FreeCAD coordinate system according reference face/edge<br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro_Visibility_Manager}}: manage visibility of document objects by type or individually<br />
* {{MacroLink|Macro TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document<br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label .... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
* {{MacroLink|Macro ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:132--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro Sheet Metal Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro Unroll Ruled Surface|Macro Unroll Ruled Surface}}: allows to unroll ruled surfaces and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro Unfold Box|Macro Unfold Box}}: allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro Airfoil Import & Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro Cabinets32|Macro Cabinets32}}: creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
* {{MacroLink|Icon=Macro Half_turn_stairs.png|Macro Half turn stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro Half-Hull Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
* {{MacroLink|Icon=Gearworkbech.png|Macro FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro Corner shapes wizard|Macro Corner shapes wizard}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=PropertyMemo.png|Macro PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft)<br />
* {{MacroLink|Icon=Macro Fonts Win10 PYMP.png|Macro Fonts Win10 PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the ShapeString is empty and this little macro can help you see aesily the font to use.<br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro Rubik Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch. <br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Woodworking === <!--T:138--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:139--><br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions getDimensions]: FreeCAD macro to get chipboards dimensions to cut (BOM, cutlist).<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/Woodworking Woodworking workbench]: good starting point for all FreeCAD woodworkers.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:134--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : freeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: flamingo (workbench for metal structures).<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 workbench, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=1105043Macros recipes2022-02-27T15:55:40Z<p>Dprojects: </p>
<hr />
<div><languages/><br />
<br />
{|class="fcinfobox wikitable ct" height=100% style="width: 230px; float: right; margin-left: 1em" |<br />
| class="ctTitle" style="font-weight: bold; font-size: 125%;" | [[Image:Text-x-python.png|32px]] Macros<br />
|-<br />
| class="ctToc"|<br/>__TOC__<br />
|}<br />
<translate><br />
<!--T:95--><br />
This page contains [[macros|macros]] that add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you wrote a macro, and want to include it in the categories in this page, see '''[[macro documentation|macro documentation]]''' to learn about properly documenting the macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:98--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro Rotate View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro Rotate ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in ViewAxonometric.<br />
* {{MacroLink|Icon=Text_console_python.png|Macro Rotate View Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro View Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro Texture Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro Mouse Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
* {{MacroLink|Icon=Centericon.png|Macro MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro Align View to Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro Align Object to View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro Align Camera to Working Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft SelectPlane|Draft Working Plane]]<br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro Align Working Plane to Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft SelectPlane|Draft Working Plane]] to the center of the current view<br />
* {{MacroLink|Icon=Macro Align Face Object to View.png|Macro Align Face Object to View|Macro Align Face Object to View}}: This macro align the face of the selected object to the current View (in case face hole the hole is placed to the view).<br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro Toggle Panels Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
* {{MacroLink|Icon=FCCamera_00.png|Macro FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
* {{MacroLink|Icon=Macro SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
* {{MacroLink|Icon=Macro VisibleAlls.png|Macro VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
* {{MacroLink|Icon=Macro HiddenAlls.png|Macro HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
* {{MacroLink|Icon=Macro If Selected Stay If Not Then Delete.png|Macro If Selected Stay If Not Then Delete|Macro If Selected Stay If Not Then Delete}} :All object not selected hare deletted !!.<br />
* {{MacroLink|Icon=Macro SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=SelectVisible.png|Macro SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles1.png|Macro_Manage_Navigational_Style|Macro Manage Navigational Style1}}: This pair of macros allow you to alter the Navigation Style to 'CAD'.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles2.png|Macro_Manage_Navigational_Style2|Macro Manage Navigational Style2}}: This pair of macros allow you to alter the Navigation Style to 'Inventor'.<br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro Duplicate Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard .<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro Rotate To Point.png|Macro Rotate To Point|Macro Rotate To Point}}: Macro for rotate on object on itself with the axis of rotation the boundbox center, center of mass or last point clicked<br />
* {{MacroLink|Icon=Macro Select Hovering.png|Macro Select Hovering|Macro Select Hovering}}: this macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
* {{MacroLink|Icon=Macro ExpandTreeItem.png|Macro ExpandTreeItem|Macro ExpandTreeItem}}: this macro expand selected items in the tree view.. If not selection all item are expand/collapse<br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro Mouse over cb|Macro Mouse over cb}}: this macro display all elements below cursor (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro FC element selector|Macro FC element selector}}: this macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro_Screen_Wiki}}: Special macro for the Wiki Worker. This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions. <br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen. <br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:100--><br />
* {{MacroLink|Icon=Animator.svg|Macro Animator|Macro Animator}}: Animate your model by animating its properties with this feature python object.<br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro crank simul|Macro crank simul}}: Rotation rod and piston.<br />
* {{MacroLink|Icon=Macro_Spring.png|Macro Spring|Macro Spring}}: Simulation of one spring.<br />
* {{MacroLink|Icon=Macro_hinge.png|Macro hinge|Macro hinge}}: Open and close hinge.<br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro Assembly|Macro Assembly}}: Assembly animate.<br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro Animated Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro Assemblage Imprimante 3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro Constraint Draft|Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg]] Code and Scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:102--><br />
* {{MacroLink|Icon=Macro MessageBox.png|Macro MessageBox|Macro MessageBox}}: shows how to give information to the user through the GUI.<br />
* {{MacroLink|Icon=MEPlan.png|Qt Example|Qt Example}}: example of using Qt commands, their connections, extraction and data assignment. <br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro Python Assistant Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro Build Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro Global Variable Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro clone explicit|Macro clone explicit}}: creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: inspection tool for FreeCAD macro development and project debug.<br />
<br />
</translate><br />
<!--NOT MODIFY THE POSITION OF THIS MACRO THIS MACRO "Macro ZTest Over 128" DO NOT HAVE TO BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro ZTest Over 128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:104--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro Extract Wires from Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes<br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro MeshToPart|Macro MeshToPart}}: converts selected meshes to parts<br />
* {{MacroLink|Icon=PartToVRML.png|Macro PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible)<br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
* {{MacroLink|Icon=Macro FCWire To Volume.png|Macro FCWire To Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create"<br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is considered obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:106--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro Automatic drawing|Macro Automatic drawing}}: allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective<br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro CartoucheFC Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|templates_Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro CartoucheFC 2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro Normal Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_BSpline.svg]] Dxf 2D Draft=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:108--><br />
* {{MacroLink|Icon=Macro Rectellipse.png|Macro Rectellipse|Macro Rectellipse}}: creates a parametric rectellipse<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Make Circle 3 Points|Macro Make Circle 3 Points}}: creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points|Macro Draft Circle 3 Points}}: creates a circle from 3 selected points 2D orthogonal<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points 3D|Macro Draft Circle 3 Points 3D}}: creates a circle from 3 selected points in the space 3D<br />
* {{MacroLink|Icon=Macro Make Arc 3 Points.png|Macro Make Arc 3 Points|Macro Make Arc 3 Points}}: creates a arc from 3 selected points<br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro Ellipse-Center+2Points|Macro Ellipse-Center+2Points}} Makes an ellipse by selecting three points (in this order): centre, major radius and minor radius<br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro FCConvertLines|Macro FC Convert Lines}}: this macro convert the object line, wire in line Dash, DashDot, DashDotDot,ZigZag and Hand with the dimensions given.<br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro Creating faces from a DXF file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro DXF to Face and Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported dxf to face and sketch.<br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draf command set in a small macro for the 2D sketch example: work with the DXF files.<br />
* {{MacroLink|Icon=Macro Dxf To Shape.png|Macro Dxf To Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Fem_ResultDisplacement.svg]] Fem=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:110--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator<br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing. <br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Clear_All.svg]] Info and measures=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:112--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature python object containing the shape of the intersection.<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units<br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo_ToolBar|FCInfo_ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo Alternate Linux|Macro FCInfo Alternate Linux}}: same as above, but for Linux<br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D<br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro FCInfoToMouse|Macro FCInfoToMouse}}: Provide informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen<br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro Delta xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points<br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user<br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro Dump Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
* {{MacroLink|Icon=Macro CenterOfMass.png|Macro CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...)<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:114--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro screw maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
* {{MacroLink|Icon=FreeCAD Doc.png|Macro PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:116--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature python update of Macro 3D Parametric Curve.<br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro 3D Parametric Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro Draw 2D Function|Macro Draw 2D Function}}: draws a function described by an equation z=F(x)<br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro Draw Parametric 2D Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar<br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility : Tab > Wire > Curves And Surfaces {{KEY|Launch Curves and Surfaces Menu ...}}<br />
equations.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:IFC.svg]] Multifunctional=== <!--T:117--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:118--><br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility to create plans of the axes, planes from 3 points, axes on a form, information on the coordinates of the shape and many other useful features to facilitate the creation of your project. This utility is up next in the combo view.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Image.svg]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:120--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro Make Cube|Macro Make Cube}}: creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points<br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro Solid Sweep|Macro Solid Sweep}}: creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro Geodesic Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell<br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro Line Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y<br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro cutLine|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
* {{MacroLink|Icon=Macro CirclePlus.png|Macro CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
* {{MacroLink|Icon=Macro_Circle.png|Macro circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro cutCircle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro triangleAH|Macro Triangle AH}}: This macro create one triangle creates a triangle by giving the head angle and the height of the triangle (the triangle of the head is positioned to the xyz coordinates 0.0)<br />
* {{MacroLink|Icon=FCTexture.png|Macro FCTexture|Macro Texture}}: Create a project from a bmp image to create a texture easily<br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro FCCreaLoft|Macro Loft}}: Create a loft with a list of wire (specially created for Macro Texture see above)<br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro Circular Text}}: This macro create a text around a cylinder<br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro ReproWire|Macro Repro Wire}}: This macro reproduce all element selected subobject wire or face.<br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro Apothem Based Prism GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro FCSpring Helix Variable|Macro FCSpring Helix Variable}}: This macro create one spring truncate, the troncature is adjustable on the all coil to choice.<br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring On Surface|Macro FCSpring On Surface}}: This macro create one spring (helix) on the surface of the object (solide).<br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro Guitar fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker<br />
* {{MacroLink|Icon=Macro Guitar Nut.png|Macro Guitar Nut|Macro Guitar Nut}}: Guitar Nut Maker<br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro Site From Contours|Macro Site From Contours}}: creates an Arch Site from a series of contour lines<br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature python Honeycomb object compatible in and out of PartDesign.<br />
* {{MacroLink|Icon=Hilbert curve icon.png|Macro HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:122--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro ArrayCopy|Macro ArrayCopy}}: copies the selected object several times, on an array grid.<br />
* {{MacroLink|Icon=Bevel.svg|Macro Bevel|Macro Bevel}}: bevels selected vertices, creates parametric feature python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro FlattenWire|Macro FlattenWire}}: flattens draft wires that are not planar to their median Z coordinate.<br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro FlattenWire3Points|Macro FlattenWire3Points}}: flattens draft wires that are not planar to a plane defined by 3 points.<br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: create a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro JointWire|Macro JointWire}}: allows to find and joint all non connected edge to the closest non connected one using a line.<br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro Remove parametric history|Macro Remove parametric history}}: removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro Image Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro Parametric Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro MatrixTransform|Macro MatrixTransform}}: apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro Connect And Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
* {{MacroLink|Icon=Part_Section.png|Macro Section|Macro Section}}: (parametric): alternative implementation of Part Section tool, more suitable for making sweep paths.<br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro Overlap|Macro Overlap}}: (parametric): Boolean operation. Similar to Part Common, but with custom overlap count threshold.<br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:124--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro 3d Printer Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slider by changing the SLICERAPP variable in the source code. <br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro FreeCAD to Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:128--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro Alias Manager|Macro Alias Manager}}: helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro FCSpreadSheet Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/sheet2export sheet2export]: allows to export FreeCAD spreadsheet to file formats (.md, .html, .csv, .json).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:130--><br />
* {{MacroLink|Icon=CenterFace.png|Macro CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates<br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro Center Align Objects with Faces or Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: - Concentric constraint among non cylindrical parts; - Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro Easy cutouts for Enclosure Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way<br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD<br />
* {{MacroLink|Icon=Force_Recompute.png|Macro ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model<br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro Recompute Profiler|Macro Recompute Profiler}}: measures time it takes to recompute each object in a project<br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro Shake Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
* {{MacroLink|Icon=Replace_Part.png|Macro Replace Part in Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro Toggle Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro Toggle Drawstyle Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same Macro Toggle Drawstyle above optimized all language)<br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
* {{MacroLink|Icon=HighlightDifference.png|Macro HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro cross section|Macro cross section}}: displays an interactively slidable cross-section.<br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro Print_SceneGraph|Macro Print_SceneGraph}}: prints the SceneGraph.<br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro BoundingBox Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles<br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro Arch Axis System Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro merge duplicate materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro Unbind Numpad Shortcuts|Macro Unbind Numpad Shortcuts}}: rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro findConfigFiles|Macro findConfigFiles}}: finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
* {{MacroLink|Icon=Snip.png|Macro Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro SketchUnmap|Macro SketchUnmap}}: unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro PlacementAbsolufy|Macro PlacementAbsolufy}}: reset Part containers to global origin while maintaining objects absolute position.<br />
* {{MacroLink|Macro SplitPropEditor|Macro SplitPropEditor}}: temporarily split the property editor from the combo view to a separated dock widget<br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro StraightenObject|Macro StraightenObject}}: re-align object(s) with FreeCAD coordinate system according reference face/edge<br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro_Visibility_Manager}}: manage visibility of document objects by type or individually<br />
* {{MacroLink|Macro TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document<br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label .... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
* {{MacroLink|Macro ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:132--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro Sheet Metal Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro Unroll Ruled Surface|Macro Unroll Ruled Surface}}: allows to unroll ruled surfaces and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro Unfold Box|Macro Unfold Box}}: allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro Airfoil Import & Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro Cabinets32|Macro Cabinets32}}: creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
* {{MacroLink|Icon=Macro Half_turn_stairs.png|Macro Half turn stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro Half-Hull Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
* {{MacroLink|Icon=Gearworkbech.png|Macro FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro Corner shapes wizard|Macro Corner shapes wizard}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=PropertyMemo.png|Macro PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft)<br />
* {{MacroLink|Icon=Macro Fonts Win10 PYMP.png|Macro Fonts Win10 PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the ShapeString is empty and this little macro can help you see aesily the font to use.<br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro Rubik Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch. <br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:134--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : freeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: flamingo (workbench for metal structures).<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions By dprojects]: getDimensions FreeCAD macro to get chipboards dimensions to cut (woodworking).<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 workbench, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=1105042Macros recipes2022-02-27T15:52:00Z<p>Dprojects: </p>
<hr />
<div><languages/><br />
<br />
{|class="fcinfobox wikitable ct" height=100% style="width: 230px; float: right; margin-left: 1em" |<br />
| class="ctTitle" style="font-weight: bold; font-size: 125%;" | [[Image:Text-x-python.png|32px]] Macros<br />
|-<br />
| class="ctToc"|<br/>__TOC__<br />
|}<br />
<translate><br />
<!--T:95--><br />
This page contains [[macros|macros]] that add functionality to a FreeCAD installation.<br />
<br />
<!--T:158--><br />
If you wrote a macro, and want to include it in the categories in this page, see '''[[macro documentation|macro documentation]]''' to learn about properly documenting the macro.<br />
<br />
== Categories == <!--T:96--><br />
<br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_CheckGeometry.svg]] 3D View operations=== <!--T:97--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:98--><br />
* {{MacroLink|Icon=Macro_Rotate_View_view_90_Degrees.png|Macro Rotate View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in [[Image:View-top.svg|Std_ViewTop|16px|link=Std_ViewTop]] [[Std_ViewTop|XY (top)]] view.<br />
* {{MacroLink|Icon=Macro_Rotate_View_with_Y_pointing_upwards_.png|Macro Rotate ViewAxonometric|Macro Rotate ViewAxonometric}}: This macro rotates the current view in ViewAxonometric.<br />
* {{MacroLink|Icon=Text_console_python.png|Macro Rotate View Free|Macro Rotate View Free}}: This macro is used in the Python console and rotates the current view in the angle and plane given.<br />
* {{MacroLink|Icon=Macro_View_Rotation.png|Macro View Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
* {{MacroLink|Icon=Macro_Texture_Objects.png|Macro Texture Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
* {{MacroLink|Icon=Macro_Mouse_Cross.png|Macro Mouse Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
* {{MacroLink|Icon=Centericon.png|Macro MoveToOrigin|Macro Move to Origin}}: This macro translates the Placement of an object so that a selected location becomes its new origin.<br />
* {{MacroLink|Icon=Macro_Align_View_to_Face.png|Macro Align View to Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
* {{MacroLink|Icon=Macro_Align_Object_to_View.png|Macro Align Object to View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
* {{MacroLink|Icon=Macro_Align_Camera_to_Working_Plane.png|Macro Align Camera to Working Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft SelectPlane|Draft Working Plane]]<br />
* {{MacroLink|Icon=Macro_Align_Working_Plane_to_Camera.png|Macro Align Working Plane to Camera|Macro Align Working Plane to Camera}}: This macro moves the current [[Draft SelectPlane|Draft Working Plane]] to the center of the current view<br />
* {{MacroLink|Icon=Macro Align Face Object to View.png|Macro Align Face Object to View|Macro Align Face Object to View}}: This macro align the face of the selected object to the current View (in case face hole the hole is placed to the view).<br />
* {{MacroLink|Icon=Macro_Toggle_Views_Visibility.png|Macro Toggle Panels Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
* {{MacroLink|Icon=FCCamera_00.png|Macro FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera.<br />
* {{MacroLink|Icon=Macro SelectVisible.png|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
* {{MacroLink|Icon=Macro VisibleAlls.png|Macro VisibleAlls|Macro Visible Alls objects}}: This macro check visible all object in the document (Visibility=True).<br />
* {{MacroLink|Icon=Macro HiddenAlls.png|Macro HiddenAlls|Macro Hidden Alls objects}}: This macro check hidden all object in the document (Visibility=False).<br />
* {{MacroLink|Icon=Macro If Selected Stay If Not Then Delete.png|Macro If Selected Stay If Not Then Delete|Macro If Selected Stay If Not Then Delete}} :All object not selected hare deletted !!.<br />
* {{MacroLink|Icon=Macro SelectVisible2.png|Macro_Toggle_Visibility2_1-2|Macro Toggle Visibility2 1-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=Macro_VisibleAlls2.png|Macro_Toggle_Visibility2_2-2|Macro Toggle Visibility2 2-2}}: Set of two macro, macro '''1:Macro_Toggle_Visibility2_1-2''' hidden the objects not selected, macro '''2:Macro_Toggle_Visibility2_2-2''' displayed alls objects, macro with the original visibility.<br />
* {{MacroLink|Icon=SelectVisible.png|Macro SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles1.png|Macro_Manage_Navigational_Style|Macro Manage Navigational Style1}}: This pair of macros allow you to alter the Navigation Style to 'CAD'.<br />
* {{MacroLink|Icon=Macro_Manage_Navigational_Styles2.png|Macro_Manage_Navigational_Style2|Macro Manage Navigational Style2}}: This pair of macros allow you to alter the Navigation Style to 'Inventor'.<br />
* {{MacroLink|Icon=Macro_Duplicate_Selection.png|Macro Duplicate Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
* {{MacroLink|Icon=Macro_Copy3DViewToClipboard.png|Macro Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard .<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro Rotate To Point.png|Macro Rotate To Point|Macro Rotate To Point}}: Macro for rotate on object on itself with the axis of rotation the boundbox center, center of mass or last point clicked<br />
* {{MacroLink|Icon=Macro Select Hovering.png|Macro Select Hovering|Macro Select Hovering}}: this macro select a choice Face, Edge, Vertex hovering by the mouse.<br />
* {{MacroLink|Icon=Macro ExpandTreeItem.png|Macro ExpandTreeItem|Macro ExpandTreeItem}}: this macro expand selected items in the tree view.. If not selection all item are expand/collapse<br />
* {{MacroLink|Icon=Macro_Mouse_over_cb.png|Macro Mouse over cb|Macro Mouse over cb}}: this macro display all elements below cursor (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_FC_element_selector.png|Macro FC element selector|Macro FC element selector}}: this macro display all elements below cursor same "Macro Mouse over cb" with GUI (elements covered by other elements will also be displayed)<br />
* {{MacroLink|Icon=Macro_Screen_Wiki.png|Macro_Screen_Wiki|Macro_Screen_Wiki}}: Special macro for the Wiki Worker. This macro allows to save the 3D view in the desired format. The 3D view or the full 3D window of FreeCAD takes the desired dimensions. <br />
* {{MacroLink|Icon=GuiResetToolbars.svg|Macro GuiResetToolbars|Macro GuiResetToolbars}}: This macro resets the position of the toolbars.<br />
* {{MacroLink|Icon=Zoom1_1.svg|Macro Zoom1_1|Macro Zoom 1:1}}: 1:1 Zoom so objects appear their actual size on the screen. <br />
</translate><br />
</div><br />
</div><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg]] Animation=== <!--T:99--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:100--><br />
* {{MacroLink|Icon=Animator.svg|Macro Animator|Macro Animator}}: Animate your model by animating its properties with this feature python object.<br />
* {{MacroLink|Icon=Macro_crank_simul.png|Macro crank simul|Macro crank simul}}: Rotation rod and piston.<br />
* {{MacroLink|Icon=Macro_Spring.png|Macro Spring|Macro Spring}}: Simulation of one spring.<br />
* {{MacroLink|Icon=Macro_hinge.png|Macro hinge|Macro hinge}}: Open and close hinge.<br />
* {{MacroLink|Icon=Macro_Assembly.png|Macro Assembly|Macro Assembly}}: Assembly animate.<br />
* {{MacroLink|Icon=Macro_Animated_Constrain.png|Macro Animated Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher.<br />
* {{MacroLink|Icon=Macro_Assemblage_Imprimante_3D.png|Macro Assemblage Imprimante 3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer.<br />
* {{MacroLink|Icon=Macro_Constraint_Draft.png|Macro Constraint Draft|Constraint Draft}}: Simple example animation Draft wires by use the Expressions for associate many wires and simulate or verify the movement. Here the circle rotation create the movement for all objects connected (This macro run with FreeCAD version 0.16).<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Applications-python.svg]] Code and Scripting=== <!--T:101--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:102--><br />
* {{MacroLink|Icon=Macro MessageBox.png|Macro MessageBox|Macro MessageBox}}: shows how to give information to the user through the GUI.<br />
* {{MacroLink|Icon=MEPlan.png|Qt Example|Qt Example}}: example of using Qt commands, their connections, extraction and data assignment. <br />
* {{MacroLink|Icon=Macro_Python_Assistant_Window.png|Macro Python Assistant Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
* {{MacroLink|Icon=Macro_Build_Utility.png|Macro Build Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
* {{MacroLink|Icon=Macro_Global_Variable_Watcher.png|Macro Global Variable Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
* {{MacroLink|Icon=Macro_clone_explicit.png|Macro clone explicit|Macro clone explicit}}: creates a copy of each selected object and sets its properties to an expression linking to the original object, making it an explicit and editable clone.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/scanObjects scanObjects]: inspection tool for FreeCAD macro development and project debug.<br />
<br />
</translate><br />
<!--NOT MODIFY THE POSITION OF THIS MACRO THIS MACRO "Macro ZTest Over 128" DO NOT HAVE TO BE TRANSLATED--><br />
* {{MacroLink|Icon=Macro_ZTest_Over_128.png|Macro ZTest Over 128|Macro ZTest Over 128}}: This macro is only used by programmers Test characters ASCII over 127.<br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_MeshToShape.svg]] Conversion=== <!--T:103--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:104--><br />
* {{MacroLink|Icon=Macro_Extract_Wires_from_Mesh.png|Macro Extract Wires from Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes<br />
* {{MacroLink|Icon=Macro_MeshToPart.png|Macro MeshToPart|Macro MeshToPart}}: converts selected meshes to parts<br />
* {{MacroLink|Icon=PartToVRML.png|Macro PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible)<br />
* {{MacroLink|Icon=Macro_FaceToSketch.png|Macro FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
* {{MacroLink|Icon=FCBmpImportLogo.svg|Macro FCBmpImport|Macro FCBmpImport}}: Import Black and White BMP images into FreeCAD as sketch, wire, or solid or Grayscale BMP for lithophanes.<br />
* {{MacroLink|Icon=Macro FCWire To Volume.png|Macro FCWire To Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create"<br />
* {{MacroLink|Icon=Macro_DeepCopy.png|Macro_DeepCopy|Macro DeepCopy}}: Make a compound out of a part with a copy of all its shapes.<br />
* {{MacroLink|Icon=MultiCopy-reduced.png|Macro_MultiCopy|Macro MultiCopy}}: MultiCopy allows the duplication (copy and paste) of multiple FreeCAD objects that can be labelled sequentially and in a custom manner.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro_3DXML_import|Macro 3DXML import}}: Imports a 3DXML-ascii file into FreeCAD, limited functionality.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Drawing-orthoviews.svg]] Drawing Workbench=== <!--T:105--><br />
<br />
<!--T:165--><br />
The [[Drawing Workbench|Drawing Workbench]] is considered obsolete since FreeCAD 0.17. Consider using the [[TechDraw Workbench|TechDraw Workbench]] instead.<br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:106--><br />
* {{MacroLink|Icon=Macro_Automatic_drawing.png|Macro Automatic drawing|Macro Automatic drawing}}: allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective<br />
* {{MacroLink|Icon=Macro_CartoucheFC.png|Macro CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_Full.png|Macro CartoucheFC Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge [[Misc_templates_Full|templates_Full]] of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Icon=Macro_CartoucheFC_2.png|Macro CartoucheFC 2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
* {{MacroLink|Icon=Macro_Normal_Vector.png|Macro Normal Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_BSpline.svg]] Dxf 2D Draft=== <!--T:107--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:108--><br />
* {{MacroLink|Icon=Macro Rectellipse.png|Macro Rectellipse|Macro Rectellipse}}: creates a parametric rectellipse<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Make Circle 3 Points|Macro Make Circle 3 Points}}: creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points|Macro Draft Circle 3 Points}}: creates a circle from 3 selected points 2D orthogonal<br />
* {{MacroLink|Icon=Macro_Draft_Circle_3_Points.png|Macro Draft Circle 3 Points 3D|Macro Draft Circle 3 Points 3D}}: creates a circle from 3 selected points in the space 3D<br />
* {{MacroLink|Icon=Macro Make Arc 3 Points.png|Macro Make Arc 3 Points|Macro Make Arc 3 Points}}: creates a arc from 3 selected points<br />
* {{MacroLink|Icon=Macro_Ellipse-Center%2B2Points.png|Macro Ellipse-Center+2Points|Macro Ellipse-Center+2Points}} Makes an ellipse by selecting three points (in this order): centre, major radius and minor radius<br />
* {{MacroLink|Icon=Macro_FCConvertLines.png|Macro FCConvertLines|Macro FC Convert Lines}}: this macro convert the object line, wire in line Dash, DashDot, DashDotDot,ZigZag and Hand with the dimensions given.<br />
* {{MacroLink|Icon=Macro_EdgesToArc.png|Macro EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
* {{MacroLink|Icon=Macro_Creating_faces_from_a_DXF_file.png|Macro Creating faces from a DXF file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
* {{MacroLink|Icon=Macro_DXF_to_Face_and_Sketch.png|Macro DXF to Face and Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported dxf to face and sketch.<br />
* {{MacroLink|Icon=Macro_Compound_Plus.png|Macro_Compound_Plus|Macro Compound Plus}}: Draf command set in a small macro for the 2D sketch example: work with the DXF files.<br />
* {{MacroLink|Icon=Macro Dxf To Shape.png|Macro Dxf To Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Fem_ResultDisplacement.svg]] Fem=== <!--T:109--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:110--><br />
* {{MacroLink|Icon=Macro_GMSH.png|Macro GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator<br />
* {{MacroLink|Icon=Text-x-python.png|Macro_export_transient_FEM_results|Macro export transient FEM results}}: This macro exports multiple FEM result objects from a transient analysis to the VTK format and generates a PVU file which can be used to load the results directly into ParaView for post-processing. <br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Part_Measure_Clear_All.svg]] Info and measures=== <!--T:111--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:112--><br />
* {{MacroLink|Icon=Intersection_Icon.svg|Macro Intersection|Macro Intersection}}: Finds the intersection between 2 or 3 selected edges/faces, works with Datum Planes and Datum Lines also. Creates a parametric feature python object containing the shape of the intersection.<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units<br />
* {{MacroLink|Icon=FCInfo.png|Macro_FCInfo_ToolBar|FCInfo_ToolBar}}: Gives a series of information about the selected shape as FCInfo in a mini ToolBar<br />
* {{MacroLink|Icon=FCInfo.png|Macro FCInfo Alternate Linux|Macro FCInfo Alternate Linux}}: same as above, but for Linux<br />
* {{MacroLink|Icon=Macro_FCInfoGlass.png|Macro FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D<br />
* {{MacroLink|Icon=FCInfoToMouse.png|Macro FCInfoToMouse|Macro FCInfoToMouse}}: Provide informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen<br />
* {{MacroLink|Icon=Macro_Delta_xyz.png|Macro Delta xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points<br />
* {{MacroLink|Icon=Macro_ObjectInfo.png|Macro ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user<br />
* {{MacroLink|Icon=Macro_Dump_Objects.png|Macro Dump Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
* {{MacroLink|Icon=Macro_MeasureCircle.png|Macro MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
* {{MacroLink|Icon=Macro CenterOfMass.png|Macro CenterOfMass|Macro CenterOfMass}}: Gives the total mass and the center of mass of multiple objects selected with the density chosen.<br />
* {{MacroLink|Icon=Macro_SimpleProperties.png|Macro SimpleProperties|Macro SimpleProperties}}: Display in a concise way basic physical properties of an object (volume, bound box dimensions, ...)<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_VisGroup.svg]] Libraries=== <!--T:113--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:114--><br />
* {{MacroLink|Icon=Macro_screw_maker1_2.png|Macro screw maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
* {{MacroLink|Icon=Macro_BOLTS.png|Macro BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
* {{MacroLink|Icon=FreeCAD Doc.png|Macro PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bound-expression.svg]] Mathematical functions=== <!--T:115--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:116--><br />
* {{MacroLink|Icon=Parametric_Curve_FP.svg|Macro Parametric_Curve_FP|Macro Parametric Curve FP}}: Feature python update of Macro 3D Parametric Curve.<br />
* {{MacroLink|Icon=Macro_3D_Parametric_Curve.png|Macro 3D Parametric Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
* {{MacroLink|Icon=Macro_Draw_2D_Function.png|Macro Draw 2D Function|Macro Draw 2D Function}}: draws a function described by an equation z=F(x)<br />
* {{MacroLink|Icon=Macro_Draw_Parametric_2D_Function.png|Macro Draw Parametric 2D Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar<br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility : Tab > Wire > Curves And Surfaces {{KEY|Launch Curves and Surfaces Menu ...}}<br />
equations.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:IFC.svg]] Multifunctional=== <!--T:117--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:118--><br />
* {{MacroLink|Icon=WF_wf.png|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility to create plans of the axes, planes from 3 points, axes on a form, information on the coordinates of the shape and many other useful features to facilitate the creation of your project. This utility is up next in the combo view.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_Image.svg]] Object creation=== <!--T:119--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:120--><br />
* {{MacroLink|Icon=Macro_makeCube.png|Macro Make Cube|Macro Make Cube}}: creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points<br />
* {{MacroLink|Icon=Macro_Solid_Sweep.png|Macro Solid Sweep|Macro Solid Sweep}}: creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
* {{MacroLink|Icon=Macro_Geodesic_Dome.svg|Macro Geodesic Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell<br />
* {{MacroLink|Icon=Pyramidicon.svg|Macro Pyramid|Macro Pyramid}}: This macro creates a parametric pyramid. All parameters are customizable just like with Part Cone.<br />
* {{MacroLink|Icon=Dodecahedron.svg|Macro Polyhedrons|Macro Polyhedrons}}: This macro creates parametric polyhedrons (dodecahedron, icosahedron, tetrahedron, ...). Customizable via radius or side.<br />
* {{MacroLink|Icon=Macro_Line_Length.png|Macro Line Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y<br />
* {{MacroLink|Icon=Macro_Cut_Line.png|Macro cutLine|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
* {{MacroLink|Icon=Macro CirclePlus.png|Macro CirclePlus|Macro CirclePlus}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same below but with GUI) plus create sector and face.<br />
* {{MacroLink|Icon=Macro_Circle.png|Macro circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice (same above without GUI).<br />
* {{MacroLink|Icon=Macro_Cut_Circle.png|Macro cutCircle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
* {{MacroLink|Icon=Macro_Triangle_AH.png|Macro triangleAH|Macro Triangle AH}}: This macro create one triangle creates a triangle by giving the head angle and the height of the triangle (the triangle of the head is positioned to the xyz coordinates 0.0)<br />
* {{MacroLink|Icon=FCTexture.png|Macro FCTexture|Macro Texture}}: Create a project from a bmp image to create a texture easily<br />
* {{MacroLink|Icon=FCCreaLoft.png|Macro FCCreaLoft|Macro Loft}}: Create a loft with a list of wire (specially created for Macro Texture see above)<br />
* {{MacroLink|Icon=FCCircularTextButtom.png|Macro_FCCircularText|Macro Circular Text}}: This macro create a text around a cylinder<br />
* {{MacroLink|Icon=Macro_WireXYZ.png|Macro WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
* {{MacroLink|Icon=Macro_ReproWire.png|Macro ReproWire|Macro Repro Wire}}: This macro reproduce all element selected subobject wire or face.<br />
* {{MacroLink|Icon=Part_Prism_Apothem.svg|Macro Apothem Based Prism GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
* {{MacroLink|Icon=FCSpring_Helix_Variable.png|Macro FCSpring Helix Variable|Macro FCSpring Helix Variable}}: This macro create one spring truncate, the troncature is adjustable on the all coil to choice.<br />
* {{MacroLink|Icon=FCSpring_On_Surface.png|Macro_FCSpring On Surface|Macro FCSpring On Surface}}: This macro create one spring (helix) on the surface of the object (solide).<br />
* {{MacroLink|Icon=Macro_Guitar_fretboard.png|Macro Guitar fretboard|Macro Guitar fretboard}}: Guitar Fretboard Maker<br />
* {{MacroLink|Icon=Macro Guitar Nut.png|Macro Guitar Nut|Macro Guitar Nut}}: Guitar Nut Maker<br />
* {{MacroLink|Icon=Cam-groover-icon-32x32.png|Macro FCCamGroover|Macro FCCamGroover}}: Creates grooved cylinder for cam.<br />
* {{MacroLink|Icon=Macro_Site_From_Contours.png|Macro Site From Contours|Macro Site From Contours}}: creates an Arch Site from a series of contour lines<br />
* {{MacroLink|Icon=FCHoneycombMakerIcon.png|Macro FCHoneycombMaker|Macro FCHoneycombMaker}}: Creates parametric honeycomb grid.<br />
* {{MacroLink|Icon=Macro_Honeycomb.svg|Macro_Honeycomb|Macro Honeycomb}}: Creates a feature python Honeycomb object compatible in and out of PartDesign.<br />
* {{MacroLink|Icon=Hilbert curve icon.png|Macro HilbertCurve|Macro HilbertCurve}}: Creates an Hilbert curve wire in 2 or 3 dimensions with many iterations.<br />
* {{MacroLink|Icon=AeroFoil.png|Macro_AeroFoil|Macro AeroFoil}}: AeroFoil creates airfoil curves and faces using pre-defined models, algebraic functions, and DAT or CSV Files.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] Object transformation=== <!--T:121--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:122--><br />
* {{MacroLink|Icon=Macro_ArrayCopy.png|Macro ArrayCopy|Macro ArrayCopy}}: copies the selected object several times, on an array grid.<br />
* {{MacroLink|Icon=Bevel.svg|Macro Bevel|Macro Bevel}}: bevels selected vertices, creates parametric feature python object, compatible with all solids (except with round edges) including features in Part Design bodies.<br />
* {{MacroLink|Icon=Macro_FlattenWire.png|Macro FlattenWire|Macro FlattenWire}}: flattens draft wires that are not planar to their median Z coordinate.<br />
* {{MacroLink|Icon=Macro_FlattenWire3Points.png|Macro FlattenWire3Points|Macro FlattenWire3Points}}: flattens draft wires that are not planar to a plane defined by 3 points.<br />
* {{MacroLink|Icon=Macro_Joint_Icon.svg|Macro_Joint|Macro Joint}}: create a variety of joints, such as mortise/tenon, box joints, dovetail joints, and snap joints.<br />
* {{MacroLink|Icon=Macro_JointWire.png|Macro JointWire|Macro JointWire}}: allows to find and joint all non connected edge to the closest non connected one using a line.<br />
* {{MacroLink|Icon=Macro_Remove_parametric_history.png|Macro Remove parametric history|Macro Remove parametric history}}: removes all parametric associativity from an object, leaving it as a "dumb" shape.<br />
* {{MacroLink|Icon=Macro_SuperWire.png|Macro SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails.<br />
* {{MacroLink|Icon=Macro_HealArcs.png|Macro HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf.<br />
* {{MacroLink|Icon=Macro_CloneConvert.png|Macro CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base).<br />
* {{MacroLink|Icon=Image_Scaling.svg|Macro Image Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
* {{MacroLink|Icon=parametric_defeaturing.svg|Macro Parametric Defeaturing|Macro Parametric Defeaturing}}: Macro that provides parametric defeaturing inside and outside the [[PartDesign_Workbench|PartDesign Workbench]].<br />
* {{MacroLink|Icon=Macro_MatrixTransform.png|Macro MatrixTransform|Macro MatrixTransform}}: apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
* {{MacroLink|Icon=Macro_Connect_And_Sweep.png|Macro Connect And Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points or the selected line, wire, edge (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle.<br />
* {{MacroLink|Icon=Part_Section.png|Macro Section|Macro Section}}: (parametric): alternative implementation of Part Section tool, more suitable for making sweep paths.<br />
* {{MacroLink|Icon=Macro_Overlap.png|Macro Overlap|Macro Overlap}}: (parametric): Boolean operation. Similar to Part Common, but with custom overlap count threshold.<br />
* {{MacroLink|Icon=Wirefilter.svg|Macro_WireFilter|Macro WireFilter}}: Filter wires from a sketch to only use certain ones, also 2D offsets, scales, rearranges wire order.<br />
* {{MacroLink|Icon=Workbench_Image.svg|Macro_Colorize|Macro Colorize}}: Easily set colors of faces, edges, and vertices, including individual transparency levels.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Workbench_PartDesign.svg]] PartDesign Workbench=== <!--T:166--><br />
<br />
</translate><br />
<br />
<div class = "mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:167--><br />
* {{MacroLink|Icon=Workbench_PartDesign.svg|Macro PDWrapper|Macro PDWrapper}}: Encapsulates non-PartDesign solids for use in PartDesign Bodies, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:View.svg]] Printer 3D=== <!--T:123--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:124--><br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer.png|Macro 3d Printer Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
* {{MacroLink|Icon=Macro_3d_Printer_Slicer_Individual_Parts.svg|Macro_3d_Printer_Slicer_Individual_Parts|Macro 3d Printer Slicer Individual Parts}}: This code, when run, will export the visible bodies at the top level (bodies deeper in the tree will be ignored) of the currently open design to individual STL files, and open them it in the slicing software that you use. This macro will look for Cura as the default but you can change it to any other slider by changing the SLICERAPP variable in the source code. <br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Preferences-raytracing.svg]] Raytracing=== <!--T:125--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:126--><br />
* {{MacroLink|Icon=Macro_FreeCAD_to_Kerkythea.png|Macro FreeCAD to Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Spreadsheet.svg]] Spreadsheet Workbench=== <!--T:127--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:128--><br />
* {{MacroLink|Icon=aliasmanager_icon.png|Macro Alias Manager|Macro Alias Manager}}: helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
* {{MacroLink|Icon=easy-alias-icon.png|Macro EasyAlias|Macro EasyAlias}}: Quickly create aliases in FreeCAD Spreadsheet workbench. It uses the labels from one column to create aliases for adjacent cells in the next column to the right, e.g. labels from Column A become aliases for the cells in Column B.<br />
* {{MacroLink|Icon=Macro_SpreadsheetTools.png|Macro SpreadsheetTools|Macro Spreadsheet Tools}}: This macro helps managing cells inside FreeCAD Spreadsheet workbench.<br />
* {{MacroLink|Icon=Macro_FCSpreadsheet_Extract.png|Macro FCSpreadSheet Extract|Macro FCSpreadSheet Extract}}: This macro save the data in a csv file with the formula or in a xml file.<br />
* {{MacroLink|Icon=Applications-python.svg|Macro Spreadsheet2html|Macro Spreadsheet2html}}: Exports a spreadsheet as styled html. Intended as support in transfering data to office suits.<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Arch_Survey.svg]] Utility=== <!--T:129--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:130--><br />
* {{MacroLink|Icon=CenterFace.png|Macro CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates<br />
* {{MacroLink|Icon=Macro_Center_Align_Objects_with_Faces_or_Edges.png|Macro Center Align Objects with Faces or Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: - Concentric constraint among non cylindrical parts; - Constraint on center Faces and/or Edges. It works also with the new Body and App::Part containers, as well as with STEP hierarchy.<br />
* {{MacroLink|Icon=Macro_Easy_Cutouts_for_Enclosures.png|Macro Easy cutouts for Enclosure Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way<br />
* {{MacroLink|Icon=Macro_MacroMenu.png|Macro MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD<br />
* {{MacroLink|Icon=Force_Recompute.png|Macro ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model<br />
* {{MacroLink|Icon=Macro_Recompute_Profiler.png|Macro Recompute Profiler|Macro Recompute Profiler}}: measures time it takes to recompute each object in a project<br />
* {{MacroLink|Icon=Macro_Shake_Sketch.png|Macro Shake Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
* {{MacroLink|Icon=Replace_Part.png|Macro Replace Part in Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle.png|Macro Toggle Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object<br />
* {{MacroLink|Icon=Macro_Toggle_Drawstyle_Optimized.png|Macro Toggle Drawstyle Optimized|Macro Toggle Drawstyle Optimized}}: This macro toggles the Drawstyle of the selected object (same Macro Toggle Drawstyle above optimized all language)<br />
* {{MacroLink|Icon=Macro_HighlightCommon.png|Macro HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
* {{MacroLink|Icon=HighlightDifference.png|Macro HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
* {{MacroLink|Icon=Macro_cross_section.png|Macro cross section|Macro cross section}}: displays an interactively slidable cross-section.<br />
* {{MacroLink|Icon=Macro_Print_SceneGraph.png|Macro Print_SceneGraph|Macro Print_SceneGraph}}: prints the SceneGraph.<br />
* {{MacroLink|Icon=BoundBoxTracing.png|Macro BoundingBox Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles<br />
* {{MacroLink|Icon=Macro_Arch_Axis_System_Repartition.png|Macro Arch Axis System Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a<br />
* {{MacroLink|Icon=Macro Perpendicular To Wire.png|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Icon=Macro_merge_duplicate_materials.png|Macro merge duplicate materials|Macro merge duplicate materials}}: Merges materials that have the same base name (with different numeral endings like 001, 002,...) into one.<br />
* {{MacroLink|Icon=Macro_Unbind_Numpad_Shortcuts.png|Macro Unbind Numpad Shortcuts|Macro Unbind Numpad Shortcuts}}: rebinds standard view commands from digit keys to Ctrl+digit, so that they don't spin the view by accident when entering numbers.<br />
* {{MacroLink|Icon=Macro_findConfigFiles.png|Macro findConfigFiles|Macro findConfigFiles}}: finds user config files system.cfg and user.cfg, copies folder location to system clipboard, instructs user on renaming these files in order to reset FreeCAD settings, and opens folder with default file browser.<br />
* {{MacroLink|Icon=Snip.png|Macro Snip|Macro Snip}}: Easily post screenshots to the FreeCAD forum.<br />
* {{MacroLink|Icon=SketchUnmap.svg|Macro SketchUnmap|Macro SketchUnmap}}: unmap a sketch from its current support and makes its placement absolute, eventually creating a locating datum plane.<br />
* {{MacroLink|Icon=Macro_PlacementAbsolufy.png|Macro PlacementAbsolufy|Macro PlacementAbsolufy}}: reset Part containers to global origin while maintaining objects absolute position.<br />
* {{MacroLink|Macro SplitPropEditor|Macro SplitPropEditor}}: temporarily split the property editor from the combo view to a separated dock widget<br />
* {{MacroLink|Icon=Macro_StraightenObject.png|Macro StraightenObject|Macro StraightenObject}}: re-align object(s) with FreeCAD coordinate system according reference face/edge<br />
* {{MacroLink|Icon=Macro_Visibility_Manager.png|Macro_Visibility_Manager|Macro_Visibility_Manager}}: manage visibility of document objects by type or individually<br />
* {{MacroLink|Macro TreeToAscii|Macro TreeToAscii}}: Prints model tree as "ASCII art" with custom pattern & style, and export to clipboard, file or embedded document<br />
* {{MacroLink|Icon=Macro_FCTreeView.png|Macro_FCTreeView|Macro FCTreeView}}: Macro for list all objects in the project in one list without hierarchy, options sort by name, label, visibility, group, by length option search by name, label .... without case sensitive or with case sensitive and select all objects displayed in the macro window.<br />
* {{MacroLink|Macro ImperialScales|Macro ImperialScales}}: Shows a list of US Imperial Arch scales list with the corresponding factor to apply to TechDraw pages or views<br />
<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg]] Wizards=== <!--T:131--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:132--><br />
* {{MacroLink|Icon=Macro_Sheet_Metal_Unfolder.png|Macro Sheet Metal Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
* {{MacroLink|Icon=Macro_Unroll_Ruled_Surface.png|Macro Unroll Ruled Surface|Macro Unroll Ruled Surface}}: allows to unroll ruled surfaces and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Unfold_Box.png|Macro Unfold Box|Macro Unfold Box}}: allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
* {{MacroLink|Icon=Macro_Airfoil_Import_&_Scale.png|Macro Airfoil Import & Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
* {{MacroLink|Icon=GW_Dim.png|Macro Geneva Wheel GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
* {{MacroLink|Icon=Macro_Cabinets32.png|Macro Cabinets32|Macro Cabinets32}}: creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
* {{MacroLink|Icon=Macro Half_turn_stairs.png|Macro Half turn stairs|Macro Half turn stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
* {{MacroLink|Icon=Macro_Half_Hull_Model.png|Macro Half-Hull Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
* {{MacroLink|Icon=Macro_Stairs.png|Macro Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
* {{MacroLink|Icon=Gearworkbech.png|Macro FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro Corner shapes wizard|Macro Corner shapes wizard}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=Macro_Corner_shapes_wizard.png|Macro_Corner_shapes_wizard/update|Macro Corner shapes wizard/update}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|Icon=PropertyMemo.png|Macro PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft)<br />
* {{MacroLink|Icon=Macro Fonts Win10 PYMP.png|Macro Fonts Win10 PYMP|Macro Fonts Win10 PYMP}}: This little macro is dedicate to users of Windows 10. The explorer fonts for use the ShapeString is empty and this little macro can help you see aesily the font to use.<br />
* {{MacroLink|Icon=Macro_Rubik_Cube.png|Macro Rubik Cube|Macro Rubik Cube}}: Display a Rubik Cube and interactively do slice rotations.<br />
* {{MacroLink|Icon=Macro_Megaminx.png|Macro Megaminx|Macro Megaminx}}: Display a Megaminx and interactively do slice rotations.<br />
* {{MacroLink|Icon=ImportAirfoil.svg|Macro_ImportAirfoil|Macro ImportAirfoil}}: Airfoil coordinates import, then scale the airfoil, rotate, translate in the plane, translate along the span, select the plane and the main axis, and turn the geometry into a sketch. <br />
* {{MacroLink|Icon=GenerateViews.svg|Macro_GenerateViews|Macro GenerateViews}}: Macro for automatic 2D views generation with 6 normal projections and one isometric.<br />
* {{MacroLink|Icon=GenerateDrawing.svg|Macro_GenerateDrawing|Macro GenerateDrawing}}: Macro for automatic drawing generation with 3 normal projections and one isometric.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Std_FreeCADWebsite.svg|32px]] Other interesting macros created by FreeCAD users=== <!--T:133--><br />
<br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<br />
<!--T:134--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : freeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, and more.<br />
* [[Image:681.jpg|24px]] [https://github.com/j-wiedemann?tab=repositories By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: flamingo (workbench for metal structures).<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions By dprojects]: getDimensions FreeCAD macro to get chipboards dimensions to cut (woodworking).<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/Siardeni/FreeCADTools By Siardeni]: workbench for create metal profiles, square tubing, z profile, palette, rotation, drawing, and more.<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/realthunder/FreeCAD_assembly3#installation By realthunder]: Assembly3 workbench, and more.<br />
<br />
</translate><br />
</div><br />
</div><br />
<translate><br />
<br />
==Usage== <!--T:135--><br />
<br />
<!--T:159--><br />
See [[how to install macros|how to install macros]] for a full description, and [[Customize Toolbars|customize toolbars]] to add the macros to a toolbar for easy access.<br />
<br />
<!--T:160--><br />
Installing many macros is equivalent to installing a new workbench; see [[How to install additional workbenches|how to install additional workbenches]] for this information.<br />
<br />
=== Automatic installation === <!--T:162--><br />
<br />
<!--T:161--><br />
Use the [[Std_AddonMgr|Addon Manager]] in {{MenuCommand|Tools → Addon manager}} to install a macro that has been included in the [https://github.com/FreeCAD/FreeCAD-macros FreeCAD-macros] repository. {{Version|0.17}} <br />
<br />
=== Manual installation === <!--T:163--><br />
<br />
<!--T:136--><br />
If the [[Std_AddonMgr|Addon Manager]] is not used, the macro can be installed manually.<br />
* Copy the [[Python|Python]] code from the corresponding macro page.<br />
* Open the macros menu {{MenuCommand|Macro → Macros}}, press {{Button|Create}}, and give it a name.<br />
* Paste the Python code that you copied.<br />
* Press the {{Button|Save}} button, and restart FreeCAD.<br />
* To use it, open again the macros menu, select your new macro, and press {{Button|Execute}}.<br />
<br />
=== Add a macro to a custom toolbar === <!--T:164--><br />
<br />
<!--T:137--><br />
* Go to {{MenuCommand|Tools → Customize}}.<br />
* In the {{MenuCommand|Macros}} tab, add a new macro name, and optionally define an icon and a keyboard shortcut.<br />
* In the {{MenuCommand|Toolbars}} tab, create a new toolbar, and add your macro, taking it from the {{MenuCommand|Macros}} category.<br />
<br />
<br />
</translate><br />
[[Category:Macros{{#translation:}}]]<br />
[[Category:Python Code{{#translation:}}]]</div>Dprojectshttps://wiki.freecad.org/index.php?title=Macros_recipes&diff=225494Macros recipes2017-03-16T20:19:48Z<p>Dprojects: I wanted to add new category for woodworking but I am not sure if this will not make a mess</p>
<hr />
<div><translate><br />
<!--T:94--><br />
{{TutorialInfo<br />
|Topic=Macros<br />
|Level=Beginner<br />
|Time=<br />
|Author=<br />
|FCVersion=<br />
|Files=<br />
}}<br />
</translate><br />
<translate><br />
<!--T:95--><br />
This page contains macros to add functionality to your freecad installation<br />
</translate><br />
<translate><br />
<br />
== Macros == <!--T:96--><br />
</translate><br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Part_CheckGeometry.svg]] 3D View operations=== <!--T:97--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:98--><br />
* {{MacroLink|Text-x-python|Macro Rotate View|Macro Rotate View}}: This macro rotates the current view by 90° to the left. Only works if you are in Top view.<br />
* {{MacroLink|Text-x-python|Macro View Rotation|Macro View Rotation}}: Provides a GUI to permit rotation of view by precise amounts in all three directions.<br />
* {{MacroLink|Text-x-python|Macro Texture Objects|Macro Texture Objects}}: This macro allows you to temporarily put a texture image on the selected objects.<br />
* {{MacroLink|Text-x-python|Macro Mouse Cross|Macro Mouse Cross}}: This small macro turns the arrow of the mouse in a precision cross.<br />
* {{MacroLink|Text-x-python|Macro Align View to Face|Macro Align View to Face}}: This macro aligns the current view to a selected face.<br />
* {{MacroLink|Text-x-python|Macro Align Object to View|Macro Align Object to View}}: This macro align the selected object to the current View and set the coordinates Placement of the camera.<br />
* {{MacroLink|Text-x-python|Macro Align Camera to Working Plane|Macro Align Camera to Working Plane}}: This macro aligns the camera to the current [[Draft SelectPlane|Draft Working Plane]]<br />
* {{MacroLink|Text-x-python|Macro Align Face Object to View|Macro Align Face Object to View}}: This macro align the face of the selected object to the current View (in case face hole the hole is placed to the view).<br />
* {{MacroLink|Macro_Toggle_Views_Visibility|Macro Toggle Panels Visibility|Macro Toggle Panels Visibility}}: This macro toggles the visibility of various supporting panels in FreeCAD, allowing the main window to be viewed with all available screen space.<br />
* {{MacroLink|FCCamera_00|Macro FCCamera|Macro FCCamera}}: This macro can rotate the screen in a defined angle and the defined axis and creates a plan to face the screen to create a form in the specified plan positions the selected face facing the screen, to detect the position of the camera ...<br />
* {{MacroLink|Macro SelectVisible|Macro_Toggle_Visibility|Macro Toggle Visibility}}: Set of three macro, macro '''1:''' hidden the objects not selected, macro '''2:''' displayed alls objects, macro '''3:''' hidden alls objects.<br />
* {{MacroLink|SelectVisible|Macro SelectVisible|Macro SelectVisible}}: All visible objects in the tree will be selected.<br />
* {{MacroLink|Text-x-python|Macro Manage Navigational Style|Macro Manage Navigational Style}}: This pair of macros allow you to alter the Navigation Style while in the Sketcher.<br />
* {{MacroLink|Text-x-python|Macro Duplicate Selection|Macro Duplicate Selection}}: This macro testing if one selection are duplicate , select the object IN THE 3D VIEW the "ForbiddenCursor" stay if the or one selection is duplicate, the macro stay resident.<br />
* {{MacroLink|Macro_Copy3DViewToClipboard|Macro Copy3DViewToClipboard|Macro Copy3DViewToClipboard}}: Copy contents of 3DView resized 640, 480 px to clipboard .<br />
* {{MacroLink|Macro Perpendicular To Wire|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
* {{MacroLink|Macro Rotate To Point|Macro Rotate To Point|Macro Rotate To Point}}: Macro for rotate on object on itself with the axis of rotation the boundbox center, center of mass or last point clicked<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Draft_FlipDimension.svg]] Animation=== <!--T:99--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:100--><br />
* {{MacroLink|Text-x-python|Macro crank simul|Macro crank simul}}: Rotation rod and piston<br />
* {{MacroLink|Text-x-python|Macro Spring|Macro Spring}}: Simulation of one spring<br />
* {{MacroLink|Text-x-python|Macro hinge|Macro hinge}}: Open and close hinge<br />
* {{MacroLink|Text-x-python|Macro Assembly|Macro Assembly}}: Assembly animate<br />
* {{MacroLink|Text-x-python|Macro Animated Constrain|Macro Animated Constrain}}: Animate angle constrain in sketcher<br />
* {{MacroLink|Text-x-python|Macro Assemblage Imprimante 3D|Macro Assemblage Imprimante 3D}}: Simulation of movements of a 3D printer<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Applications-python.svg]] Code and Scripting=== <!--T:101--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:102--><br />
* {{MacroLink|Text-x-python|Macro MessageBox|Macro MessageBox}}: shows how to give information to the user through the GUI.<br />
* {{MacroLink|Macro_Python_Assistant_Window|Macro Python Assistant Window|Macro Python Assistant Window}}: This macro provides a cut/copy/paste workspace for Python code, it is segmented so different sections can be selected and it is persistent between FreeCAD sessions.<br />
* {{MacroLink|Macro_Build_Utility|Macro Build Utility|Macro Build Utility}}: This macro provides a utility to assemble a project from sub-project files using the Merge Project facility.<br />
* {{MacroLink|Macro_Global_Variable_Watcher|Macro Global Variable Watcher|Macro Global Variable Watcher}}: This macro facilitates the user selecting global variables and monitoring their values.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Arch_MeshToShape.svg]] Conversion=== <!--T:103--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:104--><br />
* {{MacroLink|Text-x-python|Macro Extract Wires from Mesh|Macro Extract Wires from Mesh}}: Extracts boundary wires from selected meshes<br />
* {{MacroLink|Text-x-python|Macro MeshToPart|Macro MeshToPart}}: converts selected meshes to parts<br />
* {{MacroLink|PartToVRML|Macro PartToVRML|Macro PartToVRML}}: Converts selected parts to VRML meshes for small size and faster loading (VRML models Kicad and Blender compatible)<br />
* {{MacroLink|Text-x-python|Macro FaceToSketch|Macro FaceToSketch}}: Converts the selected Face to a single Sketch without constraints.<br />
* {{MacroLink|Macro FCWire To Volume|Macro FCWire To Volume|Macro FCWire To Volume}}: This macro create boolean operation with the objects selected just select the wires give the thickness and click "Create"<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Drawing-orthoviews.svg]] Drawing Workbench=== <!--T:105--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:106--><br />
* {{MacroLink|Text-x-python|Macro Automatic drawing|Macro Automatic drawing}}: allows the user to get the view of his object in a drawing with 4 different position (front,top,iso,right). Needs some modification to be perfectly effective<br />
* {{MacroLink|Text-x-python|Macro CartoucheFC|Macro CartoucheFC}}: This GUI macro to fill simply all fields of the cartridge of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Macro_CartoucheFC_Full|Macro CartoucheFC Full|Macro CartoucheFC Full}}: This GUI macro to fill simply all fields of the cartridge '''model 1''' of the plan implementation worksheet FreeCAD, the format of the date and the symbol of the projection mode adapt to the EU region or US selected.<br />
* {{MacroLink|Text-x-python|Macro CartoucheFC 2|Macro CartoucheFC 2}}: This GUI macro to fill simply all fields of the cartridge '''model 2''' of the plan implementation worksheet FreeCAD.<br />
* {{MacroLink|Text-x-python|Macro Normal Vector|Macro Normal Vector}}: Get the normal vector of a preselected face for creating a drawing view normal to that face<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Draft_BSpline.svg]] Dxf 2D Draft=== <!--T:107--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:108--><br />
* {{MacroLink|Text-x-python|Macro Rectellipse|Macro Rectellipse}}: creates a parametric rectellipse<br />
* {{MacroLink|Macro_Draft_Circle_3_Points|Macro Make Circle 3 Points|Macro Make Circle 3 Points}}: creates a circle on 3 selected points, the points can be objects (this example brings together the two examples below, all parameters simply settle on a graphic window).<br />
* {{MacroLink|Macro_Draft_Circle_3_Points|Macro Draft Circle 3 Points|Macro Draft Circle 3 Points}}: creates a circle from 3 selected points 2D orthogonal<br />
* {{MacroLink|Macro_Draft_Circle_3_Points|Macro Draft Circle 3 Points 3D|Macro Draft Circle 3 Points 3D}}: creates a circle from 3 selected points in the space 3D<br />
* {{MacroLink|Macro Make Arc 3 Points|Macro Make Arc 3 Points|Macro Make Arc 3 Points}}: creates a arc from 3 selected points<br />
* {{MacroLink|Text-x-python|Macro Ellipse-Center+2Points|Macro Ellipse-Center+2Points}} Makes an ellipse by selecting three points (in this order): centre, major radius and minor radius<br />
* {{MacroLink|Macro_FCConvertLines|Macro FCConvertLines|Macro FC Convert Lines}}: this macro convert the object line, wire in line Dash, DashDot, DashDotDot,ZigZag and Hand with the dimensions given.<br />
* {{MacroLink|Text-x-python|Macro EdgesToArc|Macro EdgesToArc}}: Converts the selected Edges to a circular Arc if possible. Useful for restoring discretized arcs.<br />
* {{MacroLink|Text-x-python|Macro Creating faces from a DXF file|Macro Creating faces from a DXF file}}: This macro create face from a DXF file, the "Layer" are recognized separate and trained in groups.<br />
* {{MacroLink|Macro_DXF_to_Face_and_Sketch|Macro DXF to Face and Sketch|Macro DXF to Face and Sketch}}: This macro converts selected elements of imported dxf to face and sketch.<br />
* {{MacroLink|Macro_Compound_Plus|Macro_Compound_Plus|Macro Compound Plus}}: Draf command set in a small macro for the 2D sketch example: work with the DXF files.<br />
* {{MacroLink|Macro Dxf To Shape|Macro Dxf To Shape|Macro Dxf To Shape}}: Macro utility for create unique wire with many wires, the type wire created is selected to MakeWire, Bspline, BsplineCurve, BsplineCurve + Arc, Polygon, Bezier curve<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Fem_ResultDisplacement.svg]] Fem=== <!--T:109--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:110--><br />
* {{MacroLink|Text-x-python|Macro GMSH|Macro GMSH}}: Create FEM Meshes by GMSH Mesh Generator<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Part_Measure_Clear_All.svg]] Info and measures=== <!--T:111--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:112--><br />
* {{MacroLink|FCInfo|Macro FCInfo|Macro FCInfo}}: Gives a series of information about the selected shape and can display a conversion of length, inclination (degrees, radian, grade) shape, surface, volume and the weight of the form in the density selected in various international and Anglo-Saxon units<br />
* {{MacroLink|FCInfo|Macro FCInfo Alternate Linux|Macro FCInfo Alternate Linux}}: same as above, but for Linux<br />
* {{MacroLink|Macro_FCInfoGlass|Macro FCInfoGlass|Macro FCInfoGlass}}: Gives a series of information about the selected shape and displayed in screen 3D<br />
* {{MacroLink|FCInfoToMouse|Macro FCInfoToMouse|Macro FCInfoToMouse}}: Provide informations coordinates, length and angles in real time on the mouse in a bubble annotation displayed in the 3D screen<br />
* {{MacroLink|Text-x-python|Macro Delta xyz|Macro Delta xyz}}: Gives the Delta values and the distance between 2 points<br />
* {{MacroLink|Text-x-python|Macro ObjectInfo|Macro ObjectInfo}}: User-friendly "Info" module created by a FreeCAD user<br />
* {{MacroLink|Macro_Dump_Objects|Macro Dump Objects|Macro Dump Objects}}: This macro generates a listing of all objects in the current document - the list can be in a window or on the Report view.<br />
* {{MacroLink|Macro_MeasureCircle|Macro MeasureCircle|Macro MeasureCircle}}: Compute the radius of a circle by 3 points or a circular edge.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Draft_VisGroup.svg]] Libraries=== <!--T:113--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:114--><br />
* {{MacroLink|Text-x-python|Macro screw maker1_2|Macro screw maker1_2}}: This macro creates a screw with or without thread, according to ISO standards ([http://forum.freecadweb.org/viewtopic.php?f=22&t=6088#p48519 screw_maker1_6.py.zip with Pyside support]). [http://forum.freecadweb.org/viewtopic.php?f=22&t=6558&start=30#p95929 (Screw Maker 2.0 - new version!)] <br />
* {{MacroLink|Macro_BOLTS|Macro BOLTS|Macro BOLTS}}: The aim of BOLTS is to build a free and open-source standard parts library for CAD applications.<br />
* {{MacroLink|FreeCAD Doc|Macro PartsLibrary|Macro PartsLibrary}}: Starts the Parts library browser<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Bound-expression.svg]] Mathematical functions=== <!--T:115--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:116--><br />
* {{MacroLink|Text-x-python|Macro 3D Parametric Curve|Macro 3D Parametric Curve}}: Draw a function described by parametric equations x(t), y(t) and z(t).<br />
* {{MacroLink|Text-x-python|Macro Draw 2D Function|Macro Draw 2D Function}}: draws a function described by an equation z=F(x)<br />
* {{MacroLink|Text-x-python|Macro Draw Parametric 2D Function|Macro Draw Parametric 2D Function}}: Based on the above macro, but for parametric and optionally polar<br />
* {{MacroLink|WF_wf|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility : Tab > Wire > Curves And Surfaces {{KEY|Launch Curves and Surfaces Menu ...}}<br />
equations.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:IFC.svg]] Multifunctional=== <!--T:117--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:118--><br />
* {{MacroLink|WF_wf|Macro WorkFeatures|Macro WorkFeatures}}: Tool utility to create plans of the axes, planes from 3 points, axes on a form, information on the coordinates of the shape and many other useful features to facilitate the creation of your project. This utility is up next in the combo view.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Workbench_Image.svg]] Object creation=== <!--T:119--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:120--><br />
* {{MacroLink|Macro_makeCube|Macro Make Cube|Macro Make Cube}}: creates a [http://en.wikipedia.org/wiki/Cuboid rectangular cuboid] from 4 points<br />
* {{MacroLink|Text-x-python|Macro Solid Sweep|Macro Solid Sweep}}: creates a solid by sweeping a 2D profile along a trajectory previously selected in the 3D view. The 2D elements can be created through the regular tools in FreeCAD's GUI.<br />
* {{MacroLink|Text-x-python|Macro Geodesic Dome|Macro Geodesic Dome}}: This macro creates a geodesic dome shell<br />
* {{MacroLink|Text-x-python|Macro Line Length|Macro Line Length}}: Create a line giving coordinate XYZ length and angle to plane X Y<br />
* {{MacroLink|Text-x-python|Macro cutLine|Macro Cut Line}}: Cut a line and create x points, giving the number of points, create line or not, create points or not, create bicolor or not on choice.<br />
* {{MacroLink|Text-x-python|Macro circle|Macro Circle}}: Create a circle or arc giving radius, diameter, circumference, area, startangle, endangle, arc, anglecenter, cord, arrow, center (point) on choice.<br />
* {{MacroLink|Text-x-python|Macro cutCircle|Macro Cut Circle}}: Cut a circle or arc and create x arcs, giving the number of cut.<br />
* {{MacroLink|Text-x-python|Macro triangleAH|Macro Triangle AH}}: This macro create one triangle creates a triangle by giving the head angle and the height of the triangle (the triangle of the head is positioned to the xyz coordinates 0.0)<br />
* {{MacroLink|FCTexture|Macro FCTexture|Macro Texture}}: Create a project from a bmp image to create a texture easily<br />
* {{MacroLink|FCCreaLoft|Macro FCCreaLoft|Macro Loft}}: Create a loft with a list of wire (specially created for Macro Texture see above)<br />
* {{MacroLink|FCCircularTextButtom|Macro FCCircularText|Macro Circular Text}}: This macro create a text around a cylinder<br />
* {{MacroLink|Text-x-python|Macro WireXYZ|Macro WireXYZ}}: This macro creates a Wire with the coordinates extracted from a file. The coordinates X Y Z are separated by a space.<br />
* {{MacroLink|Macro_ReproWire|Macro ReproWire|Macro Repro Wire}}: This macro reproduce all element selected subobject wire or face.<br />
* {{MacroLink|Part_Prism_Apothem|Macro Apothem Based Prism GUI|Macro Apothem Based Prism GUI}}: A GUI dialog that creates an Apothem, (inradius) Based Prism from user input.<br />
* {{MacroLink|FCSpring_Helix_Variable|Macro FCSpring Helix Variable|Macro FCSpring Helix Variable}}: This macro create one spring truncate, the troncature is adjustable on the all coil to choice.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Workbench_PartDesign.svg]] Object transformation=== <!--T:121--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:122--><br />
* {{MacroLink|Text-x-python|Macro ArrayCopy|Macro ArrayCopy}}: copies the selected object several times, on an array grid<br />
* {{MacroLink|Text-x-python|Macro FlattenWire|Macro FlattenWire}}: flattens draft wires that are not planar to their median Z coordinate<br />
* {{MacroLink|Text-x-python|Macro FlattenWire3Points|Macro FlattenWire3Points}}: flattens draft wires that are not planar to a plane defined by 3 points<br />
* {{MacroLink|Text-x-python|Macro JointWire|Macro JointWire}}: allows to find and joint all non connected edge to the closest non connected one using a line<br />
* {{MacroLink|Text-x-python|Macro Remove parametric history|Macro Remove parametric history}}: removes all parametric associativity from an object, leaving it as a "dumb" shape<br />
* {{MacroLink|Text-x-python|Macro SuperWire|Macro SuperWire}}: Forces the creation of a Wire from lines and arcs that don't necessarily touch each other. Use this if normal wire operation fails<br />
* {{MacroLink|Text-x-python|Macro HealArcs|Macro HealArcs}}: Sometimes arcs are transformed into BSplines, for example when scale operations have been applied to them. This macro recreates valid arcs from them. Useful before exporting to dxf<br />
* {{MacroLink|Macro_CloneConvert|Macro CloneConvert|Macro CloneConvert}}: Creates a clone of the object and the converted in the chosen position and size (inch, mm, m, µm...). The base object is recognized in mm (FreeCAd base)<br />
* {{MacroLink|Text-x-python|Macro Image Scaling|Macro Image Scaling}}: Macro for easy scaling drawings, graphics, diagram, blueprint and similar 2D images in Image workbench.<br />
* {{MacroLink|Text-x-python|Macro MatrixTransform|Macro MatrixTransform}}: apply linear space transformations to distort shapes. E.g., non-uniform scaling, shearing, mirroring, axes swapping.<br />
* {{MacroLink|Macro_Connect_And_Sweep|Macro Connect And Sweep|Macro Connect And Sweep}}: This macro easily creates a connection between two objects, an object and a point or between two points (the center of the objects are the starting and ending points of the sweep) can be selected form a configurable ellipse polygon circle<br />
* {{MacroLink|Part_Section|Macro Section|Macro Section}}: (parametric): alternative implementation of Part Section tool, more suitable for making sweep paths.<br />
* {{MacroLink|Macro_Overlap|Macro Overlap|Macro Overlap}}: (parametric): Boolean operation. Similar to Part Common, but with custom overlap count threshold.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:View.svg]] Printer 3D=== <!--T:123--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:124--><br />
* {{MacroLink|Text-x-python|Macro 3d Printer Slicer|Macro 3d Printer Slicer}}: Exports current design to slicer software or CAM software.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Preferences-raytracing.svg]] Raytracing=== <!--T:125--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:126--><br />
* {{MacroLink|Text-x-python|Macro FreeCAD to Kerkythea|Macro FreeCAD to Kerkythea}}: Export from FreeCAD to Kerkythea<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Spreadsheet.svg]] Spreadsheet Workbench=== <!--T:127--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:128--><br />
* {{MacroLink|aliasmanager_icon|Macro Alias Manager|Macro Alias Manager}}: helps managing aliases inside FreeCAD Spreadsheet workbench. It is able to create, delete, move aliases and create a 'part family' group of files.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Arch_Survey.svg]] Utility=== <!--T:129--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:130--><br />
* {{MacroLink|CenterFace|Macro CenterFace|Macro CenterFace}}: This macro red trace (editable) the center face (mass) with 1 point and print the coordinates<br />
* {{MacroLink|Macro_Center_Align_Objects_with_Faces_or_Edges|Macro Center Align Objects with Faces or Edges|Macro Center Align Objects with Faces or Edges}}: This macro covers the following constraints: - Concentric constraint among non cylindrical parts; - Constraint on center Faces and/or Edges.<br />
* {{MacroLink|Macro_Easy_Cutouts_for_Enclosures|Macro Easy cutouts for Enclosure Design|Macro Easy cutouts for Enclosure Design}}: This macro makes Cutouts for Enclosures in a very handy way<br />
* {{MacroLink|Text-x-python|Macro MacroMenu|Macro MacroMenu}}: Add the macros found in the macros folder to the Macros menu of FreeCAD<br />
* {{MacroLink|Force_Recompute|Macro ForceRecompute|Macro ForceRecompute}}: Forces manual recompute of model<br />
* {{MacroLink|Text-x-python|Macro Shake Sketch|Macro Shake Sketch}}: Shake a sketch in order to discover its unconstrained parts.<br />
* {{MacroLink|Replace_Part|Macro Replace Part in Assembly|Macro Replace Part in Assembly}}: Replaces a part (simple copy) in an "Assembly" with another Part (simple copy).<br />
* {{MacroLink|Macro_Toggle_Drawstyle|Macro Toggle Drawstyle|Macro Toggle Drawstyle}}: This macro toggles the Drawstyle of the selected object<br />
* {{MacroLink|Text-x-python|Macro HighlightCommon|Macro HighlightCommon}}: Highlight common parts.<br />
* {{MacroLink|HighlightDifference|Macro HighlightDifference|Macro HighlightDifference}}: Compute the difference between two shapes.<br />
* {{MacroLink|Text-x-python|Macro cross section|Macro cross section}}: displays an interactively slidable cross-section.<br />
* {{MacroLink|BoundBoxTracing|Macro BoundingBox Tracing|Macro BoundingBox Tracing}}: This macro red trace (editable) around the BoundingBox with 6 rectangles<br />
* {{MacroLink|Text-x-python|Macro Arch Axis System Repartition|Macro Arch Axis System Repartition}}: This macro help you to create an Arch Axis System along a line with a * * {{MacroLink|Macro Perpendicular To Wire|Macro Perpendicular To Wire|Macro Perpendicular To Wire}}: This macro positioned your object perpendicularly to wire selected.<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
<br />
===[[File:Bulb.svg]] Wizards=== <!--T:131--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:132--><br />
* {{MacroLink|Text-x-python|Macro Sheet Metal Unfolder|Macro Sheet Metal Unfolder}}: Creates an unfolded part from a sheet-metal-part.<br />
* {{MacroLink|Text-x-python|Macro Unroll Ruled Surface|Macro Unroll Ruled Surface}}: allows to unroll ruled surfaces and to draw them on a page.<br />
* {{MacroLink|Text-x-python|Macro Unfold Box|Macro Unfold Box}}: allows to unfold the surfaces of a box of any shape and to draw them on a page.<br />
* {{MacroLink|Text-x-python|Macro Airfoil Import & Scale|Macro Airfoil Import & Scale}}: Imports and scales a .dat airfoil to desired chord length.<br />
* {{MacroLink|GW_Dim|Macro Geneva Wheel|Macro Geneva Wheel}}: Allows the user to create a Geneva wheel mechanism from scratch. Must edit values within the Macro to alter the size of the object.<br />
* {{MacroLink|GW_Dim|Macro Geneva Wheel GUI|Macro Geneva Wheel GUI}}: A GUI front end that allows the user to create a Geneva wheel mechanism from scratch.<br />
* {{MacroLink|Cabinets32|Macro Cabinets32|Macro Cabinets32}}: creates side and top/bottom walls for a cabinet with drilled holes for connection parts of manufacturer Hettich.<br />
* {{MacroLink|Text-x-python|Macro Half_turn_stairs|Macro Half_turn_stairs}}: Creates a half turn (left/right) stair from a Data-file.<br />
* {{MacroLink|Macro_Half_Hull_Model|Macro Half-Hull Model|Macro Half-Hull Model}}: This macro generates both three dimensional [http://en.wikipedia.org/wiki/Half_hull_model_ship half-hull] and full-hull models from a series of 2D line drawings.<br />
* {{MacroLink|Text-x-python|Macro Stairs|Macro Stairs}}: Create stair helix, create your stair nosing select and run the macro.<br />
* {{MacroLink|Gearworkbech|Macro FCGear|Macro FCGear}}: Additional Workbench to create different types of gears, involute gear, involute rack, cycloide gear, bevel gear.<br />
* {{MacroLink|Text-x-python|Macro Corner shapes wizard|Macro Corner shapes wizard}}: pops up a dialog asking for the dimensions of your corner piece, then creates the object in the document and creates a page view with top, front and lateral views of the piece<br />
* {{MacroLink|PropertyMemo|Macro PropertyMemo|Macro PropertyMemo}}: This little macro create one Property additional (memo or other text) for you object (only Draft)<br />
</translate><br />
</div><br />
</div><br />
<br />
<div class="toccolours mw-collapsible mw-collapsed"><br />
<translate><br />
===[[File:Std_FreeCADWebsite.png|32px]] Other interesting macros create by FreeCAD users and deposit in extra wiki.=== <!--T:133--><br />
</translate><br />
<div class="mw-collapsible-content"><br />
<translate><br />
<!--T:134--><br />
* [[Image:2364.png|24px]] [https://github.com/microelly2?tab=repositories By microelly2] : freeCAD_macro, geodata, Animation, freecad-nurbs, PieMenu, ..... other<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/hamish2014?tab=repositories By hamish2014]: FreeCAD_assembly2, FreeCAD_drawing_dimensioning, ...<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/triplus?tab=repositories By triplus]: IconThemes, ShortCuts, NavigationIndicator, TabBar, Launcher, PersistentToolbars, PieMenu, ....<br />
* [[File:681.jpg |24px]] [https://github.com/wood-galaxy By rockn]: FreeCAD-Timber, FreeCAD-addons, FreeCAD-library, FreeCAD-StructuresBois, .... other<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/oddtopus?tab=repositories By oddtopus]: flamingo (workbench for metal structures)<br />
* [[Image:Text-x-python.png|24px]] [https://github.com/dprojects/getDimensions getDimensions]: FreeCAD macro to get chipboards dimensions to cut (woodworking)<br />
</translate><br />
</div><br />
</div><br />
<br />
<translate><br />
<br />
== How to use? == <!--T:135--><br />
</translate><br />
[[File:Macro Recipes MacroHowToInstall.png|200px|left|Macro how to install]]<br />
<translate><br />
<!--T:136--><br />
'''The above macros can easily be plugged on any FreeCAD installation'''<br />
* Copy the macro python code from the corresponding macro page<br />
* In FreeCAD, Macro->Macros->Create new, and give it a name<br />
* Paste the python code you copied<br />
* Hit the Save button, and restart FreeCAD<br />
* Open the Macro manager, select your new macro and click "execute"<br />
* Tutorial [[How to install macros]]<br />
</translate><br />
<br />
<translate><br />
<!--T:137--><br />
'''Additionally, you can also add your new macro to a custom toolbar'''<br />
* In FreeCAD, go to Tools -> Customize<br />
* In the Macros tab, add a new macro, and, if you like, define an icon and a keyboard shortcut<br />
* In the Toolbars tab, create a new toolbar, and add your macro, taking it from the "Macros" category.<br />
* Tutorial [[Customize_Toolbars|Customize Toolbars]]<br />
</translate><br />
{{clear}}<br />
<br />
<translate><br />
== Adding new macros to this repository == <!--T:138--><br />
* Create a new page, beginning its name with "Macro", for example "Macro_My_Excellent_Macro", this can be done simply by editing this page, and adding a new link to your macro, like this:<br /> <br />
** example : <br />
</translate><br />
<br />
{{Code|code=<br />
<nowiki>* {{MacroLink|Text-x-python|Macro My Excellent Macro|Macro My Excellent Macro title}} : My excellent macro description</nowiki>.}}<br />
<br />
<translate><br />
<!--T:139--><br />
* '''Text-x-python''' : icon by default (replace with your name icon with the exact same name as your macro page if there is. The format always '''.png''' only)<br />
* '''Macro My Excellent Macro''' : macro name<br />
* '''Macro My Excellent Macro title''' : macro name or title<br />
</translate><br />
<br />
<translate><br />
<!--T:140--><br />
A new page (red link) will be created.<br />
* In that page, paste the following text:<br />
<br />
<!--T:141--><br />
(With the default icon)<br />
</translate><br />
<br />
<nowiki>{{Macro|Icon=Text-x-python|Name=Macro_My_Excellent_Macro|Description=What my excellent macro does|Author=your username|Version=1.0}}</nowiki><br />
<br />
<translate><br />
<!--T:142--><br />
(With the icon custom)<br />
</translate><br />
<nowiki>{{Macro|Icon=Macro_My_Excellent_Macro|Name=Macro_My_Excellent_Macro|Description=What my excellent macro does|Author=your username|Version=1.0}}</nowiki><br />
<br />
<translate><br />
<!--T:143--><br />
(Another language with the default icon (example "/fr" "/de" "/it"....))<br />
</translate><br />
<br />
<nowiki>{{Macro/fr|Icon=Text-x-python|Name=Macro_My_Excellent_Macro|Name/fr=Macro_My_Excellent_Macro|Description=<br />
What my excellent macro does|Author=your username|Version=1.0}}</nowiki><br />
<br />
<translate><br />
<!--T:144--><br />
(Another language with the icon custom (example "/fr" "/de" "/it"....))<br />
</translate><br />
<br />
<nowiki>{{Macro/fr|Icon=Macro_My_Excellent_Macro|Name=Macro_My_Excellent_Macro|Name/fr=Macro_My_Excellent_Macro|Description=<br />
What my excellent macro does|Author=your username|Version=1.0}}</nowiki><br />
<br />
<translate><br />
<!--T:145--><br />
*You can also [http://www.freecadweb.org/wiki/index.php?title=Special:Upload Upload ] a custom format icon'''.png'''<br />'''Note that the name of the icon must have the same name as the name of the macro'''.<br />
**example: " Macro_My_Excellent_Macro " '''without extension''' (the extension is given by the system), and, replace " Icon='''Text-x-python''' " by " Icon='''Macro_My_Excellent_Macro''' "<br />
**'''Text-x-python''' [[Image:Text-x-python.png|32px]] is the default icon of the page dedicated to the Macro.<br />
</translate><br />
<translate><br />
<br />
<!--T:146--><br />
* Paste your macro, and use the [[Template:Code|Code template]] to avoid adding spaces into your script. This will display the macro in a monospace font inside a light grey box like the example above.<br />
* If you like, upload a .png icon with the exact same name as your macro page (ex. Macro_My_Excellent_Macro.png)<br />
* Add an image: an image is useful to show what the macro does. Optionally you can create an animated gif that represents the object in context. The gif image should have a maximum size of 500x500px as the wiki does not resize animated gifs; if the gif is any bigger the animation won't work.<br />
* Optionally you can add some more info on how to use your macro, tips, limitations and workaround.<br />
* It is also interesting to include version information in your macro. This macro allows you to locate in time compared to the evolution of FreeCAD, do "Menu > Help > About FreeCAD and click to Copy to clipboard" and paste it your macro<br />
<br />
<!--T:147--><br />
Ex:<br />
</translate><br />
<br />
{{Code|code=<br />
#OS: Windows Vista<br />
#Platform: 32-bit<br />
#Version: 0.14.3389<br />
#Python version: 2.6.2<br />
#Qt version: 4.5.2<br />
#Coin version: 3.1.0<br />
#SoQt version: 1.4.1<br />
#OCC version: 6.5.1 <br />
}}<br />
<br />
<translate><br />
<!--T:148--><br />
It is also advisable to create a macro in your header, this header can be used by the [http://forum.freecadweb.org/viewtopic.php?t=10556 Plugin Loader] program to install the macro and check versions. Also available [https://github.com/FreeCAD/FreeCAD-addons addons_installer.FCMacro]<br />
<br />
<!--T:149--><br />
Ex:<br />
</translate><br />
{{Code|code=<br />
<br />
__Title__="Title_Of_macro"<br />
__Author__ = "User_Name"<br />
__Version__ = "00.11"<br />
__Date__ = "25/07/2015"<br />
<br />
__Comment__ = "This is the comment of the macro"<br />
__Web__ = "http://forum.freecadweb.org/viewtopic.php?f=3&t=7384"<br />
__Wiki__ = "http://www.freecadweb.org/wiki/index.php?title=Macro_Title_Of_macro"<br />
__Icon__ = "/usr/lib/freecad/Mod/plugins/icons/Title_Of_macro"<br />
__IconW__ = "C:/Documents and Settings/YourUserName/Application Data/FreeCAD"<br />
__Help__ = "start the macro and follow the instructions"<br />
__Status__ = "stable"<br />
__Requires__ = "freecad 0.14.3706"<br />
__Communication__ = "http://www.freecadweb.org/wiki/index.php?title=User:User_Name" <br />
}}<br />
<br />
<br />
<translate><br />
<!--T:150--><br />
* Add it to the above categories, create a new category if needed.<br />
</translate><br />
<br />
<translate><br />
===Tutorials=== <!--T:151--><br />
* [[How to install macros|How to install macros]]<br />
* [[Customize_Toolbars|Customize Toolbars]]<br />
* [[How_to_install_additional_workbenches|How to install additional workbenches]]<br />
</translate><br />
<translate><br />
<!--T:152--><br />
[[Category:Repository]]<br />
[[Category:Macros]]<br />
[[Category:Python Code]]<br />
</translate><br />
<languages/></div>Dprojects