Parametric CAD modeling for open source scientific hardware: Comparing OpenSCAD and FreeCAD Python scripts


Autoři: Felipe Machado aff001;  Norberto Malpica aff001;  Susana Borromeo aff001
Působiště autorů: Area of Electronics Technology, Universidad Rey Juan Carlos, Móstoles, Spain aff001
Vyšlo v časopise: PLoS ONE 14(12)
Kategorie: Research Article
prolekare.web.journal.doi_sk: 10.1371/journal.pone.0225795

Souhrn

Open source hardware for scientific equipment needs to provide source files and enough documentation to allow the study, replication and modification of the design. In addition, parametric modeling is encouraged in order to facilitate customization for other experiments. Parametric design using a solid modeling programming language allows customization and provides a source file for the design. OpenSCAD is the most widely used scripting tool for parametric modeling of open source labware. However, OpenSCAD lacks the ability to export to standard parametric formats; thus, the parametric dimensional information of the model is lost. This is an important deficiency because it is key to share the design in the most accessible formats with no information loss. In this work we analyze OpenSCAD and compare it with FreeCAD Python scripts. We have created a parametric open source hardware design to compare these tools. Our findings show that although Python for FreeCAD is more arduous to learn, its advantages counterbalance the initial difficulties. The main benefits are being able to export to standard parametric models; using Python language with its libraries; and the ability to use and integrate the models in its graphical interface. Thus, making it more appropriate to design open source hardware for scientific equipment.

Klíčová slova:

3D printing – Equipment – Graphical user interfaces – Open source hardware – Open source software – Programming languages – Software design – Source code


Zdroje

1. Jones R, Haufe P, Sells E, Iravani P, Olliver V, Palmer C, et al. RepRap—the replicating rapid prototyper. Robotica. 2011;29(1):177–191. doi: 10.1017/S026357471000069X

2. Arduino [Internet]. Available from: https://www.arduino.cc/. Archived 2019 Sep 23: https://web.archive.org/web/20190923025007/https://www.arduino.cc/.

3. Open source hardware definition v1.0. 2011 Feb. In: Open Source Hardware Association [Internet]. Available from: https://www.oshwa.org/definition/. Archived 2019 Sep 20: https://web.archive.org/web/20190920191338/https://www.oshwa.org/definition/.

4. Bonvoisin J, Schmidt KC. Best practices of open source mechanical hardware. Report. Technische Universität Berlin. 2017 Feb. Available from: https://depositonce.tu-berlin.de/handle/11303/6164.

5. Bonvoisin J, Mies R, Boujut JF, Stark R. What is the “source” of open source hardware?. Journal of Open Hardware. 2017;1(1):5. doi: 10.5334/joh.7

6. Gathering for open science hardware [Internet]. Available from: http://openhardware.science/. Archived 2019 Oct 6: https://web.archive.org/web/20191006135812/http://openhardware.science/.

7. Oberloier S, Pearce JM. General design procedure for free and open-source hardware for scientific equipment. Designs. 2017;2(1):2. doi: 10.3390/designs2010002

8. Pearce J. Open-source lab: how to build your own hardware and reduce research costs. 1st ed. Elsevier; 2014.

9. Chagas AM. Haves and have nots must find a better way: the case for open scientific hardware. PLoS Biol. 2018;16(9):e3000014. doi: 10.1371/journal.pbio.3000014

10. Drack M, Hartmann F, Bauer S, Kaltenbrunner M. The importance of open and frugal labware. Nat Electron. 2018;1(9):484–486. doi: 10.1038/s41928-018-0133-x

11. Best practices for open-source hardware 1.0. 2013 Apr. In: Open Source Hardware Association [Internet]. Available from: https://www.oshwa.org/sharing-best-practices/. Archived 2019 Apr 15: https://web.archive.org/web/20190415235203/https://www.oshwa.org/sharing-best-practices.

12. Vallance R, Kiani S, Nayfeh S. Open design of manufacturing equipment. In: CHIRP 1st Intl. Conf. on agile, reconfigurable manufacturing; 2001. p. 33–43. Available from: https://pdfs.semanticscholar.org/a3bf/d104dbc6b1d59a379ec708489ffb28be6b0f.pdf.

13. The open source definition. 2007 Mar. In: The Open Source Initiative [Internet]. Available from: https://opensource.org/docs/osd. Archived 2019 Sep 21: https://web.archive.org/web/20190921171008/https://opensource.org/docs/osd.

