README.md (5208B)
1 # Star CAD 2 3 Star-CAD is mostly a wrapper for the gmsh library. It only provides 4 access to some of the OpenCascade kernel features, with the benefit of 5 simplified use. One of the most valuable features of Star-CAD is that it 6 implements an automated reference counting mecanism that eases geometry 7 reference, whilst gmsh system of tags doesn't ensure tag persistence 8 accross geometry deletions. 9 10 ## Requirements 11 12 - C compiler 13 - POSIX make 14 - pkg-config 15 - [Gmsh](https://gmsh.info/) 16 - [RSys](https://gitlab.com/vaplv/rsys) 17 - [Star Geometry 3D](https://gitlab.com/meso-star/star-geometry-3d) 18 - [Star Enclosures 3D](https://gitlab.com/meso-star/star-enclosures-3d) 19 20 ## Installation 21 22 Edit config.mk as needed, then run: 23 24 make clean install 25 26 ## Release notes 27 28 ### Version 0.6 29 30 This version breaks the API and brings an huge performance improvement (10 times 31 and more on complex scenes). 32 - Add `scad_add_cone' and `scad_add_torus' API calls. 33 - API changes for geometry creation: geometry name is no longer provided to the 34 various add_<something> functions, that now create unnamed geometries; instead 35 names have to be set after geometry creation through `scad_geometry_set_name'. 36 - Add `scad_geometries_boundaries' and `scad_geometries_common_boundaries' that 37 return a list of geometries instead of a (possibly empty) single geometry 38 containing all the boundary elements. 39 - API uniformization (involving args order, naming, etc.). 40 - Fix geometry naming. Now get_name returns NULL if name was set to NULL or 41 let unset (used to return ""). Allow to set same name again (to the same 42 geometry) without triggering an error. 43 - Fix `scad_geometry_get_closest_point'. The returned point was not correct. 44 - Fix `scad_geometry_get_normal' to get the normal at the geometry closest 45 point, fixing a memleak in the process. 46 - Fix `scad_scene_clear' (geometries with multiple references where not 47 released). 48 - Fix `scad_geometries_common_boundary'. Used to trigger OccIntersect that, as 49 a side effet, partitionned geometries. 50 - Fix `scad_step_import' (arguments where inverted). 51 - Change `scad_geometry_get_centerofmass'. Now returns the unique center of mass 52 of all the entities involved in the geometry, regardless of their count (used 53 to return one center of mass per entity in the geometry). 54 - Rework the auto-sync feature (that manages sync events between gmsh and 55 Open Cascade); this is the cause of the performance improvement. 56 - Rename enum members in capital letters. 57 - Upgrade gmsh dependency (to 1.14.1) and Open-Cascade dependency (to 7.9.1). 58 - Improve code robustness. 59 - Improve tests. 60 61 ### Version 0.5.2 62 63 - Fix a file name in debug STL output file. 64 - Add debug code that output new STL files on some errors. 65 - Add tests. 66 67 ### Version 0.5.1 68 69 - Add `scad_get_bounding_box' API call. 70 - Add `scad_geometries_set_periodic' API call. 71 - Add `scad_geometries_set_mesh_size_modifier' API call. 72 - Add `scad_geometries_set_mesh_algorithm' API call. 73 - Add `scad_geometry_get_closest_point' API call. 74 - Add the `quasi structured' meshing algorithm. 75 - Add the `automatic' meshing algorithm. 76 - Add the `initial mesh only' meshing algorithm. 77 - Add a geometry visibility management feature. 78 79 ### Version 0.5 80 81 - BugFix STL output of geometries when forcing normals 82 - Improve C89 compliance and fix header file to be used in c++ code 83 - Change build mechanics from cmake to POSIX makefiles 84 - Change manpages format from asciidoc to mdoc 85 - Upgrade dependencies 86 - Improve and fix some tests 87 88 ### Version 0.4.1 89 90 - Add `scad_dump_geometry' API call that can be called from a debugging 91 session 92 - Remove an invalid assert 93 - Fix build that used gmsh library in Release when Debug should have 94 been used 95 - Improve logs 96 97 ### Version 0.4 98 99 - Upgrade to gmsh 4.12.2 100 101 ### Version 0.3.1 102 103 - Add a flag allowing to dump overlapping geometries 104 - Improve some log messages 105 - Sets required version of star-enclosures-3d to 0.6 106 107 ### Version 0.3 108 109 This release largely breaks the API. 110 111 - Add API calls to attach custom data to geometries 112 - Increase default min size for generated meshes 113 - Add API calls to deals with the entities hidden in geometries 114 - Change geometry swap API 115 - Remove redundant API calls 116 - BugFixes on geometries lifetime management 117 - Log messages improvement 118 - Many bug fixes 119 120 ### Version 0.2 121 122 - Introduce reference counting for geometries (API break). 123 - Add the `scad_stl_data_write` API call to write a vector of coordinate 124 as an STL file the same way `scad_stl_export` do (producing the same 125 decimals/bytes). 126 - Add `scad_stl_get_data` and `scad_stl_get_data_partial` API calls to 127 get the mesh of a geometry, allowing to manipulate it before writing 128 it. 129 - Add the `scad_stl_export_partial` API call to export part of a 130 geometry to an STL file. 131 - Remove the reverse arg from STL related functions (API break). 132 - Add a `scad_geometry_reverse` API call. 133 - Code simplifications in STL-related code 134 135 ### Version 0.1.0 136 137 Initial version. 138 139 ## License 140 141 Copyright (C) 2022-2024 |Méso|Star> (contact@meso-star.com) 142 143 Star-CAD is free software released under the GPL v3+ license: GNU GPL 144 version 3 or later. You are welcome to redistribute it under certain 145 conditions; refer to the COPYING file for details.