Recommended Posts

Hi guys! I have finally made a new release for Brick Studio. You can download it here.

A lot of stuff has changed internally in the software and while I played a lot with the new version there is the possibility that I broke some stuff.

If you encounter any problems don't hesitate to let me know!

Share this post


Link to post
Share on other sites
12 hours ago, jamesster said:

Potentially of interest to this project... LEGO released a Unity toolkit that includes a bunch of official part models we didn't have before:

 

Very cool, thanks for sharing this! I think it will definitely be an asset to this project. I'll check it out.

Share this post


Link to post
Share on other sites

 

5 hours ago, polymaker said:

Hi guys! I have finally made a new release for Brick Studio. You can download it here.

A lot of stuff has changed internally in the software and while I played a lot with the new version there is the possibility that I broke some stuff.

If you encounter any problems don't hesitate to let me know!

Thanks Polymaker! I am playing around with it now, very nice improvements. The line generation is still not quite there, but after a bit of playing around, I was able to achieve this results on the 14x14 dome piece: 800x512.jpg

I realize there are still gaps in the geometry, @Equilibrium, but the way I got those lines to appear was just a trick with BrickStudio:

  1. Select the whole object and go to Meshes->Separate meshes. All the panels are then separate meshes.
  2. Click on a panel, move it up just a random distance. Do this for all the panels
  3. Click on Meshes->Calculate Outlines
  4. Move all the panels back to 0 (where they started)
  5. Generate LDD files

So the outlines are calculated based on it thinking that they are all individual panels floating in random heights, but when I bring them back to the zero positions they still have those outlines that were generated before. I don't know if you had a trick like that, but this is what I did.

Edited by zweifuss

Share this post


Link to post
Share on other sites
9 minutes ago, zweifuss said:

I realize there are still gaps in the geometry, @Equilibrium, but the way I got those lines to appear was just a trick with BrickStudio:

Good trick! The outlines do not appear by default because my algorithm thinks that the faces are "smooth" enough.
This behavior is needed in certain cases. For example, the part of a minifig head that can have a decal is a different surface than the rest of the head, but it does not have outlines around it.

9C07R7A.png

But in some case outlines are needed on surface that are flat (I remember that one electric part use outlines to mimic text print).

I will add a window to configure the angle tolerance and also to select the surfaces that needs outlines even if they are flat/smooth with other surfaces.

Share this post


Link to post
Share on other sites
5 minutes ago, polymaker said:

Good trick! The outlines do not appear by default because my algorithm thinks that the faces are "smooth" enough.
This behavior is needed in certain cases. For example, the part of a minifig head that can have a decal is a different surface than the rest of the head, but it does not have outlines around it.

9C07R7A.png

But in some case outlines are needed on surface that are flat (I remember that one electric part use outlines to mimic text print).

I will add a window to configure the angle tolerance and also to select the surfaces that needs outlines even if they are flat/smooth with other surfaces.

Wow perfect, that'd be ideal! I also like how the program warns you now that you are overwriting existing LDD parts, and it lists the .XML and .G files that it is writing, nice touch there. Looking forward to trying all the new things, now I gotta learn how flexible parts work and bones, that'll be fun to apply to sails, nets, and to the flex tubes that aren't bendable (yet).

Share this post


Link to post
Share on other sites
On 9/10/2020 at 5:00 PM, SylvainLS said:

Here I added a replacement for the file LDD.paxml, the parts palette for LDD “standard” mode.

How do I use it?  Next to db.lif, there’s a Palettes directory.  Inside is a LDD.lif file.  Extract that lif.  Rename the lif.  Replace the file LDD.paxml in the new “LDD” directory with the new version.  (Re)start LDD.  Enjoy!

New version available (same place), 471 combinations added (mainly from variants existing in LDD but not recognized by BL).

Share this post


Link to post
Share on other sites

@zweifuss That's exactly the trick I had in mind. Although I didn't know it is possible to do it using Brick Studio - I was editing files through hex :P and wondered how am I supposed to explain that.

Here are some general tips that I wrote some time ago:

