Why don't you open the model using mdlWorkDgn_openFile and then call
mdlModelRef_getRange?
Saludos,
Juan
<grotero@[EMAIL PROTECTED]
> escribió 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 = 0.0;
> Dvector3d vector;
>
>
> /*-----------------------------------------------------+
> | initialize scan to start from begining of file |
> +-----------------------------------------------------*/
> mdlScan_initScanlist (&scanList);
> mdlScan_setDrawnElements(&scanList);
> mdlScan_noRangeCheck(&scanList);
>
> for (i=0; i<4; i++)
> scanList.levmask[i] = 0x0000;
>
> scanList.typmask[0] = TMSK0_LINE|TMSK0_LINE_STRING|TMSK0_SHAPE;
>
> scanList.typmask[1] = 0x0000;
> scanList.typmask[2] = 0x0000;
> scanList.typmask[3] = 0x0000;
> scanList.typmask[4] = 0x0000;
> scanList.typmask[5] = 0x0000;
> scanList.typmask[6] = 0x0000;
> scanList.typmask[7] = 0x0000;
>
> scanList.scantype = ELEMTYPE;
> scanList.extendedType = FILEPOS;
>
> if (f!=NULL)
> {
> mdlScan_initOpenedFile (f, &scanList);
> }
> filePos = 0L;
> fileNum = 0;
> scanWords = 0;
>
> if ((init_status = mdlScan_initialize (fileNum, &scanList)) ==
> SUCCESS);
> {
>
> do
> {
> scan_status = mdlScan_file (elemAddr, &scanWords,
> sizeof(elemAddr), &filePos);
> numAddr = scanWords / sizeof(short);
>
> for (i=0; i<numAddr; i++)
> {
> MSElementDescr *elDP=NULL;
>
> 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 = vector.org; end = vector.end; if
> (origin.y > yMax)
> yMax = origin.y; if (end.y > yMax)
> yMax = end.y;
> if(elDP) mdlElmdscr_freeAll(&elDP); }
> } while (scan_status == 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.
>> >
>


|