Welcome, Guest |
You have to register before you can post on our site.
|
Forum Statistics |
» Members: 5,328
» Latest member: Emacs
» Forum threads: 6,188
» Forum posts: 51,840
Full Statistics
|
Online Users |
There are currently 225 online users. » 2 Member(s) | 218 Guest(s) Applebot, Baidu, Bing, Google, Yandex, Javier Orquera, stas1999
|
Latest Threads |
30mm vs 30.4mm Wheels & T...
Forum: General LDraw.org Discussion
Last Post: Magnus Forsberg
2 hours ago
» Replies: 3
» Views: 174
|
2003 Pattern
Forum: Parts Authoring
Last Post: Lisa Winter
2 hours ago
» Replies: 2
» Views: 445
|
2025 LEGO Education Scien...
Forum: Part Requests
Last Post: tom alphin
7 hours ago
» Replies: 2
» Views: 174
|
Part Request - 51008pb01 ...
Forum: Part Requests
Last Post: Stefano
Yesterday, 11:29
» Replies: 3
» Views: 2,865
|
reviewing obsoleted parts
Forum: Parts Tracker Discussion
Last Post: Peter Blomberg
Yesterday, 10:32
» Replies: 2
» Views: 464
|
Part Request: 90190 & 902...
Forum: Part Requests
Last Post: Julian Raymond Ruan
Yesterday, 0:49
» Replies: 1
» Views: 2,462
|
I'm going to be getting a...
Forum: Parts Authoring
Last Post: Hageta
2025-09-19, 22:37
» Replies: 8
» Views: 682
|
Third voting option?
Forum: Website Suggestions/Requests/Discussion
Last Post: Peter Blomberg
2025-09-19, 21:48
» Replies: 4
» Views: 1,344
|
Primref wiki
Forum: Website Suggestions/Requests/Discussion
Last Post: Magnus Forsberg
2025-09-19, 15:08
» Replies: 0
» Views: 399
|
Dots 1x1 printed alphabet...
Forum: Part Requests
Last Post: Orion Pobursky
2025-09-19, 6:28
» Replies: 4
» Views: 700
|
|
|
1.8.60 Released (!LPE CONST expressions) |
Posted by: Nils Schmidt - 2022-07-10, 11:29 - Forum: Parts Author Tools
- Replies (14)
|
 |
