SylvainLS

Eurobricks Counts
  • Content Count

    1337
  • Joined

  • Last visited

Everything posted by SylvainLS

  1. Hi all, I just released an extra portable version of lxf2ldr: lxf2ldr.html (still on gitlab, next to its brother, and also in GPLv3+). Yes, .html like in HTML/ECMAScript (aka JavaScript) but it’s totally local and self-contained! No compilation, no dependencies, no web server or arcane application (well, except for a d/recent web browser). Just download the zip (or tarball…), unpack it somewhere and open the file lxf2ldr.html in your browser. (See the senseless green/yellow coloured bar ? Click on the little cloud just below, on the right, just next to “Find File.”) Okay, okay, the look is spartan but it gets the job done. Tell me what you think… or not BTW, this is the initial release, I haven’t tested all the cases / stumbled upon all the of the language (two days on this and I know why I hadn’t touched JavaScript since the last century), so any issue, bug, glitch is welcome.
  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 2024-09-30 Added parts: 10168 / 10168.dat Minifig Hat Cowboy with Hair in Braid 11261 / 11261.dat Minifig Hair Long with Braided Front 12609 / 12609.dat Minifig Ninja Turtle Shell with Horizontal Belt 12890 / 12890.dat Minifig Hair Female Long Straight 13746 / 13746.dat Minifig Hat with Small Pin, Women's Fedora with Large Bow and Feather 13750 / 13750.dat Minifig Hair Female Long, Braided on Right, Hole on Top 13766 / 13766.dat Minifig Hair Long Wavy with Braid and Elf Ears 19206 / 19206.dat Figure Elves Hair Long Tapered in Back with Braids and Elves Ears 20905 / 20905.dat Minifig Helmet SW Flametrooper Episode 7 and Walker Driver Episode 8 21561 / 21561.dat Constraction Torso 87777 / 87777.dat Minifig Helmet Visor Shielded 89079 / 89079.dat Bar 0.5L with Flat Shell with Scales 3.2L Rematched: 90396 / 86398.dat Minifig Hair Mid-Length Wavy with Centre Part md5sum: 8109fa3efed16641558dc1b7dcd73551
  4. Hi, There's no password anymore on Studio files nowadays. So they are just Zip files. And there's been a few other modifications. First, try to extract your .io file with standard Zip tools (7-zip for instance). If that doesn't work, well, mostly there's no way to get back your model. And if that works, look at these three files in that order, they are all plain text files: model.ldr: look at its size, if it's not 0, then open it in Studio, you should get back your model. modelv2.ldr: look at its size, if it's not 0, then open it in a simple text editor (like Notepad). You'll need to edit it to make it a true LDraw file. For that, you edit all the lines that start with “11”: replace the “11” with “1”, don't touch the second number, delete the third number, the “False” and the number just after. For instance, “11 4 1260 False 0 -130.000000 -60.000000 -89.999980 0.000000 0.000000 1.000000 0.000000 1.000000 0.000000 -1.000000 0.000000 0.000000 3070b.dat” should become “1 4 -130.000000 -60.000000 -89.999980 0.000000 0.000000 1.000000 0.000000 1.000000 0.000000 -1.000000 0.000000 0.000000 3070b.dat”. That's lots of work… unless you now how to write scripts…. Once the file has been edited, it should be exactly what model.ldr would have been. You can try to open it in Studio. model2.ldr: look at its size, if it's not 0, then you'll need to edit it even more than the previous one: you'll need to change all the colour codes (second number on each line) from the BrickLink code to the LDraw code and you'll need to cut all the bits that define things that are not needed… which is quite complicated to explain.
  5. Okay. I don’t think that’s something many people will use and so making an option for that is too much work. So here’s a solution just for you: Open lxf2ldr.js in a simple editor (Notepad or such), go to line 500 and replace “push” by “unshift”, the line will then be: siblings.unshift( g ); This builds the list in reverse order.
  6. Hi, Could you give an example file so I can understand how you’re using groups?
  7. SylvainLS

    Stud.io Noob Questions

    The .zip contains the unofficial subfiles only. If a subfile is official, it’s not included… but Studio is still releases away from the last official LDraw release, so it’s missing those files. For instance, the part mentioned above, 48156p01, has a subfile, but the tracker doesn’t propose to download the Zip with both the main file and the subfile. You need both for PartDesigner/Studio.
  8. Update 2024-07-05 Parts Added: 88964 / 88964.dat Bar 0.5L with Curved Leaf 2L Custom Parts Added: 1997 / 1997.dat Plant Vine Curled with Bar 2229 / 2229.dat Tile 2 x 2 with Rounded Slab 2514 / 2514.dat Minifig Hat Newsboy Cap 3417 / 3417.dat Door Frame 3 x 6 x 6 with Inside Grooves 3571 / 3571.dat Windscreen 4 x 12 x 3 Curved 3628 / 3628.dat Bar 2L with Three Clips 3863 / 3863.dat Brick 2 x 4 x 5 with Hole for Worm Screw 6L, Runners for Channels and Elevator Platform 4367 / 4367.dat Plant Flower with 7 Alternate Petals with Centre Ring with Bar and Pin Hole 4368 / 4368.dat Technic Engine Crank Disk 4369 / 4369.dat Technic Engine Piston with Stud 4410 / 4410.dat Tyre 44 x 32 / 56 Smooth Racing 4412 / 4412.dat Technic Dome 5 x 5 x 2.5 4413 / 4413.dat Technic Dome 11 x 11 x 5.5 4472 / 4472.dat Wheel Cover Smooth for Wheel 34 x 56 4500 / 4500.dat Technic Panel Smooth Inverted 7 x 3 x 2 4527 / 4527.dat Technic Panel 3 x 13 Curved #52 Tapered Left 4920 / 4920.dat Brick 1 x 2 with Click Rotation Pin 4974 / 4974.dat =Tile 8 x 16 Type 2 5032 / 5032.dat Door 1 x 4 x 6 Fence 5090 / 5090.dat Bracket 1 x 6 with 1 x 4 Cutout - 2x 6 Up 5091 / 5091.dat Tile 1 x 2 Cut Left 45 Degree 5092 / 5092.dat Tile 1 x 2 Cut Right 45 Degree 5151 / 5151.dat Plant Serrated Leaf with 1 x 2 Rounded Plate 5175 / 5175.dat Bracket 2 x 4 - 1 x 4 Down 5240 / 5240.dat Technic Rotor Blade 40L with Beam 3L 5258 / 5258.dat Door Frame 1 x 6 x 6.333 with Rounded Top and Front Right Clips 5259 / 5259.dat Window 1 x 4 x 3 Square Top with 4 Panes and Sill 5260 / 5260.dat Window 1 x 4 x 3 Curved Top with 4 Panes and Sill 5294 / 5294.dat Technic Suspension Arm 4 x 6 Triangular 5401 / 5401.dat Windscreen 7 x 6.5 x 2 Motorcycle with Beam 3L 5404 / 5404.dat Slope Brick 18 2 x 1 x 0.667 5426 / 5426.dat Technic Panel 3 x 13 Curved #53 Tapered Right 5466 / 5466.dat Door 1 x 4 x 6 with Window and Wood Structure 5520 / 5520.dat Tile 2 x 2 with Rounded End 18034 / 18034.dat Minifig Sword Roman Gladius with Thick Crossguard 49699 / 49699.dat Panel 1 x 6 x 4.333 with 4 x 3 Opening and 4 Pin Holes 54568 / 54568.dat Propeller Two-Blades Twisted Cap 59276 / 59276.dat Minifig Hood Long Angular 62469 / 62469.dat ~Electric Power Functions Pole Reverser Top (Needs Work) 62473 / 62473.dat ~Electric Power Functions Pole Reverser Lever 62875 / 62875.dat ~Electric Power Functions Pole Reverser Slider 77263 / 77263.dat Minifig Tail Mouse 80910 / 80910.dat Technic Cross Block 2 x 4 Split (Pin/Axle/Axle/Pin) 105162 / 105162.dat Wheel 13.4 x 24 with Integral Smooth Racing Tyre 105645 / 105645.dat Wheel 22 x 50 with Integral Smooth Racing Tyre 106700 / 106700.dat Minifig Robe Cloth 13L Tall Custom Assembly added: 61929 Electric Power Functions Pole Reverser / Polarity Switch (incomplete: missing bottom) 619291 Electric Power Functions Pole Reverser / Polarity Switch without Secondary Inverter (incomplete: missing bottom) md5sum: fc27b241e61abf5d611a787849be7627
  9. Update 2024-07-04 New Colours. Some clean up. Added Parts: 11129 / 11129.dat Minifig Mask Lion 12607 / 12607.dat Minifig Head Ninja Turtle 14225 / 14225.dat String Braided 31L with End Studs 21968 / 21968.dat Minifig Body Ghost 21969 / 21969.dat Minifig Arm Ghost 21970 / 21970.dat Minifig Head Robot 22380 / 22380.dat Minifig Helmet Space with Air Intakes and Top Pin Hole 25972 / 25972.dat Minifig Hair Swept Back with Slight Widow's Peak and Short Sideburns 26049 / 26049.dat Minifig Head Jake the Dog 26057 / 26057.dat Minifig Hair Swept Forward with Ears 27955 / 27955.dat Minifig Hat with Folder Brim and Bob Cut Hair 63142 / 14225.dat String Braided 31L with End Studs 87788 / 87788.dat Bionicle Mask Hau 87996 / 87996.dat Minifig Horn 90396 / 90396.dat Minifig Hair Mid-Length Wavy with Centre Part 90538 / 90538.dat Minifig Hat Fedora with Wide Brim 90539 / 90539.dat Minifig Breathing Apparatus 93224 / 93224.dat Minifig Helmet Hazmat Suit with Trans Clear Visor 93225 / 93225.dat Minifig Spray Gun with Hose Added Custom Parts: 4190 / 4190.dat Plate 2 x 2 Slope Inverted Corner 44740 / 44740.dat Minifig Hair Decoration Plume Ribbon 67649 / 67649.dat Minifig Head Minion 2 x 2 x 1.667 with Mono-Goggles 80394 / 80394a.dat Cockpit 6 x 4 x 4.667 md5sum: e892fe5e624f272540e8f90f4b5ef615
  10. SylvainLS

    Stud.io Noob Questions

    Those parts are available in LDraw Unofficial. You’ll need to use PartDesigner to add connectivity and to import them in Studio as custom parts. A bit more info on the Parts FAQ on the Studio forum (you need a BL account to read it).
  11. Using Rebrickable is fine… but exporting to HTML and then using Excel is what I find overly complicated. Yep, that’s the one :) It’s indeed more oriented toward sellers but it’s great for managing parts lists / Wanted Lists and orders. Better than juggling with multiple formats and Excel. What I find it’s missing is a way to manage a builder collection: a list of sets & MOCs, some built, some not, and, from that, an automatic list of available parts or an easy way to find what set/MOC you need to scavenge for that one elusive part. Rebrickable has something similar: you can tell it if a set you have is built or not… but I find it’s a bit complicated for MOCs (or subsets).
  12. Oh boy, that’s complicated. Why not simply use BrickStore?
  13. Hi all, Now that Studio’s Eyesight has been open sourced, I managed to build and run it natively on Linux 🥳 and to make Studio use it seamlessly 🥳🥳 and with the GPU too 🥳🥳🥳🥳 If someone wants to give it a try, I wrote a howto.
  14. SylvainLS

    Stud.io Noob Questions

    There’s a buffer exchange feature but it only allows to move parts in the current step.
  15. Update 2024-03-23 Added: 18277 / 18277.dat Minifig Tail Fluffy 95341 / 95341.dat Animal Goat Added Custom Assemblies: 18386 Minifig Hips and Legs with Black Leg Extenders 100943 Technic Steering Wheel Bearing with 2 Towballs Added Custom Parts: 1994 / 1994.dat Technic Cylinder with Peghole and Half Click Rotation Joint Ball 1995 / 1995.dat Flame / Vapor Trail 3 x 12 with Axle Hole and Marbled Core 2821 / 2821.dat Container 2 x 2 x 1 Crate Reinforced 3167 / 3167.dat Technic Beam 2 x 3 C-shaped 3171 / 3171.dat Constraction Finger Angled with Clip 3233 / 3233.dat Window 1 x 2 x 3 Train with Underside Ridged Stud Holders 3484 / 3484.dat Bar 1.5L with Clip Type 3 3563 / 3563.dat Brick 1 x 2 x 0.667 with Curved Top 3565 / 3565.dat Plant Palm Leaf 2 x 6 Rounded with Rounded 1 x 2 Plate 3567 / 3567.dat Tile 2 x 2 Round Inverted with Groove 3573 / 3573.dat Slope Brick Curved 4 x 1 x 1.667 3627 / 3627.dat Constraction Lightsaber Blade 10L with Axle End 3766 / 3766.dat Plate 4 x 6 with Rounded Ends 3803 / 3803.dat Bar 1L Quadruple with 1L Peghole Hub 3917 / 3917.dat Ring 2 x 2 with Stud Holder 3968 / 3968.dat Figure Arm Bent Long with Peghole and Friction Pin 4041 / 4041.dat Panel 4 x 4 x 3 Corner Round 4042 / 4042.dat Bar Curved with Axle End and 2 Opposite Studs 4304 / 4304.dat Plate 2 x 2 x 0.667 with Two Studs On Side and Two Raised with Partial Closed Understud 4585 / 4585.dat Bracket 2 x 1 - 2 x 1 Up Centred 4586 / 4586.dat Technic Beam 9 x 0.5 with 3 Holes 5065 / 5065.dat Panel 6 x 5 x 3.333 with Curved Top 5066 / 5066.dat Plate 2 x 2 with Horizontal T-Bar Below 5152 / 5152.dat Brick 3 x 3 Corner Round 5405 / 5405.dat Technic Gear 4 Knob 45° 21788 / 21788.dat Minifig Hair Short Smooth 35809 / 35809.dat Minifig Pen 37784 / 37784.dat Minifig Hair Half Giant with Beard 42876 / 42876.dat Minifig Food Turkey Leg with Oval Opening on Back 65203 / 65203.dat Figure Micro Doll Body with Long Dress 65700 / 65700.dat Plate Round 2.5 x 2.5 with Melting Drops on Sides 65766 / 65766.dat Technic Steering Wheel Bearing with 2 Pegholes & 2 Axleholes Arms Type 2 67037 / 67037.dat Minifig Helmet with Cheek Guard and Neck Protector 67144 / 67144.dat Sheet Plastic 8.5 x 7 Motorcycle Windscreen 67361 / 67361.dat Brick 2 x 2 Round with Tail/Neck Curved Extension with Tip Pin Hole 67697 / 67697.dat =Technic Beam 2 Liftarm with Straight Ball Joint 68212 / 68212.dat Minifig Tuft 69857 / 69857.dat Minifig Hair Curly with High Ponytail 72132 / 72132.dat Plate 2 x 6 x 0.667 with Four Studs On Side and Four Raised Reinforced 73764 / 73764.dat Brick 2 x 2 x 1.667 with Hole for Worm Screw 6L 78333 / 78333.dat Hose Reel 2 x 2 with Stud and Pin Holes 78643 / 78643.dat Minifig Armor Breastplate with Round Shoulder Pads and 2 Back Studs 79735 / 79735.dat Minifig Chopsticks 79766 / 79766.dat Technic Beam 15 x 7 with Open Center and 3 Truss Bars 79767 / 79767.dat Technic Beam 15 x 5 with Open Center and 3 Truss Bars 79808 / 79808.dat Minifig Whisk with Notch in Handle 80295 / 80295.dat Technic Reel 4 x 3 80835 / 80835.dat Container Treasure Chest Lid with Flat Top 100942 / 100942.dat Wheel 37 x 45 Hard-Plastic with 6 Curved Spokes md5sum: 91c6fddb739e1933d31ce922d285baea
  16. Studio is more resistant to changes these days… but you need to stay in the Instruction Maker: don’t go changing steps or creating/releasing submodels in Build mode, do it in Step Editor. That may still mess up the instructions for the current submodel but the next ones are generally resilient now.
  17. Update 2024-02-08 Added: 10056 / 10056.dat Minifig Helmet with Cheek and Neck Protection 10065 / 10065.dat Minifig Beard with Braided Moustache Ends 10829 / 10829.dat Minifig Helmet Deep Diver with Lens 11098 / 11098.dat Minifig Armour Breastplate with Shoulder Pads, Front Stud and 2 Back Studs 11107 / 11107.dat Minifig Sword Serrated with Bar Holder 12551 / 12551.dat Minifig Mask Crocodile 12894 / 12894.dat Minifig Hat Cone 16768 / 16768.dat Bar 4L with Flame Protusions 17348 / 17348.dat Minifig Princess Hair with Hat 18051 / 18051.dat Vehicle Mudguard 3 x 4 x 1 2/3 with Curved Fenders 18742 / 18742.dat Bucket 2 x 2 without Handle Holes 18959 / 18959.dat Minifig Hat Nemes 19026 / 19026.dat Minifig Helmet Cyborg Open Side 20690 / 20690.dat Animal Dog Sitting Great Dane Body 20691 / 20691.dat Animal Dog Sitting Great Dane Head 24084 / 24084.dat Minifig Weapon Spiked Ball 98129 / 98129.dat Minifig Helmet Visor Samurai 98132 / 98132.dat Minifig Armour with Shoulder Pads and Scabbard 98133 / 98133.dat Minifig Hat Ninja Wrap Type 1 98725 / 98725.dat Minifig Hair Female Long Wavy with Tiara 99251 / 99251.dat Minifig Neck Ruff Added custom parts: 60189 / 60189.dat Brick Braille 2 x 4 with 1 Stud (DOTS-1) 60290 / 60290.dat Brick Braille 2 x 4 with 6 Studs (DOTS-123456) 65559 / 65559.dat Brick Braille 2 x 4 with 1 Stud (DOTS-5) 65579 / 65579.dat Minifig Hair Parted in Middle with 2 Round Buns on Top 73210 / 73210.dat Mario Pixelated md5sum: 6e5456c9d8359b6508c0e8c09d41fd62
  18. The bug is fixed in both ‘production’ and EarlyAccess in version 2.24.1(1). You need to (re)download and (re)install as you can’t click Accept in the older version. The fix for PartDesigner is in testing now. No exact ETA on a release. Should be soon.
  19. (Wasn’t griping at you: you’re a newbie, it’s normal not to know. Experienced users should know though ) Stud in Technic hole is mostly illegal. For the BrickLink Designer Program (webinar video), you can only put one stud in one Technic hole, and nothing else attached to it. Here, another problem is that, IRL, the Technic hole is 0.12mm higher than the side stud. So, not only is the Technic hole too small for a stud, but it’s not aligned. For that build, you’d need to use a 1x1 panel instead. Or another headlight brick… but then it creates a hole on the right and (contrarily to what the LDraw/Studio model shows) the side stud goes farther than the next brick, so you need a hole next to that one too: a panel or a Technic hole (this time, it’s just a small bump, so the parts are not connected and therefore not stressed).
  20. Oh people, Studio is not LDD! Use the arrows to turn the brick upside-down and then the WASD keys (they obey to the Grid) and/or the Translation tool to place it. Here’s a 13s screencast that shows how to do your build. Gee, what’s the use of writing help pages! ——— And there’s way more than 4 or 6 parts too many here! 2 headlight bricks are enough:
  21. Yes and no. LDD reads everything that’s in the directory, files and subdirectories. So you just needed to move the older LDDExtended.lif away. Otherwise, it’s you and your luck which info LDD’s reading last: the old lif file or the new files in the extracted folder.
  22. Hi, You’re right not to give any information about your system: I can guess you’re on a macOS Sonoma 14.2 (or 14.2.1). (Also discussed here.)
  23. You create it in the folder where you put the downloaded files. PD will inline these files (that is, replace their references by their contents) in the .dat file it will create. You (generally) won’t need the downloaded files again after the model is imported in PartDesigner.
  24. Hi, You (obviously ) need to download all the files Studio doesn’t yet have (or has in an older version). You will need to create a folder named ‘s’ and put the subfiles (xxxs0x.dat) there. Then, in PartDesigner, you import the main file and it will find and load the subfiles automatically. Only the xxxs0x.dat files need to go in the ‘s’ folder. It’s because they are referenced as s\xxxs0x.dat in the main (or upper) file. All the other files (subparts or new primitives) go in the same folder as the main file. Note that you need to restart PartDesigner when you add files (or create the ‘s’ subfolder): it caches its search results and if it failed to find some files or the ‘s’ folder, it won’t look again during the same session.
  25. Update 2023-12-19 I did not check the 100 or 200 parts (stock and custom) that were customized/modified since December 2022. Theoretically and hopefully, their orientations and positions weren’t changed. Added: 13784 / 13784.dat Minifig Hair Female Long with Braided Pigtails 15437 / 15437.dat Minifig Armour Shoulder Pads 15557 / 15557.dat Minifig Hair Trapezoid Swept Back 24204 / 24204.dat Animal Tail Bladed with Pin and Bar Tip 25613 / 25613.dat Minifig Hair with Top Knot Bun and Fringe 53545 / 53545.dat Constraction Torso 11 x 6 Importable: 3347.dat / 94161 =Window 1 x 2 x 2.667 Shutter with Rounded Top 79811.dat / 98369 =Minifig Cleaver 35287.dat / 60602 Glass for Window 1 x 2 x 3 Added Custom assemblies: 37779 Minifig Arm Large Left with Friction Pin 37783 Minifig Arm Large Right with Friction Pin 73261 Electric 4.5V 3 C-Cell Battery Box Polarity Switch 2 x 4 85824 Electric Control+ Hub with Screw Opening Added Custom parts: 1686 / 1686.dat Constraction Shell 2 x 4 x 3.333 Shoulder Pad with Bar 1744 / 1744.dat Cylinder 3 x 3 x 3 Dome Elongated 1846 / 1846.dat Car Mudguard 4 x 3 x 1.667 1872 / 1872.dat Wheel Rim 11 x 18 Front with 36 Spokes and Knock-off Hub Nut 1939 / 1939.dat =Tile 4 x 4 Corner Round Type 2 1942 / 1942.dat Slope Curved 4 x 2 x 0.667 Double with Fresnel Lens 2142 / 2142.dat Horn Stacked with Axle Holes 2405 / 2405.dat Technic Wheel Spindle Axle Driver Bar 5L 2438 / 2438.dat Technic Panel 5 x 3 x 2 Corner Left 2442 / 2442.dat Technic Panel 5 x 3 x 2 Corner Right 2471 / 2471.dat Technic Gear 24 Tooth with Clutch on Both Sides 2473 / 2473a.dat Technic Transmission Driving Ring 2L with 8 Teeth 2474 / 2474a.dat Technic Gear Stepper with 8 Teeth 2477 / 2477.dat Technic Beam 3 x 5 Bent 90 with Alternating Holes 2491 / 2491.dat Tyre 29/ 66 x 43 2502 / 2502.dat Technic Beam 2 x 12 x 9 with Claw 2509 / 2509.dat Technic Panel 11 x 2 x 5 Mudguard Arched #32 2612 / 2612.dat Plate 16 x 16 x 0.667 with 8 x 8 Cutout and Recessed Studs 2628 / 2628.dat Plate 8 x 8 x 0.667 with Cutouts and Recessed Studs 2629 / 2629.dat Plate 8 x 16 x 0.667 with Cutouts and Recessed Studs 2656 / 2656.dat Container Cupboard 2 x 3 x 5 2657 / 2657.dat Door 1 x 3 x 5 2676 / 2676.dat Minifig Beard with Braided Moustache Ends and Braid in Back 2937 / 2937.dat Slope Brick 55 1 x 6 x 5 with Bottom Stud Holders 3130 / 3130.dat Panel 2 x 2 x 1 Side Panels 3131 / 3131.dat Panel 2 x 2 x 1 Corner Posts with Centre Stud 3160 / 3160.dat Tile 6 x 6 x 0.667 with Angled Textured Surface 3161 / 3161.dat Panel 2 x 4 x 6 Rock 3166 / 3166.dat Vehicle Mudguard 4 x 8 x 0.667 (needs Work) 3170 / 3170.dat Plate 1 x 2 with Ball Joint-8 on Both Ends 3172 / 3172.dat Plate 1 x 3 with Offset Peghole on Underside 3221 / 3221.dat Minifig Helmet Pan Shaped with Hollow Stud on Front 3224 / 3224.dat Fence 1 x 2 x 1.667 with 45 Degree Diagonal Bar 3250 / 3250.dat Technic Ring 15 3251 / 3251.dat Technic Panel Cylinder 15 60° 3263 / 3263.dat Plate 4 x 3 x 0.667 with Rounded Corners on one Side 3384 / 3384.dat Windscreen 6 x 4 x 1.333 Sloped 3385 / 3385.dat Car Base 6 x 12 with 5 x 6 Recessed Centre and Studs on Sides 3386 / 3386.dat Plate 1 x 1 x 0.667 Half Round with Open Side Stud 3387 / 3387.dat Car Mudguard 4 x 2.5 x 2 3388 / 3388.dat Wedge 1 x 5 Straight Left 3389 / 3389.dat Wedge 1 x 5 Straight Right 3395 / 3395.dat Tile 2 x 4 Inverted with Groove 3396 / 3396.dat Tile 2 x 2 with Two 1 x 1 Curved Cutouts 3477 / 3477.dat Tile 4 x 4 Corner Round Type 2 3486 / 3486.dat Wheel 16 x 37 Hard-Plastic with 4 Studs 3504 / 3504.dat Wedge 2 x 5 Straight Left 3505 / 3505.dat Wedge 2 x 5 Straight Right 3535 / 3535.dat Panel 3 x 3 x 2 Quarter Round 3538 / 3538.dat Technic Panel 11 x 2 x 5 Mudguard Arched with Rounded Top #43 3544 / 3544.dat Wing 3 x 8 Left 3545 / 3545.dat Wing 3 x 8 Right 3569 / 3569.dat Cone 4 x 4 x 3 on Brick 2 x 2 Round 3572 / 3572.dat Arch 1 x 5 x 2 3661 / 3661.dat Plate 1 x 1 with Vertical Bar 3668 / 3668.dat Plate 2 x 6 with Side Bricks 1 x 2 x 1.333 with Axlehole with Underside Ridges 3885 / 3885.dat Minifig Sword Darksaber 4158 / 4158.dat Technic Changeover Cylinder with Groove 4159 / 4159.dat Technic Changeover Catch Fork 4192 / 4192.dat Technic Steering Constant Velocity 8mm Joint Female With 2L Axle 4569 / 4569.dat Slope Brick 10 6 x 1 18031 / 18031.dat Minifig Sword Longsword with Thick Guard 26741 / 2674c.dat Minifig Sword Small with Curved Blade and Detailed Hilt 26742 / 2674e.dat Minifig Sword with Broken Blade 26743 / 2674f.dat Minifig Sword Small with Upturned Crossguard and Capped Pommel 26744 / 2674b.dat Minifig Sword Greatsword with Capped Pommel 26745 / 2674a.dat Minifig Sword Elfish 26746 / 2674d.dat Minifig Weapon Axe Dwarven 28621 / 28621.dat Minifig Head with Vented Stud 32305 / 32305.dat Technic Connector Block 7 x 4 x 3 32533 / 32533.dat Technic Disc 5 x 5 Projectile 35530 / 35530.dat Minifig Baby Head Cuboid 37822 / 37822.dat Minifig Baby Carrier 38301 / 38301c02.dat Minifig Cape Cloth Scalloped 6 Points (Formed Shape 2) 38458 / 38458.dat Minifig Head with Exaggerated Chimpanzee Features 39370 / 39370.dat Technic Beam 5 x 3 H-shaped with Ball Socket 40145 / 40145.dat Plate 2 x 2 Round with Rotation Stem 45779 / 45779.dat Minifig Helmet with Mask 45991 / 4599a.dat Tap 1 x 1 with Hole in Spout 49736 / 49736.dat Cylinder Tube Slide Straight 49737 / 49737.dat Cylinder Tube Slide Curved 45 Degrees 51066 / 51066.dat Minifig Robot Leg 1 x 2 x 1.667 with Pin with Square Centre Hole 57881 / 57881.dat Minifig Hat Rain 65066 / 65066.dat Glass for Door 1 x 6 x 7 with Arch 66964 / 66964.dat Minifig Sword Greatsword Pointed with Upturned Crossguard 67631 / 67631.dat Animal Otter 68577 / 68577.dat Wheel Rim 42 x 62 with 20 Spokes and 3 Pins 69912 / 69912.dat Tyre 35/ 55 x 43 R Tractor 69945 / 69945.dat Animal Hermit Crab with 45 Degree Bar on Back 70495 / 70495.dat Windscreen 3 x 14 x 4 with Conical Sides 70880 / 70880.dat Rock Rounded 1 x 4 with 2 Studs on Ends 73763 / 73763.dat Technic Worm Gear 6L 77123 / 77123.dat Minifig Head Special with Black Mouse Ears and Nose with Fire Fighter Helmet 77822 / 77822.dat Sports Stuntz Loop Ramp Base 77823 / 77823.dat Sports Stuntz Loop Ramp Section 77844 / 77844.dat Plate 3 x 3 Corner 77845 / 77845.dat Plate 1 x 4 Round Ends with 2 Open Studs on Ends 77850 / 77850.dat Plate 1 x 3 Round Ends and 3 Open Studs 78124 / 78124.dat =Container Cupboard 2 x 3 x 2 Drawer 78168 / 78168.dat Plate 2 x 6 with Centred 2 x 2 Rounded Holder 79768 / 79768.dat Technic Beam 16 x 7 Triangular with Diagonal Bars 79996 / 79996.dat Bag Tag with 3 x 8 Studs 80031 / 80031.dat Plate 10 x 10 with Rounded End 80390 / 80390.dat Bag Tag with 3 x 6 Studs 80428 / 80428.dat Technic Weight 7 x 11 x 2 80497 / 80497.dat Animal Tail with Straight Tip 80513 / 80513.dat Animal Toucan 80562 / 80562.dat Train Track Roller Coaster 4 x 4 80567 / 80567.dat Vehicle Mudguard 4 x 10 x 0.667 80577 / 80577.dat Minifig Hair Long Wavy with Knit Ski Cap 80683 / 80683.dat Door 1 x 3 x 6 80834 / 80834.dat Minifig Hair with Nurse Hat with Long Back 83496 / 83496.dat Tile 4 x 8 Inverted 86879 / 86879.dat Animal Axolotl Body 90840 / 90840.dat Train Wheel Very Large with Axlehole and Pinhole 100662 / 100662.dat Minifig Baby Head with Space Helmet and Air Tanks 101658 / 101658c01.dat Minifig Cape with Stepped Shoulders and Single Top Hole (Formed) 101777 / 101777.dat Minifig Top Hat with Band 102498 / 102498.dat Minifig Tool Wand with Hollow Stud at Tip 103918 / 103918.dat Windscreen 4 x 4 x 2 with Integral Glass 350321 / 35032a.dat Power Burst Blaster with Bar 350322 / 35032b.dat Power Burst Bolt 5L with Bar at Both Ends 350324 / 35032d.dat Power Burst Bolt 5L Spiral with Bar at Both Ends 350325 / 35032e.dat Power Burst Shield 3.5 x 3.5 with Bar 350326 / 35032f.dat Power Burst Shield 3 x 2.5 with Bar at Both Ends md5sum: f5167111b89abeb94b6421975dbf678e