|
Lutz Uhlmann and I are happy and proud to announce the release
of a new large set of the LGEO parts and the supporting L3P.
Well, more than seven years since last release of L3P... what can I say?
During that time I have had several periods with concentrated development,
but then something else came up and the project went on hold.
Often I was close to a release, but there were always a few loose ends
that I wanted to finish.
Thinking about it now, it's really silly that I didn't make some smaller
releases, rather than waited for all parts to fall into place.
On the other hand, I quite happy that the v1.3 has proven to be
rather stable and useful, with only a few bugs.
In 2005 I was revising the LGEO support, and I realized that I couldn't
go on using the LGEO tab files. They lacked support for letter suffixes
in part file names and I decided to make a simple text file with all
the data needed by L3P to use the LGEO files.
I had it all working and I was going to release in September 2007,
but then I got an e-mail from Lutz Uhlmann talking about his plans
for the future of LGEO. So we agreed on a new text file format and
two new files (lg_elements.lst and lg_colors.lst) to replace the tab files.
I rewrote the LGEO support once more while Lutz kept adding more LGEO parts.
We had many fruitful discussions about closer integration of LGEO and L3P,
and we are proud to present the latest development.
The new LGEO files:
http://www.digitalbricks.org/
Because of the long development period I am releasing L3P as a BETA:
http://www.hassings.dk/l3/l3p14beta.html
Please test it thoroughly and report any errors to me.
L3P v1.4 does not support the old LGEO files, you'll need the new LGEO files.
Best regards
Lutz and Lars
-lgeo use LGEO parts and colors
--------------------------------
L3P needs to know where it can find the two files, lg_elements.lst and
lg_colors.lst, which contain info on the LGEO elements and colors.
The two files are located in the directory named lgeo.
L3P looks for the lgeo directory in this order:
1. The -lgd<dir> option
2. The LGEODIR environment variable
3. Key LgeoDirectory in section [LDraw] in an ldraw.ini file.
4. Finally a couple of typical locations on the disk are checked if they exist:
LDrawDir\lgeo
LDrawDir\Apps\lgeo
$HOME/Library/lgeo (MacOSX only)
/Library/lgeo (MacOSX only)
/usr/local/share/lgeo (Linux/MacOSX only)
-ar use Anton Raves parts and LGEO colors
------------------------------------------
Lutz has added support for POV files by Anton Raves. Read more in LGEO.pdf
in the lgeo directory.
You can use -lgeo and -ar together. In case a part has been made by both Lutz
and Anton, the order of the options does matter: the first option specified
decides which part to choose.
-nolgc[f] don't use LGEO colors [nor finishes]
-----------------------------------------------
When you use the -lgeo option, you can choose not to use the LGEO colors,
but rather the LDraw colors. The LGEO finishes are still used.
Specifying -nolgcf won't use the LGEO finishes either.
Colors from ldconfig.ldr
------------------------
The new default for color values is to use the definitions in ldconfig.ldr
located in the LDraw directory.
See LDraw.org Colour Definition Language Extension.
-ldc[<path>] alternative ldconfig.ldr or none
----------------------------------------------
The -ldc option lets you specify an alternative color config file.
L3P looks for the file in the current directory and in LDrawDir,
or you can give a full path.
Specifying -ldc without a file means "don't use any ldconfig.ldr file" and
use the old L3P colors.
Color options now also take name or #RRGGBB
-------------------------------------------
Because colors are named in ldconfig.ldr L3P will now accept color names in
options taking a <color>. For e.g. the background option -b<color> you can
in stead of -b15 specify -bWhite.
L3P now also accepts #RRGGBB as a color.
Thus <color> is an LDraw color name or number, extended/direct color
(0x0tRRGGBB), #RRGGBB or <r>,<g>,<b> in the range 0..1 like POV-Ray.
-ib<file> include file at beginning of POV file
------------------------------------------------
This option will put an include statement at the beginning of the POV file.
When specifying e.g. -ibmydef.inc L3P will add the following POV code
right after L3P's definitions:
//// IncludeFile AtBeginning
#include "mydef.inc"
Note that L3P merely outputs the above code; there is no check of the file.
You must make sure that POV-Ray can find the file by specifying
the necessary include path in POV-Ray.
-ie<file> include file at end of POV file
------------------------------------------
This option will put an include statement at the end of the POV file.
-ic[<file>] no camera, optional include file
---------------------------------------------
This option will replace the L3P camera section with an include statement.
Specifying -ic without a file will simply suppress L3P's camera code.
-il[<file>] no lights, optional include file
---------------------------------------------
This option will replace the L3P light section with an include statement.
Specifying -il without a file will simply suppress L3P's light code.
Many more primitives
--------------------
Several additional POV-Ray equivalents for primitive substitution
have been added: stud10.dat, stud6a.dat, 1-4chrd.dat, 1-6cyli.dat,
1-cyli.dat, 3-8cyli.dat, 1-4ccyli.dat, 3-4disc.dat, 3-4ndis.dat,
1-8ndis.dat, 1-8sphc.dat, axlehole.dat, axlehol4.dat, axlehol5.dat,
axlehol6.dat, axlehol7.dat, connect.dat, connect2.dat, connect3.dat,
connect4.dat, connect5.dat, arm1.dat, arm2.dat,
And for any N: 3-4rin[g]N.dat, 4-4rin[g]N.dat, 1-8rin[g]N.dat,
3-8rin[g]N.dat, 1-4conN.dat, 4-4conN.dat
And for any tube radius FFFF: t04iFFFF.dat, t04oFFFF.dat, t04qFFFF.dat
peghole.dat has been removed as it is covered by ring3.dat and 4-4cyli.dat.
LDrawDir revisited
------------------
One of the greatest hassles for users unfamiliar with the command
prompt / DOS has turned out to be setting the LDrawDir. Now L3P has
a wide range of ways to know the LDrawDir thanks to the LDrawIni library:
1. The -ldd<dir> option
2. The LDRAWDIR environment variable
3. Key BaseDirectory in section [LDraw] in an ldraw.ini file.
4. A number of typical locations on the disk is checked if they contain
subdirectories P and PARTS:
Windows MacOSX + Linux
C:\LDraw $HOME/LDRAW
$HOME/Library/LDRAW (MacOSX only)
/Library/LDRAW (MacOSX only)
/usr/local/share/LDRAW
5. Finally the current working directory is checked if it contain
subdirectories P and PARTS:
ldraw.ini or org.ldraw.plist
----------------------------
The ldraw.ini file is a Windows INI file containing configuration information.
An ldraw.ini file may look like this:
[LDraw]
BaseDirectory=C:\Lars\LDraw
LgeoDirectory=C:\Lars\LDraw\Apps\lgeo
[LDrawSearch]
1=<MODELDIR>
2=<HIDE><DEFPRIM><LDRAWDIR>\P
3=<DEFPART><LDRAWDIR>\PARTS
4=<LDRAWDIR>\MODELS
5=<DEFPART><LDRAWDIR>\UnOff\PARTS
6=<DEFPART>C:\My Own Parts
The LDrawIni library will search for an ldraw.ini file in a number of places,
the first one found is used:
1. The LDRAWINI environment variable
2. Windows MacOSX + Linux
%USERPROFILE%\LDraw.ini $HOME/Library/Preferences/org.ldraw.plist (Mac)
%ALLUSERSPROFILE%\LDraw.ini /Library/Preferences/org.ldraw.plist (Mac)
LDrawDir\LDraw.ini $HOME/.ldrawrc
%windir%\LDraw.ini $HOME/ldraw.ini
C:\Windows\LDraw.ini LDrawDir/LDraw.ini
/etc/ldraw.ini
On the Mac you may as indicated above alternatively use a Property list,
org.ldraw.plist, placed in Library/Preferences.
SearchDirs
----------
The default searching for parts used to be:
1. Inside the document if it is an MPD
2. The document's directory (the directory of the main model)
3. %LDRAWDIR%\P
4. %LDRAWDIR%\PARTS
5. %LDRAWDIR%\MODELS
where LDRAWDIR is the LDraw directory.
However, since L3P is now using the LDrawIni library, the search can be
defined by the user by specifying a number of SearchDirs.
A SearchDir is an absolute path to a directory containing LDraw files,
optionally prepended with some flags.
The search for parts/primitives will still begin inside the model document
if it is an MPD, but after that L3P uses SearchDirs specified as follows:
1. The LDRAWSEARCH environment variable. SearchDirs are separated with a
Vertical bar (|). You can set it to e.g.
"<MODELDIR>|<HIDE><LDRAWDIR>\P|<LDRAWDIR>\PARTS|<LDRAWDIR>\MODELS"
2. Environment variables LDRAWSEARCH01, LDRAWSEARCH02, etc.,
each containing a directory with optional flags.
3. Keys 1, 2, 3, etc. in section [LDrawSearch] in an ldraw.ini file.
4. If no SearchDirs setting is found the default is:
<MODELDIR>
<HIDE><LDRAWDIR>\P
<LDRAWDIR>\PARTS
<LDRAWDIR>\MODELS
Directory keywords
<LDRAWDIR> This keyword is substituted with the LDrawDir. Use it to specify
a search directory relative to the LDrawDir, e.g. <LDRAWDIR>/P.
<MODELDIR> This keyword is substituted with the directory of the model.
<HOMEDIR> This keyword is substituted with the environment variable
%USERPROFILE% on Windows and $HOME on MacOSX/Linux.
Use it to specify a search directory relative to the home
directory, e.g. <HOMEDIR>/MoreParts
Flag keywords
<SKIP> The search directory is skipped. Use it to un-comment a directory.
<HIDE> The directory is searched for files, but some editors may choose
not to show files from this directory in lists presented
to the user.
<SHOW> This keyword is ignored, as it is the default. However, you may
choose to use it as an explicit opposite of <HIDE>.
<DEFPART> Files found in this directory are considered as part files,
unless the header indicates otherwise.
<LDRAWDIR>/PARTS will automatically have <DEFPART> flags applied.
<DEFPRIM> Files found in this directory are considered as primitive files,
unless the header indicates otherwise.
<LDRAWDIR>/P will automatically have the <DEFPRIM> flags applied.
Improved LDraw file type detection
----------------------------------
An LDraw file is an LDraw file is an LDraw file. However, it is important for
L3P to know whether an LDraw file is a part file, because parts may be shrunk
a little to have seams between bricks. Until now LDraw files from the PARTS
directory were considered as parts, but this posed a problem with unofficial
parts placed in the MODELS directory and with parts embedded in MPD files.
Now L3P looks at the header of an LDraw file to detect the file type.
If header detection is not possible, then files froms the PARTS directory and
from a SearchDir marked with the <DEFPART> flag are considered parts.
-ldd<dir> set LDRAWDIR, <dir> must have the P, PARTS and MODELS directories
----------------------------------------------------------------------------
Override the normal settings for the LDraw directory and use <dir>.
-lgd<dir> set LGEODIR, <dir> must be the lgeo directory
--------------------------------------------------------
Override the normal settings for the LGEO directory and use <dir>. The lgeo
directory contains the files lg_elements.lst and lg_colors.lst and the
directories lg and ar.
-studs0 no studs
-----------------
Specify the -studs0 option to have a fast render without studs: At the
beginning of the POV file in the "//// Defines" section there is a line:
#declare L3Studs = 1; // 1=on 0=offwhich can be 0 if using the -studs0 option.
The parts generated by L3P test for L3Studs, e.g.
//// Part 3710.dat
#ifndef (_3710_dot_dat)
#declare _3710_dot_dat = #if (L3Quality = 0) box { <-40,-4,-10>, <40,8,10> }
#else union {
// Plate 1 x 4
// Name: 3710.dat
// Author: James Jessiman
// Original LDraw Part
#if (L3Studs)
object { stud3_dot_dat matrix <1,0,0,0,-1,0,0,0,1,20,4,0> }
object { stud3_dot_dat matrix <1,0,0,0,-1,0,0,0,1,0,4,0> }
object { stud3_dot_dat matrix <1,0,0,0,-1,0,0,0,1,-20,4,0> }
#end
object { box5_dot_dat matrix <36,0,0,0,-4,0,0,0,6,0,8,0> }
mesh {
triangle { <40,8,10>, <36,8,6>, <-36,8,6> }
triangle { <-36,8,6>, <-40,8,10>, <40,8,10> }
triangle { <-40,8,10>, <-36,8,6>, <-36,8,-6> }
triangle { <-36,8,-6>, <-40,8,-10>, <-40,8,10> }
triangle { <-40,8,-10>, <-36,8,-6>, <36,8,-6> }
triangle { <36,8,-6>, <40,8,-10>, <-40,8,-10> }
triangle { <40,8,-10>, <36,8,-6>, <36,8,6> }
triangle { <36,8,6>, <40,8,10>, <40,8,-10> }
}
object { box5_dot_dat matrix <40,0,0,0,-8,0,0,0,10,0,8,0> }
#if (L3Studs)
object { stud_dot_dat matrix <1,0,0,0,1,0,0,0,1,30,0,0> }
object { stud_dot_dat matrix <1,0,0,0,1,0,0,0,1,10,0,0> }
object { stud_dot_dat matrix <1,0,0,0,1,0,0,0,1,-10,0,0> }
object { stud_dot_dat matrix <1,0,0,0,1,0,0,0,1,-30,0,0> }
#end}
#end
#end // ifndef (_3710_dot_dat)
So if L3Studs is zero you can have a faster render if you just want
to have a rough sketch of the model.
See also the -q<n> Quality option.
-cra<a> camera roll angle
--------------------------
The camera will be tilted <a> degrees. Default is 0 degrees (no tilt).
The automatic camera positioning is still in effect.
You can change the camera roll angle later in the generated POV file by
changing the L3RollAngle variable.
-csky<x>,<y>,<z> camera sky vector
-----------------------------------
The camera will use this sky vector initially before aligning to the
look_at position. The default sky vector is 0,-1,0 (-y).
This option is intended for other programs controlling L3P.
If you want to tilt the camera use the -cra option in stead.
You can change the sky vector later in the generated POV file by changing
the L3Sky variable.
-cpct[<p>] percentage to move camera further back, default is 0
----------------------------------------------------------------
As described here it is often nice to move the camera a bit further away
to have some space around your model. Previously you could do that by
specifying a negative radius in the -cg option, or by modifying
the PCT variable in the generated POV file.
Now you can also do it directly using this option. And it also works
for the -cc option and for -cg with positive radius.
You can change further away percentage later in the generated POV file
by changing the L3PercentageBack variable (previously PCT).
-car<ar> camera aspect ratio
-----------------------------
The aspect ratio of the image will be <ar>. The default is 1.333 (4/3)
corresponding to images of e.g. 640x480 or 800x600.
If you change the aspect ratio to e.g. 1 you must remember to select an
equivalent image format e.g. 400x400, otherwise the image will look shrunk!
You can change the aspect ratio later in the generated POV file
by changing the L3AspectRatio variable.
-co[<s>] orthographic camera
-----------------------------
The camera will be orthographic rather than perspective.
You can optionally specify a scale factor <s>. However, this is intended
for other programs controlling L3P.
You can change the camera type later in the generated POV file
by changing the L3Orthographic variable.
Note that this is currently not working well or at all...
-csa<a> camera stereo angle
----------------------------
The default stereo camera angle is 5 degrees.
You can change the stereo camera angle later in the generated POV file
by changing the L3StereoAngle variable.
-csl left stereo camera
------------------------
L3P now generates the following stereo camera code:
#declare L3StereoAngle = 5; // degrees
//5 degrees corresponds to a distance between eyes (stereo cameras)
//of 1/12 of distance to model.
#declare L3StereoView = 0; // Normal view
//Uncomment either two lines below to make stereo images:
//#declare L3StereoView = -L3StereoAngle/2; // Left view
//#declare L3StereoView = L3StereoAngle/2; // Right view
This option removes the // for the left view above, so you don't have to
edit the generated POV file manually.
-csr right stereo camera
-------------------------
This option removes the // for the right view above, so you don't have to
edit the generated POV file manually.
-lsl shadowless lights
-----------------------
This option will add the POV keyword "shadowless" to the lights.
Bookmarks
---------
To increase readability of the L3P generated POV file and to help other
programs parsing the POV file I have added several bookmarks
at the beginning of each section in form of POV comments:
//// MegaPOV Enabling of MegaPOV
//// Defines All the #define statements
//// IncludeFile AtBeginning #include statement from -ib option
//// Finishes Definition of POV finish's
//// Macros Definition of macros
//// Textures for LGEO patterned parts Special textures for LGEO
//// Color 15 White Color definition
//// Color 15 White (from lg_color.inc) Color definition
//// Color 15 White (from ldconfig.ldr) Color definition
//// Color 257 Color definition
//// Color #02FFCC99 Color definition
//// Primitive stud.dat Primitive definition
//// Part 3001.dat Part definition
//// Submodel roof.ldr Submodel definition
//// Model car.ldr Model definition
//// ModelData Bounding box and floor data
//// Floor Floor definition
//// Background Background definition
//// Camera Camera definition
//// IncludeFile Camera #include statement from -ic option
//// Lights Lights definition
//// IncludeFile Lights #include statement from -il option
//// ModelObject car.ldr Reference of the model
//// Statistics Some statistics as comments
//// IncludeFile AtEnd #include statement from -ie option
//// End End of file
Please note that not all bookmarks may be present in a POV file.
L3P CAMERA_CALC meta command
----------------------------
On request from Dean Earley there is a new L3P meta command for ignoring
a section of the model file when calculating the camera position/angle,
but still render it in the final scene.
0 L3P CAMERA_CALC OFF
...
0 L3P CAMERA_CALC ON
Note, however, that it will only work in the main model file, since L3P
doesn't "walk the tree" and only uses the parts/subfiles referenced
directly from the model file for automatic camera positioning.
-cpa<a> co-planar-angle, default is 3 degrees (1 if -check)
------------------------------------------------------------
The LDraw Standard Committee (LSC) has devised a good co-planarity check:
"A quad (line type 4) must be planar, meaning that if it is split into
two triangles, both triangles will be co-planar with each other. There
are always two ways to split a quad into two triangles, and both must
result in co-planar triangles. The triangles are considered co-planar
if the angle between their surface normals is less than or equal to 3
degrees, however, an angle of less than 1 degree is strongly recommended".
The -cpa option lets you change the default maximum angle, which is 3 degrees.
Warnings are only printed if warning level is 1 or above.
If -check is specified, the default maximum angle is 1 degree.
The -cpa option replaces the old -det and -dist options.
-mp<v> MegaPOV version statement
---------------------------------
This option will enable MegaPOV. When specifying e.g. -mp1.2 L3P will add
the following POV code at the very beginning of the POV file:
//// MegaPOV
#version unofficial megapov 1.2;
// The above line of POV code must be included in every include file as well,
// not just the main POV file.
-scm StepClock only at steps in Model (not in submodels)
---------------------------------------------------------
The -sc option generates tests for the clock variable at steps in both
the model and in submodels.
Use the -scm option if you only want steps in the model.
L3P variables in the POV file renamed
-------------------------------------
To avoid conflict with any POV variables (identifiers) in include files,
the variables used by L3P are now prefixed with L3.
Here is a list of some old v1.3 names and new v1.4 names:
QUAL L3Quality
SW L3SW
STUDS L3Studs
BUMPS L3Bumps
BUMPNORMAL L3NormalBumps
AMB L3Ambient
DIF L3Diffuse
-q<n> quality level 0..4, default is 2
---------------------------------------
The Quality option now has a new level 4 which also adds studlogo
on Technic studs.
-b[<color>] background color, -b gives 0.3,0.8,1
-------------------------------------------------
The semantics of the -b option has changed. Previously a POV background
statement was always generated, the default color being black (<0,0,0>).
But since the POV default background color is black, the background
statement is now only generated when the -b[<color>] option is specified.
If you don't specify a color (only specifying -b)
then the L3P blue (<0.3,0.8,1>) will be used.
-pp print primitives, prints a list of the primitives having POV equivalents
-----------------------------------------------------------------------------
Executing "l3p -pp" prints a list of the LDraw primitives that the current
version of L3P can substitute with POV equivalents, see primitive substitution.
-pp -check check all primitives in P if they have a POV equivalent
-------------------------------------------------------------------
Executing "l3p -pp -check" prints a list of all primitives found in
LDrawDir/P and whether they have a POV equivalent or not:
-pc print known color names
----------------------------
Executing "l3p -pc" prints a list of the colors known by L3P.
Be sure to specify -pc after any -ldc[<path>] option.
The colors are printed in the syntax defined in
"LDraw.org Colour Definition Language Extension":
0 !COLOUR Black CODE 0 VALUE #212121 EDGE 8
0 !COLOUR Blue CODE 1 VALUE #0033B2 EDGE 0
0 !COLOUR Green CODE 2 VALUE #008C14 EDGE 0
0 !COLOUR Teal CODE 3 VALUE #00999F EDGE 0
0 !COLOUR Red CODE 4 VALUE #C40026 EDGE 0
...
0 !COLOUR TransBlack* CODE 32 VALUE #4D4D4D EDGE 0 ALPHA 128
0 !COLOUR Trans_Blue CODE 33 VALUE #0020A0 EDGE #002266 ALPHA 128
...
The asterisk (*) denotes that the color was not found in the ldconfig.ldr file,
but is an L3P default color.
Tip: execute "l3p -ldc -pc" to see all the original L3P colors.
LDraw lines as comments in the POV file
---------------------------------------
All LDraw lines of the model (and submodels) are passed to the POV file
as comments. This is for easier navigation in the POV file
as you can recognize the originating DAT lines.
It also enables you to restore a DAT file from a POV file.
Bug fixes in v1.4
-----------------
Problem with lights in submodels fixed, lights are now part of objects.
Problem with fallback color fixed (model with one element (colored))
Could not launch PovRay on file with spaces, added doublequotes
Only substitute parts/primitives, not other MPD members like 926.ldr
Support for filenames with spaces in LT1 and "0 FILE". Also support for
filenames in quotes like "new car.ldr".
|
|
|
In lugnet.announce, Lars C. Hassing wrote:
Thanks for the new version Lars! I'll post issue as I find them but this stuck
out
> The LDrawIni library will search for an ldraw.ini file in a number of places,
> the first one found is used:
> 1. The LDRAWINI environment variable
> 2. Windows MacOSX + Linux
> %USERPROFILE%\LDraw.ini $HOME/Library/Preferences/org.ldraw.plist (Mac)
> %ALLUSERSPROFILE%\LDraw.ini /Library/Preferences/org.ldraw.plist (Mac)
> LDrawDir\LDraw.ini $HOME/.ldrawrc
> %windir%\LDraw.ini $HOME/ldraw.ini
> C:\Windows\LDraw.ini LDrawDir/LDraw.ini
> /etc/ldraw.ini
For Windows, you should add the App Data directory for a searched location.
Microsoft recommends and Vista security requires that program specific config
files be located there, preferably in a specific folder. For LDDP I create an
LDraw folder specifically for this purpose. Now that I think about it, the LSC
could probably define the location preference for each platform.
-Orion
|
|
|
Woot!! Woot!! Thanks!
Does this affect L3PAO? Or does L3PAO still work OK with the new L3P?
Did you add any new "-xxxx" that L3PAO does not have I guess is the main
question.
Ahui
|
|
|
In lugnet.cad, Ahui Herrera wrote:
> Woot!! Woot!! Thanks!
> Does this affect L3PAO? Or does L3PAO still work OK with the new L3P?
> Did you add any new "-xxxx" that L3PAO does not have I guess is the main
> question.
L3PAO should still work with the new L3P.
I have added several new options, which L3PAO obviously cannot set
until it is updated.
/Lars
|
|
|
In lugnet.cad, Orion Pobursky wrote:
> For Windows, you should add the App Data directory for a searched location.
> Microsoft recommends and Vista security requires that program specific config
> files be located there, preferably in a specific folder. For LDDP I create an
> LDraw folder specifically for this purpose.
OK, good idea. You mean the %APPDATA% environment variable ?
Where should it go in the search order ? Like this:
The LDRAWINI environment variable
%APPDATA%\LDraw.ini
%USERPROFILE%\LDraw.ini
%ALLUSERSPROFILE%\LDraw.ini
LDrawDir\LDraw.ini
%windir%\LDraw.ini
C:\Windows\LDraw.ini
> Now that I think about it, the LSC
> could probably define the location preference for each platform.
Yes. I have added the locations I have collected during the years
from various postings.
/Lars
|
|
|
In lugnet.cad, Lars C. Hassing wrote:
> In lugnet.cad, Ahui Herrera wrote:
> > Woot!! Woot!! Thanks!
> > Does this affect L3PAO? Or does L3PAO still work OK with the new L3P?
> > Did you add any new "-xxxx" that L3PAO does not have I guess is the main
> > question.
>
> L3PAO should still work with the new L3P.
> I have added several new options, which L3PAO obviously cannot set
> until it is updated.
> /Lars
Wow, Lars! looks like I have a ton of work ahead of me getting the GUI to
accommodate all the new options. I'll get started this week.
Jeff
|
|
|
In lugnet.announce, Lars C. Hassing wrote:
|
Lutz Uhlmann and I are happy and proud to announce the release
of a new large set of the LGEO parts and the supporting L3P.
|
Ive been working the last couple of days to update L3PAO so that it will
accommodate all of Lars enhancements to L3P. It isnt fully-tested yet, but I
figured Id give everyone a look at the interface changes. I think Ive
incorporated all the new switches and options, along with enhancing the way
L3PAO handled things beyond the scope of L3P. The light creation portion is
massively overhauled. You can see all 20 lights, all their values and even a
color sample, at once. And you can do this for up to 20 preset scenes (each
containing up to 20 lights). I think it makes editing much easier.
I have a few questions about certain interdependencies, etc, but Lars and I can
work that out once he releases.
Im also curious about the Windows limit for an execution string. I know we had
problems hitting the dos max of 128 chars before my last update which took the
execution to full 32-bit. I wonder if well hit another cap, because I can see
the command lines getting pretty long if you add a bunch of include files which
are deeply-pathed. You can see in the last screenshot that my playing around
generated a line over 460 chars long, and there are plenty of unclicked options
remaining.
There is still work to be done on scene saving/loading since all the new
switches will need to be incorporated in the new save file format. Once Im
ready for an official release (which will be 2.0) Ill post an announcement, in
the meantime, enjoy the screenshots.
Camera settings (Up to 20 preset camera locations can be saved):
Light settings (All values are edited by dbl-clicking anywhere in the grid):
POV-Ray settings (Include files before and after, launch POV to render when
done):
LGEO settings/Options (Use the new LGEO, Antons parts, set priority, etc):
|
|
|
Lars C. Hassing wrote:
> Lutz Uhlmann and I are happy and proud to announce the release
> of a new large set of the LGEO parts and the supporting L3P.
Hi,
very nice work, thanks for everything :-)
I invoke l3p using OMake build scripts and the many command line
switches it offers are fantastic.
I have one question about LGEO:
The part "Cockpit 4 x 11 x 2 _2/3", 6058.DAT, seems to be placed one
plate higher when rendering with LGEO.
Cf. here:
without LGEO:
http://florianhaag.name/common/ldraw/MTronCourierShipBG.jpg
with LGEO:
http://florianhaag.name/common/ldraw/MTronCourierShipBGLGEO.jpg
Is this intentional?
Regards,
Florian
|
|
|
In lugnet.cad, Florian Haag wrote:
> I have one question about LGEO:
> The part "Cockpit 4 x 11 x 2 _2/3", 6058.DAT, seems to be placed one
> plate higher when rendering with LGEO.
> ...
> Is this intentional?
No, of course not. LGEO parts are intended to have the same orientation and
position as the LDRAW parts.
Thanks for your note, I fixed this. The new file will come with the next update.
to make a quick fix, open lg_6058.inc and change lines 1460 and 2898 from
matrix <-1, 0, 0, 0, 1, 0, 0, 0, 1, -5.5*LG_BRICK_WIDTH, 0, 0>
to
matrix <-1, 0, 0, 0, 1, 0, 0, 0, 1, -5.5*LG_BRICK_WIDTH, 0, -LG_PLATE_HEIGHT>
Regards,
Lutz
|
|
|
In lugnet.announce, Lars C. Hassing wrote:
> Lutz Uhlmann and I are happy and proud to announce the release
> of a new large set of the LGEO parts and the supporting L3P.
Lars,
would it be possible to collect the information stored here:
http://www.hassings.dk/l3/l3p14beta.html#version14
in a .hmtl or .pdf and ship it along with the .exe.?
w.
|
|
|
In lugnet.cad, Willy Tschager wrote:
> would it be possible to collect the information stored here:
>
> http://www.hassings.dk/l3/l3p14beta.html#version14
>
> in a .hmtl or .pdf and ship it along with the .exe.?
The info you refer to is only about the new stuff.
I normally include a mini man page (l3p.txt) with the executables,
but this time the beta release was meant primarily to old users.
The next release will include doc again, probably in HTML.
/Lars
|
|
|
In lugnet.announce, Lars C. Hassing wrote:
> The new LGEO files:
> http://www.digitalbricks.org/
>
> Because of the long development period I am releasing L3P as a BETA:
> http://www.hassings.dk/l3/l3p14beta.html
> Please test it thoroughly and report any errors to me.
> L3P v1.4 does not support the old LGEO files, you'll need the new LGEO files.
File: C:\Programme\LDraw\Lgeo\lg\lg_6157.inc Line: 16
File Context (5 lines):
#ifdef(lg_6157)
#else
#declare lg_angle=atan2(LG_BRICK_WIDTH/2-0.12, LG_BRICK_WIDTH-0.
Parse Error: All #declares of float, vector, and color require semi-colon ';' at
end if the language version is set to 3.5 or higher. Either add the semi-colon
or set the language version to 3.1
or lower.
File: C:\Programme\LDraw\Lgeo\lg\lg_3679.inc Line: 145
File Context (5 lines):
#declare lg_3679_clear =
merge {
#declare ROT =
Parse Error: All #declares of float, vector, and color require semi-colon ';' at
end if the language version is set to 3.5 or higher. Either add the semi-colon
or set the language version to
3.1 or lower.
*** Adding the semi-colon ';' fixed the problem ***
File: C:\Programme\LDraw\Lgeo\ar\ar_3001.inc Line: 16
Possible Parse Error: Could not find file 'ar_material.inc'
File: C:\Programme\LDraw\Lgeo\ar\ar_3001.inc Line: 16
File Context (5 lines):
#ifdef(ar_3001)
#else
#include "ar_material
Parse Error: Cannot open include file ar_material.inc.
*** ar_material.inc is not in the package ***
Bye, w.
|
|
|
File: C:\Programme\LDraw\Lgeo\lg\lg_6083.inc Line: 775
File Context (5 lines):
}
}
#declare lg_6083_clear =
merge
Parse Error: Illegal character in input file, value is ffffffe2.
*** Change "â #declare MIR = 0;" to "#declare MIR = 0;" ***
w.
|
|
|
> File: C:\Programme\LDraw\Lgeo\lg\lg_6157.inc Line: 16
fixed in the next update.
> File: C:\Programme\LDraw\Lgeo\lg\lg_3679.inc Line: 145
fixed in last update.
> File: C:\Programme\LDraw\Lgeo\ar\ar_3001.inc Line: 16
> Possible Parse Error: Could not find file 'ar_material.inc'
> *** ar_material.inc is not in the package ***
ar_material.inc and ar_library.inc have to be installed extra.
They are not included as they are not created by me.
In the LGEO.pdf is an axplanation. These two file are renamed
copy (or aliases) of Antons original files.
The illegal character in lg_6083.inc wil also be fixed in the next update.
Thanks for testing and reporting,
Lutz
|
|
|
Lutz,
30140 - Panel 2 x 6 x 6 Log Wall
has a half-stud offset on the z-axes. Do you have a quick hack to fix the
problem?
w.
|
|
|
In lugnet.cad, Willy Tschager wrote:
> Lutz,
>
> 30140 - Panel 2 x 6 x 6 Log Wall
>
> has a half-stud offset on the z-axes. Do you have a quick hack to fix the
> problem?
add in lines 726 and 1436: translate <LG_BRICK_WIDTH/2, 0, 0> (before the last }
of the object)
Will add fix to update.
Lutz
|
|
|
Awesome! I totally missed this.
A couple of requests:
1) An option to search for and "#include" L3P-generated parts instead of writing
them all to the POV file.
2) Replace mesh objects with mesh2.
Thanks for all the hard work!
-Mike
|
|
|
Does anyone know of if "fastrad.inc" is compatible with the L3P 1.4 output?
Thanks.
-Mike
|
|
|
One additional suggestion I'd like to make is to, instead of writing the same
data repeatedly over and over for each part, store the part data (matrix
transformations and materials) in arrays and then traverse at the end of a file
using loops. Roughly, this:
// 1 0 180 -192 -90 1 0 0 0 1 0 0 0 1 3004.dat
object {
_3004_dot_dat
matrix <1,0,0,0,1,0,0,0,1,180,-192,-90>
material { L3Color0 }
}
would become something like this:
array[3] {_3004_dot_dat, <1,0,0,0,1,0,0,0,1,180,-192,-90>, L3Color0}
In this case _3004_dot_dat is a pointer to the array entry instead of the POV
object. As an example, the pointer might be created like this:
#declare _3004_dot_dat = model_array[34];
Using arrays would make it easier to tweak models without needing to open and
edit them in MLCad and re-convert them using L3P. POV-Ray SDL is not
object-oriented, so there's no way to retrieve object data without writing a
parser and parsing the entire file.
-Mike
|
|
|