I'm trying to build a IndexedDataMap for some of my classes. The problem is I don't use WOK (by the way, is there a documentation for WOK and CDL available?).
I usually copy the files for a collection type and replaces the types with my types.
Which files do I need for an IndexedDataMap??

Best regards,

Patrik Müller

Patrik Mueller's picture

Hi again,

thanks to the people sending me docs for working with WOK and CDL.
Apart from that I got some help for changing existing sources to my needs.
Now I hope I can can work with WOK under Windows (after studying the docs).

Best regards,
Patrik Müller

Patrik Mueller's picture


after getting the docs - does anyone have an HowTo for setting up WOK with windows??
I'm always receiving message for missing environment variables and so on - and I'm not the TCL expert:-((
So if anyone could help...

Patrik Müller

shylesh's picture

hi patrik,

even i have similar problem to set wok for windows..did u manage to work it out? if yes then pls tell me also how to get wok working on windows.


Patrik Mueller's picture

Hi Shylesh,

still fighting with enviroment variables...

I'll give you an answer if I'll solved my problems.

Best regards,

shylesh's picture

Dear Patrik,

I need brief details abt the Graph related
classes in the OCAS, especially the GraphDS
package. I cant figure out what is the basic
purpose of these classes (IFGraph, GraphTools, GraphDS..etc)...

Actually my porblem is geometry searching in
the given object obtained from reading step file. say for example i have to find 2 plates
connected at one edge at right angles, this
pattern i have to find in the object. can u
suggest me how to go about?

best regards

Shylesh Sangodkar
Computer Programmer
Phil Systems Ltd.

Patrik Mueller's picture


I'm not the OCC expert. I suggest you look for the topology and geometrical classes (e.g. TopTools_Explorer and so on). And not to forget studying the manuals and cdl files!

Best regards,
Patrik Müller

shylesh's picture

Hi Patrik,

Thanks for advice. Your advices are of great help.

CDL files provide very less information. And I dont know which manuals are you talking about. As far as technical documentation is concerned i dont think there are any such docs (if available pls give me the links).

Best Rgds

max_attack's picture

Hi Shylesh,

here is a part of code I use to explore a BREP imported part (_BREP_part) in order to rebuild cylinders (when imported they are 2 shapes).
So, from a shape _BREP_part it build a TopTools_IndexedMapOfShape in which each element is a shape or a compound of 2 shapes for cylinder. May be it will help ...

#define theType TopAbs_FACE
TopoDS_Shape aShape = _BREP_part;
BRep_Builder aBuilder;
Standard_Integer i,j;
Standard_Boolean flagCompound;
TopTools_IndexedMapOfShape theMap;
TopTools_SequenceOfShape theCylinderSeq;
TopExp_Explorer It(aShape,theType);
BRepBuilderAPI_Copy cop;
for (; It.More(); It.Next()) {
const TopoDS_Shape& S = It.Current();
const BRepAdaptor_Surface theFace = TopoDS::Face(cop.Shape());
if (theFace.GetType() == GeomAbs_Cylinder)
for (i=1; i<=theCylinderSeq.Length(); i++) {
const BRepAdaptor_Surface theFace = TopoDS::Face(theCylinderSeq(i));
Geom_CylindricalSurface cyl1 = theFace.Cylinder();
TopoDS_Compound aCompound;
for (j=i+1; j<=theCylinderSeq.Length(); j++) {
const BRepAdaptor_Surface theFace1 = TopoDS::Face(theCylinderSeq(j));
Geom_CylindricalSurface cyl2 = theFace1.Cylinder();
if (IsSameCylinder(cyl2,cyl1)) {
flagCompound = true;
cout << "same cylinder: " << j << "," << i << endl;
if (flagCompound)

Best Regards


Nilesh's picture

Hi OL,

thanks for the piece of code..but what is
IsSameCylinder() for??? Pls give me that
function code also......

Best Regards