• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

[ERLEDIGT] Step-Datei im Internet Explorer 11

Hitega_Brandlhuber

Neues Mitglied
Hallo Community,

ich habe folgendes Problem.

Wir haben in unserer Firma ein Intranet-Portal geschrieben, in dem wir u.a. 3D-Zeichnungen hochladen und anschauen wollen. Dabei handelt es sich um sogenannte Step-Dateien (.stp).

Im Firefox Version 31.3.0 werden diese Dateien korrekt angezeigt.
Im Internet Explorer 11 wird diese jedoch in ein unübersichtliches Textformat umgewandelt.

Wie schaffe ich es, dass die stp-Dateien korrekt im Internet Explorer 11 dargestellt werden?
 
Werbung:
Hallo Community,

ich habe folgendes Problem.

Wir haben in unserer Firma ein Intranet-Portal geschrieben, in dem wir u.a. 3D-Zeichnungen hochladen und anschauen wollen. Dabei handelt es sich um sogenannte Step-Dateien (.stp).

Im Firefox Version 31.3.0 werden diese Dateien korrekt angezeigt.
Im Internet Explorer 11 wird diese jedoch in ein unübersichtliches Textformat umgewandelt.

Wie schaffe ich es, dass die stp-Dateien korrekt im Internet Explorer 11 dargestellt werden?

http://caniuse.com/#feat=webgl

Wie rufst du die Dateien denn auf?
Via Deeplinking? Oder hast du schon eine JavaScript Library im Einsatz?
 
http://caniuse.com/#feat=webgl

Wie rufst du die Dateien denn auf?
Via Deeplinking? Oder hast du schon eine JavaScript Library im Einsatz?

Die Datei rufe ich über einen normalen href auf.
Hier mal mein Dateiaufruf.

echo '<a href="index.php?Link=zeichnungsverwaltung&SubLink=zv_details&KopfID='.$szKopfID.'&DelZeichnung='.$row['KEY_POS_ID'].'">';
echo '<img src="images/kreuz_rot.png" width="12" heigth="12" style="vertical-align:bottom; margin-right:15px;">';
echo '</a>';
 
Werbung:
Die Datei rufe ich über einen normalen href auf.
Hier mal mein Dateiaufruf.

echo '<a href="index.php?Link=zeichnungsverwaltung&SubLink=zv_details&KopfID='.$szKopfID.'&DelZeichnung='.$row['KEY_POS_ID'].'">';
echo '<img src="images/kreuz_rot.png" width="12" heigth="12" style="vertical-align:bottom; margin-right:15px;">';
echo '</a>';

Ich habe zwar nie mit WebGL gearbeitet, aber ich denke so einfach geht das nicht.
Ich vermute eher du hast im FF ein Plugin installiert, welches mit STP umgehen kann.
Mein Firefox kann das jedenfalls nicht (und auch sonst keiner meiner Browser):
http://www.steptools.com/support/stdev_docs/stpfiles/ap203/1797609in.stp

Entweder du suchst also noch ein Plugin für IE und installierst es überall, oder du verwendest eine JS Library wie zB Three.js.
Konnte spontan jedoch keine einzige finden die mit .stp-Files umgehen kann.
 
Ich habe mir mal die Three.js einmal angesehen. Mit der kann man direkt sehen, was gezeichnet wurde.

Wir brauchen den Text den ich hier fett markiert habe. Das wird im Firefox so angezeigt.

ISO-10303-21;
HEADER;
/* Exchange file generated using ST-DEVELOPER 1.6 */

FILE_DESCRIPTION(
/* description */ ('STEP AP203 File'),
/* implementation_level */ '2;1');

FILE_NAME(
/* name */ '1797609in',
/* time_stamp */ '1999-02-11T15:33:57-05:00',
/* author */ ('Name'),
/* organization */ ('STEP Tools, Inc.'),
/* preprocessor_version */ 'ST-DEVELOPER 1.6',
/* originating_system */ 'ST-ACIS',
/* authorisation */ 'Name');

FILE_SCHEMA (('CONFIG_CONTROL_DESIGN'));
ENDSEC;

