Helpful Qt Tools for 3D Software Development Kits

When software developers opt for tools that are cross platform, they often turn to Qt. Qt is arguably the most popular toolkit for making applications that can run on Windows, Mac or Linux with little additional effort. Spatial’s 3D software development kits can be paired with Qt to produce enterprise quality applications that are platform agnostic.
To help developers get started in this environment, here we present a small collection of files that can be used with qmake for generating makefiles and IDE workspaces that are configured to use software components from Spatial. We’ve also included a simple project that illustrates the use of these add-ons.


Qt 5.4 is the current version available, but these scripts should work with earlier and future versions as well.  You’ll also need an installation of the Spatial software components for each platform you want to support. To take advantage of the qmake scripts provided here, install your Spatial components in a common root directory and name the product folders according to the following naming convention:

prerequisites for 3D software development kits Qt 3D ACIS, 3D InterOp, HOOPS

By using a network share as the installation location, all Spatial components for all supported platforms can be installed to the same location. The qmake system has support for prefix headers (sometimes called pre-compiled headers) which can be used dramatically decrease build times when third party software components such as ACIS are shared on a network drive.

* If you don’t install your components this way, you can specify their locations individually by setting the variables in your shell environment or in your qmake project file prior to using the pri files provided here.


In order to add support for Spatial components, edit your product’s .pro file and add the following variables:

Usage for Qt tools for 3D Software Development Kits

With this information, your environment is completely specified, and all that’s left to do is include the components you want to build into your application.

Here is an example of a .pro file that takes advantage of this build configuration:


# Specify default values for versions

# Allow local configuration file to specify SPA_ROOT
# and to override default versions as needed.
# config-local.pri should not be kept in revision control
# but created and modified by the developer in their working copy

isEmpty(SPA_ROOT):error(Edit config-local.pri to set SPA_ROOT)
!include($$SPA_ROOT/spa_pri/acis.pri):error(Unable to include acis.pri)
!include($$SPA_ROOT/spa_pri/iop.pri):error(Unable to include iop.pri)

message(A3DT: $$A3DT)
message(X3DT: $$X3DT)
message(ARCH: $$ARCH)

CONFIG*=thread console
SOURCES += main.cpp


After including any of the .pri files provided, you can access the values they define. This can be useful for automatically writing a batch file that augments your PATH environment variable, which makes dynamic loading of the libraries much easier. For example:

