Avatar

LeAxe Tests (Geodäsie/Vermessung)

MichaeL ⌂, Bad Vilbel, Saturday, 22.08.2009, 11:54 (vor 5362 Tagen) @ AWO

Hi Andy,

Keine Ahnung, ob das auf dem Gerät ein Problem werden kann, aber Du schreibst die 74 hinter der 72 und danach die 73 bei curvein/-out.

Ich denke nicht, dass dies zu einem Problem führen wird. Das GSI-Format ist nicht fest sondern sehr flexibel und ich hoffe, die Geräte auch.

Da der 73-Block per Default keinen Inhalt hat - so Eure Meinungen - füge ich ihn am Ende erst ein. Sonst müsste ich ihn in jeder Bedingung extra aufführen. Ich zeig Dir mal den Code, ich denke, Du kannst Ihn lesen:

 
      pw = new PrintWriter(new BufferedWriter(new FileWriter( f )));
 
      // 41....+00000001 42....+HZALIGNM 43....+STACOORD 
      if (this.gsiType == Axis.GSI16) 
       pw.print("*");
      pw.print( "41...." + this.formGSIString(String.valueOf(this.axisid)) );
      pw.print( "42...." + this.formGSIString("HZALIGNM") );
      pw.print( "43...." + this.formGSIString("STACOORD") );
      pw.println();
      // 11....+00000000 71....+STRAIGHT 72....+00000NON 73....+00000NON 81..10+28375746 82..10+11777234 
      // 11....+00021891 71....+000CURVE 72....+00500000 73....+00000NON 81..10+28397637 82..10+11777340 
 
      for (int i=0; i<this.countStations(); i++) {
       AxisStation as = this.getStation(i);
       if (this.gsiType == Axis.GSI16) 
        pw.print("*");
 
       // Methode von Andy zum Ermitteln des Kurvensegments SPIRIN, SPIROUT usw.     
       int type = this.getType(i);
 
       pw.print( "11...." + this.formGSIString( as.getStation()*1000.0 ) );
       pw.print( "71...." + this.formGSIString( this.keyWords[type] ) );
 
 
       if (type == Axis.SPIRIN || type == Axis.SPIROUT) {
           pw.print( "72...." + this.formGSIString(as.getClothoidParameter()*1000.0) );
       }
 
       else if (type == Axis.CURVE) {
        pw.print( "72...." + this.formGSIString(as.getRadius()*1000.0) );
       }
 
       else if ((type == Axis.CURVEIN || type == Axis.CURVEOUT) && i>0 && i<this.countStations()) {
        AxisStation asPre = this.getStation(i-1);
        AxisStation asBeh = this.getStation(i+1);
        pw.print( "72...." + this.formGSIString(asPre.getRadius()*1000.0) );
        pw.print( "74...." + this.formGSIString(asBeh.getRadius()*1000.0) );
       }
 
       else { //EOP und STRAIGHT
        pw.print( "72...." + this.formGSIString("NON") );
       }
// 73 Block immer leer also ans Ende per default       
       pw.print( "73...." + this.formGSIString("NON") );
       pw.print( "81..10" + this.formGSIString( as.getY()*1000.0 ) );
       pw.print( "82..10" + this.formGSIString( as.getX()*1000.0 ) );
 
       pw.println();
      }

Dieses this.formGSIString formatiert nur den String GSI gerecht (Auffüllen mit Nullen, auf Länge trimmen, GSI-8 vs. GSI-16)


Gruß Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Tags:
LeAxe, Java, GSI, Achse


gesamter Thread:

 RSS-Feed dieser Diskussion