On 7/11/2020 at 11:58 AM, Equilibrium said:

So from the very beginning:

  1. Default orientation - brick should be placed so connections points are easy to follow in 3D space, I was placing my bricks like original ones (0;0;0 point matches either hole in a technic brick or center of the stud) it is easier to add connections every 0,8 units starting from 0 than starting from 0,3621;0,1452;0,435521 for example. Once we choose it we should never change it. This would create issues in already existing LDD projects using our bricks and converters would have to be constantly updated. Keep in mind that orientation of displaying brick in LDD palette or once you place it can be adjusted without repercussions using one command line in xml file.
  2. The 3D model itself - I have mentioned this already in my topic but for me this is the most time consuming part of the process of making a good brick. It does require some 3d modeling skills but end result is worth it. As of right now it is not enough to simply import LDraw part and save it. Default LDraw part is divided into multiple individual polygons that make up a brick. This is both unoptimized and won't output nice outlines. In order to allow Brick Studio to generate nice outlines a brick has to be divided into surfaces, some modeling techniques has to be changed (around holes for example) and vertices that are part of these surfaces has to be merged together, but surfaces themselves can't be connected to each other. This is how my technic frame looks like before merging each subpart together and applying normals:
    1. yQ7KBSnm.png
    2. Part is divided into subparts, each subpart has different color, most of vertices in a subpart are merged together creating one smooth surface. Of course there are outlines errors in some bricks that has to be corrected by trial and error. Chamfered edges won't output outlines even if divided.
    3. To sum up this point. If a contributor doesn't divide surfaces/merge vertices/leave out unsmoothed surfaces himself another person would have to fix/make this brick from the beginning. I hope now you understand my point and why I wrote what I wrote last time.
  3. Connections - a brick without connections is useless. Some minimal connectios should be mandatory, for example technic bricks for pins/axles/hinges, system bricks for studs/hinges. I don't expect anyone to make rails like my monorail since even LEGO didn't do this :classic:
  4. Collisions - I guess this is the least mandatory part of process but unexpirienced LDD users could create issues in their projects without it.
  5. Naming/numbering - I'm putting it last but it should be set in stone before releasing a brick. Stuff like asking a user to delete something shouldn't happen,

 

Share this post


Link to post
Share on other sites
On 9/9/2020 at 3:26 AM, Lo var Lachland said:

Using what? I'm not planning on going on a coding crusade to just get some new LEGO elements into LDD. If it requires Python script and commands then honestly I'm not up for that task.

You don't need to 'code' anything. You can get the python script here: https://github.com/JrMasterModelBuilder/LIF-Extractor . Then just run it in the command line (called 'Terminal' in macOS). Terminal might feel slightly intimidating but its for this task not complex.

Share this post


Link to post
Share on other sites
6 hours ago, M2m said:

You don't need to 'code' anything. You can get the python script here: https://github.com/JrMasterModelBuilder/LIF-Extractor . Then just run it in the command line (called 'Terminal' in macOS). Terminal might feel slightly intimidating but its for this task not complex.

Alright, glad you clarified. I've used Terminal before so that's not a big deal.

Share this post


Link to post
Share on other sites
On 9/10/2020 at 5:55 PM, Philo said:

Could you report what you found wrong? Might be intetesting to fix LDraw models :pir-blush:

Sure, but other than outer dimmensions things are still probably incorrect. So that's something to keep in mind untill someone confirms it with real bricks. I have made some more improvements with newest update to 22253 and its tyres (the ones I own) so this one is pretty close to the real brick now. What changes I made in comparison to LDraw models:

  • 6594 - inner diameter changes,
  • 22253 - inner/outer diameter changes, axle/pin holes offset changes,
  • 32180 - inner/outer diameter changes,
  • 37383 - I have moved pin connections slighty becouse I was getting uneven offset compared to the stud placement,
  • 32057 - outer diameter changes (I have actually used modified and cut in half 32077 for this piece),
  • 32076 - outer diameter changes, slighty changed inner shape,
  • 32077 - outer diameter changes,
  • 32078 - outer diameter changes, slighty changed inner shape,
  • 32196 - outer diameter changes, updated 3D model
  • 32197 - outer diameter changes, updated 3D model
  • 56907 - outer diameter changes.

