LDPE 1.8.60 Released (!LPE CONST expressions)


1.8.60 Released (!LPE CONST expressions)
#1
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.

.png   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
It does not support !TEXMAP / !: lines yet.

[Image: imgDuke2.png]

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:

  1. Download and extract LDPartEditor_win32_x64.zip
  2. Run LDPartEditor-1.8.60.msi
  3. Start LDPartEditor from the start menu
Installation on Linux:

  1. Download and extract LDPartEditor_linux_x64.zip
  2. Install ldparteditor_1.8.60-1_amd64.deb
  3. Start LDPartEditor from the menu or via launcher
Installation on Mac OS X:

  1. Download and extract LDPartEditor_mac_x64.zip
  2. Mount LDPartEditor-1.8.60.dmg
  3. Drag LDPartEditor.app to the Applications folder
  4. 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.
Reply
« Next Oldest | Next Newest »



Messages In This Thread
1.8.60 Released (!LPE CONST expressions) - by Nils Schmidt - 2022-07-10, 11:29
!LPE CONST and subfiles - by Nils Schmidt - 2022-07-10, 17:47

Forum Jump:


Users browsing this thread: 1 Guest(s)