Avant tout, tous trois sont des logiciels de conception paramétrique (comme SolidWorks). Cela veut dire qu'on base les dessins sur des valeurs, des paramètres, que l'on peut faire varier même après avoir terminé de dessiner la pièce, pour que le résultat s'adapte immédiatement à des changements, même si la valeur que l'on change est la toute première qu'on avait définie. Ceci par opposition à des logiciels comme Sketchup, où on dessine au fur et à mesure et où on ne peut pas changer des choses a posteriori, sauf à soi-même reprendre tout le dessin.
J'utilise surtout OpenSCAD, avec lequel on décrit les dessins avec un langage de "programmation".
FreeCAD est le plus ressemblant à ce qu'on imagine communément d'un logiciel de dessin en 3D, mais il est assez difficile au premier abord.
SolveSpace m'a semblé assez facile à aborder (surtout en regardant sa vidéo tutoriel), il a cependant une interface assez inhabituelle (mais puissante). Ce qui m'embête avec lui, c'est que ses paramètres sont définis directement sur le dessin et non dans des variables, ce qui rend les modifications un peu plus difficiles pour des pièces compliquées (il faut parfois réfléchir pour retrouver quelle valeur on veut modifier).
Concernant la difficulté avec SolveSpace et avec FreeCAD (et ce qui me fait + aimer OpenSCAD), imaginons qu'on dessine une boîte avec des bords d'une certaine épaisseur. Dans FreeCAD et SolveSpace, on va définir une épaisseur sur un des côtés et on va contraindre les autres épaisseurs à être égales à celle-ci. Si in fine on veut changer l'épaisseur, il faut aller modifier la valeur de l'épaisseur de référence, que l'on retrouvera sur l'un des éléments du dessin - il faut donc parcourir le dessin pour retrouver où on a mis cette valeur. Avec OpenSCAD, je ferais une variable que j'appellerais "epaisseurBoite" et j'utiliserais cette variable avec tous les bords. Du coup, il est assez évident que l'on peut changer l'épaisseur en changeant juste cette variable.
D'ailleurs, OpenSCAD est conçu de manière à pouvoir le faire aisément avec une interface dédiée : on peut dessiner un élément avec des mesures "de base" et permettre de personnaliser ces mesures pour changer la pièce et l'adapter aux différents besoins.
Voici un exemple. J'ai dessiné un entonnoir qui se visse sur une bouteille en verre à goulot large et qui a la bonne dimension pour les distributeurs de vrac de biocoop.
Si on veut changer de contenant (un bocal avec un filetage différent par exemple) ou de distributeur de vrac (tous n'ont pas les mêmes dimensions), il suffit de changer les paramètres à droite.