LDraw.org Discussion Forums

Full Version: Get flex out there
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I'm firmly of the opinion that we need to get the flex parts out there. I don't care how but we need part numbers and parts and every length that has appeared in a set. In my opinion it is quite terrible for users of LDraw to have no easy access to usable parts that could be auto-generated in seconds by some of us.

So far the release has been held because of technical issues with the library. This is no reason to not have the parts out there as we can always replace them if a decision is made.


So my proposal:

1) We quickly come up with a naming system

2) We auto-generate self-contained parts in all appropriate lengths (I already have perl code for this)

3) We submit one of these to the Part Tracker

4) Once it is certified we adjust the others to take into account comments and put them up

4) If the system is changed in the future we auto-generate again

I propose we use '75' (as already) as a header - length (studs). As far as I'm aware all flex released has approximated an integer number of studs. Please correct me if I'm wrong.

so current 75 would be renamed 75-6. Probably 75 itself could be used as a shortcut to 75-6 since it's a pretty common short length
I'm not convinced that having them in appropriate lengths would be useful, since those versions would only be useful in the cases that they weren't "flexed".

However, I personally agree that it would be good for the files that are currently distributed with LSynth to be an official part of the library.
They're often used unflexed these days. They've become an extension of bars.

See eg. most diesel train sets, Emerald Night, 10199, 7862

And that's not to mention the number of MOCs that use them as bars. Or would if they could, mostly they overlap lightsabers.

And having the fixed lengths makes instruction generating easier.

For flexed versions we'll always need something more sophisticated but that's no reason to hold up the straight versions.

I agree that the different lengths should be available as official files, even in non-flexed state,
simply e.g. for being able to create inventories etc.

I think that even the different lengths have different LEGO element numbers, so we do not need
a new scheme (as suggested) for the file numbers, instead, simply using some u.....dat numbers
will suffice (until we know the official numbers).
Can someone confirm if they do have part numbers? I chuck away my boxes and instructions so I can't check. Bircklink doesn't seem to have alternate numbers listed.

OK, I'll withdraw my note of skepticism.
The set 10221 instructions lists the Flex Tube 7L as 4514192. I've noted that the numbers printed in the instruction BOMs don't seem to correlate with the numbers molded onto the bricks and are color specific. Example: Plate 1x4 in dark bluish grey is 4211001 but the same part in black is 371026.
I believe the instructions use the 'element id' (unique idendifier for colour/part) while we use the "mold id".

Of course there is no mold for flex, just giant rolls of the stuff.

Some examples attached (one digit, two digit and non-integer).

I can change the naming/labelling/whatever system very quickly so suggestions are more than welcome.

I had thought that there were non-integers out there but BL says no. We may as well come up with a naming standard for them anyway while we're at it.

Steffen Wrote:I agree with you that we should get the hoses out.
However, this specific file is not needed to do that.
Both its number (75-1.dat) and contents (1 LDU long hose) make no sense.
Instead, simply the subparts s01 and s02 are sufficient
to create hoses of different length.

Regarding the "Mid" element of these, that is similar to a cyli primitive.
So it should be placed and scaled like that, even independently
from the discussion whether or not to add other LSYNTH parts
to the library.
So that file should be placed as follows: origin at top,
extending down 1 LDU vertically.
This will allow using that file like a cyli primitive.

When at a later point a decision about LSYNTH may be done,
that file will fit well, as that positioning following
our usual primitives orientation and placement
will also match LSYNTH fine.

So here are the steps we should take to get the hoses out:
(a) delete this file
(b) check that the middle section subfile matches the above
origin placement and orientation
© check that the end subfile has its origin also properly placed
(d) certify :-))))

I've copied this from the PT as I agree.

But I'll add:

(e) Make the 3L part and check name (as discussed here), origin etc.
(f) Certify
(g) Put remaining lengths on PT from auto-generator
(h) Certify quickly
I think we can handle this just like the flex cables:
76.dat - hose end
77.dat - hose segment
75.dat (design ID 76279) made from two 76.dat and a scaled 77.dat
I agree but I also think that the various fixed lengths should also be parts in the library.
5L = 76307, 6L = 76279, 7L = 76289, ...
Great, exactly.
very nice!
the solution is very good now on the PT!
Is there a system to these names?
Only the LEGO company system of Design IDs.
Ahhhh... with all the sense that entails.

Do you know more than these 3?

OK. Please review http://www.ldraw.org/cgi-bin/ptdetail.cg.../22296.dat.

Once it's done I'll upload all the others. They'll all be as right or wrong as this one.

What other parts need a similar treatment? I've already modded the code to deal with flexibile hose with

0 Technic Ribbed Hose XX Ribs

but it's easy to modify for other standardised parts.


PS. perl code below for anyone who wishes to do their own sets
use POSIX;
sub round {

# Auto generation file prefix (suffix is length)
$author="Timothy Gould [timgould]";
#Description prefix
$pdesc="Technic Ribbed Hose ";
#Description suffix
$ldesc=" Ribs";

foreach $i (2..30) {
    push @length, round(10*$i/3.1)

# Length => Part number, Length => Part number, ...
%specno = (13=>71952);

foreach $l (@length)
    $id=sprintf("%02d",$l); # Ensure space for two characters (with 0)
    $tlen=sprintf("%2d",$l); # Ensure space for two characters (no 0)
    if (exists $specno{$l}) {
    # If there's a special name
    } else {
    # Otherwise
    # Set the part description

    print $fname." => ".$partdesc."\n";

    # Length of a segment
    # Start segment (for centering)

    # Generate the body of the part
    # First segment
    $body=$body.sprintf("1 16 %.1f 0 0 0 1 0 1 0 0 0 0 -1 79.DAT\n", $y);
    # Middle segments
    foreach $i (1..($l-2)) {
        sprintf("1 16 %.1f 0 0 0 -1 0 1 0 0 0 0 1 80.DAT\n",$y);
    # Last segment
    $body=$body.sprintf("1 16 %.1f 0 0 0 -1 0 1 0 0 0 0 1 79.DAT\n",$y);

# Make the part text
$mask="0 $partdesc
0 Name: $fname
0 Author: $author
0 !LDRAW_ORG Unofficial_Part
0 !LICENSE Redistributable under CCAL version 2.0 : see CAreadme.txt


# Write the part
    print FIL $mask;

print "Generated $no parts\n";
Tim Gould Wrote:Ahhhh... with all the sense that entails.

Do you know more than these 3?


5L = 76307, 6L = 76279, 7L = 76289, ...

76307 should be 70859

70859 Outer cable for TECHNIC 40mm
47040 Outer cable 40mm, red
47042 Outer cable 40mm, blue
47420 Outer cable 40mm, yellow
51976 Outer cable 40mm, dark stone grey
76307 Outer cable 40mm, dark grey

76279 should be 70860 (76279 is Outer cable 48mm, black)

76289 should be 70861 (76289 is Outer cable 4mm, dark grey)

-- joshua