Macro PDWrapper

From FreeCAD Documentation
Jump to navigation Jump to search
Other languages:
English • ‎français

Workbench PartDesign.svg Macro Pdwrapper

Description
Encapsulate non-PartDesign solids to work in PartDesign

Macro version: 0.2021.11.22
Last modified: 2021-11-22
FreeCAD version: python 3 versions
Download: ToolBar Icon
Author: TheMarkster
Author
TheMarkster
Download
ToolBar Icon
Links
Macro Version
0.2021.11.22
Date last modified
2021-11-22
FreeCAD Version(s)
python 3 versions
Default shortcut
None
See also
None

Description

PDWrapper encapsulates solids created in other workbenches inside a PartDesign::FeaturePython object so that they behave as if they were native PartDesign features. In the screenshot below it shows a Part Workbench fillet of a PartDesign Additive Box encapsulated inside a PDWrapper object of type Common Additive. But PDWrapper can do more than just encapsulate non-PartDesign solids for use in a PartDesign Body. It can also encapsulate PartDesign features and change their nature. For example, you can encapsulate a PartDesign Hole inside a PDWrapper Additive type and turn the Hole into a threaded rod (presuming the Hole is threaded). With PDWrapper you can create types of Primitives that are not available, such as Common (Intersection) types and XOR types. It also allows to dynamically include/exclude some solid features from the Body's Tip shape.

Examples and full documentation can be found on github: PDWrapper.

Pdwrapper scr.png

Macro PDWrapper screenshot‎

Legend

Temporary code for external macro link. Do not use this code. This code is used exclusively by Addon Manager.


# This code is copied instead of the original macro code
# to guide the user to the online download page.
# Use it if the code of the macro is larger than 64 KB and cannot be included in the wiki
# or if the RAW code URL is somewhere else in the wiki.

from PySide import QtGui, QtCore

diag = QtGui.QMessageBox(QtGui.QMessageBox.Information,
    "Information",
    "This macro must be downloaded from this link\n"
    "\n"
    "https://gist.github.com/mwganson/4106e84eeaaf4d6e056cd286cbc39170/raw/ab6c50ac8624854c7eacee6db8e9411a87d86418/Pdwrapper.FCMacro" + "\n"
    "\n"
    "Quit this window to access the download page")

diag.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
diag.setWindowModality(QtCore.Qt.ApplicationModal)
diag.exec_()

import webbrowser 
webbrowser.open("https://gist.github.com/mwganson/4106e84eeaaf4d6e056cd286cbc39170/raw/ab6c50ac8624854c7eacee6db8e9411a87d86418/Pdwrapper.FCMacro")
<class="rawcodeurl"><a href="https://gist.github.com/mwganson/4106e84eeaaf4d6e056cd286cbc39170/raw/ab6c50ac8624854c7eacee6db8e9411a87d86418/Pdwrapper.FCMacro">raw code</a>


ToolBar Icon Workbench PartDesign.svg

Script

Macro Pdwrapper.FCMacro