DATA;
#10=ORIENTED_EDGE('',*,*,#11,.T.);
#11=EDGE_CURVE('',#13,#13,#12,.T.);
#12=INTERSECTION_CURVE('',#2476,(#2340,#2471),.CURVE_3D.);
#13=VERTEX_POINT('',#14);
#14=CARTESIAN_POINT('',(-1.06945,-0.92765,0.184));
#15=FACE_BOUND('',#16,.T.);
...


Im Internet Explorer wird jedoch folgendes Durcheinander angezeigt:

ISO-10303-21; HEADER; FILE_DESCRIPTION (( 'STEP AP203' ), '1' ); FILE_NAME ('YN5443_F00082843_ZAHNRADGEHAEUSE.STEP', '2014-11-12T13:04:58', ( '' ), ( '' ), 'SwSTEP 2.0', 'SolidWorks 2013', '' ); FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' )); ENDSEC; DATA; #1 = EDGE_CURVE ( 'NONE', #2075, #9800, #11536, .T. ) ; #2 = CARTESIAN_POINT ( 'NONE', ( -2.795245687107156500, 26.00000000000000400, 10.43199892392195400 ) ) ; #3 = EDGE_LOOP ( 'NONE', ( #11286, #2043, #2810, #7545 ) ) ; #4 = VECTOR ( 'NONE', #11836, 1000.000000000000000 ) ; #5 = PERSON_AND_ORGANIZATION ( #4646, #8859 ) ; #6 = DIRECTION ( 'NONE', ( -1.484255380514915200E-016, 0.0000000000000000000, -1.000000000000000000 ) ) ; #7 = ORIENTED_EDGE ( 'NONE', *, *, #8152, .F. ) ; #8 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.0000000000000000000, -1.484255380514915200E-016 ) ) ; #9 = EDGE_CURVE ( 'NONE', #5434, #5575, #10484, .T. ) ; #10 = EDGE_LOOP ( 'NONE', ( #11091, #1196, #2073, #8731 ) ) ; #11 = VECTOR ( 'NONE', #2664, 1000.000000000000000 ) ; #12 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ; #13 = ORIENTED_EDGE ( 'NONE', *, *, #5167, .T. ) ; #14 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, ( #5715, #4765, #6635, #1072, #7547, #1972, #8488, #2928, #9384, #3876, #10298, #4805, #11253, #629, #768, #1398, #11386, #5887, #296, #6814, #1251, #7735, #2149, #8652, #3104, #9551, #4048, #10466 ), .UNSPECIFIED., .F., .F., ( 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ), ( 0.0005014583550332888800, 0.0009745642569724791300, 0.001447670158911669300, 0.001920776060850859400, 0.002393881962790049600, 0.003340093766668429800, 0.003813199668607616100, 0.004286305570546801400, 0.005232517374425184300, 0.005705623276364370600, 0.006178729178303557700, 0.006651835080242744800, 0.007124940982181931000, 0.008071152786060300000 ), .UNSPECIFIED. ) ; #15 = EDGE_CURVE ( 'NONE', #1784, #8951, #5645, .T. ) ; #16 = ORIENTED_EDGE ( 'NONE', *, *, #8784, .F. ) ; #17 = CONICAL_SURFACE ( 'NONE', #9088, 1.649999999999998600, 1.029744258676652800 ) ; #18 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ; #19 = VECTOR ( 'NONE', #6668, 1000.000000000000000 ) ; #20 = EDGE_LOOP ( 'NONE', ( #11363, #8006, #6084, #4832, #3241 ) ) ; #21 = ORIENTED_EDGE ( 'NONE', *, *, #501, .T. ) ; #22 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ; #24 = DIRECTION ( 'NONE'

Bei uns ist es nicht so wichtig, dass wir die Zeichnung im Browser sehen können. Es geht hier nur ums archivieren und aufbewahren.

Trotzdem vielen Dank für diese API. Früher oder später kann ich die bestimmt irgendwo gebrauchen :)
 
Ich habe mir mal die Three.js einmal angesehen. Mit der kann man direkt sehen, was gezeichnet wurde.

Wir brauchen den Text den ich hier fett markiert habe. Das wird im Firefox so angezeigt.

ISO-10303-21;
HEADER;
/* Exchange file generated using ST-DEVELOPER 1.6 */

FILE_DESCRIPTION(
/* description */ ('STEP AP203 File'),
/* implementation_level */ '2;1');

