Licensees of Parasolid are provided with a wide range of resources and tools to help with getting started and explain how to use the toolkit in the best way. These resources include testing tools, source code examples plus full and comprehensive documentation.
What is presented here is a very high level overview of some of the key features of Parasolid. Detailed functionality is not covered and some features are covered only briefly and some are omitted altogether.
What is Parasolid?
What is Parasolid?
Parasolid offers high performance modeling in a broad range of areas, giving you the ability to create new models or edit existing models using an unparalleled range of tools and performance. The major areas of functionality supported include:
- Complex blending: Parasolid provides a wide range of blending on complex geometry with unmatched reliability. Capabilities include rolling-ball, variable-radius, face-face, cliff-edge, overlapping, curvature-continuous, disc, conic-section and conic hold line.
- Hollowing, shelling, offsetting and thickening of surfaces: These invaluable techniques create thin-walled parts. They are conceptually simple to the CAD user but the topological and geometric changes required are a rigorous test of a modeler’s reliability.
- Tapering and parting line calculations: These operations primarily serve mold and die designers. Parasolid can apply a taper that follows complex parting lines. These capabilities and non-uniform scaling make Parasolid a powerful mold-design tool.
- Local operations: Many Parasolid operations may be applied to specific areas of a body, such as faces or groups of faces. Parasolid ensures the integrity of models to which these operations are applied remains intact, by making appropriate changes to surrounding topology and geometry. Supported local operations include replacing and transforming specific topologies, hollowing and offsetting, and model simplification via the identification and removal of features such as holes and blends.
- Complex modeling using B-surfaces: Parasolid contains fully integrated B-curves and B-surfaces using industry standard NURBS. The kernel also simplifies geometry to analytic surfaces (planes, cylinders, cones, spheres and tori) whenever possible to optimize reliability and performance. If more free-form construction techniques are required, NURBS of any shape can be arbitrarily trimmed to meet a designer’s concept. Such surfaces can be sewn to construct a solid or a sheet model as required.
- Rendering support for large models: In today’s digital design environment, parts are no longer designed in isolation, and models with tens of thousands of parts are becoming more common-place. Parasolid supports rendering such large models, including the ability to preserve memory usage by only rendering areas of interest, or by ignoring small features that may not be relevant in a particular context.
- Application support: The functionality offered by Parasolid encompasses far more than just modeling operations. A major area of functionality is dedicated support for application-specific functionality, such as the ability to store attribute information on modeling entities, comprehensive roll-back and partitioning capabilities, debugging facilities for the developer, and enhanced performance for multi-processor machines.
Parasolid also offers the developer unprecedented accuracy. Parasolid’s default resolution is 10e-8 in a world size of 10e3. This gives an accuracy ratio of 10e11, which is an order of magnitude more accurate than that of any other kernel modeler.
The Parasolid API is C-callable, so that it can be integrated into any C or C++ application code. A binding for C# is also available, allowing you to call the Parasolid API from C# code.
Parasolid comes complete with a wide range of information sources and tools to help get you started, explain how to use the product in the best way, and support your continued use of it. This information includes:
- Tools for testing your code
- Source code examples
- Full, comprehensive documentation
With this information at your fingertips, learning how to integrate Parasolid into your application and use the Parasolid API is a straightforward process. As you become an experienced user, the hyperlinked online documentation will remain an essential tool for your everyday use of Parasolid.
This section tells you some more about the tools that are available.
All developers need tools at hand with which to prototype the code they write. Whether you are still in the process of integrating Parasolid with your application, or whether you need to test Parasolid calls in an isolated environment, you will want to test your Parasolid code independently of your application code. A number of tools are provided with the Parasolid library to help you prototype your own code:
- The Example Application demonstrates the simplest Parasolid-powered application that is possible within a Windows framework. Full source code is provided.
- The Kernel Interface Driver is a platform-independent interface to the Parasolid API.
- Parasolid Workshop is a Windows-based tool that lets you view and manipulate Parasolid models in an interactive environment.
Parasolid Example Applications
The Parasolid Example Applications demonstrate the simplest Parasolid-powered applications that are possible within a Windows framework. There are two example applications:
- One written in C/C++ and built using the Microsoft Visual C/C++ development environment within an MFC framework. It uses OpenGL for display.
- One written in C# and built using Microsoft Visual Studio 2005. It uses DirectX for display.
The applications provide a framework within which you can prototype and demonstrate any aspect of Parasolid functionality quickly and simply.
Within the framework of the applications, you can add and execute calls to Parasolid functionality and display the results on screen.
The Parasolid Example Application.
Getting Started with Parasolid
Parasolid is delivered with a comprehensive set of documentation and developer resources, including a complete Jumpstart toolkit that promote easy integration of Parasolid into new and existing applications:
- Full Product Documentation Suite in html and PDF formats
- Parasolid Workshop prototyping environment for Windows
- Example Application Resources to get you up and running
- Code Example Suite illustrates best implementation practice
- Parasolid “Getting Started” Guide answers your questions
- Parasolid Overview summarizes Parasolid capabilities
- Parasolid API Training Materials to educate the team
Introduction to Model Structure
Introduction to Model Structure
This section describes the major modeling entities that Parasolid uses to create its model structure, and how they are combined so as to construct a Parasolid model. The entities available fall into three broad categories: topological, geometric and associated data. Their general relationships are shown in the following diagram.
Relationships between Parasolid entities.
It is essential for both Parasolid and for your application to be able to identify different entities in a model. Parasolid provides two methods for doing this:
- Tags are used to identify particular entities within a Parasolid session. Every entity in a model has an associated tag that is created when the entity is created or enquired about. Each tag is unique within a session. Tags are held in integer variables which Parasolid functions use as pointers to entities.
- Identifiers (IDs) can be used to identify particular entities between Parasolid sessions. Parasolid automatically attaches unique IDs to entities in a model because Parasolid does not preserve tags between different sessions: when the same part is loaded into two different sessions, its entities may have different tags.
A ssemblies and Instances
Assemblies and Instances
You can create more complex models in Parasolid by combining any number of bodies into larger assemblies that contain information about how the bodies contained in the assembly are structured. The diagram below shows a trivial example in which a toy car assembly is created by combining a body part with a wheel assembly, which is itself created from a wheel part and an axle part.
Combining different bodies into more complex assemblies.
Each component in an assembly is an instance of a part:
- The car assembly contains an instance of the body part, and two instances of the wheel assembly
- The wheel assembly contains an instance of the axle part, and two instances of the wheel part.
An assembly is therefore just a collection of instances, where each instance is a pointer to a part used in the assembly that references:
- The part itself (either a body or another assembly).
- A transform that positions the part in the coordinate frame of the assembly.
To support reuse of modeling data, assemblies can contain any number of instances of the same part. You can also attach construction geometry to an assembly.
Accuracy of Parasolid models
Accuracy of Parasolid Models
A Parasolid model is very precise. All calculations are performed to fixed accuracies called the session precision and session angle precision.
|Session precision||The linear precision of the modeler. Parasolid session precision is 1.0e-8 units. Distances less than this value are treated as zero and distances that differ by no more than this value are treated as equal.|
|Session angle precision||The smallest angle (in radians) that is treated as different from zero. Parasolid session angle precision is 1.0e-11 units. Angles less than this value are treated as zero and angles that differ by no more than this value are treated as equal.|
To handle precision correctly, all parts of a body must lie inside the Parasolid size box. This is a box, 1000 units on each side and centered at the origin, that represents the whole of model space. Typically, the default unit in your application is set to one meter, giving 1 kilometer as the maximum size, in any one direction, that can be modeled.
Parts created by other modelers can be imported into Parasolid and used in modeling operations. However, such parts will almost certainly have been created in a modeler that uses a lower precision. Once imported, they may contain inconsistencies between their topological and geometric data: edges which, topologically, should meet at a common point have attached geometric data that does not intersect.
To enable Parasolid to model successfully with imported parts, you can set a local precision on the edges and vertices of any externally created part. The use of such local precisions is known as Tolerant Modeling.
When using Tolerant Modeling, think of edges as tubes and vertices as spheres. If you lower the precision, the tubes become thicker and the spheres become larger. To use Tolerant Modeling effectively, you need to examine the topology for each part and, where there is inconsistency in the data, lower the local precision until the geometric data intersects.
Edges and vertices which don’t have a local precision set are considered exact by Parasolid, and have a precision of one half of the session precision.
Introduction to Booleans
Introduction to Booleans
Parasolid offers unparalleled boolean capabilities, allowing you to take sets of modeling entities and compare or combine them in a wide variety of ways. This section describes Parasolid’s powerful boolean functionality, together with related functionality that either uses Parasolid’s boolean capabilities or is similar to it.
Boolean operations are a fundamental type of operation in Parasolid. Not only is boolean functionality available to you, the programmer, but it is used extensively by Parasolid itself. This section describes the boolean functionality that Parasolid supports.
Overview of Booleans
Boolean operations involve the combination of two or more bodies so as to create a new result.
In Parasolid, boolean operations work on target bodies and tool bodies. A target is the body that you start with, the body that is modified by the operation, and the body that is returned by the operation; it is the body that persists throughout the whole of the boolean operation. The tool (or tools, since there can be several of them for some types of boolean) are the bodies that do the modifying. They are transient bodies that are destroyed at the end of the boolean operation.
Boolean operations in Parasolid are analogous to mathematical set operations. There are three basic boolean operations, as follows:
- A target and tool can be united, so that the result incorporates all the entities of the tool.
- A tool can be subtracted from a target, so that the result consists of just that material that didn’t also form part of the tool
- A target and tool can be intersected, such that the only remaining material in the result is that material which was present in both the target and the tool prior to the operation.
Boolean operations can be performed on solid, sheet, and wire bodies (with the exception that wire bodies cannot be intersected).
These operations are illustrated below.
Basic boolean operations.
There is always a single target in any boolean operation. As already mentioned, there can be many tools, in which case Parasolid unites them before the boolean operation proceeds, treating them as a single body from that point on.
Parasolid offers two broad categories of boolean operation: global booleans and local booleans. These are discussed in the following sections.
Global booleans perform boolean operations on whole bodies, taking a single target body, and multiple tool bodies, and applying the specified boolean operation to the target. Because the operation is performed at the body level (by comparing all pairs of faces in the target and tool), the resulting body is guaranteed to be topologically consistent. Global booleans, because of the nature of the face pair comparison, can be computationally very expensive.
Local booleans (sometimes known as partial booleans), tend to be very quick to perform compared to global booleans. Rather than working at the body level, local booleans use a set of faces from a target body, and a set of faces from a single tool body. You specify these faces yourself, and only the faces you specify are used in the boolean operation. Restricting the scope of the boolean operation in this way can drastically improve performance.
Instancing and Patterning
Instancing is a process that combines a single target and tool with a local boolean operation and an array of transforms so as to repeat the boolean across target faces, thereby creating a set of instances of the specified tool, arranged according to the transforms you supply. It is a one-stop procedure for creating complex patterns, such as a series of holes in a plate, and offers significantly improved performance compared with creating the same effect using standard boolean operations alone.
Instancing tools across a set of faces.
You can use the same options when creating instances of a tool as you can when performing local booleans.
Parasolid also supports patterning functionality, which lets you create copies of a set of faces according to an array of specified transforms. Although patterning may initially appear very similar to instancing, it does not use any of Parasolid’s boolean functionality. It therefore provides you with a useful alternative to instancing for cases where instancing may be difficult or impossible.
When creating patterns, you specify a set of faces on the target body, rather than a separate target and tool, together with an array of transforms that describes how the patterns are to be positioned. Figure 4-8 shows a simple example, in which both the pocket and the boss on the body are to be patterned. A single transform is also given, resulting in the body shown. This particular example could not be performed using a single instancing operation, because it would require a boolean operation that could unite and subtract simultaneously.
Patterning example of one transform of both a pocket and a boss.
Patterning supports options to constrain patterned faces so that they do not overlap face edges, or do not intersect. In addition, you can create patterns that are repeated across different faces in the body. Parasolid also supports general patterning functionality, in which geometry for a set of patterned faces can be extended automatically in order to ensure the patterning is successful.
Patterning within a face or to another face via rigid translation.
It is also possible to create patterns in different faces where the base of the original feature is not rigidly translated to the face containing the new instance; in some cases, it may straddle two or more faces.
Patterning to another face without rigid translation or to two faces.
Parasolid allows you to recreate blends around patterned instances: if a pattern face is a blend within a boundary loop, you can recreate that blend during the pattern operation in order to maintain the blend characteristic of that face.
Recreating blends on patterned faces.
Sectioning and Clash Detection
Sectioning is the process of dividing a body into sections using faces, surfaces or sheets, and optionally throwing away unwanted sections. As well as providing some sectioning behavior using the standard boolean functionality, Parasolid offers dedicated sectioning tools that work in a similar fashion to the standard boolean subtract operations (and, in particular, the fencing behavior). Two broad categories of sectioning are supported by Parasolid: destructive sectioning and non-destructive sectioning.
Destructive sectioning divides a single target body using a single tool body. As with booleans, the target body is modified and returned, and the tool is discarded. There are two types of destructive sectioning: global sectioning and local sectioning, and these are analogous to their boolean equivalents.
In a global sectioning operation, a body is divided into sections using a tool body that is either a surface or a sheet. Like global booleans, the resulting sectioned body is guaranteed to be topologically consistent, but because of the global nature of the operation, performance might be an issue in some circumstances.
In a local sectioning operation, selected faces of a target are divided using selected faces from a sheet tool. Like local booleans, the restricted focus of a local sectioning operation provides excellent performance, but can result in topological inconsistencies: locally sectioned bodies may need to be checked before continuing with modeling.
Both global and local sectioning functions support a similar range of options to global and local booleans.
In non-destructive sectioning, nothing is deleted after the operation and, instead of modifying the target, the specified tools are altered. In addition, non-destructive sectioning does not limit you to a single target and tool: you can section any number of bodies using any number of tools. Parasolid supports non-destructive sectioning using both surfaces and sheet bodies as targets.
Non-destructive sectioning supports a different range of options to destructive sectioning, allowing you control over details such as the type of body returned by the operation.
You can analyze any combination of solid, sheet and wire bodies to find out whether or not they clash; if they do, you can discover the nature of the clashes. Parasolid is able to distinguish between the following types of clash:
- Interference: bounding topologies of the entities cross with each other
- Abutment: bounding topologies of the entities touch each other
- Containment: one entity is entirely within the other, and their bounding topologies do not touch
The precise nature of these types of clash depends on the types of body that you are analyzing. The example below illustrates the ways in which sheet bodies can clash.
Detecting clashes in sheet bodies.
Introduction to Local Operations
Introduction to Local Operations
Local operations are modeling operations that are restricted to a specific area of a body. They are usually performed on a face or set of faces within a model.
You can use local operations in your application to make fast changes to local regions of large and complex models. Local operations are essential if you are developing constraints-managed or parametrically-driven applications.
Parasolid provides local operations functionality for:
- Offsetting operations
- Tapering faces
- Editing faces and healing wounds
- Editing the geometry of faces
- Spinning and sweeping entities
- Generic face change operations
Offsetting, hollowing and thickening are related modeling operations that are commonly used in MCAD systems to model, for example, objects for injection molding or casting, or to model the outer skins of aerodynamic parts. Parasolid provides powerful offsetting functionality which itself forms the “parent” technology for its hollowing and thickening functionality. You can use offset operations directly, as well as capitalize on them via hollowing or thickening (which are themselves not considered local operations).
Offsetting is the process of moving specified faces in a solid or sheet body outwards or inwards.
In the diagram below, two faces whose underlying geometry is free-form are offset. Parasolid has extended the underlying surface(s) so that the new offset surfaces meet correctly.
Offset surface extended.
Hollowing uses offsetting technology to create a void region in a solid body. In order to hollow a body, each face in the body is offset by a specified amount. Different faces may be offset by different amounts, and the hollow body can be opened up by specifying some faces as pierce faces.
Hollowing a body with two pierce faces.
Thickening is the process of taking a sheet body and thickening it into a solid body by offsetting it by a fixed amount. Although not strictly a local operation (because it works on a whole body, rather than specific faces in the body), Parasolid’s thickening functionality also uses the offsetting technology used by hollowing. Like offsetting and hollowing, a thickened body may undergo a variety of topological changes, and Parasolid can remove self-intersections in either the side face that is created as the result of a thicken, or in the resulting offset face itself, automatically.
Thickening sheet bodies.
During thickening operations you can:
- Specify a “punch” direction in which a sheet body is thickened.
- Specify a surface to attach to side faces.
- Round off edges that are offset by the thicken operation.
- Specify pierce faces to open up the thickened body, in a similar way to hollowing.
- Specify that Parasolid should generate step offset faces in cases where different faces are thickened by different amounts, in a similar way to offsetting.
Parasolid provides sophisticated support for adding taper (sometimes known as draft) to models. You can add taper to either specific faces in a body, as described in this section, or to an entire body.
During the tapering process, specified faces in a body are modified so that they form a minimum angle with a given direction. This is commonly required when designing molds: faces that are parallel to the direction in which a part is drawn out of a mold need to be tapered inwards slightly with respect to the direction they are drawn so as to facilitate easy removal from the mold, as shown below.
Tapering vertical faces to improve molded parts.
Tapering is also very useful for improving the aesthetic appearance of a part. Parasolid’s tapering functionality lets you offer your users an unprecedented level of control, letting them design a part and then add taper to discrete areas afterwards, rather than requiring the designer to build tapered faces into the part from early on in the design process. You can apply different angles of taper to different faces in the body in a single operation.
As well as providing the functionality to create tapered faces, Parasolid provides tools to help you decide where taper need be applied on a body. This is particularly useful in mold design, where a small taper may need to be added to a body at all places where the face is steeper than the required taper angle, with respect to the
Editing the Geometry of Faces
As well as changing or creating faces in a body, Parasolid provides tools for creating and editing the geometry related to specific faces in a body: primarily the surfaces that are attached to the faces themselves.
If you have a model that contains rubber surfaces (that is, a face that has no geometry attached), you can create and attach a surface that fits it. Rubber surfaces can occur when scribing lines on a minimum body, for example, and this functionality provides a simple way to remove them.
You can also replace the surfaces attached to selected faces in a body, as shown below.
In troduction to Working with Sheets and Wires
Introduction to Working with Sheets and Wires
Many Parasolid operations work equally well with sheet, wire and solid bodies. This section describes Parasolid functionality that is specifically aimed at modeling with wire bodies and sheet bodies, or whose behavior with wire and sheet bodies is significantly different to its behavior with solid bodies. Although Parasolid’s primary focus is creating solid models, there are many occasions when you need to work with sheets or wires. For example:
- You may need to import data from another modeler that is expressed in terms of surface data, rather than solid. This data needs to be imported, cleaned up and then represented in such a way that the user can continue to model with it in Parasolid.
- You often need to create wire or sheet profiles that are going to be used as the basis of further modeling operations.
- You may want to provide your users with a workflow that lets them work with sheet data, converting it to solid data only at specific points in the modeling process.
The functionality described in this section makes all of these techniques possible.
Despite the superiority of solid modeling applications such as those based on Parasolid, there are still CAD applications that rely on surface modeling techniques, particularly for parts containing free-form geometry. Models created in these applications often need to be imported into Parasolid-based applications and the sheet bodies resulting from such imports need to be cleaned up and reworked so that modeling on the body can continue.
Parasolid provides you with a wide variety of operations specifically aimed at sheet modeling, making it easy to create, modify, blend and “solidify” sheets. These complement the core solid modeling capabilities offered, enabling your application to tightly integrate the two so as to provide advanced modeling systems that combine the strengths of both paradigms. This section describes this functionality.
Creating and Modifying Sheets
Parasolid provides operations to let you create sheet bodies from scratch from a collection of faces. You can also create primitive sheet bodies such as circles, polygons and rectangles directly, by calling efficient dedicated functionality.
You can modify existing sheets by trimming them (making them smaller) and extending them (making them larger).
You can create a set of neutral (mid-surface) sheets from a solid body, as shown below.
Creating neutral sheets from a solid body.
As with sheet bodies, Parasolid provides specific functionality for modeling with wire bodies. This includes:
- Creating wire bodies from sets of curves or edges
- Creating faces to fit wire bodies
- Blending vertices on wire bodies
- Splitting wire bodies
- Offsetting planar wire bodies
Various offsets of a star-shaped wire body.
Replacing surfaces attached to faces.
When replacing surfaces, Parasolid lets you:
- Choose whether adjacent faces are merged together where possible.
- Choose which curves in the body are recalculated by Parasolid as a result of the operation.
- Supply replacement curves in cases where the existing geometry is not considered accurate.
These options are particularly useful when cleaning up parts that have been imported into Parasolid, for example as a second stage after fixing up some of the geometry of the part.
Spinning and Sweeping Entities
You can spin many types of entity around an axis or sweep them in a specified direction, in order to create a new entity. For example, you can create a cylinder by sweeping a circular sheet along a path. Using spin and sweep (together with other operations) on profile bodies is a technique commonly used to create bodies from scratch.
Introduction to B-S pline Curves and Surface
Introduction to B-Spline Curves and Surfaces
Wherever possible, Parasolid uses analytic geometry in its models. For example, curves such as circles, ellipses and lines, and surfaces such as spheres, tori and cones are represented using geometry that can be described by an equation. Using analytic geometry as much as possible gives Parasolid unparalleled speed and economy of storage.
There are times, however, when geometry cannot be represented by analytic entities. If possible, other types of geometry are used (such as swept or spun surfaces), but when even this is not possible, NURBs-based ( Non- Uniform Rational B– splines) B-geometry is used instead. Parasolid offers two forms of B-geometry: B-curves and B-surfaces. Unlike analytic geometry, B-geometry is defined over a finite region of space.
B-curves and B-surfaces are fully integrated into Parasolid, so you can attach them to edges and faces, and apply any relevant Parasolid operation to them, just as you would any other type of curve or surface. This integration is so tight that in most circumstances there is no reason why users even need be aware they are using B-geometry. However, in addition, Parasolid provides functionality to let you work explicitly with B-geometry. This section describes the functionality that is available.
Examples of B-surfaces.
Introduction to Building Bodies from Profiles
Introduction to Building Bodies from Profiles
Parasolid provides many elementary functions for creating bodies. Some tools can create primitive bodies from scratch. You can use other tools to create more sophisticated bodies using only a minimum of starting information.
This section describes the functionality available for creating bodies based on wire or sheet profiles, such as those that can be created using the techniques described in Introduction to Working with Sheets and Wires. It also contains information on creating swept bodies from solid profiles.
Bodies created from profiles may be either sheets or solids, depending on the nature of the operation and the profiles used. Generally, a sheet profile creates a solid body and a wire profile creates a sheet body.
Parasolid can extrude a profile in a linear direction to create a new body. You can define how far the profile is extruded by specifying exactly where the extrusion should start and end. This can be either:
- A specified distance from the profile
- A surface or face that intersects the extrusion, trimming it appropriately
- A solid or sheet body that intersects the extrusion, trimming it appropriately
Extruding a profile to create a new body.
You can create a body by spinning a profile about an axis, as shown below. Spinning functionality lets you:
- Form a wire body from a minimum body
- Form a sheet body from a wire profile
- Form a solid body from a sheet profile
You can also spin profiles on an existing body to create new features.
Using spin to create new bodies and features.
Parasolid’s extrusion and spinning functionality is complemented by sweeping, in which one or more profiles are swept along a path using possibly one or more guide wires to produce a new body. The path and guides are specified as wire bodies; unlike extrusion, the path does not need to be linear. The figures below show how bodies can be created by sweeping.
Sweeping profiles along a path to produce a body.
Parasolid supports the process of lofting, in which you create a sheet or solid body by fitting surfaces through a series of profiles. Unlike extrusion and sweeping, lofting involves the use of any number of profiles.
Creating a lofted body using several different profiles.
Parasolid provides functionality for adding protruding (pad) or indented (pocket) emboss features to a target body. These operations can be applied globally, or locally to a selection of faces, and the features created can either be attached to the target body or returned as a separate body. The shape of emboss features is described using supplied profiles.
Creating pad and pocket emboss features on a target body.
A fundamental part of Parasolid’s emboss functionality is creating sidewalls, as shown above, which is done automatically for emboss features. Parasolid can construct a sidewall using one of following methods:
- Tapered sidewalls can be created based on a specified draw direction and taper angle.
- Ruled sidewalls can be created using the normals of faces in the supplied profile.
- Swept sidewalls can be created based on a specified sweep direction.
Introduction to Blending
Writing Parasolid Applications
Parasolid is supplied as a single library of C-callable functions, together with associated header files, and in order to perform solid modeling operations, you call these functions from within your application code. Before this can be done, Parasolid needs to be integrated with whatever development environment you are using. This is simply a case of specifying the location of the required library, headers and so on. In addition, your application needs to include code that ensures that it can interact with Parasolid correctly.
This section gives you an overview of how you approach the development of a Parasolid application, and discusses:
- What code you need to supply before you can make calls to Parasolid operations.
- The overall structure of the Parasolid API, and how it can help you to make the development process easier.
- What design decisions you need to take before you progress too far with your application development.
You can deliver Parasolid to your customers with your application just by including a few files (including the library file itself) with the other components of your product. Any commonly available installer package will ensure that it gets installed on the customer’s computer in the correct location for the operating system they are running.
Calling Parasolid Functions
Calling Parasolid functionality from your application code is a simple process. Parasolid has a long history of strong design principles and offers its functionality through a consistent interface that is accompanied by complete and thorough reference documentation. This consistency gives you the freedom to structure your own application code in the way that suits you best, without having to make compromises because of any requirements imposed due to integration with Parasolid. This section introduces you to the structure of the Parasolid API.
Each function has a fixed set of arguments: some of these are used to supply data, and others are used to return information. Arguments are expressed as simple values, arrays, and structures of the types. The overall relationship between these different elements is illustrated below.
Structure of a typical function group.
For many functions, helper functions are provided that free the memory used for return arguments when it is no longer required.
Calling Parasolid from .NET Applications
A Microsoft .NET binding DLL for Parasolid is available. This allows Parasolid-based applications to be written in the C# programming language.
Like any complex application, when you start building a Parasolid-based application you need to plan what functionality you want to provide to your users.
Many of these considerations affect the whole of your application, rather than just parts of it, and so you need to make decisions about them early on in the development process. This is equally true whether you are developing an application from scratch (in which case you need to decide the strategy you want to follow), or whether you are integrating Parasolid into an existing application (in which case you need to decide how Parasolid can best support your existing strategy, or consider improvements in your current design that Parasolid makes possible).
Wri ting Parasolid Applications
Introduction to Blending
In Parasolid, blending is used as a broad term that encompasses the following operations:
- Smoothing off sharp edges in a body – often known as filleting and chamfering.
– Filleting: replace edges with new blend faces that meet the adjoining faces of the original edges smoothly. You can fillet a sharp edge on a piece of wood by smoothing it off using sandpaper.
– Chamfering: replace edges with new blend faces that have a linear cross-section, but do not meet the adjoining faces of the original edges smoothly. You can chamfer a sharp edge on a piece of wood by flattening it off using a plane.
- Constructing blend faces between non-adjacent faces, either from a single body or from different bodies.
Here, new surfaces are created between faces that are not necessarily connected, possibly joining bodies together in the process.
Blending in Parasolid.