All Projects → mnesarco → MarzWorkbench

mnesarco / MarzWorkbench

Licence: GPL-3.0 license
FreeCAD Workbench for guitar design

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to MarzWorkbench

CurvedShapesWorkbench
FreeCAD Workbench for creating 3D shapes from 2D curves
Stars: ✭ 49 (+22.5%)
Mutual labels:  addons, freecad, workbench
ThreadProfile
Create 2d thread profile for sweeping along helix in Part or Part Design workbenches
Stars: ✭ 15 (-62.5%)
Mutual labels:  addons, freecad, workbench
Rocket
FreeCAD Rocketry Workbench
Stars: ✭ 29 (-27.5%)
Mutual labels:  addons, freecad, workbench
Lattice2
FreeCAD workbench about arrays of all sorts and kinds, and local coordinate systems
Stars: ✭ 40 (+0%)
Mutual labels:  freecad, workbench
MinecraftDeveloperGuide
📝Minecraft developer Chinese guide,我的世界开发者中文指南
Stars: ✭ 1,307 (+3167.5%)
Mutual labels:  addons
odoo-th
Ready to use Odoo with OCA Thai localization modules
Stars: ✭ 29 (-27.5%)
Mutual labels:  addons
mySequelWeb
MySequel Web is an open source web based GUI tool to access your MySql database. It is similar to PHP My Admin of WAMP. Here you can access any MySQL database with proper connection strings. We do not save or store any of your connection strings or data. Every thing related to your connection strings are volatile. You can host this as a simple n…
Stars: ✭ 26 (-35%)
Mutual labels:  workbench
abap scheme
ABAP Scheme
Stars: ✭ 13 (-67.5%)
Mutual labels:  workbench
fretonator
The ultimate interactive free guitar theory tool.
Stars: ✭ 42 (+5%)
Mutual labels:  guitar
DesignSPHysics
Module for FreeCAD intended to use with DualSPHysics fluid simulator.
Stars: ✭ 65 (+62.5%)
Mutual labels:  freecad
snorkel
Snorkel - Bootstrap your Data Science
Stars: ✭ 24 (-40%)
Mutual labels:  workbench
FenicsSolver
multiphysics FEM solver based on Fenics library
Stars: ✭ 52 (+30%)
Mutual labels:  freecad
hassio-addons
Home Assistant Add-ons
Stars: ✭ 22 (-45%)
Mutual labels:  addons
tabs
Guitar tabs transcribed by me, primarily in the stoner/doom/sludge metal genres... plus a few random other things.
Stars: ✭ 34 (-15%)
Mutual labels:  guitar
addon-tor
Tor - Home Assistant Community Add-ons
Stars: ✭ 37 (-7.5%)
Mutual labels:  addons
OpenpilotToolkit
Openpilot Toolkit (OPTK) is a class library and toolkit for interacting with your openpilot / commaai devices.
Stars: ✭ 55 (+37.5%)
Mutual labels:  workbench
ESOLinuxAddonManager
[MIRROR] Elder Scrolls Online addon downloader, for Linux! Check the link below for the development repo which has the releases and issuetracker.
Stars: ✭ 25 (-37.5%)
Mutual labels:  addons
pi-stomp
pi-stomp is a DIY high definition, multi-effects stompbox platform for guitar, bass and keyboards
Stars: ✭ 42 (+5%)
Mutual labels:  guitar
addon-home-panel
Home Panel - Home Assistant Community Add-ons
Stars: ✭ 164 (+310%)
Mutual labels:  addons
Audio2Guitarist-GAN
Two-stage GANs that generate fingerstyle guitarist images from audio.
Stars: ✭ 53 (+32.5%)
Mutual labels:  guitar

Marz Guitar Design Workbench

What is Marz Guitar Design Workbench

This is a custom FreeCAD Workbench for Electric Guitar/Bass Parametric Design. It allows you to create Fretboards, Necks, Nuts, ... based on a common set of parameters.

Body Headstock

Workbench

Features