FILE_NAME(
/* name */ '1797609in',
/* time_stamp */ '1999-02-11T15:33:57-05:00',
/* author */ ('Name'),
/* organization */ ('STEP Tools, Inc.'),
/* preprocessor_version */ 'ST-DEVELOPER 1.6',
/* originating_system */ 'ST-ACIS',
/* authorisation */ 'Name');

FILE_SCHEMA (('CONFIG_CONTROL_DESIGN'));
ENDSEC;

DATA;
#10=ORIENTED_EDGE('',*,*,#11,.T.);
#11=EDGE_CURVE('',#13,#13,#12,.T.);
#12=INTERSECTION_CURVE('',#2476,(#2340,#2471),.CURVE_3D.);
#13=VERTEX_POINT('',#14);
#14=CARTESIAN_POINT('',(-1.06945,-0.92765,0.184));
#15=FACE_BOUND('',#16,.T.);
...


Im Internet Explorer wird jedoch folgendes Durcheinander angezeigt:

ISO-10303-21; HEADER; FILE_DESCRIPTION (( 'STEP AP203' ), '1' ); FILE_NAME ('YN5443_F00082843_ZAHNRADGEHAEUSE.STEP', '2014-11-12T13:04:58', ( '' ), ( '' ), 'SwSTEP 2.0', 'SolidWorks 2013', '' ); FILE_SCHEMA (( 'CONFIG_CONTROL_DESIGN' )); ENDSEC; DATA; #1 = EDGE_CURVE ( 'NONE', #2075, #9800, #11536, .T. ) ; #2 = CARTESIAN_POINT ( 'NONE', ( -2.795245687107156500, 26.00000000000000400, 10.43199892392195400 ) ) ; #3 = EDGE_LOOP ( 'NONE', ( #11286, #2043, #2810, #7545 ) ) ; #4 = VECTOR ( 'NONE', #11836, 1000.000000000000000 ) ; #5 = PERSON_AND_ORGANIZATION ( #4646, #8859 ) ; #6 = DIRECTION ( 'NONE', ( -1.484255380514915200E-016, 0.0000000000000000000, -1.000000000000000000 ) ) ; #7 = ORIENTED_EDGE ( 'NONE', *, *, #8152, .F. ) ; #8 = DIRECTION ( 'NONE', ( 1.000000000000000000, -0.0000000000000000000, -1.484255380514915200E-016 ) ) ; #9 = EDGE_CURVE ( 'NONE', #5434, #5575, #10484, .T. ) ; #10 = EDGE_LOOP ( 'NONE', ( #11091, #1196, #2073, #8731 ) ) ; #11 = VECTOR ( 'NONE', #2664, 1000.000000000000000 ) ; #12 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ; #13 = ORIENTED_EDGE ( 'NONE', *, *, #5167, .T. ) ; #14 = B_SPLINE_CURVE_WITH_KNOTS ( 'NONE', 3, ( #5715, #4765, #6635, #1072, #7547, #1972, #8488, #2928, #9384, #3876, #10298, #4805, #11253, #629, #768, #1398, #11386, #5887, #296, #6814, #1251, #7735, #2149, #8652, #3104, #9551, #4048, #10466 ), .UNSPECIFIED., .F., .F., ( 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 ), ( 0.0005014583550332888800, 0.0009745642569724791300, 0.001447670158911669300, 0.001920776060850859400, 0.002393881962790049600, 0.003340093766668429800, 0.003813199668607616100, 0.004286305570546801400, 0.005232517374425184300, 0.005705623276364370600, 0.006178729178303557700, 0.006651835080242744800, 0.007124940982181931000, 0.008071152786060300000 ), .UNSPECIFIED. ) ; #15 = EDGE_CURVE ( 'NONE', #1784, #8951, #5645, .T. ) ; #16 = ORIENTED_EDGE ( 'NONE', *, *, #8784, .F. ) ; #17 = CONICAL_SURFACE ( 'NONE', #9088, 1.649999999999998600, 1.029744258676652800 ) ; #18 = DIRECTION ( 'NONE', ( 0.0000000000000000000, 0.0000000000000000000, 1.000000000000000000 ) ) ; #19 = VECTOR ( 'NONE', #6668, 1000.000000000000000 ) ; #20 = EDGE_LOOP ( 'NONE', ( #11363, #8006, #6084, #4832, #3241 ) ) ; #21 = ORIENTED_EDGE ( 'NONE', *, *, #501, .T. ) ; #22 = DIRECTION ( 'NONE', ( 0.0000000000000000000, -1.000000000000000000, 0.0000000000000000000 ) ) ; #24 = DIRECTION ( 'NONE'

