Solids Sharp has sufficient breadth and depth of functionality for most 3-D geometric modeling applications.
Solids Sharp™ is not just a Solids Modeling Kernel, it is much more. Solids Sharp is a Non-Manifold Modeling Kernel that provides a comprehensive suite of tools for Solids Modeling, Surface Modeling, Curve Modeling, Polygonal Modeling, Subdivision Surface Modeling and Non-Manifold Modeling. Solids Sharp has sufficient breadth and depth of functionality to be utilized in nearly any 3-D modeling application.
The combination of traditional Solids Modeling Tools with Polygonal Modeling Tools make it a great choice for applications development in a large number of industries. The Curve and Surface Modeling Tools also make it great for applications such as industrial design and graphical design. The fast intersection, ray-tracing and query tools make it suitable for analysis applications such as CMM, Optical Analysis, and NC. The native Non-Manifold Topology and tessellation engine make it an excellent choice for FEM analysis packages. Hidden curve removal is useful for drafting, drawing production, and documentation generation.
Why the C# Language?
When we first started working with C# it was more out of curiosity than the real belief that we could implement complex, performance critical geometric modeling software using the language. After some initial prototyping and conversion of some of the Polygonal Modeling tools, we became convinced of two things. First, we were certain that I could achieve equivalent or better performance with C# after some rework of the algorithms and data structures used by the Solids++ kernel. Second, I was personally convinced that in terms of my personal productivity I would never go back to programming primarily in C++. Having used C# now for over 10 years nearly exclusively, my belief is that there is between a 4 times to a 10 times productivity gain in developing geometric modeling software with C#. In terms of software maintenance cost, I believe the difference is greater than a factor of 10.
Over the past 5 years we have developed an extensive set of Reverse Engineering tools on top of the Solids# kernel (Solids# Apps) that are far superior to anything currently available on the market (See the Cyborg3D MeshToCAD video). See Power Surfacing RE and Cyborg3D MeshToCAD on our nPowerSoftware.com web site.
The following list summarizes the major advantages we see for utilizing C# to develop Solids#, Solids# Apps, and the Cyborg3D standalone:
- Increase in productivity implementing new functionality and maintaining the software
- Higher degree of reliability (less bugs) in the resulting software
- Ease of implementing parallel processing in the Solids# kernel
- Cloud application and multi-platform support using .Net Core
- Competitive performance characteristics compared to the equivalent C++ algorithms
Non-Manifold Topology
The diagram below depicts the non-manifold topological (NMT) boundary representation. The NMT data structure allows the representation of objects impossible to represent using traditional manifold topological structures.
High Level Feature List
The feature list includes the important high level tools and is not an exhaustive list. For a comprehensive list of all of the classes and associated methods see our Solids Sharp documentation license form which is online. Click for Documentation Evaluate License
Boolean |
The Solids Sharp Boolean is able to handle Union, Intersection and Difference of traditional manifold solid objects, plus the various combinations of curve, solid, surface and non-manifold objects. They handle the very difficult coincident and tangency cases extremely well. They support results which are inherently non-manifold. We think that they are the most reliable, precise, NURBS based Booleans anywhere. There is also a tool for 2-D Booleans. |
Merge |
The Merge tool is like a general case of the Boolean which simply combines two objects into a single topological network. In fact, the Boolean is implemented by "Merge" plus selection and deletion of the unneeded topological elements. The Merge tool can be used in many other ways. For example, we utilize it in our Shelling and Filleting to resolve self-intersection cases. |
Filleting |
Solids Sharp has both Surface Filleting and Topological Filleting. The surface filleting takes two surfaces and produces one or more fillets between them. There are many options to control the type of surface created and how it is trimmed. The Topological Filleting tool rounds edges of Brep object which may be either a closed solid, open shell or non-manifold object. Highlights include: variable radius filleting, G2 & G3 blending surfaces, large radius cases. See the Filleting White Paper |
Shelling & Offsetting |
Solids Sharp can shell (hollow out) or offset objects using both an extended surface or rounding algorithm. The extended surface algorithm extends and re-intersects surfaces at convex edges. For example, the extended offset of a box is a bigger box. The rounding algorithm produces a precise offset volume. For example, the rounded offset of a box is a filleted box. The shelling algorithm also supports extended shelling of open objects and can be used to produce an offset solid from an open shell. |
Tessellation Engine |
The Tessellation Engine takes a NURBS based boundary representation (Brep) and creates a polygonal approximation. All of the tolerances used to create the approximation can be set by the user to achieve a very large variety of meshes suitable to the given application. It is able to produce "water tight" meshes without cracks or gaps when the original object is a solid. Go to the POPLib page for more detailed information. |
Local Operations |
Solids Sharp has a Local Operation Tool to replace the surface of one or more face and re-compute the surrounding edges by extension and intersection. For example, it is possible to replace a planar face of a box with a free form surface. |
Advanced |
The Advanced Surfacing Tools give the user a set of tools to create higher order surfaces, with higher continuity connections between adjacent surfaces. It is possible to produce G2 and G3 blending curves and surfaces with these tools. Higher continuity surface creation tools are essential for many Industrial Design applications where visual quality is very important. See the Blending White Paper; the Sweeping White Paper, and the Derivative Surface White Paper. |
Precise Hidden |
The Solids Sharp hidden curve removal tool can determine the visibility of the edges of a Brep object from a given view point. It works directly on the precise 3-D geometry, not a display approximation. The results are therefore suitable for drawing productions applications. |
NURBS Ray-Firing |
Solids Sharp has a highly optimized NURBS Ray-Firing utility that is able to fire tens of thousands of rays per second at NURBS surfaces and Brep objects. We have many existing customers using our tools to do optical analysis because no other kernel matches our ray-firing performance. |
NC Machining Tools |
We have recently started development of a set of tools to leverage our geometry tools in the NC Machining arena. Our existing tools include cross-cut finish machining, a cutter surface, 2-D offsetting. |
Sweeping and |
Solids Sharp supports a large variety of sweeping and primitive creation tools. Included are: Box, Cylinder, Cone, Torus, Revolution, Extrusion, Sweep along Curve, Loft, Swung and Planar. |
Topology Solver |
The Topology Solver supports a variety of solver operations between two Brep objects, or between a Brep and a surface, curve or point. Supported solver operations include: minimize, normalize, maximize, directed minimize, directed maximize, projected minimize, projected maximize, signed directed minimize, and 3D signed directed minimize. |
Sewing |
Solids Sharp has a powerful sewing tool that can be used to combine trimmed surfaces into solids or open shells. The tool can sew an entire Brep object, or just a selected set of edges. The sew tool does a lot of work to determine the optimal edge to utilize when combining two edges. The Sew is able to sew even very difficult models with relative large gaps between adjacent edges. |
Intersection |
There is a comprehensive set of tools for intersecting geometry. You can intersect the various combinations of Brep objects, surfaces, curves, and points. |
Trimming Tools |
The Trimming Tools allow users to create Brep faces from a large variety of input. It handles periodic surfaces, 3-D trimming curves, 2-D trimming curves, surfaces with C0 continuity, and many other difficult trimming problems often associated with importing data from different systems. |
Polygonal |
Solids Sharp includes a fully functional polygonal modeling kernel that utilizes the Face-Edge data structure. Operations include: Booleans, Decimation, Mesh Cleanup, Quad-Meshing, Ray-Firing, topological queries, and much more. |
Mesh Tools |
Solids Sharp includes a highly optimized structure for handling large meshes such as those produced by scanning. The mesh structure is an indexed based structure similar in nature to the Wavefront OBJ file format. It includes an integrated bounding volume hierarchy to enable very fast closest point measurement and ray tracing once the BVH is created. There are also tools for converting back and forth between this structure and the polygonal mesh structure. |
Subdivision Surfaces |
Solids Sharp includes support for Catmul-Clark subdivision surfaces. The software is set up to enable easy implementation of other subdivision algorithms. There are conversion tools to convert to and from a polygonal mesh. |
Database IO |
It is possible to serialize the Solids Sharp Brep and Polygon objects by supplying the low level read/write methods associated with your native database. It is also possible to read/write the Brep and Polygon objects to/from files and i/o streams. |