Débuter avec SolveSpace

Posté par  . Édité par Ysabeau 🧶 et Benoît Sibaud. Modéré par Ysabeau 🧶. Licence CC By‑SA.
77
13
août
2021
Technologie

Il y a dix ans, je disposais d’un peu de temps pour tester divers modeleurs volumiques (fonctionnant sous Linux). J’en ai alors profité pour rédiger quelques articles.

À cette époque, je voulais aussi étudier SolveSpace, mais j’ai dû passer à autre chose.

Une pièce dessinée avec SoleSpace

SolveSpace est un logiciel de CAO 3D original dans son maniement, plutôt agréable et performant, avec un peu d’habitude. Il fonctionne sous Linux, Windows ou MacOS… et sous d’autres systèmes d’exploitation. Il est disponible en anglais. Il s’appuie sur deux fenêtres :

  • une pour la visualisation en trois dimensions ;
  • et l’autre pour les informations sur le modèle volumique.

Voilà ce à quoi il ressemble, après l’avoir lancé et ouvert un assemblage de pièces :

Assembler des pièces dans Solvespace
SolveSpace est un logiciel libre, sous licence GPLv3.

Installer SolveSpace

L’installation s’effectue simplement en tapant la commande : sudo apt install solvespace

Ouvrir et visualiser une pièce

Sélectionnez le menu File -> Open. Une fenêtre s’affiche alors pour choisir le dossier et la pièce à afficher. Un fichier avec l’extension .slvs doit être retenu.
Ouvrir une pièce

Une fois la pièce ouverte, vous pouvez la faire bouger dans tous les sens, pour la visualiser.

Pour tourner la pièce, deux solutions :

  • maintenez le bouton central de la souris enfoncé et déplacez la souris ;
  • maintenez la touche Majuscule et le bouton droit de la souris enfoncé et déplacez la souris.

Pour déplacer la pièce :

  • maintenez le bouton droit de la souris enfoncé et déplacez la souris.

Pour rapprocher ou éloigner la pièce :

  • appuyez sur les touches + ou - du clavier.

Plusieurs exemples de pièces, au format .slvs, sont téléchargeables sur le site : https://solvespace.com/examples.pl.
Des assemblages de pièces, au format .zip, sont également proposés. Dans ce cas, il faut au préalable extraire les fichiers de l’archive.

Modéliser une pièce

On sélectionne un plan, on y dessine un contour fermé, on le translate pour générer de la matière. Ensuite, on sélectionne une face du modèle, on y dessine un cercle pour percer un trou. Au lancement du logiciel, XY est le plan par défaut. Nous en choisissons un autre… juste pour montrer la procédure.

Sélectionnez dans la zone graphique le plan d’esquisse YZ, qui apparaît en rouge, puis le menu Sketch -> In Workplane.

Modélisation d’une pièce

Avec l’outil ligne, dessinez le polygone. On peut rendre une ligne horizontale ou verticale :

  • en sélectionnant l’arête qui devient alors rouge ;
  • puis en allant dans le menu Constrain.

Dessin des lignes

Les cotes dimensionnelles ne posent aucune difficulté. Il faut sélectionner :

  • les deux extrémités d’une arête (distance entre deux points) ;
  • ou bien un point et une arête (distance d’un point à une droite).

Ajustement de la distance

Le résultat à atteindre :

Le résultat

Ci-dessous, pour réaliser l’extrusion :

  • allez dans le menu New Group -> Extrude pour créer de la matière par translation du contour fermé ;
  • cochez le bouton tow-sided, dans la fenêtre de droite, pour générer la matière de part et d’autre du plan d’esquisse ;
  • placez la cote de 60.00, à l'aide du menu Constrain comme précédemment.

Visualisation en volume

Le nouveau plan d’esquisse se définit :

  • en sélectionnant un point et deux arêtes, qui deviennent rouges ;
  • ensuite avec le menu New Group -> Sketch in New Workplane.

