1.8.60 Released (!LPE CONST expressions)
2022-07-10, 11:29 (This post was last modified: 2022-08-03, 17:34 by Nils Schmidt.)
2022-07-10, 11:29 (This post was last modified: 2022-08-03, 17:34 by Nils Schmidt.)
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: 71)
You can see the calculated value in the warnings section of the text editor.
Syntax:
With that you can do things like:
When you quick fix the warnings for the variable declarations, it will become:
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.
subfile.dat
You can also combine it with the CSG or INLINE meta commands.
It does not support !TEXMAP / !: lines yet.
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...
The program was tested intensively with "real world" files.
However, something can go wrong in about 140.000 lines of code.
Installation on Windows:
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:
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: 71)
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
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
- Download and extract LDPartEditor_linux_x64.zip
- Install ldparteditor_1.8.60-1_amd64.deb
- Start LDPartEditor from the menu or via launcher
- 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
- 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.