I just recently came back to Lego and bought my first set in two decades! While browsing the Lego website I discovered LDD and thought "well, it would be cool to have that in a proper 3D model format". So I checked their file format and noticed that it only contains references to the pieces and not the actual geometry... to make a long story short, I dropped the idea, then read about LDraw and wrote a simple LDR importer instead. It was a "just for fun" thing and I don't have any plans what to do with it yet. However, I thought I at least post a couple of screenshots as sort of a thank you to the community for providing the pieces library! Hope you enjoy it!
Alex
P.S.: Yeah, I know, I'm missing a few pieces and the white is still too grayish . Screenshots were taken on an iPad Pro using Metal/OpenGL rendering with basic image based lighting and a cubemap reflection, nothing too fancy (for the first image, I blended the 3 different wireframe modes in Photoshop). For more info and larger screenshots, see also http://metashapes.com/rendering-lego-bri...aw-import/
...use the 3D editor and the text editor in one window. You can enable this under "Options...->Misc. Options->Text and 3D editor arrangement". It needs a restart of the application.
...use the TJunctionFinder to just "find" possible T-junctions without changing the mesh.
...deselect objects only with Ctrl+Click (Ctrl+Marquee is not possible anymore).
...add objects to the selection (Ctrl is pressed and you use the selection marquee or Ctrl+Click).
...benefit from the fact that the existing selection is cleared if nothing was selected and Ctrl was not pressed.
...find the "Last opened Files/Projects" on the "New Part - Open Part - ..." toolbar.
...benefit from the fact that empty text editor windows are populated with a new tab instead of creating a new text editor window.
...restore the complete viewport state for different files. Each file has now its own 3D viewport configuration. Open file A, activate "Random Colours" and you switch to file B to do something different without "Random Colours". If you switch back to file A, "Random Colours" are activated again. However, this automatic feature is not limited to the random colour mode. It includes every 3D viewport setting.
..."group" a selection. Select non-subfile content in the 3D editor. Open the context menu over the 3D view and select "Join selection (Text Editor)" to bring together what belongs together!
...see a warning/info, when "Move Adjacent Data" is on (for translate/rotate/scale).
...benefit from the fact that "Quick Fix Similar" for vertex declarations deletes other vertices (!LPE VERTEX), too.
The following critical issues were fixed:
SyncEdit: The cursor jumped ahead after I tried to edit a vertex
Switching the tabs in the 3D editor modified the last visited file location.
Some issues with the hint/warning/error tree.
Pasting something does not disable "Move Adjacent Data".
The selection highlight feature in the text editor was sometimes not synchronised with the 3D view.
Other minor bug fixes (regarding undo / redo with selection and/or hidden objects).
What will the next release 0.8.21 deliver? Bug fixes, selection and manipulator features, more features for the angle protractor...
* well..., I need to reproduce the errors first. I was not able to...
The program was tested intensively with "real world" files.
However, it is still a beta version and something can go wrong in about 100.000 lines of code.
Make sure that you choose the right architecture for your OS and Java Virtual Machine (JVM) (64bit or 32bit).
A short guide how to check if a 64bit JVM is installed on your system is located at the bottom of this message.
Download the zip-Archive
Extract the archive content to the location of your choice
On windows, double-click "run.bat" to start LDPE.
On linux/mac, you have to excecute the shell script "run.sh" to start LDPE.
Please note that this software is in the beta stage. Although, LDPE 0.8.20 was tested, there are already known issues for this release. There is a potential risk of data loss.
You can search for updates if you do the following steps:
On windows, double-click "update.bat" to search for updates.
On linux/mac, you have to excecute the shell script "update.sh".
I listen carefully to your requests and possible complaints. Please leave me a message, with your thoughts and wishes to further improve the software.
LDPE is a 3D CAD application: The overall system requirements are higher. While I recommend to use a powerful 64-bit multicore system, it could be possible, to run LDPE on older machines as well.
System Requirements:
Minimum System Requirements:
Java Runtime Environment (JRE) 1.8
OpenGL 2.1 compatible Graphics Card
Operating System (32/64bit): Windows [XP; Vista; 7 or newer], Mac OS X [>=10.6], Linux [e.g. Ubuntu Linux >=10.4]
CPU: Multicore-Processor e.g. Intel Core 2 Duo or AMD Athlon II (>2.0Ghz)
RAM: 4GB
Video-Memory: 512 MB
Free Disk Space: 100 MB
Recommended Requirements:
Operating System (64bit): Windows 7, Mac OS X [>=10.6], Linux [e.g. Ubuntu Linux >=10.4]
CPU: Multicore-Processor with 4 cores (or more)
RAM: >4 GB
Video-Memory: >=1 GB
Free Disk Space: 512 MB
--------------------------------------------------------------------------------
How to check your JVM version (32- or 64-bit):
--------------------------------------------------------------------------------
You can try on the command line:
Code:
java -d64 version
If it's not a 64-bit version, you'll get a message that looks like:
Code:
This Java instance does not support a 64-bit JVM. Please install the desired version.
In general, I recommend to install the 64-bit version of the JVM for Java 8.
I'm looking into creating a few templates for WeDo (1 and 2) for the new LPF2 motor and the sensors. I have also created .pgb files for both sets and was wondering if there is a way to include a template in the .pgb file I don't need to go look for those parts in other areas of the parts bin.
I've been working on a mirror feature for LDCad 1.6 it is already working quite nice.
Problematic are the paired parts (e.g. left/right wing etc)
I managed to get the feature working for lots of parts without the need for additional information, but some parts will still need it .
For this I'm introducing a new LDCad meta for use in the shadow library. Some examples:
15209.dat "Tile 1 x 2 with 2 Teeth Vertical":
Code:
0 //The tooths are not symetric
0 !LDCAD MIRROR_INFO [baseFlip=Z] [counterPart=autoLeftRight]
2450.dat "Plate 3 x 3 without Corner":
Code:
0 //This part is its own counterpart when rotated 90 deg.
0 !LDCAD MIRROR_INFO [baseFlip=X] [counterPart=self] [oriCor=0 0 1 0 1 0 -1 0 0]
32191.dat "Technic Panel Fairing #2":
Code:
0 !LDCAD MIRROR_INFO [counterPart=32190.dat]
The defaults of this meta's parameters will be used for all parts even when the meta is not present in the file. 'autoLeftRight' for example will try to find a left/right version of a part based on the description. This works for all wings but not for the technic panels. so e.g. 32191.dat needs a manual defined counter part.
This is my current test case, it mirrors on the Z-axis but the final version will let you use x or y as well .
I would love to get some feedback on this, especially from the library experts as I really want to minimize the need for extra info.
The main thing I'm asking here is help in determining the default state of things and / or additional ways of auto detecting counter parts.
...use tabs in the 3D editor along with the tree on the left side.
...hit a button to synchronise the tab selection from tabs in the 3D editor with the text editor.
...see a dialog when you try to re-load an unsaved file again.
...smooth a set of vertices (with realtime preview)
...access the colour palette functions (load / save / reset) from a sub-menu.
...benefit from little performance improvements / refactoring.
The following critical issues were fixed:
[Recurring] "Conditional Control Point Vertices" caused flickering on multiple views.
Annoying mouse issues with the manipulator.
The selection highlight feature in the text editor was sometimes not synchronised with the 3D view.
[CSG] Rotating a part at 90 degree: It got undesired 0.0 digits.
One manipulator icon was a duplicate.
What will the next release 0.8.20 deliver? Bug fixes and improvements for the new tab feature...
The program was tested intensively with "real world" files.
However, it is still a beta version and something can go wrong in about 100.000 lines of code.
Make sure that you choose the right architecture for your OS and Java Virtual Machine (JVM) (64bit or 32bit).
A short guide how to check if a 64bit JVM is installed on your system is located at the bottom of this message.
Download the zip-Archive
Extract the archive content to the location of your choice
On windows, double-click "run.bat" to start LDPE.
On linux/mac, you have to excecute the shell script "run.sh" to start LDPE.
Please note that this software is in the beta stage. Although, LDPE 0.8.19 was tested, there are already known issues for this release. There is a potential risk of data loss.
You can search for updates if you do the following steps:
On windows, double-click "update.bat" to search for updates.
On linux/mac, you have to excecute the shell script "update.sh".
I listen carefully to your requests and possible complaints. Please leave me a message, with your thoughts and wishes to further improve the software.
LDPE is a 3D CAD application: The overall system requirements are higher. While I recommend to use a powerful 64-bit multicore system, it could be possible, to run LDPE on older machines as well.
System Requirements:
Minimum System Requirements:
Java Runtime Environment (JRE) 1.8
OpenGL 2.1 compatible Graphics Card
Operating System (32/64bit): Windows [XP; Vista; 7 or newer], Mac OS X [>=10.6], Linux [e.g. Ubuntu Linux >=10.4]
CPU: Multicore-Processor e.g. Intel Core 2 Duo or AMD Athlon II (>2.0Ghz)
RAM: 4GB
Video-Memory: 512 MB
Free Disk Space: 100 MB
Recommended Requirements:
Operating System (64bit): Windows 7, Mac OS X [>=10.6], Linux [e.g. Ubuntu Linux >=10.4]
CPU: Multicore-Processor with 4 cores (or more)
RAM: >4 GB
Video-Memory: >=1 GB
Free Disk Space: 512 MB
--------------------------------------------------------------------------------
How to check your JVM version (32- or 64-bit):
--------------------------------------------------------------------------------
You can try on the command line:
Code:
java -d64 version
If it's not a 64-bit version, you'll get a message that looks like:
Code:
This Java instance does not support a 64-bit JVM. Please install the desired version.
In general, I recommend to install the 64-bit version of the JVM for Java 8.
I'm currently experimenting with photogrammetry (Agisoft PhotoScan) to author complicated shape of lego parts.
Here is what I've acheived so far with Mickey's head:
There is a bit of mess around the nose but I'm quite happy with the raw conversion from photos to 3D mesh.
It's a first try but I'm pretty sure I can improve it.
A question for Philo: is this close to what you get from you 3D scanner? Do you think it could be workable to create a ldraw part?
As Lego part are made of shiny plastic I had to put some flour on the part to allow the software to track the geometry. This is maybe why I get this bumpy surface. If someone has a better idea, feel free!
I'm working on a model that has a lot of black parts, so I've started using fading to make it clearer where the parts go for each step. However, I've run in to a problem that I can't seem to figure out. When I use BUFEXCHG to go from an "exploded" view with arrows to the resulting assembly, the fading isn't working consistently on the subsequent step. In one place, all of the parts added to the retrieved buffer in the next step are faded when they shouldn't be--resulting in a step that is all faded. In another place, some of the parts are faded and some are not.
I've been flailing away at this for a while, but haven't come up with a way to get it to work properly.
The closest I've come is this approach:
1) Assemble the parts that are common the the "exploded" view and the final assembly (including 3 sub-assemblies). This generates the building instructions for two of the sub-assemblies. The third sub-assemble is a call-out
2) Store this in two buffers, A and B
3) Build up the rest of the assembly with parts in the proper position.
4) Store the resulting assembly in buffer B
5) Retrieve buffer A
6) Build up the rest of the "exploded" assembly between !LPUB PART BEGIN IGN and !LPUB PART END statements
7) Display this "exploded" assembly with a ROTSTEP statement
8) Retrieve buffer B
9) Display this assembly with a STEP statement. Entire assembly shows up as faded.
10) Add the next step's parts and display with STEP statement.
I don't really want to display the faded assembly in step 9, but that's the only way I've gotten the subsequent step to display properly. If I leave out the STEP statement at step 9, the parts in step 10 ended up faded along with the assembly generated in step 3.
It seems like LPub3D is having a hard time sorting out what constitutes a prior assembly for fading after buffer exchanges.
If anybody has gotten this to work properly, please share your technique. I'd be eternally grateful.
Trevor--if this is something that hadn't yet been planned for in the LPub code, I have a suggestion: create a new 0 !LPUB directive that provides an unambiguous demarcation--a way to tell LPub that the current state of the assembly should be faded (without display) and subsequent parts not faded up until the next STEP, ROTSTEP, or the end of the (sub-)assembly.
For the record, I am resetting all caches prior to each attempt. Also, it seems that resetting image and 3D caches (the first choice in the dropdown), also resets unsaved changes in the mpd file. Minor inconvenience now that I've figured it out, but a frustrating PITA before that.
I'm attaching the current version of my mpd file. The problem areas are in pages 11-13 and 31-32.
Thank you.
BTW--I use a custom annotation font and pli.mpd file, so you're results will probably be slightly different than mine, but these don't affect the fading.