And here's new update:

HvR0lOsl.png

I've used ball connections for the new CV joints in order to allow movement in multiple directions. Unfortunetly I had to allow for some movement along axis that doesn't have any in real life becouse LDD was getting stuck a lot without it.

Download Links:

Share this post


Link to post
Share on other sites
17 minutes ago, Equilibrium said:

Sure, but other than outer dimmensions things are still probably incorrect. So that's something to keep in mind untill someone confirms it with real bricks. I have made some more improvements with newest update to 22253 and its tyres (the ones I own) so this one is pretty close to the real brick now. What changes I made in comparison to LDraw models:

  • 6594 - inner diameter changes,
  • 22253 - inner/outer diameter changes, axle/pin holes offset changes,
  • 32180 - inner/outer diameter changes,
  • 37383 - I have moved pin connections slighty becouse I was getting uneven offset compared to the stud placement,
  • 32057 - outer diameter changes (I have actually used modified and cut in half 32077 for this piece),
  • 32076 - outer diameter changes, slighty changed inner shape,
  • 32077 - outer diameter changes,
  • 32078 - outer diameter changes, slighty changed inner shape,
  • 32196 - outer diameter changes, updated 3D model
  • 32197 - outer diameter changes, updated 3D model
  • 56907 - outer diameter changes.

And here's new update:

I've used ball connections for the new CV joints in order to allow movement in multiple directions. Unfortunetly I had to allow for some movement along axis that doesn't have any in real life becouse LDD was getting stuck a lot without it.

Download Links:

OMG, thank you, been waiting for these parts!


EDIT can you also change the exisitng 32494, 92906 and hubs to a ball joint connection? Not to mention 32494's angle is way too low.

Edited by Zerobricks

Share this post


Link to post
Share on other sites

Hi guys!
I wanted to let you know that I have started a Wiki on my Github and I will post useful information and tutorials for Brick Studio.

For now I only have a page about brick outlines and how they works. The page is still in progress.

After I finish the page on brick outlines I will make one about flexible parts.

Share this post


Link to post
Share on other sites
44 minutes ago, polymaker said:

Hi guys!
I wanted to let you know that I have started a Wiki on my Github and I will post useful information and tutorials for Brick Studio.

For now I only have a page about brick outlines and how they works. The page is still in progress.

After I finish the page on brick outlines I will make one about flexible parts.

Thanks! I have already played around with the flexible parts, it's a bit daunting coming from someone with very little experience with armatures and rigging, but very cool. I was able to create the 32201 'Flex Rod 14M' now, but I wasn't able to do it by editing the 19M flex rod within Brick Studio. I'm not sure if there is an option there to connect bones to each other, unless I'm missing something. I had to go into Blender, import the 19M, cut out 6 sections, move the axle to the solid section, stitch the mesh up, and re-parent the bones to the existing chain, and then export out the .DAE. I was then able to import the new .DAE file into a new part project and all the bones came in connected, and then was able to create the LDD files. Otherwise, Brick Studio tells me 'boneXX' not linked. SO too long didn't read, look forward to a wiki entry on the flexible parts!

Share this post


Link to post
Share on other sites
5 hours ago, polymaker said:

Hi guys!
I wanted to let you know that I have started a Wiki on my Github and I will post useful information and tutorials for Brick Studio.

For now I only have a page about brick outlines and how they works. The page is still in progress.

After I finish the page on brick outlines I will make one about flexible parts.

I love it - super informative wiki entry ! Looking forward to others.

Share this post


Link to post
Share on other sites

@zweifuss You actually found the correct way to do flexible parts at the moment. You are also right, I haven't made (yet) the options to add or connect bones together. So for now the only way is to import a model with a proper bone chain.

