Thanks all.
Here was the problem, I would pass as parameter a file or not pass, and
I needed to check it with a conditional sentence. I always was
executing the two lines.
if (f!=3DNULL)
mdlScan_initOpenedFile (f, &scanList);
else
init_status =3D mdlScan_initialize (fileNum, &scanList);
Juan Perea wrote:
> Why don't you open the model using mdlWorkDgn_openFile and then call
> mdlModelRef_getRange?
>
> Saludos,
> Juan
>
> <grotero@[EMAIL PROTECTED]
> escribi=F3 en el mensaje
> news:1153735377.894867.57170@[EMAIL PROTECTED]
> > Can anybody tell me what's wrong in this code?
> > It fails when executing the line "mdlElement_extractRange(&vector,
> > &elDP->el);". The error is "Cancelation of MDL in line......."
> > What this function is trying to do is to obtain the yMax (the maximum
> > value "y" of a extern file).
> >
> > Private double calculateYMax
> > (
> > FILE *f
> > )
> > {
> >
> > Scanlist scanList;
> > ULong elemAddr[50], filePos;
> > int fileNum, i, j, numAddr, scanWords, currFile, numPoints;
> > int init_status, scan_status;
> > DPoint3d origin, end;
> > MSElement el;
> > double yMax =3D 0.0;
> > Dvector3d vector;
> >
> >
> > /*-----------------------------------------------------+
> > | initialize scan to start from begining of file |
> > +-----------------------------------------------------*/
> > mdlScan_initScanlist (&scanList);
> > mdlScan_setDrawnElements(&scanList);
> > mdlScan_noRangeCheck(&scanList);
> >
> > for (i=3D0; i<4; i++)
> > scanList.levmask[i] =3D 0x0000;
> >
> > scanList.typmask[0] =3D TMSK0_LINE|TMSK0_LINE_STRING|TMSK0_SHAPE;
> >
> > scanList.typmask[1] =3D 0x0000;
> > scanList.typmask[2] =3D 0x0000;
> > scanList.typmask[3] =3D 0x0000;
> > scanList.typmask[4] =3D 0x0000;
> > scanList.typmask[5] =3D 0x0000;
> > scanList.typmask[6] =3D 0x0000;
> > scanList.typmask[7] =3D 0x0000;
> >
> > scanList.scantype =3D ELEMTYPE;
> > scanList.extendedType =3D FILEPOS;
> >
> > if (f!=3DNULL)
> > {
> > mdlScan_initOpenedFile (f, &scanList);
> > }
> > filePos =3D 0L;
> > fileNum =3D 0;
> > scanWords =3D 0;
> >
> > if ((init_status =3D mdlScan_initialize (fileNum, &scanList))
=3D=3D
> > SUCCESS);
> > {
> >
> > do
> > {
> > scan_status =3D mdlScan_file (elemAddr, &scanWords,
> > sizeof(elemAddr), &filePos);
> > numAddr =3D scanWords / sizeof(short);
> >
> > for (i=3D0; i<numAddr; i++)
> > {
> > MSElementDescr *elDP=3DNULL;
> >
> > mdlWorkDgn_read(&elDP,elemAddr[i],f,NULL,0);
> > mdlElmdscr_read (&elDP, elemAddr[i], f, FALSE, NULL);
> >
> >
> > /* THIS LINE IS THE ONE WHICH IS FAILING */
> > mdlElement_extractRange(&vector, &elDP->el);
> >
> > origin =3D vector.org; end =3D vector.end; if
> > (origin.y > yMax)
> > yMax =3D origin.y; if (end.y > yMax)
> > yMax =3D end.y;
> > if(elDP) mdlElmdscr_freeAll(&elDP); }
> > } while (scan_status =3D=3D BUFF_FULL);
> >
> > }
> > return yMax;
> > }
> >
> >
> > Daniel MacNeil wrote:
> >> The only way to see multiple files in the view windows at the same
time
> >> is to use refernce files.
> >>
> >> Dan
> >>
> >> grotero@[EMAIL PROTECTED]
wrote:
> >> > Is posible to open a new file and work with it while still seing
the
> >> > actual one in the workspace?.
> >> > I hope you understand me.
> >> >
> >> > Thanks.
> >> >
> >


|