SylvainLS

Eurobricks Counts
  • Content Count

    1165
  • Joined

  • Last visited

Everything posted by SylvainLS

  1. Yes, but only one stud (e.g., one 1x1 plate in one hole, not a 1x2 plate in two holes), and beware that the Technic holes are higher than a side stud, so there’s alignment problems (that means nothing should go past the technic brick and sit on the parts that uses the technic hole (“overhanging”) or that you shouldn’t mix technic holes + half pins and side studs.). Search for the PDF Stressing the Elements by Jamie Berard.
  2. I propose to keep here an up-to-date ldraw.xml, the file used by LDD to convert to and from LDraw files. Download: latest version On Windows 32 bits: download and replace the one in “C:\Program Files\LEGO Company\LEGO Digital Designer\” On Windows 64 bits: download and replace the one in “C:\Program Files (x86)\LEGO Company\LEGO Digital Designer\” On Mac: download and replace the one in the “Contents\Resources\” folder in the app (open “Applications” in Finder, right click on the “LEGO Digital Designer” package and select the “Show Package Contents” option to explore the pakage folders). (Thanks manglegrat!) This file is also used and distributed with these tools: lxf2ldr C++/Qt version (both CLI and GUI), more options but needs to be compiled lxf2ldr.html HTML/JS version, works everywhere! If you have other modifications or additions, post them here or send me a personal message and I’ll include them to the benefit of all. If you need a part, feel free to ask here and I’ll try to add it (provided it exists in LDraw and LDD). History and Contents It’s based upon gallaghersart’s latest version (see this thread). It includes the modifications shutterfreak published in his thread. It uses some of the LDraw unofficial parts (mainly for new parts in LDD Brick version 2075). It includes some name corrections (because LDraw renamed or moved some parts, added new variants, etc.). I tried to more accurately convert the colors (now mainly according to Ryan Howerter’s conversion table). It’s not easy because all sources (Swooshable, Mecabricks, Ryan) don’t agree, and there are holes and overlaps. But as these differences, holes, and overlaps occur for rare colors or colors that aren’t available in LDD, it should be okay. In a megalomaniacal way, all the entries I have modified have an “SLS” at the end of their heading comments. New entries have an “SLS” at the front of the comments. So it’s easy to know when to blame me. As of 2016-09-16 and the big overhaul, I assume all the errors. Know Limitations As of LDD 4.3.9, flex parts (hoses) are not exported anymore (even unflexed). Minifig arms and hands are not connected in LDraw. I don’t know whose geometry is off (both?) but the shapes differ a lot. At least, hands are correctly connected to whatever they clip and arms are correctly placed in their sockets and somewhat wrap around the hands’s stems. Some variants are not recognized by LDD (e.g. clips, or tiles with/without groove, etc.) In those cases, I prefer to use the most recent variant in LDraw as it generally is easier to find and cheaper. Sometimes, several LDD parts correspond to a unique LDraw part. Sometimes, the transformation is accurate for one variant but not for another. For example, the Flag 2 x 2 is known to LDD as 2335, 11055, and 60779, but LDraw only has the 2335 variant. 2335 and 60779 use the same transformation but 11055 is vertically offset. I preferred to badly convert 11055 to 2335 rather than not convert it at all or badly convert 2335 and 60779. ldraw.xml is used both ways (LDD to/from LDraw). It’s not something I do frequently (too many resulting collisions) so it’s not well tested. One problem I can see is that, when several LDD parts correspond to a unique LDraw part, the conversion that’s listed last is the one that will be used. The reverse (first written is the one used) is true for assemblies that use the same subparts, in the same quantity (like electric cables). A lot of LDraw parts are simply wrong. Almost all the parts that combine System (studs and anti-studs) and Technic (pins and axles, and their holes) are wrong in that they assume the technic holes are at the same height than side studs (on the picture below, the circles are concentric). LDD assumes the holes are 0.2 mm (0.5 LDU) higher. In ABS, the holes are 0.12 mm (0.375 LDU) higher (dixit Jamie Berard in his famous presentation). In order to limit the number and magnitude of errors, LDD is considered to be right. How to write a new transformation for a part in ldraw.xml What? ldraw.xml is an XML file that defines how LDD can export to (or import from) LDraw files. It does so by defining a match between the part’s IDs and how to rotate and translate the part from one geometry to the other. Matches are defined by “Brick” XML elements. For example, this one says to LDD that the Brick 1x1 that it knows as 3005 is also known to LDraw as 3005: <Brick ldraw="3005.dat" lego="3005" /> (Note the “.dat” in the ldraw ID.) Matches are not needed if the part IDs are the same: the transformation element is sufficient for LDD to know the part exists. (So the example above is useless ) Rotations and translations are defined by “Transformation” XML elements. This one says to LDD that the Brick 1x1 just needs to be moved up: <Transformation ldraw="3005.dat" tx="0" ty="-.96" tz="0" ax="1" ay="0" az="0" angle="0" /> The translation (tx, ty, and tz) is in centimeters (0.8 cm is the width of a brick, 0.96 cm its height). The rotation is given by its axis (the line passing through and ), and its angle in radians. And all the coordinates are in the direct (“riht-handed”), Y points up, coordinates system of LDD. The transformation explains what should be done to import from LDraw besides changing the axes (LDD’s Y is up and XYZ is a direct basis, LDraw’s Y is down and XYZ is an indirect basis; so changing the axes only means changing the sign of Y). So, in an LDD to LDraw point of view, the transformation is reversed: it says what happens to a part if you don’t do anything to its coordinates besides changing the sign of Y. In other words, the opposite transformation has to be applied to the LDD coordinates of the part in order to get the LDraw coordinates (with Y reversed). Why? Each part has an orientation (which way up? which way left?) and a center, point of origin, or reference point (we’ll use “reference point” from now on). But LDD and LDraw don’t always agree. To know the orientation and reference point in LDD, insert the part without rotating it nor attaching it to any other part. It will be aligned along the scene’s axes (LDD’s axes). The reference point is near the mouse pointer’s head. To know the orientation and reference point in LDraw, I find LeoCAD the easiest tool: just select the part and its axes are drawn (X red, Y green, Z blue), starting at its reference point. Okay, LeoCAD’s «X, Y, Z» is LDraw’s «X, -Z, Y» but what’s another little change of basis? Sometimes, their disagreement is trivial. For example, for the simple 1x1 brick (3005), both LDD and LDraw agree: the stud is on top and the reference point is on the vertical line going through the center of the stud. But they differ for the height at which the reference point should be: LDD says it’s at the base of the brick, LDraw at its top (but at the base of the stud). (On every picture, X will be red, Y green, and Z blue.) So the transformation for that part is straightforward: if the LDraw part is imported as is, with only Y reversed, it will end up 0.96 cm (the height of the brick) higher than it should. So we have to lower it by 0.96 cm: <Transformation ldraw="3005.dat" tx="0" ty="-.96" tz="0" ax="1" ay="0" az="0" angle="0" /> Sometimes, their disagreement is more profound and the transformation is therefore more complicated. For example, for the musket (Minifig Gun Musket 2561), LDD puts the reference point in the handle and “up” means the handle is vertical but LDraw puts the reference point in the barrel and “up” means the barrel is vertical. Even more, the stock is on the wrong side, so X and Z are different too. With an identity transformation, the part is rotated by an eighth of a turn (X to Y) (π/4) around the Z axis to put the barrel vertical, and then by a quarter turn (X to Z) (-π/2) around the Y axis. After that, it has been translated up and horizontally. After calculations (see below), we’ll end up with this transformation: <Transformation ldraw="2561.dat" tx="0" ty="-1.72" tz="0.336" ax="-0.3574067443365933" ay="-0.8628562094610169" az="0.3574067443365933" angle="1.7177715174584016"/> How? So, how do we find the right values to have the correct transformations? What’s the ID? Having the right part Check the ID of the part in LDD. Check the ID of the part in LDraw. Beware of variants, LDraw uses a letter suffix (a, b, c…) where LDD totally changes the ID or keeps the same ID for new variants. Don’t hesitate to look on BrickLink for the part ID: BrickLink keeps a list of alternate IDs (when the same part has several IDs) and links to variants and notes. If the IDs are the same. Nothing to do. If the IDs differ. We add a Brick element: <Brick ldraw="123a.dat" lego="456" /> Don’t forget the “.dat”! That was the easy part. Which way is up? Finding the rotation axis and angle We start in LDD. Up is Y, or Y is up. X and Z are a bit harder to see on the LDD scene unless you use LDD’s developper mode (which has the LDD axes drawn at «0,0,0» as red X, green Y, and blue Z lines). Or, if you’re sure you didn’t move the camera in a brand new model/file, X is pointing bottom right, and Z bottom left. We place our part among other parts that we know will be correctly converted (like 1x1 plates, or harpoons ) to have references. Using different colors greatly helps! We export to LDraw… … and look at the results: We decompose the transformation in multiple simple rotations, around the X, Y, or Z axis. If it has been turned around X, a quarter turn from Y to Z is a positive π/2 angle. If it has been turned around Z, a quarter turn from X to Y is a positive π/2 angle. If it has been turned around Y, a quarter turn from Z to X is a positive π/2 angle. To make it short, it’s a direct (right-handed) basis. If you can’t figure out the problems with an existing transformation, “clear” it by using an identity transformation: <transformation tx="0" ty="0 tz="0" ax="0" ay="1" az="0 angle="0"/> (All zeroes but one of the a_ which is 1.) You can try each simple rotation one by one to be sure of their angles (especially their signs ). Beware, combining rotations change their axes (e.g. turning around first X then Y is equivalent to turning around first Y then Z). So if you check that the Y rotation is okay, then the X rotation, don’t forget to combine them as Y then Z. For the musket, we need two rotations: an eighth of a turn (π/4, 45°) around the Z (blue) axis that puts the barrel vertical, and then a quarter turn (-π/2, -90°) around the Y (green) axis. Or we can first make the quarter turn (-π/2, -90°) around the Y (green) axis, and then an eighth of a turn (π/4, 45°) around the X (red) axis. Remember, “import”-wise, we’re trying to find what should happen to the part in the LDD scene to be like the LDraw one, with the LDD axes (the harpoons ). My head is turning. Combining rotations If more than one simple rotation is needed, we have to combine them. For that, we’ll use quaternions. Eh come back! That’s not that difficult! A quaternion q can be written as q = a + b.i + c.j + d.k, where i² = j² = k² = i.j.k = -1 (so i.j = k = -j.i, j.k = i = -k.j, k.i = j = -i.k). a is the real part, b.i + c.j + d.k is the imaginary part. A rotation by the angle angle around the axis «ax, ay, az» is the quaternion q = cos(angle/2) + sin(angle/2).(ax.i + ay.j + az.k) Do note the 1/2 factor on the angle! To combine two rotations, we just multiply their quaternions and apply the rules above to end up with a a + b.i + c.j + d.k form (or, more accurately, a C + S.(ax.i + ay.j + az.k) form, where C and S are cosine and sine of the same angle and ax² + ay² + az² = 1 ). If we rotate first by q and then by p, the result is the rotation by p.q. Note the order: q then p is p.q. Multiplication is not commutative with quaternions: if you do it the wrong way, you’ll end up with the correct values but the wrong signs. There’re lots of fun to have with quaternions and rotations as quaternions. But what is said here is sufficient for our purposes. An example: Most of the times, we do π/2 rotations (quarter turns, 90°). angle = π/2 therefore cos(angle/2) = sin(angle/2) = cos(π/4) = sin(π/4) = √2/2; So, for a “horizontal” quarter turn (yaw, around Y): q = √2/2 + √2/2.j (as j/Y is the “vertical” axis). Let’s combine it with a half turn (π, 180°) around the X axis (IOW, upside-down): cos(π/2) = 0, sin(π/2) = 1, so p = 0 + i p.q = (0 + i) . (√2/2 + √2/2 j) = √2/2 i + √2/2 i.j = 0 + √2/2 ( i + k ) Now, let’s get the resulting angle: The real part of p.q, 0, is the cosine of angle/2. 0 is also the cosine of ±π/2 (±90°). Therefore, the resulting angle is π (180°). Now the axis, «ax, ay, az»: It’s the √2/2( i + k) imaginary part. That’s the vector «√2/2, 0, √2/2». We need to remove the sin(angle/2) factor. That’s easy as the sine of π/2 is 1. So our axis is «ax = √2/2, ay = 0, az = √2/2». Written in ldraw.xml: ax="0.707…" ay="0" az="0.707…" angle="3.1415…" Another one, a quarter turn around Y and then around X: q = √2/2 + √2/2 j = √2/2 (1 + j) p = √2/2 + √2/2 i = √2/2 (1 + i) p.q = 1/2 (1 + i) (1 + j) = 1/2 + 1/2 (i + j + k) We rewrite it as p.q = 1/2 + √3/2 (√⅓ i + √⅓ j + √⅓ k) to have a unit vector (ax² + ay² + az² = 1) in the parenthesis and to clarify the cosine and sine: 1/2 and √3/2. They are the sine and cosine of π/3 (60°). Therefore, the resulting angle is 2π/3 (120°). In ldraw.xml: ax="0.577…" ay="0.577…" az="0.577…" angle="2.094…" Back to our musket: An eighth of a turn (π/4, 45°) around the Z axis that puts the barrel vertical: q = cos(π/8) + sin(π/8).i = C + S.k Then a quarter turn (-π/2, -90°) around the Y axis: p = cos(-π/4) + sin(-π/4).j = √2/2 (1 - j) p.q = √2/2.(1 - j)(C + S.k) = √2/2.(C - S.j.k - C.j + S.k) = √2/2.C + (-√2/2.S.i - √2/2.C.j + √2/2.S.k) Wow! Hum, okay. So √2/2.cos(-π/8) is the cosine of half our angle. Get the calculator out… angle/2 = Acos(√2/2.cos(-π/8)) = 0.8589 Our angle is 1.7178. We “remove” the sine of angle/2 from our vector, so that p.q = cos(angle/2) + sin(angle/2).(ax.i + ay.j + az.k): ax = -√2/2.sin(-π/8) / sin(0.8589) = -0.3574 ay = -√2/2.cos(-π/8) / sin(0.8589) = -0.8629 az = √2/2.sin(-π/8) / sin(0.8589) = 0.3574 As an exercise, you can verify that ax² + ay² + az² = 1. So we did it right! Et voilà: ax="-0.3574067443365933" ay="-0.8628562094610169" az="0.3574067443365933" angle="1.7177715174584016" One step to the left. Getting the translation right Now that the part is correctly oriented, it may need to be moved. The translation is in centimeters (cm). 20 LDU = 0.8 cm. Values are often multiples of 0.4 (half a stud) for tx and tz and multiples of 0.32 (height of a plate) for ty. Other, finer, tunings are often in multiples of 0.008. If the rotation is complex, all bets are off In LDD, we try to place the part so that its LDraw up axis ends up up in the scene, and we try to align its LDraw X and Z axes with X and Z of the scene (at least, that it is not rotated by a weird angle). That way, moving the part along its axes is also moving the part along the scene’s axes. It will be easier for getting the translation right. For our musket, that means the barrel up. (I didn’t align the X and Z axes here because, yeah, I’m a warrior, I don’t need that. Besides, you’ll see what happens because of that. ) Again, I find it easier in LeoCAD: the key bindings, the coordinates clearly shown in the status bar, etc. The thing is, LeoCAD uses a direct Z up basis. So if you move «dx, dy, dz» in LeoCAD, you’re moving «dx, -dz, dy» in LDD (and vice versa). Confusing? Noooh. Anyway, choose your own poison but beware of its little quirks. To help fine tuning, using transparent colors greatly helps, especially for clip-bar connections. Now, we note the coordinates of our part in our LDraw editor and move it so that it ends up the way it should. We look how much we moved it. That’s it! Just convert it to cm (= LDU × 0.8 / 20) and we have our translation. Well, mostly, the signs are wrong. Remember: the transformation is what should happen to the LDD part to end up like the LDraw part, we just did the opposite and moved the LDraw part to be like the LDD one. Besides the signs, if you didn’t correctly align the axes, you’ll have to find which is which For our musket, we need to go up and sligthly to the “left” (from bottom right to upper left when your LDraw view is oriented as a new LDD file, as are all the screenshots here). That means negative dy and dx. But as the part is not aligned on X and Z (but still not badly rotated), the negative dx becomes a positive dz. Et voilà! <Transformation ldraw="2561.dat" tx="0" ty="-1.72" tz="0.336" ax="-0.3574067443365933" ay="-0.8628562094610169" az="0.3574067443365933" angle="1.7177715174584016"/> (So, okay. I had to try first tx then tz, both negative and positive, before I found the right one. But I didn’t want to have to remake the pictures! There: I’m not a warrior, I’m just lazy.)
  3. Update 2021-05-10 Added Custom Parts: 21987 / 21987.dat Constraction Bar 15L with Axle Bush End 46891 / 46891.dat Technic Excavator Bucket 19 x 12 65128 / 65128.dat Container Lid 8 x 8 x 4.667 with Latches 983930 / 1010470.dat Figure Friends Medical Spoon md5sum: 35dd924f8f41917eb1cc0787bc401157
  4. Update 2021-05-09 Added: 6206 / 6206.dat Figure Feeding Bottle 10183 / 10183.dat Minifig Wings Fairy 11055 / 11055.dat Flag 2 x 2 Square[Thick Clips] 12618 / 12618.dat Minifig Armour Shoulder Pads with Six Spikes 17979 / 17979.dat Flag 5 x 6 Hexagonal with Thicker Clips 28424 / 28424.dat Minifig Police Hat with Hair Pulled Into Bun 47328 / 47328.dat Technic Bionicle Vahki Lower Leg Section 90109 / 90109.dat Tipper Bucket 8 x 12 x 4.667 92814 / 92814.dat Minifig Hat Square Academic Cap with Tassel 93230 / 93230.dat Minifig Hair Swept Back with Pointed Ears 98067 / 98067.dat Animal Dinosaur Lower Jaw Raptor 98387 / 98387.dat Animal Bunny Sitting Corrected: 24093 / 24093.dat Minifig Book Cover 32187 / 32187.dat Technic Transmission Driving Ring Extension 43750 / 43750.dat Serpent Neck S-Curve with Fixed Pin Rematched: 2528 / 2528a.dat Minifig Hat Bicorne 59275 / 59275a.dat Minifig Flipper Thin Importable: 2528.dat / 2528 ~Minifig Hat Bicorne (Obsolete) 35378.dat / 87552 =Panel 1 x 2 x 2 Reinforced 42135.dat / 32039 Technic Connector (Axle/Bush) Type 2 42924.dat / 6558 Technic Pin Long with Friction 44676b.dat / 44676 Flag 2 x 2 Trapezoid [Thick Clips] 44874.dat / 87082 Technic Pin Long with Pin Hole Type 2 59275.dat / 59275 ~Minifig Flipper Thin (Obsolete) Added Custom Parts: 21987 / 21987.dat Constraction Bar 15L with Axle Bush End 24531 / 2453b.dat Brick 1 x 1 x 5 with Solid Stud 32172 / 32172.dat Technic Connector Block 3 x 3 with Ball Socket 35470 / 35470.dat Plate 3 x 5 Cloud Shape with 3 Studs 35477 / 35477.dat Brick 1 x 3 x 1.333 with Rounded Ends 37704 / 37704.dat Sports Ball, Winged, Harry Potter Quidditch Golden Snitch 42205 / 42205.dat Door 1 x 6 x 6 Frame 42509 / 42509.dat Glass for Window 1 x 6 x 6 42924 / 42924.dat Technic Pin Long with Friction Type 2 445671 / 44567a.dat Hinge Plate 1 x 2 Locking with Groove with Single Finger On Side Vertical 46212 / 46212a.dat Brick 1 x 2 x 5 with Hollow Studs without Inner Ridges 47326 / 46326.dat ~Technic Connector 2 x 3 with Ball/Axle Socket with Rubber Insert 50665 / 50665.dat Minifig Helmet Classic with Thin Chin Guard Unbroken 51377 / 51377.dat Wheel Rim 14 x 18 with 8 Spokes 53075 / 53075.dat Animal Dog Dachshund 54661 / 54661.dat Hinge Brick 1 x 4 Locking Double, Two Finger End with 7 Teeth 55889 / 55889.dat Wheel 12 x 18 Smooth 61332 / 61332.dat Technic Pin with Friction Type 2 64454 / 64454.dat Container Box 3 x 8 x 6.667 - Back 64462 / 64462.dat Container Box 3 x 8 x 6.667 - Front 65132 / 65132.dat Hinge Bracket 4 x 5 x 5 Locking with 2 Fingers, Two on Each Side, 3 Teeth and 12 Studs on Back 65140 / 65140.dat Plate 8 x 8 with Rounded Corners 65304 / 65304.dat Technic Pin Long with Stop Bush Type 2 65417 / 65417.dat Boat Hull Floating 36 x 7 x 7 Bottom 65418 / 65418.dat Boat Hull Floating 36 x 7 x 7 Top 65676 / 65676.dat Roadsign Clip-on 2.2 x 2.667 Triangular (Thick C-Clip) 65753 / 65753.dat Minifig Skirt Straight Curved 0.55 Length 66155 / 66155.dat Wheel Rim 30 x 20 with 3 Dual Angled Spokes and 4L Hub 66252 / 66252.dat Plate 4 x 4 with Studs on Three Edges and 2 Clips Horizontal (Open C-Clips) 66787 / 66787.dat Cylinder Warp Pipe 7 x 7 x 3.333 66789 / 66789.dat Plate 6 x 6 x 0.667 with Rounded Corners with Studs on Edges without 4 Centre Studs 66790 / 66790.dat Plate 8 x 8 x 0.667 with Rounded Corners with 5 Vacant Stud Areas 66792 / 66792.dat Plate 4 x 4 x 0.667 with Rounded Corners with Studs on Edges 66855 / 66855.dat Plate 2 x 2 with Truncated Cube Extension 66857 / 66857.dat Tile 2 x 4 with Rounded Ends 66858 / 66858.dat Figure Feet 2 x 2 x 0.667 66859 / 66859.dat Figure Feet 2 x 3 x 0.667 66956 / 66956.dat Slope Brick Curved 2 x 2 with Double Cutout 67013 / 67013.dat Shell 4 x 4 x 1.333 with 2 x 2 Recess 67931 / 67931.dat Shell 4 x 4 x 1.333 with Spikes with 2 x 2 Recess 68211 / 68211.dat Bar 1 L with Three Prongs 69729 / 69729.dat Tile 2 x 6 69900 / 69900.dat Technic Chain Tread 38 Narrow with Central Divider 69944 / 69944.dat Minifig Sword Macuahuitl with Eight Blades 69958 / 69958.dat Plate 16 x 16 x 0.667 with Cutouts and Recessed Studs 70681 / 70681.dat Slope Brick Curved 1 x 3 with 1 x 2 Inverted Cutout 70695 / 70695.dat Tyre 26/ 49 x 30 Tractor 71752 / 71752.dat Brick 2 x 2 x 0.667 Ribbed Horizontally 71771 / 71771.dat Slope Brick Curved 5 x 8 x 0.667 without Studs 71772 / 71772.dat Plate 8 x 16 x 0.667 with Cutouts and Recessed Studs 72078 / 72078.dat Tile 1 x 1 x 0.5 with Raised Diamond Gem 72869 / 72869.dat Bar Tube with Clip Angled 90 Degrees 73109 / 73109.dat Technic Brick 1 x 2 with Plate 1 x 2 73230 / 73230.dat Technic Brick 1 x 1 with Axlehole 73682 / 73682.dat Brick 3 x 3 with Rounded Inverted Cutout and Rounded Corner 73825 / 73825.dat Bracket 1 x 1 - 1 x 2 Up 76798 / 76798.dat Panel 5 x 8 x 3.667 Curved with Two Axleholes 78267 / 78267.dat Sheet Plastic 5.3 x 20.3 Rectagular with 4 Tabs 983932 / 1010475.dat Figure Friends Medical Clipboard 983933 / 1010481.dat Figure Friends Medical Otoscope 983935 / 1010470.dat Figure Friends Medical Spoon 983936 / 1010462.dat Figure Friends Medical Feeding Bottle 983937 / 1010471.dat Figure Friends Medical Ice Pack 983938 / 1010482.dat Figure Friends Medical Nurse Hat 949001 / u9490c01.dat Minifig Cape Cloth Tattered and Pixelated (Formed) Corrected Custom Parts: 39739 / 39739.dat Tile 1 x 1 Heart Shape 42716 / 42716.dat Wheel Rim 20 x 30 "Torq Thurst" with 5 Spokes and External Ribs 54661 / 54661.dat Hinge Brick 1 x 4 Locking Double, Two Finger End with 7 Teeth 500181 / 50018a.dat Plate 1 x 1 Hexagonal with Studs on Both Sides and 3 Bars at 120 Degrees 500183 / 50018c.dat Bar with Perpendicular Hollow Stud and Bar Importable as Custom Part: 46212.dat / 46212 ~Brick 1 x 2 x 5 without Centre Studs (Obsolete) md5sum: ebf05a258d72a05cb18394db119320c2
  5. 2.2.4(5) solved the transparent colours and settings issues.
  6. There’s a 2.2.4(2)… but there’s still problems with it
  7. As its name says web.archive.org is an archive of the web. The URL is the date the page was archived (20190622153357 = 2019 June 22, 15H33m57s) and the full URL of the page, which is LEGO’s own CDN (content distribution network), that’s the URL we were redirected to when we dowloaded LDD from LEGO on June 22th, 2019.
  8. LDD has a bit more than 4000 parts. Studio has 10000 in the Master palette (and knows about around 6000 more). So, yeah, it’s harder to find the needle in the bigger haystack.
  9. Update 2021-03-12 Added: 15423 / 15423.dat Minifig Body Armour Vest 18729 / 18729.dat Windscreen 6 x 10 x 4 Curved 18926 / 18926.dat Tipper Bucket 8 x 12 x 4.6667 25111 / 25111.dat Minifig Sword Dao with Curved Blade and Hilt 30838 / 30838.dat Wheel Rim 6.4 x 11 with 7 Spokes 93565 / 93565.dat Minifig Body and Shoulder Armour Smooth 97895 / 97895.dat Minifig Life Jacket 98150 / 98150.dat Minifig Head Snake 98386 / 98386.dat Animal Puppy Walking Rematched (renamed in LDraw): 9320 / 23807.dat ~Electric Power Functions 2.0 Socket 23306 / 23306.dat Minifig Lightsaber Hilt with Steep Sloping Fingers md5sum: 75125d758db8ef8a3d074291a7cf4abb
  10. Yeah, but not so long ago, it was frowned upon to talk about customizing LDD here. Granted, it was before it was officially abandoned.
  11. I don’t know what needs to be done to Diablo 2 but if it’s a modification of the executable and you distribute it, it’s IP infringement. And if there are protections against it that you need to break, it’s DMCA / EUCD. IOW, it’s not because it’s commonplace to crack and hack games and that only the big bad players are sued that it’s lawful.
  12. Whereas finding the list could fall under “interoperability,” I believe that’d be over the line of what is lawful. (IANAL)
  13. Nope. AFAWK, 4.3.12 was an attempt to solve 4.3.11’s installation problems on Windows 10 (LDD comes with a “Flash Player Active X” crap that doesn’t want to install while it’s absolutely not necessary nor useful, at all), so TLG solved the installation problems but the included Bricks library is way outdated and the program can’t get on the internet to download a more recent one. Total crap. Unfortunately SOP (standard operating procedure) for big companies.
  14. Here you are. (I will remove the file in a few days.) All the parts should be there, the LXFML was corrupted later, in the connections. The order in the LXFML is Bricks, RigidSystem (connections), Groups, Instructions. What I did: extract the .lxf, the extractor complains but the .lxfml is just truncated, open the .lxfml to check the end of the file, see it was truncated in the RigidSystems, go back to the end of the bricks section (</Bricks>), cut from there to the end of the file (keep </Bricks> of course), add a closing </LXFML> tag, open the new .lxfml in LDD to check the file, save as .lxf for convenience. In the future, make more backups
  15. LeoCAD also works natively on Linux and is open source (GPLv2). LDD works very fine with Wine. Studio works fine with Wine… except it can’t do GPU-rendering (sees the card but can’t use it), and you need to use a “virtual desktop” (it’s a Wine option that puts Windows windows inside a X11 window) because of focus problems. (Wine is very simple to use: install the wine packages, and start the installer with wine (e.g. “wine setupldd311.exe” and then you’ll have menu entries.)
  16. I agree on 3. Also, I think that builds that relied on a custom part not having collisions (or having wrong collisions) should not prevent adding or correcting the collisions. Besides, the risk seems very low with this part.
  17. That’s a very small difference, I believe it’s in LDD’s tolerances and it wouldn’t be a problem for older models.
  18. Oh, yeah, right, that explains why I can’t load 210116.lxf but can see/use the part: there’s only the part, not the assembly. As it’s not in LDraw, I hadn’t looked further.
  19. It’s on GitHub (and was in the pre-release packs Stephan sent me).
  20. There’s two parts missing in your new file: 98169 (Triceratops head assembly, should be behind the legs) and 11947 (Technic panel 2x5, should be behind the arms with pins, in front of the balloon dog). These two parts couldn’t be loaded and therefore weren’t saved. As a note, the triceratops head doesn’t load for me either but it may be due to collisions in the file because I can re-add it.
  21. Update 2021-01-16 Added: 98088 / 98088.dat Animal Wing Left Pteranodon 98089 / 98089.dat Animal Wing Right Pteranodon Corrected: 14226 String Braided 11L with End Studs (Complete) 14224 String Braided 41L with End Studs (Complete) 63140 String Braided 41L with End Studs (Complete) Those are now flexible as Custom parts and therefore LDD won’t export them anymore… but remember that most flexible parts can be converted by lxf2ldr(.html) Added Custom parts: 32166 / 32166.dat Technic Connector Block 3 x 6 x 1.667 Gearbox 35463 / 35463.dat Tile 1 x 1 with Curved Triangle 35709 / 35709.dat Minifig Costume Flowerpot 37493 / 37493.dat Train Front 6 x 10 x 7 39369 / 39369.dat Technic Beam 19 x 11 Baseplate 44666 / 44666.dat Plate 14 x 18 x 1 with Three Pinholes at Centre 49577 / 49577.dat Plant Seaweed with 4 Studs and 7 Bars 49656 / 49656.dat Rock 1 x 1 Geode 52494 / 52494.dat Plate 1 x 1 x 0.667 with Binoculars 65473 / 65473.dat Brick Round 2 x 2 Curved 135 Degree 65578 / 65578.dat Plate 1 x 1 Round with Angled Bar 66961 / 66961.dat Brick 2 x 2 x 0.667 with Handle on 4 Sides and 2 Studs on Top 67095 / 67095.dat Tile 3 x 3 Round 67139 / 67139.dat Technic Connector Block 3 x 5 x 1 with Cutout 67440 / 67440.dat Slope Brick 60 4 x 1 x 3 Inverted 67446 / 67446.dat Plate 2 x 4 with Side Bricks 1 x 2 x 1.333 with Axle Hole 67811 / 67811.dat Car Steering Wheel 5 x 5 with Two Spokes and 2 x 2 Stud Centre with Axlehole 68013 / 68013.dat Cylinder Half 1 x 2 with Cutout 68297 / 68297.dat Plate 4 x 8 without Corners 68382 / 68382.dat Plate 1 x 4 with 2 Pins 68495 / 68495.dat Minifig Cup Stein with Handle 68504 / 68504.dat Minifig Sundae Glass 68568 / 68568.dat Plate 3 x 3 with 2 x 2 Corner Round and 2 x 2 with 1 x 1 Corner Round Cutout 68869 / 68869.dat Tile 4 x 4 x 0.667 with Rounded Corners 69066 / t69066.dat Container 1 x 3 Crate 69906 / 69906.dat Bracket 3 x 2 - 2 x 2 Down with Rounded Brace 69909 / 69909.dat Tyre 28/ 57 x 43 Off Road 69911 / 69911.dat Technic Panel 13 x 2 x 5 Mudguard Arched with Rounded Top 69963 / 69963.dat Plate 2 x 4 with Steering Axle Socket 69964 / 69964.dat Wheel Axle Tilt Steering 71682 / 71682.dat Technic Panel Curved 3 x 2 x 1 71689 / 71689.dat Technic Panel 13 x 2 x 5 Mudguard Arched Extension 71709 / 71709.dat Technic Panel 3 x 7 71710 / 71710.dat Technic Beam 15 with Alternating Holes 609000 / u609.dat Brick 1 x 4 x 2 Bellshaped with Headlights Corrected Custom parts: 36752 Minifig Tool Wand 37695 Plant Stem with 3 Leaves with Bar and Pin Holes 38317 Cone 4 x 2 x 3 Half 41812 Projectile Launcher 4 x 2 x 1 with Bottom Axle 52985 Tyre 27/ 48 x 43 92198 Figure Friends Head without Pattern Corrected Custom assembly: 279300 PNEUMATIC CYLINDER 2X7 md5sum: e27209a82591db9b5ea02a29bf79865d
  22. First, I would suggest to convert from LDD to LDraw either in LDD with a proper ldraw.xml or with another tool (e.g. lxf2ldr(.html) ;) ). Studio is not up to date on the conversion, especially for new/custom parts. There’ll still be parts that are not in Studio yet but it should already be more complete. So you’ll have to import them (see this message on the Studio forum for ready-made Studio parts that are not yet in Studio). Then, some of the parts in the custom parts do not exist in LDraw. (They are listed at the end of my ldraw.xml if you want to check which parts won’t convert.)
  23. There’s only 14720.xml because 14720 already is in LDD 4.3.11 / 2670. The xml was corrected by Equilibrium (I don’t remember what was exactly correctled… it has just been moved to the Technic Beams category). If you don’t see it, first check you’re in Extended mode (View | New ttheme | LDD Extended) then check your LDD version (Help | About). If you don’t have “brick version” 2670, but still LDD 4.3.11, then you’ve installed the infamous 4.3.12. If so, see this message.
  24. For LDraw conversions, with LDD: on export, the assemblies aren’t used at all, the subparts are always exported as standalone parts, on import: if the lxfml is in your db and there’s an assembly statement in ldraw.xml, the subparts are assembled on import, if ldraw.xml doesn’t know about the assembly, the parts aren’t imported, if the .lxfml isn’t in your db, if ldraw.xml says the parts should form an assembly, the parts aren’t imported. So, the problem is on import, when ldraw.xml and the db don’t agree. (Funny note: when the assembly is in the db but not in ldraw.xml, LDD tells you 1 part couldn’t be imported, while what couldn’t be imported is several subparts.)
  25. @M2m Totally agree, I feel all these together: , and more.