Anyone Interested In (and capable of) a Quick OpenCascade Assignment?

If this is an inappropriate post, I apologize. I gave this a couple of weeks valiant effort. But I was unsuccessful with the wrapper projects (which for some reason neglect IGES_Control), and I'm apparently too old for C++.

All I need is a component (hopefully callable from C#) that will read an iges file, identify multiple models if the file is an assembly, and then provide design units, bounding box, surface area, volume, and (important) the number of surfaces. If the IGES file contains names for the models within the assembly, that would be nice, too.

Easy, huh?

(I have the detailed requirements should anyone be interested)



jelle's picture

Please do describe what you're looking for Kenneth, it'll be interesting to hear. All what your enumerate OCC is capable of.
Apart from that, suggesting that you have detailed requirements hints at whether you are looking for an experienced OCC developer.
Are you? I'm sure there are lots of OCC folks / developers on this forum that would love to help you out.

Take care,


klosset's picture

Ok, here goes:

--- snip ---
The objective of this assignment is to develop a windows DLL that can be used to obtain geometric information from IGES-format CAD files. The component will be developed in Microsoft C++ and will utilize the Open Source Open Cascade geometric kernel to access model data.

The deliverables are:

Note: The requested deliverables are intended to fully comply with the Open Cascade licensing model. If anything requested is in violation, it is unintentional, and can be adjusted.

1. A completed source build tree of the latest Open Cascade software (at least version 6.3.1) compiled with Visual Studio version 9. The purpose of this deliverable is to simply to ensure that we have a buildable version of all software at project completion.

2. A DLL component that can be used to access and read IGES CAD files.

- If the IGES file is an assembly, identify each model within the assembly and provide the requested data for each model individually.

- For each model (may be multiple models if an assembly), interpret and provide the following data:

-- Design units of the file (inches, millimeters, etc.)

-- Name of model (if available)

-- Bounding box information (minX, maxX, minY, maxY, minZ, maxZ)

-- Surface area

-- Volume

-- Number of surfaces present in the model

- Handle errors gracefully and report cause of error

- Accessible from C# (managed code) and C++ (can be separate DLL's or combined as appropriate)

- Written in C++ and buildable with Visual Studio 2008 (v9)

3. A working test framework that demonstrates how the component is used.

4. All sources provided to us in a buildable form.

5. Passes a predetermined test set.

The test set will consist of a set of (TBD) IGES files consisting of both single model files and model assemblies. The expected results will be provided along with the files.

We will provide some sample code fragments showing how we believe some of this data is obtained. But we do not know the full implementation. Thus, someone familiar with Open Cascade and with CAD modeling will be the best candidate.

Since only one component (plus its test scaffold) is being requested, we believe this task can be completed quickly. Please let us know your proficiency in this development area and how long we should expect the project to take.

We expect to begin quickly, so please ask whatever questions you need to clarify the task.

--- snip ---

As you can tell, this text was prepared for a more formal setting than this forum. I spent a lot of personal time on this task, but was unable to get it done in the time allowed. I think it should be pretty easy for someone familiar with OCC.

BTW: There are only two people on oDesk listing OCC experience!


theP's picture

Hello Keith,

This web-page could be some good place for all your questions: You will find a downloadable sample program that probably does what you seem to want. They can provide you with either a software program or source code: the underlying kernel for geometric shape models is OpenCascade but offers you its own data structures for topology, part and assembly. You may inquire the part class for the mass properties, and so own. Hope that helps - good luck.