LDraw.org Discussion Forums

Full Version: From Willy: Define a standard for helper parts
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4
(2021-08-22, 7:37)Milan Vančura Wrote: [ -> ]About LDCAD: I don't know, I'm not the author... I thought it generally (as having some years of experience with databases): if some meta information is static in time, it's always a benefit to mention it clearly as an extra field, for practical reasons. Just my 2 cents for this brainstorming.

LDCad will use the first word (without ~_|) in the description if (and only if) there is no !CATEGORY one.

Once determined there is no difference between a !CATEGORY or 1st word one internally, so it should handle like it was read from !CATEGORY ether way.
(2021-08-21, 18:51)Roland Melkert Wrote: [ -> ]As for the naming it might be an idea to put them in a new subfolder (along side parts and p), e.g. 'helper' and reference them in models like "helper\blabla.dat"

Correction:
I mean a new folder besides the "s" one in parts, unless we want to extend the p and parts search location order to inlcude the new "helper" one (which won't be backwards compatible in most programs).

And maybe shorten it to just "h" to be more like the existing "s"
As the discussion has died down I made a summary of where the LSB has to agree upon:

Naming convention:
  • Scheme: h<number>.dat
  • Scheme: Helper<number>.dat
  • Name as description without blanks: Helper3DEasyRotation.dat

Description:

As for the third party parts it starts with '|' or '~|'
  • |Helper <2D/3D qualifier> <Type> <additional description> <lenght/height/depth>

<Type> Arrow, Dot, Line, Letter, Number, Light, LSynth Constraint, String Knot ...
<additional description> Straight, Rotation, "3", "F", Vertical
<lenght/height/depth> 2L, 3 Studs, 20 LDU, 10 mm

Note: It has to be decided if it is "Helpers" or "Helper".

Category:

Not needed. From the !CATEGORY and !KEYWORDS spec: If a part has no !CATEGORY meta-statement, the category is assumed to be the first word in the part name (ie. the first word of the first line of the part file).

Location:
  • LDraw root LDraw\helpers
  • Parts folder LDraw\parts
  • Subfolder LDraw\parts\helpers
  • Subfolder LDraw\parts\h

Note: It has to be decided if it is "helpers" or "helper".

Design:
  • No edges on 2D helpers as for stickers
  • Edges on 2D helpers as for parts
  • Edges Yes/No on 2D helpers - leave the final decision to the author
  • Edges on 3D helpers

Dimensions:

Numbers and letters should fit into a x-z grid of a:
  • 20 x 20 LDU
  • 40 x 40 LDU
Looks good to me. About category, "helper" must be added to approved category list.
https://www.ldraw.org/article/340.html
My thoughts:

Naming convention:
h/<setName>_<numberOrName>.dat

Description:
No prefix, the 'h/' folder already indicates it's a non standard part.

If we put "Helper" in the category meta the description can be free to fill in by the author.

Maybe only use a prefix to indicate the 'set' of helpers it belong to, but even this should be up to the author of the set.

Category:
I would recommend making this mandatory "HELPER", so the description if free to use.

Keywords:
The type or "qualifier" should be put here, e.g. "3D arrow", "2D arrow", "Arrow" (can be together with 2D arrow).

Location:
<LibraryRoot>/parts/h

Design:
Only orientation should be formalized.

Dimensions:
Again up to the author imho.



In short I would like to leave as much freedom to the helper (set) authors as possible.
(2021-09-15, 17:57)Roland Melkert Wrote: [ -> ]My thoughts:
I absolutely 100% agree with everything Roland summarized. This way authors have a big freedom and users have benefits of standardization. Win-win.
> In short I would like to leave as much freedom to the helper (set) authors as possible.

Description:

If there wouldn't have been a strict nomenclature for parts right from the beginning we would have "Bricks" and "Stone" and "Part" with "Studs" and "Heads" and a "3001.dat - Brick with 4 Connectors on 2 Rows on the top" in the library.

Dimension:

I further think that the dimension of letters and numbers should be defined. Otherwise you might have to scale a letter by 2 and a number by 3.1 to get the same height. Or a Times Roman by 2 and an Arial by 4.

w.
(2021-09-16, 6:49)Milan Vančura Wrote: [ -> ]I absolutely 100% agree with everything Roland summarized. This way authors have a big freedom and users have benefits of standardization. Win-win.

I add some details, thoughts:

Using Category ("Helper") the part description is more free to mention a helper set name as the first word. For example "Arrow" or "Arrow3D". Then, of course, other authors must follow this rule to announce their helper is a part of this set. But I feel it's impossible to standardize anything more about names because we cannot predict what kind of helpers people come with, in future. So let them to discuss that when time comes, for each helper set.

Same for rules about edges,as an example. Even now we can see some arrows are to be without edges but another have edges (i.e. Jaco's ones). So why to set any rule about edges yes/no if we know we cannot see the future needs? Crystal balls are too expensive these days...

The only rule about edges I vote for is "do not set any other edge color than the standard one. If you need such thing, find another solution." For example, as you told me to improve the set of plain arrows: instead of edges of color16 remove edges at all.

This way (of thinking about the standard) I believe the problems Willy raised (chaos in descriptions etc.) will be solved, the result sets of helpers are easy to find and easy to sort => easy to use, and the freedom needed to be able to add another helper or helper set in future is not blocked.

I think Roland summarized it well and I agree with it, I just added some details - maybe we can refine some points so it is clear how to prevent problems Willy mentioned.
(2021-09-24, 8:03)Milan Vančura Wrote: [ -> ]Using Category ("Helper") the part description is more free to mention a helper set name as the first word. For example "Arrow" or "Arrow3D". Then, of course, other authors must follow this rule to announce their helper is a part of this set. But I feel it's impossible to standardize anything more about names because we cannot predict what kind of helpers people come with, in future. So let them to discuss that when time comes, for each helper set.

With a "Set" I was more thinking about the whole collection a certain author maintains, like:

"Roland's flat arrows - short single"
"Roland's flat arrows - short dual"
"Roland's flat arrows - long single"

A bit like some brand's line of interconnecting products or something.
(2021-09-25, 19:08)Roland Melkert Wrote: [ -> ]With a "Set" I was more thinking about the whole collection a certain author maintains, like:
Yes, this is how it starts. But, as we live in open-source world, another authors add something in future. Or if the original author is no longer active in ldraw etc.
Pages: 1 2 3 4