Question about the tolerance used in importing/exporting iges/step file

I'm trying to adjust the tolerance when the iges file is being imported and exported.
I noticed that the final file size keeps the same no matter what the tolerance is.
The following is my source code in exporting IGES file.

Standard_Boolean CImportExport::ExportIGES(const TopoDS_ListOfShape *session_shapes, const CString& pathname, const Standard_Real& tol)
IGESControl_Writer ICW( Interface_Static::CVal("XSTEP.iges.unit"),

if (Interface_Static::SetIVal("write.precision.mode",1))
Interface_Static::SetRVal("write.precision.val", tol);

for ( TopoDS_ListIteratorOfListOfShape iter(*session_shapes); iter.More(); iter.Next() )
ICW.AddShape (iter.Value());

CT2A ascii(pathname);
Standard_CString str_fpn = (Standard_CString)(ascii.m_psz);

Standard_Boolean result = ICW.Write(str_fpn);
return result;

I changed to parameter "tol" from 0.1 to 0.000001. The exported iges file keeps the same file size all the time.

Can anybody tell me what's wrong in my code?

Thank you in advance!

Gilles DAVID's picture

I think that the IGES format doesn't support any tolerance. you can use the STEP AP214 format.