Git Product home page Git Product logo

marzworkbench's Introduction

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. They are working but need more testing.

  • Fretboard

    • Compound Radius
    • Multi Scale
    • Zero Fret
    • Perpendicular Fret setting
    • Fret nipping
    • Margins
    • Thickness
    • String distance
    • Customizable Fret Wire (for accurate slots)
    • Custom Inlays
    • Corner fillet
  • 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
    • Heel fillet
    • Automatic positioning based on imported bridge reference
  • 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

Planned Features

  • Nut

    • 3D Object
  • Neck

    • Custom profile editor
  • Body

    • Armrest
    • Belly cut
    • Carved top
  • Binding

    • Fretboard binding
    • Body binding

Documentation

The Wiki contains some useful documents: Wiki

ui

Requirements

  • FreeCAD v0.21+ (releases)
  • Curves Workbench 0.6.31+ (Install using AddonManager)

Install

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

Bugs

If you find problems, please report the issue here in Github.

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.

marzworkbench's People

Contributors

luzpaz avatar mnesarco avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

marzworkbench's Issues

headstock text in svg file

I'm testing the example_custom_headstock.svg right now. I'd like to replace the text 'Test' with another text. But I couldn't figure out how to set it up, so Freecad can read it properly. Is there a documentation about this?
Do I have to use a font and transform it into a vector?

And how would I decide if it's a hole or a pocket? Are those things color coded?

Body Carves

I know you mentioned it I believe in one of you videos but I would like to request a way to add top and body carves if it is possible

Body shape svg file

How does one designate the various holes and pockets in the body shape svg file in Inkscape to correlate with the body top or body bottom or depth, etc...?

Inlay import

Hi, i made an svg from a jpg in inkscape, created with trace bitmap a path, named it F12_ , but get the error
"The SVG File does not contain any inlay path". The imported files are split into pieces, though i combined it in inkscape.
Michael

Marz Workbench not working on my Mac Os High Sierra

Working on mac os high sierra 10.13.6 with latest FreeCAD Version 0.20-1 and latest Marz Workbench v0.0.26-alpha. Using Python Version 3.10.5 packaged by conda-forge. I can launch the Marz Guitar Designer Workbench. I can also open a new instrument. I can see the new instrument in the model view. From here I have several options: create a fretboard or a neck or a body. In my Python Console I get the following message if I want to create a Fretboard, for example: "Gui.runCommand('MarzCmdCreateFretboard',0)"

As an example, if I now create a new fretboard I get the following error message:

File "/Users/michaelfreudenberg/Library/Application Support/FreeCAD/Mod/Marz/./freecad/marz/command/create_fretboard.py", line 47, in Activated
App.ActiveDocument.getObject(MarzInstrument_Name).Proxy.createFretboard()
File "/Users/michaelfreudenberg/Library/Application Support/FreeCAD/Mod/Marz/./freecad/marz/feature/instrument.py", line 164, in createFretboard
self.add(Fretboard())
File "/Users/michaelfreudenberg/Library/Application Support/FreeCAD/Mod/Marz/./freecad/marz/feature/instrument.py", line 199, in add
self.doInTransaction(transaction, f"Marz Add {name}")
File "/Users/michaelfreudenberg/Library/Application Support/FreeCAD/Mod/Marz/./freecad/marz/feature/instrument.py", line 96, in doInTransaction
bar = StartProgress(f"Processing {name}...")
File "/Users/michaelfreudenberg/Library/Application Support/FreeCAD/Mod/Marz/./freecad/marz/extension/ui.py", line 52, in StartProgress
bar = App.Base.ProgressIndicator()
TypeError: cannot create 'N4Base19ProgressIndicatorPyE' instance

Error importing body svg

just added floyd rose routing on my svg file but when i try to update it i get this error

Part.OCCError: BRepSweep_Translation::Constructor

then the icons to add svgs for body/neck/layout don't work

any ideas?

Custom Neck Pockets

