CAD → 3d-PDF

Ein Kochrezept

Um mit einem CAD Programm entworfene 3d_Objekte anschaulich im Internet zu präsentieren, kann man im Prinzip zwei Hilfsmittel verwenden:

  • VRML / X3D

  • 3d-PDF

Normalerweise findet man in den CAD Programmen neben der Speichern - Funktion auch eine Export - Funktion; erstere speichert in dem mit dem CAD-Programm verknüpften Format ab, was man z.B. benötigt, wenn man sein Objekt weiter bearbeiten will, die andere exportiert im Format einer anderen Anwendung ab.

  • VRML / X3D
    Arbeitet man etwa in Blender, so speichert man das fertige Objekt unter Beispiel.blend ab, kann es aber auch exportieren z.B. als Beispiel.wrl. Während man die Datei Beispiel.blend nur in Blender öffnen kann, läßt sich Beispiel.wrl in einem Browser betrachten (nachdem man ein PlugIn installiert hat).
    Die Darstellung eines fertig modellierten Objektes mit VRML ist ganz einfach:
    VRML-Player PlugIn installieren + Objekt exportieren → im Browser betrachten

  • 3d-PDF
    Die Herstellung eines 3d-PDF etwas komplizierter, vor allem wenn man den Ankauf teurer Software vermeiden will.
    In das PDF einbetten kann man nämlich keine beliebigen CAD Dateien, sondern (bevorzugt) solche im U3D Format. Beim universellen 3D Format handelt es sich um ein durch das 3D Industry Forum (dazu gehören unter anderem Intel, HP und Adobe) standardisiertes Format, einem herstellerübergreifenden Austauschformat für dreidimensionale Daten aller Art.

Voraussetzungen (was wird benötigt):

  • ein Cad Programm zum Entwurf des Objektes, hier an Hand von Blender 2.63 (oder ein beliebiges anderes)

  • das Programm MeshLab zum Konvertieren in das PDF-taugliche U3D-Format. MeshLab ist eigentlich gedacht zur Nachbearbeitung eines Mesh Objektes (= Objekt, das durch einen Punkte- und Flächenarray festgelegt ist)
    und als solches ein sehr mächtiges Werkzeug. Es kann heruntergeladen werden von http://meshlab.sourceforge.net/ (ca. 21 MB). Zu beachten ist, dass es auch Versionen gibt, die Virtual C++ verlangen, diese kann man vermeiden, wenn man nicht den Rechner mit zusätzlicher Software zumüllen will. Von allen Funktionen wird nur die Konvertierung benötigt.
    Achtung: wenn das CAD Programm den Export als U3D erlaubt, entfällt dieser Schritt möglicherweise

  • das Programm TeXworks zur Herstellung des PDF. Dabei handelt es sich um ein Editierprogramm für Tex Dokumente von LaTex. Auch hier wird nur ein kleiner Teil aller Funktionen benötigt. Es kann heruntergeladen werden von http://www.tug.org/texworks/ (ca. 158 MB).

1. Schritt

In Blender wird ein Objekt entworfen, hier der Standardwürfel.

Dieser wird einmal (aus Gewohnheit) gespeichert unter untitled.blend und anschließend im COLLADA Format exportiert als untitled.dae

COLLADA ist ein Austauschformat für Daten verschiedener CAD-Programme, näheres siehe

http://de.wikipedia.org/wiki/Collada_%28Speicherformat%29

untitled.dae sieht so aus (was einen aber nicht interessieren muss):

 

<?xml version="1.0" encoding="utf-8"?>

<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">

  <asset>

    <contributor>

      <author>Blender User</author>

      <authoring_tool>Blender 2.63.0 r46461:46487M</authoring_tool>

    </contributor>

    <created>2013-09-02T18:45:38</created>

    <modified>2013-09-02T18:45:38</modified>

    <unit name="meter" meter="1"/>

    <up_axis>Z_UP</up_axis>

  </asset>

  <library_cameras>

    <camera id="Camera-camera" name="Camera">

      <optics>

        <technique_common>

          <perspective>

            <xfov sid="xfov">49.13434</xfov>

            <aspect_ratio>1.777778</aspect_ratio>

            <znear sid="znear">0.1</znear>

            <zfar sid="zfar">100</zfar>

          </perspective>

        </technique_common>

....................................

2. Schritt

MeshLab wird geöffnet und die Datei untitled.dae importiert

File - Import Mesh - untitled.dae

Man sieht den Würfel (und kann ihn bewegen).

Gleich (ohne irgendwelche Aktionen) wird wieder exportiert,
File - Export Mesh As - ....

Es werden zwei Dateien erzeugt:

untitled.u3d

untitled.tex

Achtung:

wenn das CAD Programm den Export als U3D erlaubt, kann möglicherweise  dieser Schritt entfallen (muss getestet werden)

3. Schritt

Mit TexWorks wird die Datei untitled.tex geöffnet und in PDF umgewandelt. Man hat das 3D-PDF erhalten.

 

4. Weiterarbeit & Infos rundherum (redundante Informationen für das Thema)

  • Vielleicht möchte man auch mehrere PDF's zusammenfügen zu einem Skriptum aus Texten, Angabezeichnungen, 3D-PDF's: dann verwendet man am besten ein weiteres Gratiswerkzeug, etwa
    PDF-Architekt
    erhältlich zum Herunterladen bei:
    http://de.pdfarchitect.org/

  • VRML * X3D
    Aus der Datei untitled.dae lassen sich mit der Exportfunktion von MeshLab auch die Dateien untitled.wrl und untitled.x3d generieren.

So sieht der Anfang der VRML-Datei aus:
#VRML V2.0 utf8
NavigationInfo headlight="false"
                visibilityLimit="0.0"
                type='"EXAMINE", "ANY"'
                avatarSize="0.25, 1.75, 0.75"
                /
Background DEF="WO_World"
           groundColor="0.051 0.051 0.051"
           skyColor="0.051 0.051 0.051"
           /
Transform DEF="Cube_TRANSFORM"
          translation="0.000000 0.000000 0.000000"
          scale="1.000000 1.000000 1.000000"
          rotation="0.000000 0.707107 0.707107 3.141593"
................

So sieht der Anfang der X3D-Datei aus:

 

<X3D version="3.0" profile="Immersive" xsd:noNamespaceSchemaLocation="http://www.web3d.org/specifications/x3d-3.0.xsd">

<head>

<meta name="filename" content="untitled.x3d"/><meta name="generator" content="Blender 2.63 (sub 0)"/>

</head>

<Scene>

NavigationInfo headlight="false" visibilityLimit="0.0"

type=""EXAMINE", "ANY"" avatarSize="0.25, 1.75, 0.75"/>

<Background DEF="WO_World" groundColor="0.051 0.051 0.051" SkyColor="0.051 0.051 0.051"/>

<Transform DEF="Cube_TRANSFORM" translation="0.000000 0.000000 0.000000" scale="1.000000 1.000000 1.000000"

rotation="0.000000 0.707107 0.707107 3.141593">

<Transform DEF="Cube_ifs_TRANSFORM"

translation="0.000000 0.000000 0.000000"

scale="1.000000 1.000000 1.000000"

rotation="1.000000 0.000000 0.000000 0.000000">

........