Modification du plan d’esquisse

La nouvelle esquisse, un simple cercle :

Dessin du cercle

Pour produire le perçage :

  • allez dans le menu New Group -> Extrude ;
  • cochez le bouton difference dans la fenêtre de droite.

Notez que la couleur et l’opacité de la pièce se spécifient juste en dessous de ce bouton.

Le volume avec le trou causé par la cercle

Et voilà le résultat ! Pour obtenir une belle vue dénuée des éléments de construction :

  • sélectionnez home dans la fenêtre de droite ;
  • décochez toutes les cases shown.

Vue du volume en perspective

À tout moment, il est possible de retourner à une étape précédente pour une modification. Ici, pour changer une valeur, on est revenu à la première esquisse, en cochant le premier bouton de la colonne active, dans la fenêtre de droite.

Modification d’une valeur

Conclusion

Comme pour tous les modeleurs volumiques, apprendre à manipuler SolveSpace nécessite d’y consacrer un peu de temps. Comme il n’est pas très intuitif au premier abord, l’étude du manuel s’avère indispensable… du moins au début. Après, lorsqu’on a compris la logique du logiciel, la modélisation devient aisée.

Le manuel de référence, en anglais, se trouve à l’adresse : https://solvespace.com/ref.pl

Par bonheur, une version du manuel traduite en français existe. Plusieurs tutoriels la complètent, montrant clairement et précisément comment s’y prendre pour modéliser des pièces : https://solvespacefr.weebly.com/manuel.html

SolveSpace est une magnifique et surprenante réalisation, sympathique et ergonomique. Elle mériterait d’être mieux connue.