Bei uns ist es nicht so wichtig, dass wir die Zeichnung im Browser sehen können. Es geht hier nur ums archivieren und aufbewahren.

Trotzdem vielen Dank für diese API. Früher oder später kann ich die bestimmt irgendwo gebrauchen :)

Nachtrag
Ich habe deinen Link mal im IE und FF geöffnet.
In beiden Browsern stellt er es nur dann richtig dar, wenn man die Datei direkt in das Fenster schiebt, jedoch nicht, wenn es per href aufgerufen wird.

Kann es an meiner Apache- oder PHP-Konfiguration liegen, dass es falsch verarbeitet wird?
 
Werbung:
Nachtrag
Ich habe deinen Link mal im IE und FF geöffnet.
In beiden Browsern stellt er es nur dann richtig dar, wenn man die Datei direkt in das Fenster schiebt, jedoch nicht, wenn es per href aufgerufen wird.

Ok, ich dachte du willst das Modell anzeigen.

Kann es an meiner Apache- oder PHP-Konfiguration liegen, dass es falsch verarbeitet wird?

Denke nicht, es liegt am Internet Explorer selbst. Zumindest meiner Meinung nach ein Browserfehler.
Scheint so als würde automatisch als HTML eingestuft.

Da ich leider keinen zur Hand habe, kann ich das aber gerade nicht testen.
Versuch mal vor der Ausgabe folgenden Code einzufügen:
PHP:
header("Content-Type:text/plain");
oder
PHP:
header("Content-Type:application/STEP");
 
Zuletzt bearbeitet:
Der Hinweis mit dem Header hat funktioniert.
Es scheint tatsächlich, dass der Internet Explorer mit der .step-Datei nichts anfangen konnte und deshalb so lange probiert hat, bis etwas gepasst hat. Zum Schluss hat er es in ein HTML-Format umgewandelt.

Mit dem
PHP:
header("Content-Type:text/plain");
wird der Text wirklich im Textformat angezeigt.

Mit diesem MIME-Type konnten beide Browser nichts anfangen und boten es zum Download an.
PHP:
header("Content-Type:application/STEP");

Nun meiner Lösungsbeschreibung:

Mein href wird jetzt in Abhängigkeit des Dateityps umgelegt.

PHP:
switch( strtolower($row['DATEITYP']) )
{
    case 'step':
    case 'stp': $szDateiLinkStart = '<a href="'.$_SERVER['REQUEST_URI'].'&Pfad='.$row['DATEIPFAD'].'&DateiName='.$row['DATEINAME'].'" target="blank">'; break;
             
    default: $szDateiLinkStart = '<a href="'.$szPath.$row['DATEIPFAD'].'/'.$row['DATEINAME'].'" target="blank">'; break;
}


Bei der Step-Datei wird jetzt nicht mehr direkt auf die Datei verwiesen, sondern bevor irgendeine Ausgabe gemacht wird, die Datei mit dem Header geöffnet.

PHP:
if ( isset($_GET['Link']) && $_GET['Link'] == 'ZV' && isset($_GET['SubLink']) && isset($_GET['Pfad']) && isset($_GET['DateiName']) ) {
   $szPath = constant( "ARTIKEL_DOKUMENTE" ).$_GET['Pfad'].'/'.$_GET['DateiName'];
 
   header('Content-Type: application/STEP');
   $File = file_get_contents($szPath);
   echo $File;
   exit();
}

Ich habe im Web auch folgenden Link gefunden, in dem das mit dem Header ganz gut erklärt wird.

http://www.peterkropff.de/tutorials/php_header/dateien.htm

Achtung:
Wenn HTML-Kommentare oder Javascript-Blöcke mit <javascript type="text/javascript"> vor dem Aufruf kommen, werden diese in der Ausgabe mit angezeigt. Stellt also sicher, dass die Datei davor geöffnet wird.
 
Zuletzt bearbeitet:
Zurück
Oben