This is a Addin for Autodesk® Fusion™ that will export a Mirabuf usable by the Synthesis simulator.
- Materials
- Apperances
- Instances
- Joints
- Static and Dynamic components
- Mesh Quality
- Thumbnail Capture
- Local Save
- Simple Motors
- GZip compression
- Motion Links
- Complex Motors
- Sending compressed file
- File Diffs
You can download Protobuf v23.3 here.
We use VSCode
Primarily, download it to interact with our code or use your own at your own risk.
- Open
Autodesk Fusion
- Select
UTILITIES
from the top bar - Click
ADD-INS
Button - Click
Add-Ins
tab at the top of Scripts and Add-Ins dialog - Press + Button under My Add-Ins
- Navigate to the containing folder for this Addin and click open at bottom - clone-directory/synthesis/exporters/SynthesisFusionAddin
- Synthesis should be an option - select it and click run at the bottom of the dialog
- There should now be a button that says Synthesis in your utilities menu
- If there is no button there may be a problem - see below for checking log file
Most of the runtime for the addin is saved under the logs
directory in this folder
- Open
logs/synthesis.log
- If nothing appears something went very wrong (make a issue on this github)
- If something appears and you cannot solve it feel free to make an issue anyway and include the file
- Open
Autodesk Fusion
- Select
UTILITIES
from the top bar - Click
ADD-INS
Button - Click
Add-Ins
tab at the top of Scripts and Add-Ins dialog - Press + Button under My Add-Ins
- Navigate to the containing folder for this Addin and click open at bottom - clone-directory/synthesis/exporters/SynthesisFusionAddin
- Synthesis should be an option - select it and click
Debug
at the bottom of the dialog- This is in a dropdown with the Run Button
- This should open VSCode - Now run with
FN+5
- Now you may add break points or debug at will
Packaging is mainly for compressing the files into a smaller footprint
Contact us for information on how to use the packaging script to obfuscate all of the files using pyminifier
.
We format using a Python formatter called black
in conjunction with isort
.
- install by
pip3 install black && pip3 install isort
orpip install black && pip install isort
- use
isort .
followed byblack .
to format all relevant exporter python files.- or, alternatively, run
python ./tools/format.py
to do this for you!
- or, alternatively, run
Note: black will always ignore files in the proto/proto_out folder since google formats those
This standard is inconsistently applied, and that's ok
def foo(bar: fizz="flower") -> Result[walrus, None]:
"""
Turns a fizz into a walrus
Parameters:
bar - The fizz to be transformed (default = "flower") ; fizz standards are subject to change, old fizzes may no longer be valid
Returns:
Success - She new walrus
Failure - None if the summoning fails ; the cause of failure will be printed, not returned
Notes:
- Only works as expected if the bar arg isn't a palindrome or an anagram of coffee. Otherwise unexpected (but still valid) walruses may be returned
- Please do not name your fizz "rizz" either, it hurts the walrus's feelings
TODO: Consult witch about inconsistent alchemical methods
"""
# More alchemical fizz -> walrus code
some_walrus = bar + "_coffee"
return some_walrus
Note that not this much detail is necessary when writing function documentation, notes, defaults, and a differentiation between sucess and failure aren't always necessary.
It depends on how many you can list
- 1: In the failure return case
- 2-3: In the notes section
- 4+: In a dedicated "potential causes of failure section" between the "returns" and "notes" sections
Additionally, printing the error instead of returning it is bad practice