Hey,
this release introduces a complex and powerful feature:
The !LPE CONST meta command.
It allows you to use constants in almost any line type and replace them with a real value when needed.
However, the constants will be removed from a line when the line is modified from another source that is not the constant itself.
When you change a value of a constant afterwards, you need to click manually on the "Update/compile linked subfile data" button.
icon32_subcompile.png (Size: 1.72 KB / Downloads: 75)
You can see the calculated value in the warnings section of the text editor.
Syntax:
Code: 0 !LPE CONST variable = expression
0 // variable and expression must not contain spaces.
With that you can do things like:
Code: 0 !LPE CONST red = 4
0 !LPE CONST green = "0x200ff00"
1 red 3 0 0 1 0 0 0 1 0 0 0 1 box.dat
1 green 0 0 0 1 0 0 0 1 0 0 0 1 box.dat
1 red -3 0 0 1 0 0 0 1 0 0 0 1 box.dat
When you quick fix the warnings for the variable declarations, it will become:
Code: 1 4 3 0 0 1 0 0 0 1 0 0 0 1 box.dat
1 0x200ff00 0 0 0 1 0 0 0 1 0 0 0 1 box.dat
1 4 -3 0 0 1 0 0 0 1 0 0 0 1 box.dat
Code: 0 !LPE CONST angle = 20
0 !LPE CONST rx = cos(rad(angle))
0 !LPE CONST ry = sin(rad(angle))
0 !LPE CONST cx = 10*rx
0 !LPE CONST cy = 10*ry
1 7 10 0 0 1 0 0 0 1 0 0 0 1 box.dat
1 8 cx cy 0 rx -ry 0 ry rx 0 0 0 1.5 box.dat
0 !LPE CONST angle = angle+20
0 !LPE CONST rx = cos(rad(angle))
0 !LPE CONST ry = sin(rad(angle))
0 !LPE CONST cx = 10*rx
0 !LPE CONST cy = 10*ry
1 15 cx cy 0 rx -ry 0 ry rx 0 0 0 2 box.dat
It is possible to use the constants directly in subfiles.
But you can not automatically replace them with a quick fix from the parent file.
Code: 0 !LPE CONST subX = 8
0 !LPE CONST subY = 2
0 !LPE CONST subZ = 3
1 16 0 0 0 1 0 0 0 1 0 0 0 1 subfile.dat
subfile.dat
Code: 2 24 0 0 0 subX subY subZ
1 16 subX subY subZ 1 0 0 0 1 0 0 0 1 8-8sphe.dat
You can also combine it with the CSG or INLINE meta commands.
Code: 0 !LPE CSG_QUALITY 16
0 !LPE CONST cubeH = 1
0 !LPE CONST cubeH2 = cubeH*2
0 !LPE CONST sphereH = cubeH*1.35
0 // Won't override CSG constants
0 !LPE CONST csgA = 42
0 !LPE CSG_CUBOID csgA 4 0 0 0 cubeH 0 0 0 cubeH 0 0 0 cubeH
0 !LPE CSG_ELLIPSOID csgB 1 0 0 0 sphereH 0 0 0 sphereH 0 0 0 sphereH
0 !LPE CSG_CYLINDER csgC 2 0 -cubeH 0 .7 0 0 0 cubeH2 0 0 0 .7
0 !LPE CSG_CYLINDER csgD 2 -cubeH 0 0 0 cubeH2 0 .7 0 0 0 0 .7
0 !LPE CSG_CYLINDER csgE 2 0 0 -cubeH .7 0 0 0 0 .7 0 cubeH2 0
0 !LPE CSG_UNION csgC csgD csgD
0 !LPE CSG_UNION csgD csgE csgD
0 !LPE CSG_INTERSECTION csgA csgB csgF
0 !LPE CSG_DIFFERENCE csgF csgD csgF
0 !LPE CSG_COMPILE csgF
It does not support !TEXMAP / !: lines yet.
![[Image: attachment.php?aid=12753]](https://forums.ldraw.org/attachment.php?aid=12753)
As always, you can download LDPE from this page:
http://nilsschmidt1337.github.io/ldparteditor/
Changelog:
(4 new features)
With this release you will be able to...
- ...use the "!LPE CONST" meta command to define re-usable constants in parts and subparts.
- ...use calculated expressions for constants, too.
- ...quick-fix/replace constants with the text editor.
- ...combine "!LPE CONST" with "!LPE CSG" meta commands (but not with !TEXMAP commands, yet).
The program was tested intensively with "real world" files.
However, something can go wrong in about 140.000 lines of code.
Installation on Windows:
- Download and extract LDPartEditor_win32_x64.zip
- Run LDPartEditor-1.8.60.msi
- Start LDPartEditor from the start menu
Installation on Linux:
- Download and extract LDPartEditor_linux_x64.zip
- Install ldparteditor_1.8.60-1_amd64.deb
- Start LDPartEditor from the menu or via launcher
Installation on Mac OS X:
- Download and extract LDPartEditor_mac_x64.zip
- Mount LDPartEditor-1.8.60.dmg
- Drag LDPartEditor.app to the Applications folder
- Copy ldparteditor.sh to your home folder
4a. Open a Terminal.app and run ./ldparteditor.sh
4b. Or open a Terminal.app and run /Applications/LDPartEditor.app/Contents/MacOS/LDPartEditor
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:
- 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.
|
|
|
OMR Naming |
Posted by: Orion Pobursky - 2022-07-09, 1:38 - Forum: Official Models
- Replies (5)
|
 |
I'm starting to feel like Official Model Repository isn't descriptive enough. "Official" is ambiguous. It could mean these are models that are officially approved by LDraw instead of models of official LEGO sets. I thought maybe LDraw Set Database but LSD is a bad acronym. I'd love to use LEGO somewhere in the name but I think TLG's lawyers would object. Maybe LDraw Official Set Repository/Database?
Thoughts?
|
|
|
It's puzzle time again! |
Posted by: N. W. Perry - 2022-07-08, 0:52 - Forum: LDraw Editors and Viewers
- Replies (10)
|
 |
This is another one of those where it doesn't look like there's enough information to solve it, but there's clearly only one solution, so there must be!
Consider the case of a pole leaning inside a barrel, such that it rests against both sides and the bottom, forming the three points A, C, and E. These three points and the inside corners of the barrel form two similar right triangles, ABC and CDE.
From the known part dimensions, we get the hypotenuse (8) of the smaller triangle and one leg (36) of the larger triangle. We also know that an additional leg from each triangle, BC and CD, add up to 26.
We want to find the missing lengths AC, BC, CD and DE, and by extension, the congruent acute angles at A and C. That will give us the rotation points and angle for the bar. Can we do it?
|
|
|
More ways of ldraw parts usage then rendering them |
Posted by: Milan Vančura - 2022-07-06, 17:46 - Forum: General LDraw.org Discussion
- Replies (8)
|
 |
As opposite to strictly technical topics I start this one as kind of "an evening talk in a pub" or "brainstorming" if you wish: I'm really interested in your ideas and opinions.
I start with a question: do you know the difference between old geographic maps (==pictures) and modern ones, like the openstreetmap project? Modern map is considered being a list of discrete objects and each such object is defined in the text: a path joining points etc. See? Very similar idea to our ldraw format! But there is an important addition, comparing to ldraw: they have very well defined system of metainformation: object types, their capabilities... And the result is: such a map can not only be rendered to a picture form (with any graphical style) but it can be used for completely different tasks. One such task is well known for everybody, nowadays: a car navigation. But even a simple search in the map is a task - de facto it is a database query.
What about thinking more about ldraw format in this way? Isn't there another space then part pictures where ldraw could help, if having proper metadata? Ideally the metadata we already have or could get easily from already existing information in ldraw files.
For example: every time I work on shadow/snapping information for LDCAD ideas of this kind come into my mind: part snapping is one example of non-pictural ldraw usage. What more can we use it for? What about queries? "Hey, my editor, show me gears matching this one", "show me a list of parts with a clip" etc. I slightly remember old SR3D editor did some magic in this way to animate models automatically (bending a hinge moved the attached parts of the model, technic drivetrain worked automatically etc.) but it's so long I do not remember details.
What do YOU think? Do you have any ideas?
|
|
|
|