for(;;) {
numl ++;
i = iges_lire(lefic,&numsec,ligne,modefnes);
- if (i <= 0) {
+ if (i <= 0 || i < i0) {
if (i == 0) break;
/* Sending of message : Syntax error */
{
- str[1] = '\0';
- str[0] = sects[i0];
- IGESFile_Check2 (0,"XSTEP_18",numl,str); /* //gka 15 Sep 98: str instead of sects[i0]); */
+ str[1] = '\0';
+ str[0] = sects[i0];
+ IGESFile_Check2 (0,"XSTEP_18",numl,str); /* //gka 15 Sep 98: str instead of sects[i0]); */
}
if (i0 == 0) return -1;
if (i == 2) { /* Header (Global sect) */
iges_setglobal();
for (;;) {
- if (lesect[i] == 1) { /* Separation specifique */
- int n0 = 0;
- if (ligne[0] != ',') { c_separ = ligne[2]; n0 = 3; }
- if (ligne[n0+1] != c_separ) { c_fin = ligne[n0+3]; }
- }
- iges_param(&Pstat,ligne,c_separ,c_fin,72);
- if (Pstat != 2) break;
+ if (lesect[i] == 1) { /* Separation specifique */
+ int n0 = 0;
+ if (ligne[0] != ',') { c_separ = ligne[2]; n0 = 3; }
+ if (ligne[n0+1] != c_separ) { c_fin = ligne[n0+3]; }
+ }
+ iges_param(&Pstat,ligne,c_separ,c_fin,72);
+ if (Pstat != 2) break;
}
}
if (i == 3) iges_Dsect(&Dstat,numsec,ligne); /* Directory (Dsect) */
if (i == 4) { /* Parametres (Psect) */
iges_Psect(numsec,ligne);
for (;;) {
- iges_param(&Pstat,ligne,c_separ,c_fin,64);
- if (Pstat != 2) break;
+ iges_param(&Pstat,ligne,c_separ,c_fin,64);
+ if (Pstat != 2) break;
}
}
}
while ( fgets ( ligne, 2, lefic ) && ( ligne[0] == '\r' || ligne[0] == '\n' ) )
{
}
-
-
- fgets(&ligne[1],80,lefic);
-/* fgets(ligne,81,lefic); */
+ fgets(&ligne[1],80,lefic);
}
}
iges_fautrelire = 0;
if (ligne[0] == '\0' || ligne[0] == '\n' || ligne[0] == '\r')
return iges_lire(lefic,numsec,ligne,modefnes); /* 0 */
- if (sscanf(&ligne[73],"%d",&result) == 0)
- return -1;
-/* { printf("Erreur, ligne n0.%d :\n%s\n",*numl,ligne); return (*numsec > 0 ? -1 : -2); } */
- *numsec = result;
- typesec = ligne[72];
- switch (typesec) {
- case 'S' : ligne[72] = '\0'; return (1);
- case 'G' : ligne[72] = '\0'; return (2);
- case 'D' : ligne[72] = '\0'; return (3);
- case 'P' : ligne[72] = '\0'; return (4);
- case 'T' : ligne[72] = '\0'; return (5);
- default :; /* printf("Ligne incorrecte, ignoree n0.%d :\n%s\n",*numl,ligne); */
- }
- /* the column 72 is empty, try to check the neghbour*/
- if(strlen(ligne)==80
- && (ligne[79]=='\n' || ligne[79]=='\r') && (ligne[0]<='9' && ligne[0]>='0')) {
- /*check if the case of losted .*/
- int index;
- for(index = 1; ligne[index]<='9' && ligne[index]>='0'; index++);
- if (ligne[index]=='D' || ligne[index]=='d') {
- for(index = 79; index > 0; index--)
- ligne[index] = ligne[index-1];
- ligne[0]='.';
- }
-
+
+ if (!sscanf(&ligne[73],"%d",&result) == 0) {
+ *numsec = result;
typesec = ligne[72];
switch (typesec) {
- case 'S' : ligne[72] = '\0'; return (1);
- case 'G' : ligne[72] = '\0'; return (2);
- case 'D' : ligne[72] = '\0'; return (3);
- case 'P' : ligne[72] = '\0'; return (4);
- case 'T' : ligne[72] = '\0'; return (5);
- default :; /* printf("Ligne incorrecte, ignoree n0.%d :\n%s\n",*numl,ligne); */
+ case 'S' : ligne[72] = '\0'; return (1);
+ case 'G' : ligne[72] = '\0'; return (2);
+ case 'D' : ligne[72] = '\0'; return (3);
+ case 'P' : ligne[72] = '\0'; return (4);
+ case 'T' : ligne[72] = '\0'; return (5);
+ default :;
+ }
+ /* the column 72 is empty, try to check the neighbour*/
+ if(strlen(ligne)==80
+ && (ligne[79]=='\n' || ligne[79]=='\r') && (ligne[0]<='9' && ligne[0]>='0')) {
+ /*check if the case of losted .*/
+ int index;
+ for(index = 1; ligne[index]<='9' && ligne[index]>='0'; index++);
+ if (ligne[index]=='D' || ligne[index]=='d') {
+ for(index = 79; index > 0; index--)
+ ligne[index] = ligne[index-1];
+ ligne[0]='.';
+ }
+ typesec = ligne[72];
+ switch (typesec) {
+ case 'S' : ligne[72] = '\0'; return (1);
+ case 'G' : ligne[72] = '\0'; return (2);
+ case 'D' : ligne[72] = '\0'; return (3);
+ case 'P' : ligne[72] = '\0'; return (4);
+ case 'T' : ligne[72] = '\0'; return (5);
+ default :;
+ }
}
}
+ // the line is not conform to standard, try to read it (if there are some missing spaces)
+ // find the number end
+ i = (int)strlen(ligne);
+ while ((ligne[i] == '\0' || ligne[i] == '\n' || ligne[i] == '\r' || ligne[i] == ' ') && i > 0)
+ i--;
+ if (i != (int)strlen(ligne))
+ ligne[i + 1] = '\0';
+ // find the number start
+ while (ligne[i] >= '0' && ligne[i] <= '9' && i > 0)
+ i--;
+ if (sscanf(&ligne[i + 1],"%d",&result) == 0)
+ return -1;
+ *numsec = result;
+ // find type of line
+ while (ligne[i] == ' ' && i > 0)
+ i--;
+ typesec = ligne[i];
+ switch (typesec) {
+ case 'S' : ligne[i] = '\0'; return (1);
+ case 'G' : ligne[i] = '\0'; return (2);
+ case 'D' : ligne[i] = '\0'; return (3);
+ case 'P' : ligne[i] = '\0'; return (4);
+ case 'T' : ligne[i] = '\0'; return (5);
+ default :; /* printf("Ligne incorrecte, ignoree n0.%d :\n%s\n",*numl,ligne); */
+ }
return -1;
}
# !!!! This file is generated automatically, do not edit manually! See end script
+puts "TODO CR23096 ALL: TPSTAT : Faulty"
+puts "TODO CR23096 ALL: LABELS : Faulty"
+
+
set filename frame.igs
set ref_data {
-DATA : Faulties = 0 ( 9879 ) Warnings = 0 ( 2629 ) Summary = 0 ( 12508 )
-TPSTAT : Faulties = 0 ( 0 ) Warnings = 0 ( 0 ) Summary = 0 ( 0 )
+DATA : Faulties = 0 ( 5005 ) Warnings = 0 ( 1 ) Summary = 0 ( 5006 )
+TPSTAT : Faulties = 0 ( 0 ) Warnings = 6 ( 0 ) Summary = 6 ( 0 )
CHECKSHAPE : Wires = 0 ( 0 ) Faces = 0 ( 0 ) Shells = 0 ( 0 ) Solids = 0 ( 0 )
-NBSHAPES : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 0 ( 0 ) Summary = 2830 ( 2830 )
-STATSHAPE : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 0 ( 0 ) FreeWire = 0 ( 0 ) FreeEdge = 944 ( 944 ) SharedEdge = 944 ( 944 )
-TOLERANCE : MaxTol = 1e-07 ( 1e-07 ) AvgTol = 1e-07 ( 1e-07 )
-LABELS : N0Labels = 944 ( 944 ) N1Labels = 0 ( 0 ) N2Labels = 0 ( 0 ) TotalLabels = 944 ( 944 ) NameLabels = 944 ( 944 ) ColorLabels = 944 ( 944 ) LayerLabels = 0 ( 0 )
+NBSHAPES : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 410 ( 410 ) Summary = 11585 ( 11585 )
+STATSHAPE : Solid = 0 ( 0 ) Shell = 0 ( 0 ) Face = 410 ( 410 ) FreeWire = 410 ( 410 ) FreeEdge = 2910 ( 2910 ) SharedEdge = 4569 ( 4569 )
+TOLERANCE : MaxTol = 0.6309534605 ( 0.6309534603 ) AvgTol = 0.01007170672 ( 0.0100718085 )
+LABELS : N0Labels = 1 ( 1 ) N1Labels = 1651 ( 2074 ) N2Labels = 0 ( 0 ) TotalLabels = 1652 ( 2075 ) NameLabels = 1652 ( 2053 ) ColorLabels = 1651 ( 2074 ) LayerLabels = 0 ( 0 )
PROPS : Centroid = 0 ( 0 ) Volume = 0 ( 0 ) Area = 0 ( 0 )
NCOLORS : NColors = 1 ( 1 )
COLORS : Colors = WHITE ( WHITE )