I have made some basic u3d files from Solid Edge models using Acrobat 3d Toolkit. These models should now be combined to create other models (for example, some of them represent pipings that have to be connected in different ways). I don't want to do all these combinations in Solid Edge and then convert them in u3d because the possible combinations are about 10000. All 10000 resulting u3d files should be then placed in different pdf files. Is there a way to combine the basic u3d files programmatically? I'm a Java programmer, so it would be great for me to find a way to create a Java program that manipulates the basic u3d files to create all the 10000 combinations. Is there a Java lib that manipulates u3d files? Is there another way to do this work?
Universal3D is an open standard so anyone can in theory write a library to edit/merge them - but quite frankly the internal structure of a U3D file is a horrible thing to work with, so not many developers have bothered. I'd start by inspecting how the U3D creation classes in iText work, they're very basic but you have someplace to begin - http://itextpdf.com/
Dave - are you sure iText can create U3D, not only embed preexisting U3D into PDF? Have a prooflink?
gitex0109 - first try the current version of the 3D Toolkit, current name - SAP Visual Enterprise Author.
If you look for an automated solution - take a look at Acrobat 9 3D SDK (or its current version in the hands of Tetra 4D) - it may allow you to automate merging PRC files in C++.
If you are looking for code, there is a SourceForge project - in C++.
Note, one 'hack' to make life easier is to make a simple U3D with one pipe, save that and then embed it in the Java you are writing as two hard coded pieces of data to write. One for before all your new meshes, and one for the end of the file after all the new meshes you are adding. It will already contain all the materials, lights etc so you just have to add meshes to it. Only thing to remember is to fix the file length and any surrounding block lengths once you know how long all the extra data you add is. U3D is pretty much blocks within blocks, where each block minimally has a type, length, and unique name to identify.
Thanks to all,
unfortunately I've already tried iText, 3d toolkit, the acrobat sdk and that sample software in C++ and no one does the trick,
I will try the SolidEdge API, maybe it's easier to program SolidEdge..