Solidworks or ProE to 3DS Max

In an under­go­ing project, we were required at some point to use 3d objects made in ProE by another com­pany closer to CAD engi­neer­ing. So we obtained some .stp (STEP) files which, indeed, can­not be imported by the stan­dard max (even max 2010) importers. Big deal. Well it sure is !

I thought I’d make it a post as I haven’t found deci­sive infor­ma­tion on the net.

So we had a few choices :

  1. export to another exchange for­mat like .igs (set to NURBS at export-time)
  2. play your luck with an .stl (stere­olitho file)
  3. bet your money on a plu­gin that will take care of the import of the STEP

In the end, it all comes down to two main ideas :

  • either work with nurbs
  • or con­vert them into poly meshes with a lot of faces to match the curves

Just to make it clear, in CAD, mod­els are based on splines, b-splines and all the joy­ous fam­ily. 3DSMax and Maya have always sucked at han­dling nurbs. Isn’t that great ?

Now, you don’t have to read all that’s writ­ten below if you haven’t had prob­lems before. The best way to have a proper model from CAD is to han­dle it in nurbs. If pos­si­ble at all, avoid con­vert­ing it to a poly mesh because most likely, it will lack some faces  here and there and what’s more, the tes­se­la­tion will dam­age the look of the curves of your orig­i­nal model. Addi­tion­ally, con­vert­ing the nurbs model to a poly mesh won’t make it any faster to manip­u­late in the 3D UI and the wire­frame of a nurbs model looks much sim­pler than with a poly mesh.

1. IGS and the likes

IGS is sim­i­lar to STEP as they are both based on curves. The lat­ter is a bit bet­ter as it keeps the hier­ar­chy and orig­i­nal names of the objects, which is a handy fea­ture when you got com­plex mod­els. I can’t pro­vide you with screen­shots here as the guy from the CAD com­pany (too) early dis­missed IGS as being a hin­drance in Maya (even though in this case we’re on Max…). Nev­er­the­less, the point is not about the for­mat itself but about the kind of model you get. IGS is a good option if you don’t want to use a STEP importer though I haven’t been able to import a test model to see if there could be some com­pat­i­bil­ity issues or things that might make your dear Max go haywire.

2. Stere­olitho

Talk about stere­olitho and you look like the pro­fes­sional out there. Shorts for stere­olith­o­g­ra­phy, it is just a “3d print­ing” tech­nique that uses lay­er­ing of resin cut by lasers to shape an object. An importer exists for this for­mat in Max so why not try it ?

From what I found here and there, infor­ma­tion was a bit con­tra­dic­tory. Some peo­ple posted tuto­ri­als about how to import IGS files with­out say­ing any­thing about would-be prob­lems and some other peo­ple talked about how you’d bet­ter stick to stere­olitho exports (rav­ing about the so-called “chord height”). Import­ing files from Solid­works or ProE to Max seems as obscure as back alley in the out­skirts of a big city by a freez­ing night.

Let’s take a sam­ple, a tuto­r­ial from the year 2000 (I haven’t found many of them which look recent) called “Solid­works to 3DSMax”. The tuto­r­ial is all nice and easy but when you get to the last part, the ren­der­ing that is, you may be dis­ap­pointed a lit­tle. If you look at the reflec­tions and refrac­tions on the tyre, you’ll notice some jagged, unnat­ural reflec­tions. Not good.

But noth­ing beats doing it your­self. So did I. The model was slightly more com­plex than the wheel in cadmonkey’s tuto­r­ial and look at the result :

proe-stl-yuk

STL input with the stan­dard Max importer

Eewww. The poly mesh has more than 70000 faces but it’s all ugly. This export was done using a chord height of 0.2 mm (around 0.008″), all the other para­me­ters are the same as in the monkey’s tuto­r­ial. Even with the “coarse” export option, you could believe that you’d only have to apply a tur­bosmooth (or meshsmooth) once the “low­poly” is imported in Max BUT it is not so easy. If you do that, you will have to set man­u­ally every smooth­ing group on your mesh and the final model will look dif­fer­ent than the one made in sur­faces because you can­not rely on a meshsmooth to make the same curves as the orig­i­nal surfaces.

By the way, there’s a very pow­er­ful trick to increases the amount of faces in your mesh while smooth­ing it slightly. It’s an option con­cealed in the Pro­Boolean mod­i­fier (made by…nPowerSoftware) called the Quad Tes­se­la­tion. Here’s what it looks like applied to the ugly mesh above :

