A significant challenge of our work is to solve complex problems for the many changes happening in our industry today. Spatial customers across a broad range of industries have relied upon our 3D software development toolkits over the course of years, and have collaborated with us to develop solutions that solve problems in their application domain. A result of this collaborative effort is our latest 2016 1.0 release, which offers significant new products, functional enhancements, and version updates for our valued customers.

Within the manufacturing domain, our products for modeling and interoperability have traditionally been used for subtractive manufacturing. With the 2016 1.0 release, CGM Polyhedra™ will allow our manufacturing customers build hybrid applications by combining both additive manufacturing and subtractive manufacturing.

CGM Core Modeler

CGM Polyhedra enhances the power of core ACIS modeling kernel by allowing the 3D ACIS Modeler to extend beyond exact geometry to include both exact and non-exact geometrical representations. Applications using the 3D ACIS Modeler for all their precise modeling requirements can also use the same 3D ACIS Modeler API infrastructure for their non-exact geometry workflows.

Imagine importing a standard CAD file with 3D InterOp, along with an STL file and performing ACIS operations such as Boolean, offsetting, slicing, and decimation on this combination – this is what the Hybrid modeling environment in 2016 1.0 will allow your application to do. CGM Polyhdera allows applications to avoid the complexities of managing exact / non-exact data structures separately by leveraging the power of the 3D ACIS Modeler to maintain both representations within the same environment.

A major portion of our modeling efforts over the past couple of releases have been to build technologies that improve the process automation for our customers’ building manufacturing and measurement applications. To that effect, 2016 1.0 lets applications leverage our improvements in feature recognition with not only detection of topology as feature owners, but also the navigation parameters which define these features. Our customers in the domain of model-based engineering will be able to leverage improvement s in both graphical and semantic PMI, allowing them to import exact visual fidelity for drawing annotations similar to the authoring CAD system, along with full associativity with owning geometry.

Programming interfaces for software components that are embedded in other applications need to be intuitive for reducing the time required for integrating these components. In 2016 1.0, new customers building applications with our software development toolkits will see enhanced support for debugging mechanism and quick prototyping of functional ideas, along with improvements to the documentation of our technical articles. 

3D InterOpA primary driver of the 3D InterOp roadmap is to enable CAD data re-use for dowstream engineering workflows. Our customers in the domain of design, analysis, manufacturing, and measurement rely on 3D InterOp for the quality of incoming geometry and to ensure sucessful geometrical operations on imported data. 2016 1.0 continues the same trend for 3D InterOp, along with significant functional enhancements directed at domain specific workflows. Analysis applications using 3D InterOp can now rely upon the FACE permanent identifiers retured by InterOp for verifying the design changes as part of their simulation driven design process. Along with support for the latest CAD file format versions, 2016 1.0 will also allow CAM applications to import exact manufacturing hole features and threading data for optimizing  manufacturing plans.

Our goal with 2016 1.0 was to incorporate functional feedback from our customers and colloaborate with them in solving specific application requirements. There is a quite an amount of functionality delivered by the product development team over the course of this release development cycle. So, for all Spatial customers, we cannot wait for you to integrate 2016 1.0 and benefit from all these product enhancements, as well as our new product introduction.


2016 1.0 Products


Today's Manufacturing Workflow -- The Need for Speed

by Guest blogger Chris Skubic, Machine Research

Manufacturing is a prominent part of the global economy and is coming back to the US after decades of offshoring (see the Maker Movement) – with a noticeable focus on speed, speed, and more speed.  3D print shops are popping up all over the place and manufacturers are being asked for quick-turnaround quoting and prototyping. Companies like Proto Labs that focus on speed are seeing revenues and market value soar (Proto Labs’ most recent 10k), etc.  There are many data points when addressing the need for speed in manufacturing these days. The faster you manufacture, the more profit you reap – and the more efficiently you need to operate. 

Adapt, speed up, or get passed by those that do.  It doesn’t matter if the project is a complex 5+-axis aerospace part, or how much post-processing needs to be done (for you 3D print shops) – these parts are expected to be turned quickly and most customers pay a premium for speed.  

How do you speed up the Manufacturing Workflow?

3D Manufacturing Workflow

Simply removing inefficiencies isn’t as easy as it sounds – some of the issues are culture-based, but there are many that are software-related and they should be fixable. 

