Developer Tips & Tricks: Refresher Course on 3D InterOp Samples - A Wealth of Information
By: Stefanie Kenny, Technical Account Manager
Have you looked at the 3D InterOp sample applications lately? Your 3D InterOp package includes a number of samples which demonstrate various ways of getting information out of data files, from performing simple translations to traversing and querying unusual geomtols. Whether you're new to 3D InterOp or an experienced user, reviewing our samples periodically can help you optimize your workflow and get exactly the type of data you want. This article will summarize all our various samples and how they can be useful to you.
What is a sample?
Let's review the basics first. Each sample is a simple command line application demonstrating one or two concepts. Each one is comprised of:
- One or two .cpp files
- A build project or makefile
Building is easy - the only thing you must change in the project is to cut and paste your Application Key into the unlock_license.cpp file (Windows only). The online documentation contains complete instructions for building each sample; links to the online documentation are provided at the end of this article.
What is the purpose of a sample?
Each 3D InterOp sample is designed to meet one or more of the following objectives:
- Demonstrate Basic Concepts - for instance, how to implement a progress callback function
- Demonstrate Advanced Concepts - for instance, how to get PMI once it is translated into SAT
- Provide Utility for Translation - for instance, translate a single file with specific option settings
Basically, samples provide a means for you to learn about 3D InterOp concepts interactively using your debugger and some are useful as utilities, even if you never look at a single line of code.
Exploring the Samples
Basic Translation Concepts
These samples demonstrate the simplest concepts in the interface, such as how to choose which representation you wish to translate or how to set the destination unit. The Options sample is by far our most heavily used sample, even by us, and is often incorporated by customers directly into their application.
Assembly XML, LogFile, Options, ProgressCallback, Representation, Simple, and Unit
Querying Source Document
These samples demonstrate how to query a source document for information. This can save time by extracting only the data you want and also help you choose how to perform the full translation, e.g. kick off a multi-process translation for an assembly.
AssemblyInfo, BrepInfo, DocumentInfo, and MultiModelDocumentInfo
In Memory Translation Concepts
The following samples demonstrate how to import a file directly into ACIS (or Parasolid) without saving it. They also demonstrate the reverse workflow. While these samples don't have much utility as console applications, they do demonstrate essential and sometimes tricky concepts.
AcisAsmExport, AcisAsmImport, AcisExport, AcisImport, ParasolidExport, ParasolidImport
Did you know you can put a geomtol on a dimension? PMI has many, many possible configurations and semantic data which you will want to understand. These samples demonstrate how to process all the various cases, including PMI with multiple owners, capture sets, driving dimensions, and other tricky little cases.
AcisMiImport, AcisAsmMiImport, AcisHoldImport, and AcisMiXML
Last but not Least . . .
The new sample, AcisAsmFlatten demonstrates how to use recently added ACIS functionality for flattening an ACIS assembly model into an ENTITY_LIST, including flattening assembly level PMI.
Please take advantage of these, and see our documentation for further information: