Difference between revisions of "3d pdf"

From PyMOLWiki
Jump to navigation Jump to search
Line 17: Line 17:
  
 
== Convert the IDTF to U3D ==  
 
== Convert the IDTF to U3D ==  
# Download '''Universal 3D Sample Software - u3d converter - IDTF to U3D''', and extract to Desktop or C:\Program Files.<br>
+
=== Quick ===
 +
# Download '''Universal 3D Sample Software - u3d converter - IDTF to U3D''', and extract to Desktop<br>
 
# Navigate to the '''bin''' folder: \Desktop\U3D_A_061228_5\Bin\Win32\Release <br>
 
# Navigate to the '''bin''' folder: \Desktop\U3D_A_061228_5\Bin\Win32\Release <br>
 
# Copy '''pymol.idtf''' in here.
 
# Copy '''pymol.idtf''' in here.
Line 23: Line 24:
 
Then copy this inot command window:
 
Then copy this inot command window:
 
  IDTFConverter -input pymol.idtf -output pymol.u3d
 
  IDTFConverter -input pymol.idtf -output pymol.u3d
 +
Copy the pymol.u3d into your LaTeX folder
 +
=== General ===
 +
# Download '''Universal 3D Sample Software - u3d converter - IDTF to U3D''', and extract to C:\Program Files (x86)\U3D_A_061228_5.<br>
 +
# Make a '''IDTF2U3D.bat''' and afterwards copy to '''C:\Windows'''.
 +
<source lang="bat">
 +
@echo off
 +
rem -- Run IDTFConverter --
 +
set IDTF_EXE_DIR=C:\Program Files (x86)\U3D_A_061228_5\Bin\Win32\Release
 +
 +
if exist "%IDTF_EXE_DIR%\IDTFConverter.exe" goto haveProg
 +
echo "%IDTF_EXE_DIR%\IDTFConverter.exe" not found
 +
goto eof
 +
 +
:haveProg
 +
if .%1==. goto noarg
 +
 +
"%IDTF_EXE_DIR%\IDTFConverter.exe" -input %1 -output %~n1.u3d
 +
goto eof
 +
 +
:noarg
 +
echo no arguments given.
 +
echo IDTF2U3D pymol.idtf
 +
 +
:eof
 +
echo Done
 +
</source>
 +
# Navigate to '''pymol.idtf'''. Right click, Open with..., Browse to: '''C:\Windows''' and select '''IDTF2U3D.bat'''
 
Copy the pymol.u3d into your LaTeX folder
 
Copy the pymol.u3d into your LaTeX folder
  

Revision as of 16:44, 3 March 2013

Overview

PyMOL can convert to formats (vrml2 and idtf) that can be converted to a 3D PDF (will not work with most PDF browser plugins; must be downloaded and viewed with certain viewers liked Adobe Acrobat 9.2+).

Requirements

Get IDFT file from PyMOL

  • Save your molecule to an IDTF file in PyMOL:
save pymol.idtf, *

PyMOL will print a line that looks like:

 3Daac=20.0, 3Droll=0, 3Dc2c=0 0 1, 3Droo=62.45, 3Dcoo=0 0 -62.45

copy this line into the pymol.tex file overwriting the same line in the file.

Convert the IDTF to U3D

Quick

  1. Download Universal 3D Sample Software - u3d converter - IDTF to U3D, and extract to Desktop
  2. Navigate to the bin folder: \Desktop\U3D_A_061228_5\Bin\Win32\Release
  3. Copy pymol.idtf in here.
  4. Hold shift key, right click in folder, click Open command window here.

Then copy this inot command window:

IDTFConverter -input pymol.idtf -output pymol.u3d

Copy the pymol.u3d into your LaTeX folder

General

  1. Download Universal 3D Sample Software - u3d converter - IDTF to U3D, and extract to C:\Program Files (x86)\U3D_A_061228_5.
  2. Make a IDTF2U3D.bat and afterwards copy to C:\Windows.
@echo off
rem -- Run IDTFConverter --
set IDTF_EXE_DIR=C:\Program Files (x86)\U3D_A_061228_5\Bin\Win32\Release

if exist "%IDTF_EXE_DIR%\IDTFConverter.exe" goto haveProg
echo "%IDTF_EXE_DIR%\IDTFConverter.exe" not found
goto eof

:haveProg
if .%1==. goto noarg

"%IDTF_EXE_DIR%\IDTFConverter.exe" -input %1 -output %~n1.u3d 
goto eof

:noarg
echo no arguments given.
echo IDTF2U3D pymol.idtf

:eof
echo Done
  1. Navigate to pymol.idtf. Right click, Open with..., Browse to: C:\Windows and select IDTF2U3D.bat

Copy the pymol.u3d into your LaTeX folder

LaTeX code

Example 3D PDF

  • The following LaTeX code saved as "pymol.tex":
\documentclass[a4paper]{article}
\usepackage[3D]{movie15}
\usepackage[UKenglish]{babel}
\usepackage[colorlinks=true]{hyperref} 
\begin{document}
\title{PyMOL 3D Objects in PDF}
\author{Jason Vertrees}
\maketitle
\begin{figure}[!htb]
\centering
\includemovie[
poster,
toolbar, %same as `controls'
label=pymol.ud3
text=(pymol.u3d),
3Dlights=CAD,
% replace the next line with what PyMOL output
3Daac=20.0, 3Droll=0, 3Dc2c=0 0 1, 3Droo=243.39, 3Dcoo=0 0 -243.39
]{\linewidth}{\linewidth}{pymol.u3d}
\caption{A PyMOL object embedded in PDF, using U3D data format.}
\label{pym:ex3d}
\end{figure}
\end{document}

LaTeX beamer presentation

Download Example, and open in acrobat reader: beamer PDF

\documentclass{beamer}
\usepackage[3D]{movie15}
\usepackage[UKenglish]{babel}

%% See: http://en.wikibooks.org/wiki/LaTeX/Presentations
%% See: http://www.hartwork.org/beamer-theme-matrix/
\usetheme{Copenhagen} 
\usecolortheme{beaver}

\begin{document}
\title{Simple Beamer Class}   
\author{Troels Linnet} 
\date{\today} 
\frame{\titlepage} 
\frame{\frametitle{Table of contents}\tableofcontents} 

\section{3D object} 
\frame{\frametitle{Pymol 3D object}
\begin{figure}[!htb]
\centering
\includemovie[
poster,
toolbar, %same as `controls'
label=pymol.ud3
text=(pymol.u3d),
3Dlights=CAD,
% replace the next line with what PyMOL output
3Daac=20.0, 3Droll=0, 3Dc2c=0 0 1, 3Droo=243.39, 3Dcoo=0 0 -243.39
]{10cm}{6cm}{pymol.u3d}
\caption{A PyMOL object embedded in PDF, using U3D data format.}
\label{pym:ex3d}
\end{figure}
}

\section{Lists}
\subsection{Lists I}
\frame{\frametitle{Unnumbered lists}
\begin{block}{My bloc}
test of bloc
\end{block}

\begin{itemize}
\item Introduction to  \LaTeX  
\item Beamer class
\end{itemize} 
}

\end{document}
  • Create the PDF using LaTeX:
 pdflatex pymol.tex

Caveats

  • Currently you have to compile the u3d converter on Linux. I did that with:
cmake .
make

which created "IDTFConverter" that I used above.

  • Some versions of Acrobat on Linux incorrectly parse the 3D data. Adobe knows about this and plans to fix it. Ironically, I created a 3D PDF on Linux but could only view it on Mac OS X.

Linux install

(This section is not working. How to build this ???)

sudo yum install perl-XML-Parser perl-XML-Simple

Download zip

unzip U3D_A_061228_5.zip
cd ~/Downloads/U3D_A_061228_5/Source
setenv U3D_SOURCE $PWD/
#Comment win, uncomment Linus lines
nano $U3D_SOURCE/Config/u3d.conf
setenv U3D_LIBDIR {$U3D_SOURCE}Build/U3D
setenv PATH ${PATH}:{$U3D_LIBDIR}
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:{$U3D_LIBDIR}
cd $U3D_SOURCE/Tools/BuildSystem
chmod +x build.sh
./build.sh release
alias IDTFConverter $PWD/??

More on 3D PDFs

See Also