©2003-2006 LDraw.org

Tips & Tricks [1]: Preparing a L(EGO)Draw part for the Parts Tracker – A review [2]

Posted by : Holly-Wood on Oct 04, 2007 - 02:09 PM
referenceTutorials [3]

When the Lego Universe Team has started to share rough data of 80 parts http://www.ldraw.org/Article489.html [4] and soon after I've got feedback from part authors that because of their excellent quality those parts were heavyweights and would give us a hard time reducing the file size I was curious to what extend I could strip them down. After approx. 10 working hours my part was cut by 92%.

After I had chosen the “44572.dat - Hinge Panel 2 x 4 x 3 & 1/3 Locking” from the L(EGO)Draw parts chart at http://www.ldraw.org/Article490.html [5] I added my name to the chart (kind of easy with admin rights ;-) to let people know I was working on the part.
First I compared the part with the similar and already certified „2582.dat - Hinge Panel 2 x 4 x 3 & 1/3” in MLCad. I was wondering if the LEGO Universe Team had done a good job on the overall size and orientation. The part was excellent but to my amazement it had an offset of 0.4 LDU on the x axis and the studs were way to small.

After correcting the position and substituting all the quads and edges building the studs with the „stud2.dat - Stud Open“ primitive I tackled the section with the Click-lock hinges. The click-locks created with the stl2dat conversion tool were 0.25 LDU larger on the x-axis than our primitive „clh4.dat - Click-lock hinge half dual finger for bricks and plates“ is (deside the fact that clh4.dat makes usage of cylinder primitives to get a smoother look)!
We know that the source for the L(EGO)Draw parts are the original shapes, created for the molding machines – in short they are the REFERENCE. A this point I had to take a critical decision: fix the clh4.dat and all the parts using the primitive (and there are quite a lot) in order to be faithful to the REFERENCE or fix my part. I opted for the latter. I can live with a 0.1 mm tolerance – if you cannot feel free to fix clh4.dat. As a side note it might interests you that LEGO's part designers in Billund use Rhino http://www.rhino3d.com/ [6] for prototyping and not SolidWorks as suggested by the stl2dat conversion tools – as I was told by the LEGO Master Builders present at the 1000SteineLand 2007 in Berlin.
Using Syncedit http://news.lugnet.com/cad/?n=13926 [7] (strangely it is not listed on Anders' website) through LDDP I trimmed all the figures where the click-lock primitives touch the body. Furthermore this involved deleting/fixing the superfluous triangles and quads.

Back in MLCad the next step was getting rid off of 50% of the overall file size by cutting the part in two and deleting one half of it. It was clear right from the start that I would subfile most of the code to allow patterned versions and since I can mirror the subpart using the matrix there was no need for an entire part.

With the LDraw Primitives Reference http://www.ldraw.org/library/primref/ [8] at hand I once more looked out for portions of the part I could replace with boxes and cylinders.

Finally I run the rest of the code through LDDP's Error Checking, fixed non-coplanar quads or code with bad vertex sequence I had messed up when I cut the part in two, sorted and BFCed the part by polling to LDView. Last step was subfiling plus sanding the header using DATHeader.

The original L(EGO)Draw part weights 173 KB. The version I submitted to the PT http://www.ldraw.org/cgi-bin/ptdetail.cgi?f=parts/44572.dat [9] is (including the subpart) 14 KB! Thx to Philo and Mike the part needs only a review by the PT-Admins to be shipped.

Links
  [1] http://ldraw.org/index.php?name=News&catid=2
  [2] http://ldraw.org/index.php?name=News&file=article&sid=493
  [3] http://ldraw.org/index.php?name=News&catid=&topic=6
  [4] http://www.ldraw.org/Article489.html
  [5] http://www.ldraw.org/Article490.html
  [6] http://www.rhino3d.com/
  [7] http://news.lugnet.com/cad/?n=13926
  [8] http://www.ldraw.org/library/primref/
  [9] http://www.ldraw.org/cgi-bin/ptdetail.cgi?f=parts/44572.dat