Skip to content

Commit

Permalink
README: fix various typos
Browse files Browse the repository at this point in the history
  • Loading branch information
luzpaz committed Mar 13, 2022
1 parent ca4d858 commit 13aec5b
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## What is Marz Guitar Design Workbench

This is a custom FreeCAD Workbench for Electric Guitar/Bass Parametric Design. It allows you to create Fretboards,
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](https://github.com/mnesarco/MarzWorkbench/raw/master/docs/wiki/custom-svg-body-doc.svg)|![Headstock](https://github.com/mnesarco/MarzWorkbench/raw/master/docs/wiki/custom-svg-headstock-doc.svg)|
Expand Down Expand Up @@ -34,7 +34,7 @@ This is a work in progress project, this is the list of the currently implemente
* Tenon
* Neck break angle
* Top offset
* Truss-Rod Chanel
* Truss-Rod Channel

* Headstock
* Dimensions
Expand Down Expand Up @@ -72,7 +72,7 @@ This is a work in progress project, this is the list of the currently implemente

## Documentation

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


![ui](https://github.com/mnesarco/MarzWorkbench/raw/master/docs/images/ui-elements.png)
Expand Down Expand Up @@ -130,26 +130,26 @@ If you find problems, please report the issue here in Github. I will try to fix/
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
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 prefered language, so maybe there are
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
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 writen 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 exclusivelly.
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 perfomant, 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.
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 aggresive 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.
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

Expand Down

0 comments on commit 13aec5b

Please sign in to comment.