proe-stl-better

Attempt to fix the STL import

You can still see some bizarre cuts on the bor­ders of some curves and holes so this trick isn’t enough to cor­rect the bad tes­se­la­tion I had to begin with.

Per­haps STL is fit for CAD model print­ing but it’s bet­ter to look for another exchange for­mat in this case.

3. Plu­g­ins at your service

From this point on, we’re look­ing at com­mer­cial solutions.

The main soft­ware com­pa­nies who are into import/export plu­g­ins for Max (and Maya) are nPower Soft­ware and Okino. From an outsider’s per­spec­tive, nPower looks more pro­fes­sional with their web­site but also ten times as much expen­sive as Okino’s solu­tion. I can’t help but notice Okino’s web site fea­tures about all the kinds of bad clichés in web design with the fonts, the old 1999 pho­to­shop effects *bow to the bevel fil­ter*, kind of “geek wel­come for math lovers”. That aside, it isn’t nec­es­sar­ily rep­re­sen­ta­tive of the qual­ity of their soft­ware at all.

3.1. nPow­er­Soft­ware plugins

If you install both nPower Power Trans­la­tor Pro and Okino Poly­trans plu­g­ins for Max (v. 2010 here), you’ll notice a slight dif­fer­ence in the way you have to import a model. With Power Trans­la­tor, it’s quite easy, you go to File > Import > Import and in the drop down list there’s a few extra for­mats han­dled by npwr.

npower-step-translator

nPower Trans­la­tor STEP importer panel

Upon choos­ing your STEP file, you get a lit­tle con­fig menu and what is really cool with this plu­gin is that it’s not lim­ited to an import pro­ce­dure. It adds a mod­i­fier on top of all the imported mod­els with a ton of cus­tomiz­able para­me­ters so you really have con­trol of the model you import. Can’t do bet­ter than that for now.

npower-nurbs

nPower Spe­cial Nurbs modifier

Look at the smooth and clean result !

proe-stp-shaded

Shaded view of the imported STEP model — nPowerSoftware’s Trans­la­tor Pro

proe-stp-wireframe

Wire­frame of the imported STEP model — nPowerSoftware’s Trans­la­tor Pro

3.2. Okino’s plugins

Okino Polytrans’s way of import­ing is less sim­ple. The way the plu­gin works is kind of old-fashioned (like their site, aw… for­give me). You have to go to the util­ity panel and load the Poly­trans I/O. Then you got a big list of var­i­ous for­mats and as soon as you select one, a browser pops up, ask­ing for a file. So you feed the lit­tle ani­mal with a STEP file and another panel appears with two main options : begin­ner or expert mode. A good thing because the “chord height” and such terms could scare some peo­ple who aren’t into CAD. The prob­lem is, even when you boost things and ask for the best qual­ity for the import, I ended up with a poly mesh that looks like our so-called swiss cheese, the holes look­ing a bit triangular…

Blue cheese - stereolitho import as a triangle mesh

STEP cheesy import — Okino Poly­Trans plugin

I gave it sev­eral attempts and even used the built-in import of raw ProE mod­els which lead nowhere.

More blue cheese - this time a ProE import

ProE “scratched” import — Okino Poly­Trans plugin

I even tried to import the infa­mous stere­olitho model…

STEP import with the Okino plugin

STL garbage — Okino Poly­Trans plugin

Per­haps Okino should increase their pric­ing in order to pro­vide a truly func­tional plugin…I do hope that other peo­ple had a bet­ter expe­ri­ence with this plu­gin than I had.

Another solu­tion would be to use the 3D stand­alone soft­ware Poly­Trans, load the exported model into it, re-export into another for­mat like .obj or .fbx and load all that into Max. Not viable in my opinion.

4. Con­clu­sion

The huge dif­fer­ence between nPower’s way and Okino’s way is that the for­mer uses Nurbs and the lat­ter con­verts every­thing to poly meshes so it is more prone to errors. This case isn’t rep­re­sen­ta­tive of all cases so it might hap­pen to you that Poly­trans is a good tool. Here, it just doesn’t do the job.

No sur­prise here, nPowerSoftware’s plu­g­ins stand out in terms of qual­ity. The down­side to all this is the cost of the solu­tion : between $1000 to $3000 if you need Power Trans­la­tor Univ. That is how­ever the best solu­tion avail­able right now for Max and it is avail­able for Maya as well.


About this entry