Hello as stated in my YouTube comment I thank you again for your help so far, so creating a way to edit the size of the neck pocket other than length and depth. I’m not sure how you can do it but I was thinking of you possibly modifying your Les Paul body svg and creating an existing path or something like the pickups or cavities, something so people can just download the svg and modify the svg like you can currently do in Inkscape, so pretty much the Les Paul downloadable svg with a neck pocket with a pre existing path that is customizable with the nodes in Inkscape, that will be transferred to freecad like all other parts of the body. I’m not sure if that is a way to do it but you are the brains and know this better than anyone. Just something so people with a custom neck or an already existing neck can fit to the guitar body so they can make sure it’s a perfect fit and not worry about the automatic neck pocket being to wide or the automatic taper of the pocket being to great.

Import of SVG not possible

Hi,

I'm trying to import an SVG as the headstock shape.
However, when I import it, I'll get the error that there's no contour path in the SVG:
image
However, I made sure that the path is indeed named "contour":
image
I counter-checked that with one of the sample files where the path is labeled the same way.

Is there anything that I miss?
Thanks in advance!

Custom shapes not working on Mac

I've tried making my own SVG's for the body, which included a midline and contour (named respectively). This however did not work, I then tried using the example SVG's provided on this Wiki but sadly this wouldn't change the body shape either.

