Welcome, Guest |
You have to register before you can post on our site.
|
Online Users |
There are currently 246 online users. » 1 Member(s) | 239 Guest(s) Applebot, Bing, Facebook, Google, Internet Archive, Yandex, Zheng
|
Latest Threads |
Stud groups
Forum: Official File Specifications/Standards
Last Post: Magnus Forsberg
5 hours ago
» Replies: 1
» Views: 103
|
A fresh list of "most com...
Forum: Part Requests
Last Post: Peter Blomberg
10 hours ago
» Replies: 11
» Views: 1,898
|
Part Request - 51008pb01 ...
Forum: Part Requests
Last Post: Julian Raymond Ruan
Yesterday, 12:04
» Replies: 2
» Views: 2,294
|
New parts from Lego Instr...
Forum: Parts Authoring
Last Post: Timothy Hall
2025-09-17, 2:41
» Replies: 85
» Views: 73,105
|
axleend2
Forum: Parts Tracker Discussion
Last Post: Gerald Lasser
2025-09-16, 20:03
» Replies: 3
» Views: 715
|
Parts request
Forum: Part Requests
Last Post: Peter Grass
2025-09-16, 5:58
» Replies: 2
» Views: 882
|
Transparent sticker colou...
Forum: General LDraw.org Discussion
Last Post: Travis Cobbs
2025-09-16, 1:42
» Replies: 10
» Views: 1,525
|
The Emperor Zurg
Forum: Part Requests
Last Post: Julian Raymond Ruan
2025-09-15, 13:07
» Replies: 0
» Views: 689
|
Batman Cowls
Forum: Part Requests
Last Post: Peter Grass
2025-09-15, 1:13
» Replies: 1
» Views: 827
|
Fix for slightly incorrec...
Forum: Part Requests
Last Post: Huib Versteeg
2025-09-14, 9:50
» Replies: 4
» Views: 1,535
|
|
|
Lego Description Language (LDL) |
Posted by: SNIPE - 2020-06-01, 20:31 - Forum: General LDraw.org Discussion
- Replies (4)
|
 |
Hi,
Today, I'd like to share a project I've been working on for a few years.
It is the idea of being able to describe lego models without the use of physical or digital lego, and in a way that is:
- Very close to English and not too unintuitive
- Has fast development time
- Is cross platform and highly accessable
- Is powerful enough to represent any possible combination of LEGO parts or building techniques
- Capable of being translated by a computer into a digital model (though this goal was originally part of a seperate "lego programming language" project)
- Flexable parts, hinges, etc are also possible
- Still makes the user learn about lego techniques
- Can be converted into native LDRAW script
After a few failed ideas I think I have got a good solution but the clever thing about it is that it takes what is good about low level languages and what is good about high level languages and combines them in a harmonious way.
It works by just having the bare minimum amount of information to build a lego model:
Part type, Part ID, Primative type, Primative ID
These are simply macros for certain paramaters in an ldraw script, that's it!. Let's take a few examples:
Code: 3005 B1 c1 = 3005 B2 s1
/* place clutch1 of BRICK1 of type 3005 onto stud1 of BRICK2 of type 3005 */
32316 L1 ph1 = 2780 PI1 pi1
/* place pinhole1 of LIFTARM1 of type 32316 onto pin1 of PIN1 of type 4274 */
/* Now what if we want to attach these two assemblies together? easy: */
3024 PL1 c1 = PIN1 c1
PL1 s1 = B2 C1
/* place clutch1 of PLATE1 of type 3024 onto clutch1 of PIN1.
place stud1 of PLATE1 onto clutch1 of BRICK2 */
This syntax also means you can create helper assemblies in order to position more complex parts then simply DEL(ete) the helper assemblies, which after all is what you do in ldd/ldcad anyhow therefore SNOT and advanced building tequniques are possible including the ability to flex certain types of parts. So the syntax has been tried and tested and can stand up to huge and or complex models.
There are a few syntax shortcuts so far such as part/primative ranges or lists (3003 B1:B50 c1) (3005 B2 c1,c2,c3,c4,), exact part positioning co-cordinates (B2 <25,87,53>) and the IDE will also help you by having tools which leads me onto the bit where I need help from the LDRAW community: building the compiler/IDE:
The idea (assuming you are not just typing into notepad) is to have a C program read the LDL syntax and parse it into native LDRAW script but also display the digital model in real time, as you type, in a graphical output window.
This post is already kinda long so feel free to ask about the full syntax, the IDE, or the compiler, or anything else more below.
Regards, Snipe
|
|
|
0.8.50 Beta Released (bugfix / usability) |
Posted by: Nils Schmidt - 2020-06-01, 8:46 - Forum: Parts Author Tools
- Replies (12)
|
 |
Hey,
this release took a little bit longer than expected, but it includes now 6 bug fixes. And three minor usability enhancements.
Some of the issues were indirectly reported by Gerald and Willy. They provided their log files and I was able to spot some critical entries.
Thank you both!
![[Image: imgDuke2.png]](https://lh3.googleusercontent.com/-fi18ywwsEUo/VOOuvkpsdzI/AAAAAAAAASw/Ax0RRFkleKA/s64-no/imgDuke2.png)
As always, you can download LDPE from this page:
http://nilsschmidt1337.github.io/ldparteditor/
Changelog:
(3 new features and 6 bug fixes)
With this release you will be able to... - ...use a button to re-open the 3D view (if no view is shown)
- ...see a warning if you try to configure a shortcut key which can't be assigned.
- ...start the program with a broken config file (it's not a bug, it's a feature...).
The following critical issues were fixed:
- The program could break if a subfile refered to a non-existent or read-protected nested subfile in very rare cases.
- There was a critical selection problem which occured if you have tried to select a single quad, but you deactivated the selection of quads before (selection filter).
- It was problematic if the program could not read from the official and unoffical LDraw library folder.
- It was impossible to save a file if its directory does not exist anymore.
- There was a breaking bug which could deactivate the duplication check on a single file (did not affect other files).
- Pressing the ESC key reset the (scale) snapping to an unexpected 2.00 value.
The program was tested intensively with "real world" files.
However, it is still a beta version and something can go wrong in about 140.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, this version 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:
- 64-bit Java Runtime Environment (JRE) 1.8
- OpenGL 2.1 compatible Graphics Card
- Operating System (64-bit): Windows [7 or newer], Linux [e.g. Ubuntu Linux >=14.4], Mac OS X [>=10.6]
- CPU: Multicore-Processor e.g. Intel Core 2 Duo or AMD Athlon II (>2.0Ghz)
- RAM: 4GB
- Video-Memory: 1 GB
- Free Disk Space: 100 MB
Recommended Requirements:
- Operating System (64bit): Windows 7,8,10, Linux [e.g. Ubuntu Linux >=14.4], Mac OS X [>=10.6]
- OpenGL 3.3 compatible Graphics Card
- CPU: Multicore-Processor with 4 cores (or more)
- RAM: >4 GB
- Video-Memory: >1 GB
- Free Disk Space: 512 MB
- For a faster start, LDPartEditor and the LDraw™ library should be installed on an SSD.
--------------------------------------------------------------------------------
How to check your JVM version (32- or 64-bit):
--------------------------------------------------------------------------------
You can try on the command line:
If it's not a 64-bit version, you'll get a message that looks like:
This Java instance does not support a 64-bit JVM. Please install the desired version.
|
|
|
|