For example, going from RFQ to a quotation is cumbersome:

  • You need an expensive seat of CAD software despite the fact that you’re not a designer and don’t use 85-90% of the functionality.  Why?  Well, you have to view the model.  You’ll also likely have to translate that file type to jive with your CAM system.  And…maybe the model itself needs healing/repair.
  • You’ll also want to know if you’ve made a similar part in the past.  How?  Maybe thumbing through spare part bins.  If you’re ambitious, you’re looking through your Windows- based file system trying to remember a part you made 18(?) months ago for (what customer was that?)…  This kind of knowledge reuse could be a HUGE advantage in the “speed game” – it could help speed quoting, programming, manufacturing runtime, anticipate fixturing issues, and (for you 3D printer shops) part orientation and post-processing of supports.  That’s a long list of benefits…but this is so difficult to do with your current software tools that it is almost never doneSo, you re-create the wheel whenever you manufacture something new…
  • A PLM or PDM system could definitely help.  However, they can be expensive, entail dreaded “business process mapping and software deployment” time, and still not solve your workflow issues.  

Again…How do you speed up the Manufacturing Workflow?

Machine Research







Machine Research was founded with a specific mission in mind – speed up the manufacturing workflow.  We create software tools designed for manufacturers, not repackaged product design tools.  Our tools enable manufacturers to mine and reuse knowledge of the past to quote and manufacture smarter, more efficiently, and more profitably going forward.  We do this through a secure, cloud-based software service and offer monthly subscriptions for a fraction of what you could pay for other software/translator packages.  And…yes…we’re ITAR-registered.  Our initial service offerings focus on the front end of the manufacturing workflow – RFQ through quotation.  We will expand our workflow tools downstream, but we had to start somewhere…the front made sense to us.

In conjunction with our friends at Spatial Corp, we developed our BASIC service offering that gives customers the ability to view, measure, collaborate, and translate from any 3D CAD file-type to any other without purchasing a CAD seat.  We also created mobile apps – on both iOS/Apple and Android platforms – open, view, and measure any CAD file from mobile device.

Machine Research Project Screen Shot

The high-speed and reliability of the Spatial's 3D Interop™ Data Translation tool kit provide us with superior capabilities to read, translate and write a wide array of CAD formats – all completely integrated in our solutions.

Our PRO service provides customers the additional ability to manage projects, utilize our visual search engine to find legacy projects of similar geometry (and compare them), and standardize the quotation process across their organization.  Our PRO service is specifically designed to enabling manufacturers to leverage their existing knowledge-base (quotes, manufacturing data, cost information, project profit margins, etc.) easily and quickly.

But don’t take our word for it, sign up for a free 30 day trial and find out yourself.  In a manufacturing world where speed is becoming more and more important – companies can hardly afford to sit back on their heels.  Adapt, speed up, or get passed by those that do.  Don’t get passed by…we can help.

Customers First!  That is a key mantra that has guided me personally and many companies who are working hard to delight their customers and demonstrate a mind-set of their organization’s top priority.  But what does “Customer First!” mean and how do sales teams translate this mantra into valuable action and results for the customer? 

To start off, we must realize that our customers are quite sophisticated and are familiar with standard sales tactics. As a sales professional, one of the things I dislike the most is being “sold to” by someone that is unaware of my goals and desires. I admit, early in my sales career as I tried to learn the “art of selling”, I lost sight of the customer’s goals and had to step back and re-focus on how I was managing the process. Similar to riding a bike, it is difficult to enjoy the ride when you stumble often. The good news is, once a sales team loses the urge to sell, they can focus on being curious about the customer’s goals, learning more about the organization and its priorities, and finally challenging customers to consider proven solutions that may not have previously been considered. This is a win for both the customer and for Spatial.

As I travel the world I am energized by meetings with customers to exchange ideas, plans for the future, and exploring ways to work better together. It is common to brainstorm ideas and explore best practices. I commonly ask customers to describe the mechanics of the best relationships they have with technology suppliers.

So what is the recipe for success in great customer relationships?  In short, the key ingredients are trust, high quality business acumen, top notch technical capability, strong intra-company and inter-company communication, and the ability to deliver results. 

