Avatar

LeAxe Tests (Geodäsie/Vermessung)

AWO, Nussbaumen AG, Saturday, 22.08.2009, 12:14 (vor 5361 Tagen) @ MichaeL

Hab mir gerade Roaded auf meinen Rechner gespielt. Es funktioniert im Gegensatz zu Leica40 (die Version mag kein 64bit).
Das Programm testet ja Achsdaten. Aber stürzt ab, bzw verursacht eine Endlosschleife, wenn die 73 hinter der 74 steht. Ich glaube nicht, dass es dann auf einem Gerät läuft.


So sollte es gehen, oder? Oder bringt das Nachteile mit sich? Sicherlich nicht besonders schön verpackt ;)

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 
                // bei Curvein bzw -out incl 74....-0000000000170152 
 
      for (int i=0; i<this.countStations(); i++) {
       AxisStation as = this.getStation(i);
       if (this.gsiType == Axis.GSI16) 
        pw.print("*");
 
       // Methode 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) );
                                pw.print( "73...." + this.formGSIString("NON") );
       }
 
       else if (type == Axis.CURVE) {
        pw.print( "72...." + this.formGSIString(as.getRadius()*1000.0) );
                                pw.print( "73...." + this.formGSIString("NON") );
       }
 
       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( "73...." + this.formGSIString("NON") );
        pw.print( "74...." + this.formGSIString(asBeh.getRadius()*1000.0) );
       }
 
       else { //EOP und STRAIGHT
        pw.print( "72...." + this.formGSIString("NON") );
                                pw.print( "73...." + this.formGSIString("NON") );
       }
                        // 81 und 82 Block ans Ende scheiben     
       pw.print( "81..10" + this.formGSIString( as.getY()*1000.0 ) );
       pw.print( "82..10" + this.formGSIString( as.getX()*1000.0 ) );
 

gesamter Thread:

 RSS-Feed dieser Diskussion