Im running:

  • Mac OS high Sierra v10.13.6
  • FreeCAD 0.18 (rev# 16146

Hopefully this issue can be resolved, I'd love to start using your software!

I have a question please (Imgui)

HI,
You mentioned at the forum that you have used Imgui toolkit .. but I cannot see in your code the library.
Would you please provide me some info?
I need to know if one can draw things inside FreeCAD using Imgui .. not in Imgui windows.

Thanks in advance
Mariwna

Import Not Working Using Examples

Hi There,

Thank you for putting these tools together, they're great.

In my first attempt to import any of the three example SVGs, nothing happens. What can I send you to take a look?

Thank you,
Andy Brown

Smooth Transitions

I am working on smooth transitions neck-heel and neck-headstock. Preview:

Selection_598
Selection_597
Selection_596

Consider renaming the workbench?

It just has better recognition of what it does. We have workbenches like Flamingo and Dodo (which is the Python3/Qt5 port of flamingo) and there is a sentiment that the name of these workbenches don't lend themselves to the workbenches being utilized. So it's something you may want to consider... ?

Bass guitars

I must say how brilliant your idea is - I would like to adapt to make 4 string through neck bass guitars. There seems to be no way of changing to 4 strings and the neck through it looks like that is the neck joint all the way from top to bottom om body. I must say how brilliant your idea is - I would like to adapt to make 4 string through neck bass guitars. There seems to be no way of changing to 4 strings and the neck through option, looks like that is the neck joint all the way from top to bottom om body. I realise you have created it for 6 string guitars are ther any pointers as to ho I can modify the code to allow 4 string basses, thank you for your time, all the best 25 seconds ago
@TheArtizan

asymmetric neck shape

Hi Frank, last version of maz is very good, but i'm missing one feature badly, the asymmetric neck shapes(if you ever played one of these, you know what i mean). Is this possible?
Michael

Not an issue but i need some help

after downloading the workbench from the addon manager the report view window says the following:
(i already downloaded Pyside and GitPython and the required curves workbench so idk what is going on.)

23:43:47 During initialization the error "No module named 'PySide.QtWidgets'" occurred in freecad.marz
23:43:47 --------------------------------------------------------------------------------
23:43:47 Traceback (most recent call last):
File "", line 156, in InitApplications
File "/usr/lib/python3.10/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/home/maxi/.FreeCAD/Mod/Marz/freecad/marz/init_gui.py", line 23, in
from freecad.marz.extension.threading import task, Task
File "/home/maxi/.local/lib/python3.10/site-packages/shiboken2/files.dir/shibokensupport/feature.py", line 142, in _import
return original_import(name, *args, **kwargs)
File "/home/maxi/.FreeCAD/Mod/Marz/freecad/marz/extension/threading.py", line 24, in
from freecad.marz.extension.qt import QtCore
File "/home/maxi/.local/lib/python3.10/site-packages/shiboken2/files.dir/shibokensupport/feature.py", line 142, in _import
return original_import(name, *args, **kwargs)
File "/home/maxi/.FreeCAD/Mod/Marz/freecad/marz/extension/qt.py", line 47, in
from PySide.QtWidgets import ( # type: ignore
File "/home/maxi/.local/lib/python3.10/site-packages/shiboken2/files.dir/shibokensupport/feature.py", line 142, in _import
return original_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'PySide.QtWidgets'
23:43:47 --------------------------------------------------------------------------------

i will be very greatful if someone knows what else should i download.

Zero Fret

Thanks for making this workbench! I read that a zero fret neck is supported but I've not been able to find the right parameter or command anywhere within the workbench. Can you please explain or point me to how this is done?

Size of imported SVG files

Just checked out your powerful plugin, looks great so far. But I have a strange behavior:
Opening the example files works well.
Ons I edited a single anchor using Illustrator (CS5) or Inkskape (v1.1) and save the file and import it to FreeCad, the size of the whole body is changed, not only of one single curve.

Headstock transition onto neck

Hello Frank. I am really thankful for your work on this FreeCAD workbench. I really want to take full advantage of the functionality it has. I've looked everywhere to see if I find more information on the parameters necessary on the Inkscape file so that everything imports the way it should. At the moment I don't have any issues with the body import, but the headstock import is not working completely like on you example headstock file. I am not sure if it's something I am doing wrong or if there is truly a bug in the code. I am attaching the Inkscape and FreeCAD files for you to review.

I would love to talk to you if at all possible. You can contact me at:
407.733.1841
[email protected]

Headstock Volute Artifact

Headstock Issue.zip

Thank you,
Luis Robles

Truss rod channel

Not sure if it is something design specific or something in 0.1.4 - I've used the standard truss rod channel settings (haven't changed them) but the truss rod channel is ending up proud of the neck... removing the fretboard shows it as being raised from the neck rather than routed into the neck...
Screenshot 2024-05-07 at 17 39 32

Fret Nipping or fret width

I've changed the fret nipping from the default of 2mm but I don't see any change in the length of the frets. This nipping is the distance between the end of the fret and the edge of the fretboard, correct? I really just want to make one groove across the whole fretboard but I want the fret about 0.5mm short of the edge.

Seems like a bug but let me know.

Thanks!!

Some questions

Hello Frank,
Thank you for your work and your talent. Some questions :
When I adjust the length of the pocket in the body, for example 77 mm for a stratocaster, when creating the neck, the length of the assembly is not modified according to this dimension, and the neck is therefore badly positioned, in this case shifted to the bridge.
.
Moreover, when I create an element (body, neck, etc.), and delete it, it is not possible to recreate it...

Last problem, in case of modification of a neck parameter or other, the auto-update does not work and FreeCad is blocked. (I use version 0.21)
Thanks in advance. (And sorry for Google translate 😉)
Pascal

Questions...

Hi,

First of all, thank you for the huge job.
Since I'm an aboslute beginner in guitar build, I got some questions :

  • There are bridge vars in the instrument parameters section. However,i dont see the bridge or effect on var modification. Is this part in progress?
  • Since frets are not displayed, why is there settings for frets caracteristics? Dos this impact fret position calculation?
  • In example svg files provided, it seems bridge mic is incorredctly positionned. It conflicts with bridge position. Have you seen it or is it a mis-understanding of mine?
  • Is it possible to use this plugin to build a guitar without plate attached to the top? (ie : strat or tele) How? Would it be possible to provide an example file?
  • Would it be possible to improve documentation for explainng var per var the setup and effect on the model? May I help?

Thanks a lot for the answers!

How do I change cavity depths to inches?

I'm just wondering if I can change the depth nomenclature so that it is quicker and is possible more accurate than converting inches to mm! It's just easier math to enter h7_0_1.5 than mm. but for now ill do conversions!

And is how would i draw the double dot inlay for the 12th fret?

if there is, please let me know because I'm new to cad and svg stuff. This workbench is awesome by the way:)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.