Here at Spatial, we focus on adding an extra dose of one ingredient – trust!  Similar to when you consult a doctor, you are not only looking for expertise, information, and guidance, but you are also looking for the feeling that you are being advised as if the doctor was a part of your family.  Spatial sells software development toolkits that are embedded into, and an extension of, our customers’ software. Therefore, we are a part of our customers’ products and a key addition to their business and development efforts.

Now the question becomes, how do we build trust?  The answer is simple, but the execution is not.  Building trust takes time and is an amalgamation of many events that include meetings, projects, experiences, lunches, coffees, sharing ideas, and much more. Additionally, confidence is essential for building trust. Confidence to create plans, execute, and most importantly sometimes say “I made a mistake, I apologize, and I will fix the mistake.”

Best practices for setting up a structure for building trust involves a few essential items:  communication at multiple levels of an organization; regular frequency of interaction (weekly for some projects; every six months for executive review as examples); and a balanced number of updates (good news and bad) on past and current projects. 

There we have it, a recipe for success – A recipe that is proven to work. Therefore, IF we say “Customer First” AND have strong communication AND create an environment for a high level of trust, together we can solve puzzles that have never before been deciphered and create mutual and lasting value that will benefit our customers now and for many years.  Together we can make this happen!

3d mobile imageAs a child, I marveled at antiquity through my great grandmother’s many stories of life in the old west. Born in the 1890s—well before the horseless carriage—she’d speak of waking up before dawn to walk five miles to school each morning. After class, since she was already in town, her parents had her stop by the baker, butcher and general store before visiting the dairy to carry dinner and breakfast home. In the century since, we have all benefitted from the advent of department stores, catalog ordering, supermarkets, shopping malls, and most-recently, online shopping. This transformation, driven by the market opportunity of customer convenience and product accessibility, has been nothing short of revolutionary. Rather than organize products according to the provider’s convenience—meat from the butcher, milk at the dairy—they are offered to us collectively in a single location.

The focus on the buyer’s needs catalyzed the evolving paradigm, while innovations in technologies and business models have enabled it. For many 3D modeling solutions today, this same approach is necessary to survive and thrive in a world that rewards, and increasingly requires instant, global accessibility.

Mobile Device Usage