14. Weinberg M. Licensing open source hardware. In: Gibbs A, editor. Building open source hardware. 1st ed. Upper Saddle River, NJ: Addison-Wesley Professional; 2014.

15. Murillo LF, Kauttu P. Open hardware as an experimental innovation platform: preliminary research questions and findings. CERN Ideasq J Exp Innov. 2017;1(1):26.

16. Serrano J. Open hardware and collaboration. In: 11st Intl. W. on personal computers and particle accelerator controls. Campinas, Brazil; 2016.

17. Balka K, Raasch C, Herstatt C. The effect of selective openness on value creation in user innovation communities. J Prod Innov Manage. 2014;31(2):392–407. doi: 10.1111/jpim.12102

18. Fogel K. Producing open source software, how to run a successful free software project. 2nd ed. O’Reilly Media; 2009. Available from: https://producingoss.com/.

19. Clements P, Garlan D, Bass L, Stafford J, Nord R, Ivers J, et al. Documenting software architectures: views and beyond. 2nd Ed. Boston. Pearson Education; 2010.

20. Open source survey [Internet]. 2017. Available from: https://opensourcesurvey.org/2017/. Archived 2019 Sep 18: https://web.archive.org/web/20190918005627/https://opensourcesurvey.org/2017/.

21. OpenSCAD [Internet]. Available from: http://openscad.org. Archived 2019 Sep 22: https://web.archive.org/web/20190922022025/http://www.openscad.org/.

22. Zhang C, Anzalone NC, Faria RP, Pearce JM. Open-source 3D-printable optics equipment. PLoS One. 2013;8(3):e59840. doi: 10.1371/journal.pone.0059840 23544104

23. Salazar-Serrano LJ, Torres JP, Valencia A. A 3D printed toolbox for opto-mechanical components. PLoS One. 2017;12(1):e0169832. doi: 10.1371/journal.pone.0169832 28099494

24. Chagas AM, Prieto-Godino LL, Arrenberg AB, Baden T. The €100 lab: a 3D-printable open-source platform for fluorescence microscopy, optogenetics, and accurate temperature control during behaviour of zebrafish, Drosophila, and Caenorhabditis elegans. PLoS Biol. 2017;15(7):e2002702. doi: 10.1371/journal.pbio.2002702

25. Sharkey JP, Foo DCW, Kabla A, Baumberg JJ, Bowman RW. A one-piece 3D printed flexure translation stage for open-source microscopy. Rev Sci Instrum. 2016;87(2):025104. doi: 10.1063/1.4941068 26931888

26. Baden T, Chagas AM, Gage G, Marzullo T, Prieto-Godino LL, Euler T. Open labware: 3-D printing your own lab equipment. PLoS Biol. 2015;13(3):e1002086. doi: 10.1371/journal.pbio.1002086 25794301

27. Delmans M, Haseloff J. µCube: a framework for 3D printable optomechanics. Journal of Open Hardware. 2018;2(1):2. doi: 10.5334/joh.8

28. Gupta G, Nowatzki T, Gangadhar V, Sankaralingam K. Kickstarting semiconductor innovation with open source hardware. Computer. 2017;50(6):50–59. doi: 10.1109/MC.2017.162

29. ISO 10303-21:2016 Industrial automation systems and integration—Product data representation and exchange—Part 21: Implementation methods: Clear text encoding of the exchange structure. 2016. International Organization for Standardization. Available from: https://www.iso.org/standard/63141.htm purchase required. Archived 2019 Sep 24: https://web.archive.org/web/20190924193644/https://www.iso.org/standard/63141.html

30. Pratt MJ. Introduction to ISO 10303—the STEP Standard for product data exchange. J Comput Inf Sci Eng. 2001;1(1):102–103. doi: 10.1115/1.1354995

31. Salim FD, Burry J. Evaluating parameters of parametric modeling tools to support creativity and multidisciplinary design integration. In: Taniar D, Gervasi O, Murgante B, Pardede E, Apduhan BO, editors. Comput Sci Appl; Springer Berlin Heidelberg; 2010. p. 483–97.

32. Lunenburg J, Soetens R, Schoenmakers F, Metsemakers P, van de Molengraft R, Steinbuch M. Sharing open hardware through ROP, the Robotic Open Platform. In: RoboCup 2013: Robot World Cup XVII. Berlin, Heidelberg: Springer; 2014. p. 584–591.

33. FreeCAD [Internet]. Available from: https://www.freecadweb.org. Archived 2019 Sep 21: https://web.archive.org/web/20190921165427/https://freecadweb.org/