Also I found something that may be interesting. While I was trying to do the same part as you (32201) I messed up the bone chain in Blender and I ended up having two bones connected to one.
I was not aware that I had the mistake when I loaded it in LDD. It was not working properly in LDD so I guessed some data was wrong (I was still working on making flexible part editable in Brick Studio and there was indeed some incorrect data in the file).

I later found out and fixed the bone chain but I realized that LDD DID load the part without crashing! So it might be possible to have branching bone hierarchy.

Share this post


Link to post
Share on other sites
1 hour ago, polymaker said:

@zweifuss You actually found the correct way to do flexible parts at the moment. You are also right, I haven't made (yet) the options to add or connect bones together. So for now the only way is to import a model with a proper bone chain.

Also I found something that may be interesting. While I was trying to do the same part as you (32201) I messed up the bone chain in Blender and I ended up having two bones connected to one.
I was not aware that I had the mistake when I loaded it in LDD. It was not working properly in LDD so I guessed some data was wrong (I was still working on making flexible part editable in Brick Studio and there was indeed some incorrect data in the file).

I later found out and fixed the bone chain but I realized that LDD DID load the part without crashing! So it might be possible to have branching bone hierarchy.

Neat. So do you think it's possible to have sails now? Would I do a bone matrix over a sail and then be able to bend that over the pegs on a pirate ship? I'd like to try...

And if you're working on the 32201 part, I'll keep mine to myself, yours will most likely be of better quality than mine to distribute to the community. I did manage to achieve this though:

1280x660.jpg

Edited by zweifuss

Share this post


Link to post
Share on other sites

I got the latest parts-update and now I'm having some 'questionmark' parts group divider containing some piston parts:

weird_piston.png

 

Am I the only one with this ?

Share this post


Link to post
Share on other sites

Are you sure you have the latest?  These parts should have been included in a pneumatic cylinder... I don't have them in the "?" category, so the update should be correct...

A new update is coming in a few days, that should definitely solve the problem.

Share this post


Link to post
Share on other sites

Thanks for the quick reply. Maybe i did something wrong when copying.... Anyway its not a biggie :)

Share this post


Link to post
Share on other sites

Did you copy the lxfml assemblies into Assemblies?

If the files are missing, LDD thinks the subparts are normal parts.  (Or, rather, when parts are used in an assembly, they aren’t available as standalone.)

Share this post


Link to post
Share on other sites

Hi

I have tried the steps to import the new parts in but when I downloaded the new parts lxf and tried to view it, it would just show a question mark on the recent side and when I open it, it would say some parts are remove because it is missing. Am I doing something wrongly?

Thanks

Just now, Nick1 said:

Hi

I have tried the steps to import the new parts in but when I downloaded the new parts lxf and tried to view it, it would just show a question mark on the recent side and when I open it, it would say some parts are remove because it is missing. Am I doing something wrongly?

Thanks

Also when I try to search for the new parts the new parts doesn't show up. 

Share this post


Link to post
Share on other sites
4 minutes ago, SylvainLS said:

Did you copy the lxfml assemblies into Assemblies?

If the files are missing, LDD thinks the subparts are normal parts.  (Or, rather, when parts are used in an assembly, they aren’t available as standalone.)

Yes I just tried this again. I redownloaded primitives.rar from here: https://www.dropbox.com/s/91nj66c6gg26wt7/Primitives.rar?dl=0

and then overwrote all *.lxfml in the Assemblies folder with the ones from the rar file... still same issue. Which lxfml file is containing the pistons ? I may check if its a problem with that.

Share this post


Link to post
Share on other sites

Ok I fixed it. I just started from scratch (Extract db.lif, then replace all files) and it worked !

Share this post


Link to post
Share on other sites

I've fixed my problem , but when I try to generate building instructions with just one new part, the whole ldd will just auto close by itself.

@Stephan Do you know what happened? Anything I could do about it? Thanks ?

Share this post


Link to post
Share on other sites
28 minutes ago, Nick1 said:

I've fixed my problem , but when I try to generate building instructions with just one new part, the whole ldd will just auto close by itself.

@Stephan Do you know what happened? Anything I could do about it? Thanks ?

Is it all the new parts or just one?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.