Nearly everyone you know can be seen using a mobile device- your boss, your parents, your children and your supermarket clerk all use these devices for much more than telephone calls. We expect that the activities and workflows that we need and want can be done on any device, anywhere. In 2014, half (http://www.zdnet.com/article/cisco-projects-data-center-cloud-traffic-to-triple-by-2017/) of all workloads were done in the cloud for the first time. What’s more, decision makers lead mobile adoption, with more than 90% (http://searchenginewatch.com/sew/opinion/2353616/mobile-now-exceeds-pc-the-biggest-shift-since-the-internet-began_ using a mobile device for business use. Are your customers’ expectations any different? 

3d mobile users

Access to Workflows

Whether you are doing proprietary internal CAD modeling, or building an OEM CAD solution, it’s likely that your customers, their customers, and users not only could benefit from a globally available mobile accessibility to their workflows 24/7, but that they expect it by default. If your users are internal, having mobile access to your workflows not only enables new possibilities to engage with your customers or iterate on your designs, but it means your team can work to deliver the best product, anytime, anywhere.

Creating the Right Architecture

CAD models are often very large and complex. Putting them on a mobile device may seem beyond mobile device capability, but the right architecture can enable workflows on even the largest 3D models. The visualization process can be done either on the device or in the cloud. Your 3D CAD model can be stored in your datacenter, in the cloud, or partially on the device. By carefully considering each of your workflows’ requirements, mobile CAD can be enabled on most consumer devices. Put the processing and complexity where the computing power is, either in the cloud or your own data center. This includes not only demanding 3D CAD modeling operations, but also visualization processing. Said simply, when your goal is mobile accessibility to your users, a successful implementation will push only what is needed to the device, thereby achieving a complete, yet responsive experience. This can range from view-only access, to full model creation and manipulation. In both of these scenarios, and the gamut between, use the cloud to enable mobile accessibility to your valuable workflows.

3d cloud mobile workflow

Protecting Your Intellectual Property

If you or your customers are dealing with 3D models, you are probably wondering how to ensure that this valuable intellectual property is protected. Many are surprised to learn that a 3D cloud system can actually be more secure than traditional implementations. Without configurable model access, you may be sharing this critical material via physical media or email. Once that model leaves your hands, you have no control of where it may go from there—and you may never know where it reaches. In a cloud implementation, you can provision access to suppliers, partners and customers not only on a time-limited basis- with an ability to see instantly access usage metrics- but also with full control to constrain access to only certain assemblies, details or operations. Grant view-only access to those who need it, without handing over your trade secrets in the process.

When implementing a cloud-based solution, you’ll also be able to choose public, private, or hybrid cloud options, thus realizing the benefits of accessibility while being able to restrict mission-critical data and operations to only authorized users, and only on networks you control and trust. By leveraging best-in-class cloud providers, you benefit from billions of dollars of investment and maintenance in security, and can integrate these seamlessly with your internal systems and firewalls.

Don’t force your customers to walk for miles to different vendors just to survive in today’s 3D modeling world. There are many paths to a successful cloud and mobile implementation and Spatial can help you navigate the options and offerings to most-effectively realize your desired result. Whether you’re looking for an OEM CAD Cloud solution utilizing visualization solutions like HOOPS, or building your own web based CAD software built on webGL, Spatial has nearly three decades of industry proven experience in 3D modeling that we’ll put to work for you. Please contact us ( info_spatial@3ds.com ) if you’d like to learn more.

capture meta-data about ACIS APIs This article shares a simple architecture which can be used to capture meta-data about the use of ACIS APIs in your program. It can be used to record the filename, line number, arguments and outcome of each API. C language preprocessor macros are used to invoke methods on a static object called spa::CheckOutcome. The meta-data is sent to your implementation of spa::CheckOutcome::Logger interface.


Here is an example of the output produced by a simple implementation of the Logger interface:

api_start_modeller(0) from main.cpp @ line 56: OK
api_initialize_kernel() from main.cpp @ line 58: OK
api_set_file_info(0x01 | 0x02, fi) from main.cpp @ line 64: OK
api_solid_block(SPAposition(), SPAposition(), block) from main.cpp @ line 70: ERROR (width negative or zero)
api_solid_block(SPAposition(), SPAposition(1,1,1), block) from main.cpp @ line 73: OK
api_save_entity_list(fptr, true, elist) from main.cpp @ line 78: OK
api_restore_entity_list(fptr, true, elist) from main.cpp @ line 83: OK WARNING (restore data has unknown origin)
api_terminate_kernel() from main.cpp @ line 87: OK
api_stop_modeller() from main.cpp @ line 88: OK

Additionally, the spa::CheckOutcome class contains an interface that can be implemented to report and interrupt the progress of the API. The interface also provides pre-API and post-API methods that are invoked accordingly, which allow you to more easily show and hide a progress dialog box. Here is an (abbreviated) example of the output produced by a simple implementation of the Progress interface:

Restoring entity list (0%)
Restoring entity list (1%)
Restoring entity list (3%)
Restoring entity list (5%)
Restoring entity list (7%)

Restoring entity list (100%)
API call completed. result == ok

Using this architecture in your code is quite easy. Just surround each of your API calls with the checkOutcome or checkOutcomeWithProgress macros. Here are two examples of its use:

if(!checkOutcome(api_initialize_kernel())) {
std::cout << "Initialization failed: "
<< spa::CheckOutcome::getLastErrorMessage()
<< std::endl;
return -1;

if(!checkOutcomeWithProgress(api_restore_entity_list(fptr, true, elist), "Restoring entity list")) {
std::cout << "Restore failed: "
<< spa::CheckOutcome::getLastErrorMessage()
<< std::endl;

As you can see from these samples, spa::CheckOutcome provides you with easy access to the error message in the event of a failure. Additionally, the success or failure of an API call is simplified to a Boolean value by the checkOutcome macro which can be used more naturally in conditionals.

It is important to check the return value of your ACIS API calls and respond to failures appropriately. Information about the success of an API is returned in an outcome object. When an API fails, the outcome object can be queried to obtain specific information about the failure. The static method spa::CheckOutcome::getLastOutcome() can be used to obtain last outcome object for further processing when needed.

All of the capabilities described are can be easily added to your application. Just add click here to download CheckOutcome.cpp and CheckOutcome.h , then add the files to your project. To see an example implementation of the Logger and Progress interfaces, as well as how spa::CheckOutcome and the macros are used take a look at main.cpp.

Twitter Facebook LinkedIn YouTube RSS