win32 {
  bs_a3dt = $$replace(A3DT, '/', '\\')
  cmd = echo 'set PATH=$${bs_a3dt}\\$${ARCH}$${d}\\code\\bin;^%PATH^%' > acisPath.bat
  cmd = echo 'set A3DT=$${bs_a3dt}'>> acisPath.bat
  cmd = echo 'set ARCH=$${ARCH}'>> acisPath.bat

The variables A3DT and ARCH are defined by including acis.pri. The forward slash to backslash conversion is done because all paths in the qmake environment use forward slashes, while the windows command prompt expects backslashes.

In addition to modifying your PATH variable, the batch file created by the above snippet sets A3DT and ARCH shell environment variables. This can be useful when opening and building visual studio solutions that ship with Spatial’s software components.

Link to Zip File


By pairing Spatial’s software components with the power of Qt, you can create applications quickly and easily that run on all the major platforms. By using .pri and .pro files, configuring a build environment is easy, reliable, and flexible. Even if you choose not to use Qt as your GUI toolkit, you can use qmake as a platform independent build tool for easily generating makefiles and IDE workspaces.


How To Create an Ellipsoid using 3D ACIS

The 3D analytics supported directly in 3D ACIS include: sphere, block, pyramid, cone, and torus. These shapes can be changed to more generalized shapes using simple tricks that may not be known by everyone. For instance, to create a well behaved ellipsoid, convert a sphere to a spline and perform non-uniform scaling on it, as shown by the following Scheme script:

(define ellipsoid (lambda (r1 r2 r3)

(define x (solid:sphere 0 0 0 1 ) )
(define saved_new_periodic_splitting (option:set 'new_periodic_splitting 3 ) )
    (define ellipsoid (entity:spline-convert x))
    (entity:delete x)
    (entity:scale ellipsoid r1 r2 r3)
    (option:set 'new_periodic_splitting saved_new_periodic_splitting )
(ellipsoid 0.2 0.3 0.4)

In C++, you would perform something like the following:

BODY* ellipsoid = 0;
outcome result;
check_outcome( result = api_set_int_option( "new_periodic_splitting", 3 ) );
check_outcome( result = api_solid_sphere( SPAposition( 0, 0, 0 ), 1, ellipsoid ) );
check_outcome( result = api_transform_entity( ellipsoid, scale_transf( radius_x, radius_y, radius_z ) ) );
check_outcome( result = api_change_body_trans( ellipsoid, NULL ) );

The same logic can be applied to the other 3D analytics, as well as other surfaces.


We are just starting the 3rd day of 2015 SolidWorks World. The first two days have been very well attended and with a great deal of excitement.

There has been a lot of curiosity about Spatial and our role in the Dassault Systemes ecosystem. For many, it is the first time that they have heard of us. After some explanation, many are beginning to connect the dots on how we can add value in to their company. The primary interest has been around how we can help additive manufacturing bridge the gap between precise models and non-precise data. 

Additive Manufacturing is a vital market for many of the Solidworks partners and users. Several are showing how this can be applied alongside traditional segments such as medical and dental, aerospace and automotive. The requirements for these parts are quickly becoming more and more stringent. Precise geometry is going to be necessary to help address these challenges.

In addition to what is happening with Spatial at SolidWorks World, you can see many new use models for the 3DExperience where companies are changing the way we imagine, design and manufacture. A great example is Augmented Reality. There are several companies showing how this can be used in an industrial context. One of the most impressive is what 3DExcite is showing in the DS booth. The rendering and animation from their technology, coupled with augmented reality it truly stunning.

There are going to be several new product announcements on the floor today that I am looking forward to. It is great to see that design and manufacturing is alive and thriving in the Americas. 

3D Insiders Summit

Our annual Insiders’ Summit 20014 is fast approaching – October 15-16, located in beautiful Broomfield, Colorado. This year’s conference is jam-packed with even more technical sessions, events and one-on-one meetings.  This highly anticipated events lets you implement best practices, customize our software to better meet your customers’ needs, and provide hands-on experience to master new capabilities available in the Spatial portfolio.

Each year we survey our attendees to see what they like about the conference and what we can do to make it even better.  A vast majority of the comments last year focused on three key benefits:

  • One-on-one meetings: Whether it is a business, customer support or engineering discussion, Spatial’s technical, R&D and executive team are always available to meet and discuss individual needs, priorities or challenges.
  • Review sessions of new Spatial features: This year we are holding R25 working sessions, which will show you how to install, test and learn all about the new R25 capabilities. Participants can try out the new features of Spatial’s latest version and see how the additional capabilities will help you deliver more innovation to your clients.
  • Meeting fellow users and learning from their experiences: Whether attendees are sharing experiences before/after sessions or during lunch and dinner conversations, they all tell us the same thing—they pick up valuable tips and strategies from fellow users. We expect this year’s attendees to be both novice and experienced users, and both can benefit from informal discussions.

Because these three things are constantly mentioned as key benefits of the event, we are making sure that we offer even more of these opportunities. We’ve also listened to our attendees and implemented something completely new this year – deeper technical session content with hands-on experience using your own laptops, working in your own environment on your actual projects!

And of course, our experts will be right there to help you implement our new features so you get the very most out of our software – which in turn helps you be more innovative.

Join us in the midst of the magnificent Rocky Mountains –an ideal destination to learn, network, and refresh your skills. 

This educational event will be technically focused, allowing you experience the new capabilities of Spatial’s portfolio, learn best practices for implementation, and gain insight into future product plans. And in addition to being able to interact with Spatial developers, product managers and executives – there will be plenty of time to share experiences and learn from other Spatial users.

Dates: October 15 – 16, 2014

Venue: Renaissance Boulder Flatiron Hotel

*Early Bird Registration is open. Register before September 1st to save $100!

Register Now


For those of you not familiar with waterjet machining, this is an industrial tool that is capable of cutting a variety of materials using an extremely high-pressure jet of water.  A mixture of water with an abrasive substance is sometimes used as well.  This method is used primarily when the materials being cut are sensitive to the high temperatures generated by other methods.  Waterjets have the widest range of application of any machine tool, while maintaining high precision. There are virtually no limits to what waterjets can cut. So how does 3D come into play for waterjets?
With recent advances in control and motion technology, 5-axis waterjet cutting has become a reality. While 5-axis operations have been possible on abrasive waterjet machines for some time, the capability to process 3D parts such as tubes and pipes is relatively new. Where the normal axes on a water jet are named X (back/forth), Y(left/right) and Z (up/down), a 5-axis system will typically add an A axis (angle from perpendicular) and C axes (rotation around the Z-axis). This is where 3D modeling, visualization and data interoperability come into play. With specialized 3D software and 3D machining heads, complex shapes can be digitally modeled and produced. By integrating the specialized 3D software with the recent advances in 5-axis waterjet machines, machine tool venders are able to deliver flexibility, speed and accuracy like never before. 
OMAX Corporation, a leading tool solutions provider of abrasive waterjet systems and Spatial Corp, the leading provider of 3D components aka Software Development Kits (SDKs), recently announced the co-development of a 3D tool pathing solution for waterjet machining.  Spatial provides the middle-ware between OMAX’s CAD and the machine controller. The merging of these two leading technologies provides customers the ability to import practically any major 2D or 3D CAD model in the market today.  
For OMAX customers doing 3D programming for 5-axis waterjet cutting, those operations are now greatly simplified.  OMAX is delivering one of the easiest to use 5-axis CAM software solutions today with the help of Spatial’s 3D SDKs.  
To learn more about Spatial’s 3D capabilities for other manufacturing and fabrication industries visit:: Manufacturing-Fabrication
Twitter Facebook LinkedIn YouTube RSS