Aller plus loin

  • # Pas mal

    Posté par  . Évalué à 9.

    Je me fais fumer les neurones de temps en temps avec FreeCAD pour de petits projets d'impression 3D. Je ne connaissais pas ce soft qui à l'air suffisant, et plus simple à prendre en main, pour ce que j'en fais.

    • [^] # Re: Pas mal

      Posté par  (site web personnel, Mastodon) . Évalué à 6. Dernière modification le 14 août 2021 à 17:05.

      Je me posais justement la question de savoir si c'était utilisable pour l'impression 3D :-) et aussi si c'est une coïncidence ou si le sondage sur les imprimantes 3D a motivé la dépêche.

      Cela m'a tout l'air d'être un logiciel sympathique cela dit.

      « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

      • [^] # Re: Pas mal

        Posté par  . Évalué à 7.

        Je vois pas de raisons que ça ne puisse pas marcher pour l'impression 3D. Si ça peut exporter dans n'importe quel format un peu connu (si pas directement en STL), un petit passage sous Blender pour vérifier l'objet/obtenir le STL et ça devrait rouler.

        • [^] # Re: Pas mal

          Posté par  . Évalué à 7.

          Pour exporter le modèle volumique au format STL, compatible avec la majorité des imprimantes 3D :
          file -> Export Triangle Mesh…

    • [^] # Re: Pas mal

      Posté par  . Évalué à 6.

      Pour les petits projets je te conseille BlockSCAD : https://www.blockscad3d.com/editor/ (c'est basé sur OpenSCAD mais avec une IHM à la Scratch, on peut même récupérer le code OpenSCAD avec le bouton "code" en haut à droite).

      La partie IHM est en OpenSource (https://github.com/EinsteinsWorkshop/BlocksCAD) par contre la partie backend n'est pas disponible. Si tu n'as pas confiance dans leur stockage en ligne, tu peux soit instancier le projet en local soit utiliser l'éditeur en mode déconnecté, tant que tu restes sur le même PC la sauvegarde dans le "local storage" de ton navigateur fonctionne bien, tu devras juste jongler avec les import/export de fichier XML décrivant ton projet.

      L'export STL est plutôt bien fait, je n'ai pas encore eu besoin d'en "réparer" avant de préparer mes impressions.

      J'utilise ça en formation impression 3D avec des collégiens et ça fonctionne plus bien (exemple de pièces conçues en moins d'1h30 ici : https://twitter.com/matthieu_salvat/status/1222959625521287169 https://twitter.com/matthieu_salvat/status/1235917064885415936).

      Un peu comme pour Scratch, ça devient vite illisible dès que je projet devient un peu gros.

  • # configuration matérielle

    Posté par  . Évalué à 5.

    Bonjour,

    est-il nécessaire pour ce type de logiciel de disposer d'une carte graphique "puissante" ou seule une carte intégrée de type Intel par exemple suffit ?

    Je suis toujours dans l’évaluation de mes besoins pour l’acquisition d'un ordinateur portable pour le développement. Je me demande si plus tard je voudrais pas aussi faire des projets avec une imprimante 3D et de la retouche de photos.
    Je me pose la question si je dois plus tôt opter pour une ordinateur avec une carte de type Nvidia pour prévoir de futurs potentiels besoins.

    • [^] # Re: configuration matérielle

      Posté par  . Évalué à 5.

      Bonjour,

      alors pour la configuration nécessaire pour la modélisation 3d cela va dépendre en fait du nombre de faces de l'objet, pour des objets avec un nombre limité de celles-ci une APU suffit mais peu donc du coup demander un peu d'optimisation (ou de l'utilisation d'option d'affichage de peu de faces si disponible dans le logiciel, possible via blender).
      C'est généralement, et cela change de plus en plus avec l'utilisation de cuda y compris pour l'affichage, le processeur qui monte en charge et n'arrive à suivre en vue 3D avec plusieurs millions/milliards de faces.

      Pour un rendu une carte avec CUDA est clairement le jour et a nuit, mais cela plus les rendus que modélisation (pour le moment encore).

      Pour l'impression 3D encore une fois le processeur est celui qui travaille le plus pour le "slice" de l'objet, cette opération demande pas mal de ressources (en fonction slicer utilisé et paramètres).

      Voila pour mes constatations utilisant ces techno ;)

    • [^] # Re: configuration matérielle

      Posté par  . Évalué à 2. Dernière modification le 16 août 2021 à 14:33.

      Je me posait la même question. Quelle est la config minimum ?
      J'ai rien trouvé, mais apparemment c'est pas trop gourmand par rapport aux autres logiciels concurrents de DAO.

    • [^] # Re: configuration matérielle

      Posté par  . Évalué à 4. Dernière modification le 16 août 2021 à 14:45.

      Pour ce que ça vaut, je joue avec depuis quelques mois sur un ordinateur qui était vendu pour Win7 : un Lenovo ThinkCentre MT-M10ds-0015FR avec processeur Core i3-4170 3,7 GHz et une carte graphique intégrée ATI Cedar (Radéon 5000). Il y a 4 ou 8 Go de Ram selon les moments. Ça tourne avec Debian Sid et KDE et un démon en Java. C'est ma bécane de tous les jours.

      Eh bien SolveSpace tourne sans problème, il faut beaucoup scroller dans htop pour le voir.

      • [^] # Re: configuration matérielle

        Posté par  . Évalué à 8.

        Pour rappel, SolidWorks envahit les Lycées à partir de 1998. Le logiciel fonctionnait parfaitement avec les PC de l'époque, nettement moins performants que ceux d'aujourd'hui. Seul un modèle volumique très complexe permettrait d'observer un ralentissement.

    • [^] # Re: configuration matérielle

      Posté par  . Évalué à 3.

      Mon cpu:

      processor   : 0
      vendor_id   : GenuineIntel
      cpu family  : 6
      model       : 158
      model name  : Intel(R) Pentium(R) Gold G5500 CPU @ 3.80GHz
      stepping    : 11
      microcode   : 0x8e
      cpu MHz     : 800.148
      cache size  : 4096 KB
      physical id : 0
      siblings    : 4
      core id     : 0
      cpu cores   : 2
      apicid      : 0
      initial apicid  : 0
      fpu     : yes
      fpu_exception   : yes
      cpuid level : 22
      wp      : yes
      flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms invpcid mpx rdseed smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d
      vmx flags   : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple pml ept_mode_based_exec
      bugs        : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds
      bogomips    : 7599.80
      clflush size    : 64
      cache_alignment : 64
      address sizes   : 39 bits physical, 48 bits virtual
      power management:
      
      processor   : 1
      vendor_id   : GenuineIntel
      cpu family  : 6
      model       : 158
      model name  : Intel(R) Pentium(R) Gold G5500 CPU @ 3.80GHz
      stepping    : 11
      microcode   : 0x8e
      cpu MHz     : 799.994
      cache size  : 4096 KB
      physical id : 0
      siblings    : 4
      core id     : 1
      cpu cores   : 2
      apicid      : 2
      initial apicid  : 2
      fpu     : yes
      fpu_exception   : yes
      cpuid level : 22
      wp      : yes
      flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms invpcid mpx rdseed smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d
      vmx flags   : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple pml ept_mode_based_exec
      bugs        : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds
      bogomips    : 7599.80
      clflush size    : 64
      cache_alignment : 64
      address sizes   : 39 bits physical, 48 bits virtual
      power management:
      
      processor   : 2
      vendor_id   : GenuineIntel
      cpu family  : 6
      model       : 158
      model name  : Intel(R) Pentium(R) Gold G5500 CPU @ 3.80GHz
      stepping    : 11
      microcode   : 0x8e
      cpu MHz     : 800.073
      cache size  : 4096 KB
      physical id : 0
      siblings    : 4
      core id     : 0
      cpu cores   : 2
      apicid      : 1
      initial apicid  : 1
      fpu     : yes
      fpu_exception   : yes
      cpuid level : 22
      wp      : yes
      flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms invpcid mpx rdseed smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d
      vmx flags   : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple pml ept_mode_based_exec
      bugs        : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds
      bogomips    : 7599.80
      clflush size    : 64
      cache_alignment : 64
      address sizes   : 39 bits physical, 48 bits virtual
      power management:
      
      processor   : 3
      vendor_id   : GenuineIntel
      cpu family  : 6
      model       : 158
      model name  : Intel(R) Pentium(R) Gold G5500 CPU @ 3.80GHz
      stepping    : 11
      microcode   : 0x8e
      cpu MHz     : 800.000
      cache size  : 4096 KB
      physical id : 0
      siblings    : 4
      core id     : 1
      cpu cores   : 2
      apicid      : 3
      initial apicid  : 3
      fpu     : yes
      fpu_exception   : yes
      cpuid level : 22
      wp      : yes
      flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust smep erms invpcid mpx rdseed smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm arat pln pts hwp hwp_notify hwp_act_window hwp_epp flush_l1d
      vmx flags   : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple pml ept_mode_based_exec
      bugs        : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds
      bogomips    : 7599.80
      clflush size    : 64
      cache_alignment : 64
      address sizes   : 39 bits physical, 48 bits virtual
      power management:
      

      Je n'ai pas de CPU.

      Cette machine est relativement récente, je connais solvespace depuis bien plus longtemps que ça et l'ai testé sur diverses autres machines, plus ou moins puissantes.
      Pour des formes simples, sans trop de contraintes, ça passe partout, c'est vraiment un logiciel peu gourmand.

      Une autre personne dans ce fil a parlé de solidworks, mais pour info, il existe un outil nommé BRLCAD qui est probablement plus vieux: l'histoire de son code source, disponible en libre, peut être tracé depuis les années 80, et je ne pense pas qu'il y avait des GPU aussi puissants que nos GPUs intégrés :)

  • # Information importante sur le moteur

    Posté par  . Évalué à 10.

    Il existe, en gros, 3 moteurs de CSG en open source actuellement. OpenCascade (OCCT) utilisé dans FreeCAD, OpenSCAD (qui est plus une sorte de POVRay du CAD) et Solvespace.

    Du point de vue fonctionnalités, OCCT est plus utilisé car il a de nombreux outils/plugins (import/export, résolution des shells en solid, support du STEP214 en natif, etc…), mais ses limitations sont aussi son point faible, par exemple, il ne sait pas calculer l'intersection d'une surface NURBS avec une autre, ou supporter des contraintes géométriques sur des NURBS.
    À noter que ce genre de calcul est extrêmement difficile (à leur décharge) car le nombre de cas particulier est très important. Il est possible que ça s'améliore dans le futur cependant.

    Solvespace est utilise, quand à lui, son propre moteur CSG qui est vraiment très rapide et puissant. Il n'utilise pas des NURBS et au contraire, garde la représentation des surfaces sous forme polynomiale. Lorsque la résolution des contraintes n'est pas possible avec des solutions analytiques, il se défausse sur des solutions par approximations (comme Parasolid). Ce qui signifie que le résultat des fonctions présenté est très souvent le meilleur possible, mais que le nombre et type des fonctions est limité (par exemple, pas d'extrusion suivant une interpolation de profils, ou de sweep paramétrique etc…)

    Enfin, il reste OpenSCAD. Honnêtement, je ne le connais pas bien, et la manière de modéliser dans OpenSCAD reste trop différente de ma manière de voir les pièces en 3D par fonctions successives.

    • [^] # Re: Information importante sur le moteur

      Posté par  . Évalué à 10.

      Il existe aussi libfive et curv qui utilisent ceci : Function_representation.
      On peut utiliser libfive avec python ou scheme (ou directement en C), curv a son propre langage.

      OpenSCAD prétend être un langage fonctionnel, mais il n'est pas possible de créer une fonction qui prend en paramètre un "objet"… Libfive et Curv sont beaucoup plus agréables à utiliser (à mon goût). Avec OpenSCAD mon code devient vite dégueu, alors qu'avec libfive non. Le seul avantage d'OpenSCAD est son énorme communauté.

      Tu connaissais peut-être déjà, mais mon commentaire était pour faire un peu de pub pour ces 2 projets qui sont très sympas.

      • [^] # Re: Information importante sur le moteur

        Posté par  . Évalué à 2.

        Non je ne connaissais pas. Super cool, merci!

      • [^] # Re: Information importante sur le moteur

        Posté par  . Évalué à 6.

        OpenSCAD prétend être un langage fonctionnel, mais il n'est pas possible de créer une fonction qui prend en paramètre un "objet"…

        C'est normal, c'est (dys)fonctionnel, pas objet. Oups, pas vendredi… Perso, j'ai testé il y a quelques années divers softs de CAO: brlcad, solvespace, openscad et freecad, dans le but principalement de faire de l'impression 3D.
        Le plus simple à utiliser, et de loin, c'est solvespace.
        Par contre il n'est pas versionnable dans git ou svn (contrairement à openscad).
        Il ne fait pas de RDM alors que brlcad le fait très probablement.
        Contrairement à freecad, il ne fait que deux choses: des pièces et des assemblages de pièces fixes, ce qui le rend casse-pied pour de l'architecture dont les pièces peuvent être paramétriques (une poutre, par exemple).

        Au final, il reste mon préféré. Parce que:
        Comparé à openscad, il est utilisable sans être matheux.
        Comparé à brlcad, il est facile à utiliser (brlcad est celui que j'ai le moins creusé).
        Comparé à freecad, il est fini.

        • [^] # Re: Information importante sur le moteur

          Posté par  . Évalué à 4. Dernière modification le 15 septembre 2021 à 10:34.

          FreeCAD a fait d'énormes progrès concernant sa stabilité (mais c'est pas encore 100% parfait). J'arrive à modéliser des pièces vraiment complexes sans qu'il ne crashe ou me jette sur une fonction qu'il n'arrive pas à appliquer (ce qui n'était pas le cas avec la version 0.19).
          Il est pas encore au niveau d'un Solidworks, mais il est très proche d'un OnShape.

          Bientôt il devrait y avoir la correction du bug le plus pénible à mon sens: le topological naming issue qui est en passe d'être résolu.

          C'est fondamental pour pouvoir vraiment parler de modéliseur paramétrique. Ainsi, si tu changes une variable sur une fonction en bas du stack (par exemple, la longueur d'un segment, ou le rayon d'un cercle), il ne casse plus toutes les fonctions suivantes.

          Quand à la logique d'utilisation, c'est pareil pour tous les logiciels, il faut apprendre, puis après ça devient intuitif.

          Solvespace est assez intuitif, il a des fonctions en plus que FreeCAD dans son sketcheur (notamment la possibilité d'appliquer une rotation multiplicative sur n'importe quel segment/curve) mais je me suis souvent retrouvé bloqué par le manque de fonctions "haut niveau".

    • [^] # Re: Information importante sur le moteur

      Posté par  . Évalué à 4.

      Je me permets de pointer le fait que solvespace propose sa propre bibliothèque en réponse à ton commentaire.

  • # Eh merde , ça fait un bail :-)

    Posté par  . Évalué à 2. Dernière modification le 19 août 2021 à 02:21.

    La dernière fois que j'ai compilé un truc ça remonte à flightgear (pas sur).
    J'ai une imprimante 3d en kit bas de gamme, que j'amélioré / fiabilisé , elle est toujours lente, mais je m'en fout.
    Je connais FreeCAD, c'est quand même assez pénible et pas stable (euphémisme, même avec le respect des devs ).
    Ça fait un bail donc que j'ai pas compilé un truc , donc: quelles sont les dépendances ? Librairie , Open GL et autre ?
    Merci d'avance … Je n'utilise pas Ubuntu …

    • [^] # Re: Eh merde , ça fait un bail :-)

      Posté par  . Évalué à 2.

      Pour installer libfive et compiler les sources :

      Première étape : Le cas échéant, installez git, le logiciel de gestion de versions décentralisé, adapté au service web d'hébergement github.

      $ sudo apt install git

      Deuxième étape : Récupérez les sources, avec la commande ci-dessous. Elle crée dans votre dossier personnel le dossier libfive, contenant les fichiers nécessaires à la complilation.

      $ git clone https://github.com/libfive/libfive

      Troisième étape : Installez les dépendances, c'est à dire l'ensemble des bibliothèques sur lesquelles s'appuie le logiciel.

      $ sudo apt-get install cmake pkg-config libeigen3-dev libpng-dev libboost-all-dev guile-3.0-dev qtbase5-dev python3

      Quatrième étape : Pour compiler le logiciel, tapez les commandes ci-dessous, les unes après les autres.

      $ cd libfive
      $ mkdir build
      $ cd build
      $ cmake ../
      $ make
      $ sudo make install
      $ sudo ldconfig

      Commentaire :

      • On se place dans le dossier libfive.
      • Pour créer le sous-dossier build.
      • Puis on descend dans le sous-dossier build.
      • cmake génère les makefile adaptés à l'architecture de la machine, à partir du fichier CMakeLists.txt.
      • make compile le code source dans le sous-dossier build. Cela évite de toucher aux fichiers d'origine, il n'y a qu'à effacer build et recommencer pour recompiler de nouveau.
      • make install copie les fichiers compilés à leurs emplacements définitifs.
      • ldconfig, facultatif, évite dans certains cas de devoir redémarrer le PC pour prendre en compte des modifications.

      Dernière étape : Démarrez le logiciel, en tapant la commande ci-dessous.

      $ /usr/local/bin/Studio

      En principe, si vous n'êtes pas sous Ubuntu, la commande ci-dessous devrait aussi fonctionner :

      $ /home/votre_dossier_personnel/libfive/build/studio/Studio

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.