34. Python [Internet]. Available from: https://www.python.org. Archived 2019 Sep 24: https://web.archive.org/web/20190924172850/https://www.python.org/

35. Bettig B, Hoffmann C. Geometric constraint solving in parametric computer-aided design. J Comput Inf Sci Eng. 2011 Jun 1; 11(2). doi: 10.1115/1.3593408

36. Shahin T. Feature-based design—An overview. Comput Aided Des Appl. 2008 Jan 1; 5(5):639–53.

37. Hoffmann C, Joan-Arinyo R. Parametric modeling. In: Farin G, Hoschek J, Kim M-S, editors. Handbook of Computer Aided Geometric Design. Elsevier; 2002.

38. Shah JJ. Designing with parametric CAD: classification and comparison of construction techniques. In: Kimura F, editor. Geometric Modelling. Boston, MA: Springer 1998.

39. Moreno R, Bazán AM. Design automation using script languages. High-level CAD templates in non-parametric programs. IOP Conf Ser Mater Sci Eng. 2017 Oct.

40. Heikkinen T, Johansson J, Elgh F. Review of CAD-model capabilities and restrictions for multidisciplinary use. Comput Aided Des Appl. 2018 Jul 4;15(4):509–19. doi: 10.1080/16864360.2017.1419639

41. BRL-CAD [Internet]. Available from: https://brlcad.org. Archived 2019 Sep 21: https://web.archive.org/web/20190921115443/http://www.brlcad.org/.

42. CadQuery v1.2 [software]. Availabe from: https://github.com/dcowden/cadquery. Archived 2019 Oct 17: https://web.archive.org/web/20191017141307/https://github.com/dcowden/cadquery.

43. pythonOCC [Internet]. Available from http://www.pythonocc.org. Archived 2019 Aug 30: https://web.archive.org/web/20190830185954/http://www.pythonocc.org/.

44. ImplicitCAD [Internet]. Available from http://www.implicitcad.org/. Archived 2019 Aug 9: https://web.archive.org/web/20190809150350/http://www.implicitcad.org/.

45. OpenJSCAD [Internet]. Available from https://openjscad.org/. Archived 2019 Aug 9: https://web.archive.org/web/20190809082819/https://openjscad.org/.

46. Blender [Internet]. Available from https://www.blender.org/. Archived 2019 Oct 16: https://web.archive.org/web/20191016064839/https://www.blender.org/.

47. Open CASCADE Technology [Internet]. Available from: https://dev.opencascade.org/. Archived 2019 Aug 31: https://web.archive.org/web/20190831110734/https://dev.opencascade.org/.

48. CadQuery v2.0 [software]. Availabe from: https://github.com/CadQuery/cadquery. Archived 2019 Oct 17: https://web.archive.org/web/20191017221741/https://github.com/CadQuery/cadquery.

49. Machado F. Filter stage designed with OpenSCAD [software]. Available from: https://github.com/felipe-m/oscad_filter_stage. Archived 2019 Oct 24: https://web.archive.org/web/20191024154350/https://github.com/felipe-m/oscad_filter_stage.

50. Machado F. Filter stage designed with FreeCAD Python [software]. Available from: https://github.com/felipe-m/freecad_filter_stage. Archived 2019 Oct 24: https://web.archive.org/web/20191024154331/https://github.com/felipe-m/freecad_filter_stage.

51. CGAL: the computational geometry algorithms library [Internet]. Available from: https://www.cgal.org/. Archived 2019 Sep 21: https://web.archive.org/web/20190921070500/https://www.cgal.org/.

52. Requicha A, Rossignac J. Solid Modeling and Beyond. IEEE Comput Graph Appl. 1992;12(5):31–44. doi: 10.1109/38.156011

53. Hoffmann C, Saphiro V. Solid modeling. In: Toth C, O’Rourke J, Goodman J, editors. Handbook of discrete and computational geometry. CRC Press; 2017.

54. Scripting in FreeCAD. 2019 Jun 16. In: FreeCAD [Internet]. Available from: https://www.freecadweb.org/wiki/index.php?title=Power_users_hub&oldid=483976#Scripting_in_FreeCAD. Archived 2019 Oct 14: https://web.archive.org/web/20191014171850/https://www.freecadweb.org/wiki/Power_users_hub#Scripting_in_FreeCAD