This is a work in progress project, this is the list of the currently implemented features. Theay are working but need more testing.

  • Fretboard

    • Compound Radius
    • Multi Scale
    • Zero Fret
    • Perpendicular Fret setting
    • Fret nipping
    • Margins
    • Thicikness
    • String distance
    • Customizable Fret Wire (for accurate slots)
    • Custom Inalys
  • Neck

    • Neck Profiles
    • Thickness (start-end)
    • Smooth transitions to Headstock and Heel
    • Set-In, Bolt-On, Through Join
    • Tenon
    • Neck break angle
    • Top offset
    • Truss-Rod Channel
  • Headstock

    • Dimensions
    • Transition
    • Volute
    • Flat/Angled
    • Custom shape
    • Pockets/Holes
  • Bridge

    • String distance
    • Compensation
  • Nut

    • Dimensions
    • Position
  • Body

    • Top/Back Dimensions
    • Neck pocket
    • Custom Shape
    • Pockets/Holes

Params

Planned Features

  • Nut

    • 3d Object
  • Other

    • Provide better options for transition curves
    • Create a Neck Profile repository

Documentation

Just add objects (Instrument, Fretboard, Neck, Body, etc...) from the toolbar and change parameters. All the parameters are on the Root Instrument Object.

ui

The Wiki contains some useful documents: Wiki

Requirements

  • FreeCAD v0.19+ (link)

Notes

  • This project was designed for 0.19.x, so 0.18.x support is very experimental but it works most of the time.
  • The user experience in 0.19.x is significantly better.
  • Windows users may experience some issues in v0.19.x

Install

Automatic Install

The recommended way to install this workbench is through the FreeCAD Addon Manager.

Manual Install

Expand for manual install instructions

Download latest version from releases: https://github.com/mnesarco/MarzWorkbench/releases

As any FreeCAD extension, download the code and copy into FreeCAD's Mod directory: https://wiki.freecadweb.org/Installing_more_workbenches

Linux / Mac

  1. Download latest version from releases: https://github.com/mnesarco/MarzWorkbench/releases
  2. Unzip to: $HOME/.FreeCAD/Mod/Marz
  3. Restart FreeCAD

Windows

  1. Download latest version from releases: https://github.com/mnesarco/MarzWorkbench/releases
  2. Unzip to: C:\Users\******\AppData\Roaming\FreeCAD\Mod\Marz
  3. Restart FreeCAD

I do all the development and testing in Linux, I have no Windows or Mac Hardware. It should work in those environments but I have not tested it.

Bugs

If you find problems, please report the issue here in Github. I will try to fix/respond not too late.

Background

I initially made a web based Marz Designer, it is still active at: https://marzguitars.com/marz-designer/ and it is very practical for quick calculations and references, but it is 2D and lacks some features like ZeroFret support.

I decided to go to the next level and make it 3D, so I started this project and work on this in my free time. This is a work in progress thing.

FreeCAD extensions are coded in Python, Python is not my preferred language, so maybe there are some non pythonic patterns in my code but I did my best.

This is also my first FreeCAD extension, so it involved a lot of googling, and forum reading. FreeCAD documentation is minimal so I have learned most of the things reading other extensions and the forum.

My Web based project was written in javascript using THREE.js library, and in order to port my existing code quickly, I ported the THREE.js Vector2 class. (I added the credits in the file) At some point in future I will refactor all the code to use FreeCAD's Vector class exclusively.

Multicore multiprocessing in Python

In order to make the code more performant, I coded it to be multithreaded, but python threads runs all on the same core, so they are not suitable for CPU bound tasks, so I used QT Treads to overcome this limitation. The code itself is very clean and reusable and could be a good library for other FreeCAD extensions.

Cache Management

Some 3D Boolean operations are very slow, so I used an aggressive cache strategy to avoid recreation of expensive objects. Thanks to Python's Decorators, it was not too difficult, but I plan to change this strategy to something more reactive based on a dependency graph.

General note on code

I started this project porting my existing javascript code, some things still needs to be refactored properly.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].