55. Wikibooks contributors. OpenSCAD user manual [Internet]. Wikibooks, the free textbook project; 2019 July 22. Available from: https://en.wikibooks.org/w/index.php?title=OpenSCAD_User_Manual&oldid=3559235. Archived 2019 Aug 09: https://web.archive.org/web/20190809070259/https://en.wikibooks.org/wiki/OpenSCAD_User_Manual.

56. CadQuery v1.2 Documentation [Internet]. Available from: https://dcowden.github.io/cadquery. Archived 2019 Oct 18: https://web.archive.org/web/20191017221717/https://dcowden.github.io/cadquery.

57. BOLTS open library of technical specifications [Internet]. Available from: https://www.bolts-library.org/. Archived 2019 Sep 25: http://archive.is/ufp2i.

58. MCAD: OpenSCAD parametric CAD library [software]. Available from: https://github.com/openscad/MCAD. Archived 2019 Sep 25: https://web.archive.org/web/20190925100821/https://github.com/openscad/MCAD.

59. Palmer C. NopSCADlib: library of parts modelled in OpenSCAD and a framework for making projects [software]. Available from: https://github.com/nophead/NopSCADlib. Archived 2019 Sep 25: https://web.archive.org/web/20190925101028/https://github.com/nophead/NopSCADlib.

60. OpenSCAD libraries. In: OpenSCAD [Internet]. Available from: https://www.openscad.org/libraries.html. Archived 2019 Sep 25: https://web.archive.org/web/20190824151305/https://www.openscad.org/libraries.html.

61. A Library of Parts for FreeCAD [software]. Available from: https://github.com/FreeCAD/FreeCAD-library. Archived 2019 Sep 25: https://web.archive.org/web/20190925102314/https://github.com/FreeCAD/FreeCAD-library.

62. Workbenches. 2019 May 15. In: FreeCAD documentation [Internet]. https://www.freecadweb.org/wiki/index.php?title=Workbenches&oldid=475449. Archived 2019 Sep 4: https://web.archive.org/web/20190904224737/https://www.freecadweb.org/wiki/Workbenches.

63. External Workbenches. 2019 Jul 28. In: FreeCAD documentation [Internet]. Available from: https://www.freecadweb.org/wiki/index.php?title=External_workbenches&oldid=498374. Archived 2019 Sep 25: https://web.archive.org/web/20190925103851/https://www.freecadweb.org/wiki/External_workbenches.

64. Modeling algorithms. In: Open CASCADE technology user guides [Internet]. Available from: https://www.opencascade.com/doc/occt-7.3.0/overview/html/occt_user_guides__modeling_algos.html#occt_modalg_11_2. Archived 2019 Sep 25: https://web.archive.org/web/20190925111408/https://www.opencascade.com/doc/occt-7.3.0/overview/html/occt_user_guides__modeling_algos.html#occt_modalg_11_2.

65. OpenSCAD gallery. In: OpenSCAD [Internet]. Available from: https://www.openscad.org/gallery.html. Archived 2019 Aug 30: https://web.archive.org/web/20190830054956/http://www.openscad.org/gallery.html.

66. Chen K, Schaefer D. MCAD-ECAD integration: overview and future research perspectives. Int Mech Eng Congress Expo; 2009.

67. KiCad EDA [Internet]. Available from: http://kicad-pcb.org/. Archived 2019 Sep 25: https://web.archive.org/web/20190925114848/http://kicad-pcb.org/.

68. KiCad StepUp workbench [software]. Available from: https://github.com/easyw/kicadStepUpMod. Archived 2019 Oct 23: https://web.archive.org/web/20191023153353/https://github.com/easyw/kicadStepUpMod.

69. Crowston K, Howison J. FLOSS project effectiveness measures. In: Benbya H, Belbaly N, editors. Successful OSS project design and implementation. Gower; 2011. p. 149–167.

70. The FreeCAD open source project. In: Open Hub [Internet]. Available from: https://www.openhub.net/p/freecad. Archived 2019 Sep 25: https://web.archive.org/web/20190925131726/https://www.openhub.net/p/freecad.

71. The OpenSCAD open source project. In: Open Hub [Internet]. Available from: https://www.openhub.net/p/openscad. Archived 2019 Sep 25: https://web.archive.org/web/20190925133909/https://www.openhub.net/p/openscad.

72. FreeCAD Github release stats. In: Github release stats [Internet]. Available from: http://www.somsubhra.com/github-release-stats/?username=FreeCAD&repository=FreeCAD. Archived 2019 Sep 25: https://perma.cc/LJ99-ZQEV.


Článok vyšiel v časopise

PLOS One


2019 Číslo 12