Custom LDraw File Syntax Additions

From LDraw.org Wiki
Revision as of 01:54, 22 February 2020 by Michael Horvath (talk | contribs) (→‎MLCad: add a missing MLCAD meta tag)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Sometimes, authors of LDraw-related software add special custom syntax elements to the LDraw file format.

This can create various problems when

  • the semantics of such syntax changes between software versions
  • different software interprets them differently
  • files get widespread which make use of that custom syntax, without it being a standard.

For that reason, doing so in general is a Bad Idea (TM).

However, this in the past has happend quite in some instances.

This page tries to list all the existing custom syntax elements.

MLCad

ROTSTEP (<x-angle> <y-angle> <z-angle> [(REL| ADD | ABS)] | END)

BACKGROUND <filename>

BUFEXCHG (A-H) (STORE | RETRIEVE)

GHOST <LDRAW line>

GROUP <n> <name>

MLCAD BGT <group name>

MLCAD HIDE

MLCAD SKIP_BEGIN

MLCAD SKIP_END

ROTATION CENTER <x> <y> <z> "<name>"

ROTATION CONFIG <Rotation ID> <Visible Flag>

ROTATION AXLE

MLCAD SPRING

MLCAD FLEXHOSE

MLCAD RUBBER_BELT

LPub

LPub Statements

LPUB PLI BEGIN SUB=LPUB PLI BEGIN SUB

LPUB PLI BEGIN IGN=LPUB PLI BEGIN IGN

LPUB END=PLIST END

-=-

BI BEGIN GRAYED=BI BEGIN GRAYED

BI END=BI END

LPUB GROUP REMOVE=LPUB GROUP REMOVE

LPub Page Statements

SIZE=LPUB PAGE SIZE

PLI (YES|NO)=LPUB PAGE PLI (YES|NO)

-=-

BACKGROUND TRANS=LPUB PAGE BACKGROUND TRANS

BACKGROUND color=LPUB PAGE BACKGROUND color

BACKGROUND [STRETCH] png_image_name=LPUB PAGE BACKGROUND [STRETCH]

png_image_name

-=-

BORDER SQUARE=LPUB PAGE BORDER SQUARE

BORDER ROUND=LPUB PAGE BORDER ROUND

BORDER MARGINS x_margin y_margin=LPUB PAGE BORDER MARGINS x_margin y_margin

-=-

NUMBER MARGINS x_margin y_margin=LPUB PAGE NUMBER MARGINS x_margin y_margin

LPub Assembly Statements

MARGINS x_margin y_margin=LPUB ASSEM MARGINS x_margin y_margin

-=-

PLACEMENT corner PAGE=LPUB ASSEM PLACEMENT corner PAGE

PLACEMENT edge PAGE=LPUB ASSEM PLACEMENT edge PAGE

PLACEMENT CENTER PAGE=LPUB ASSEM PLACEMENT CENTER PAGE

PLACEMENT OFFSET x_offset y_offset=LPUB ASSEM PLACEMENT OFFSET x_offset

y_offset

LPub PLI Layout Statements

PART MARGINS x y=LPUB PLI PART MARGINS x y

MARGINS x y=LPUB PLI MARGINS x y

-=-

PLACEMENT CENTER PAGE=LPUB PLI PLACEMENT CENTER PAGE

PLACEMENT edge PAGE=LPUB PLI PLACEMENT edge PAGE

PLACEMENT CENTER ASSEM INSIDE=LPUB PLI PLACEMENT CENTER ASSEM INSIDE

PLACEMENT corner ASSEM INSIDE=LPUB PLI PLACEMENT corner ASSEM INSIDE

PLACEMENT edge ASSEM INSIDE=LPUB PLI PLACEMENT edge ASSEM INSIDE

PLACEMENT corner ASSEM OUTSIDE=LPUB PLI PLACEMENT corner ASSEM OUTSIDE

PLACEMENT edge justification ASSEM OUTSIDE=LPUB PLI PLACEMENT edge

justification ASSEM OUTSIDE

PLACEMENT OFFSET x_offset y_offset=LPUB PLI PLACEMENT OFFSET x_offset

y_offset

-=-

BORDER SQUARE color thickness=LPUB PLI BORDER SQUARE color thickness

BORDER ROUND color thickness radius=LPUB PLI BORDER ROUND color

thickness radius

BORDERLESS=LPUB PLI BORDERLESS

BORDER MARGINS x y=LPUB PLI BORDER MARGINS x y

-=-

BACKGROUND TRANS=LPUB PLI BACKGROUND TRANS

BACKGROUND color=LPUB PLI BACKGROUND color

BACKGROUND [STRETCH] fname=LPUB PLI BACKGROUND [STRETCH] fname

-=-

CONSTRAIN AREA=LPUB PLI CONSTRAIN AREA

CONSTRAIN SQUARE=LPUB PLI CONSTRAIN SQUARE

CONSTRAIN WIDTH width=LPUB PLI CONSTRAIN WIDTH width

CONSTRAIN HEIGHT height=LPUB PLI CONSTRAIN HEIGHT height

CONSTRAIN COLS cols=LPUB PLI CONSTRAIN COLS cols

LPub Callout Statements

MARGINS x y=LPUB CALLOUT MARGINS x y=

HORIZONTAL=LPUB CALLOUT HORIZONTAL

VERTICAL=LPUB CALLOUT VERTICAL

SEPARATOR seperator_color separator_width=LPUB CALLOUT SEPARATOR

seperator_color separator_width

-=-

BORDER SQUARE color thickness=LPUB CALLOUT BORDER SQUARE color thickness

BORDER ROUND color thickness radius=LPUB CALLOUT BORDER ROUND color

thickness radius

BORDER MARGINS x y=LPUB CALLOUT BORDER MARGINS x y

BORDERLESS=LPUB CALLOUT BORDERLESS

-=-

BACKGROUND TRANS=LPUB CALLOUT BACKGROUND TRANS

BACKGROUND color=LPUB CALLOUT BACKGROUND color

BACKGROUND [STRETCH] fname=LPUB CALLOUT BACKGROUND [STRETCH] fname

-=-

BEGIN=LPUB CALLOUT BEGIN=LPUB CALLOUT BEGIN=LPUB CALLOUT BEGIN

END=LPUB CALLOUT END=LPUB CALLOUT END=LPUB CALLOUT END

DIVIDER=LPUB CALLOUT DIVIDER

-=-

INSTANCE_COUNT MARGINS x y=LPUB CALLOUT INSTANCE_COUNT MARGINS x y

INSTANCE_COUNT PLACEMENT corner CALLOUT preposition=LPUB CALLOUT

INSTANCE_COUNT PLACEMENT corner CALLOUT preposition

INSTANCE_COUNT PLACEMENT edge CALLOUT INSIDE=LPUB CALLOUT INSTANCE_COUNT

PLACEMENT edge CALLOUT INSIDE

INSTANCE_COUNT PLACEMENT horiz justification CALLOUT OUTSIDE=LPUB

CALLOUT INSTANCE_COUNT PLACEMENT horiz justification CALLOUT OUTSIDE

INSTANCE_COUNT PLACEMENT vert justification CALLOUT OUTSIDE=LPUB CALLOUT

INSTANCE_COUNT PLACEMENT vert justification CALLOUT OUTSIDE

-=-

PLACEMENT CENTER PAGE=LPUB CALLOUT PLACEMENT CENTER PAGE

PLACEMENT corner PAGE=LPUB CALLOUT PLACEMENT corner PAGE

PLACEMENT edge PAGE=LPUB CALLOUT PLACEMENT edge PAGE

PLACEMENT CENTER ASSEM INSIDE=LPUB CALLOUT PLACEMENT CENTER ASSEM INSIDE

PLACEMENT corner ASSEM INSIDE=LPUB CALLOUT PLACEMENT corner ASSEM INSIDE

PLACEMENT edge ASSEM INSIDE=LPUB CALLOUT PLACEMENT edge ASSEM INSIDE

PLACEMENT corner ASSEM OUTSIDE=LPUB CALLOUT PLACEMENT corner ASSEM OUTSIDE

PLACEMENT edge justification ASSEM OUTSIDE=LPUB CALLOUT PLACEMENT edge

justification ASSEM OUTSIDE

PLACEMENT OFFSET x_offset y_offset=LPUB CALLOUT PLACEMENT OFFSET

x_offset y_offset

-=-

POINTER BASE base=LPUB CALLOUT POINTER BASE base

POINTER placement loc assem_x assem_y=

LPub Step Number Statements

PLACEMENT CENTER PAGE=LPUB STEP_NUMBER PLACEMENT CENTER PAGE

PLACEMENT corner PAGE=LPUB STEP_NUMBER PLACEMENT corner PAGE

PLACEMENT edge PAGE=LPUB STEP_NUMBER PLACEMENT edge PAGE

PLACEMENT CENTER ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT CENTER ASSEM INSIDE

PLACEMENT corner ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT corner ASSEM INSIDE

PLACEMENT edge ASSEM INSIDE=LPUB STEP_NUMBER PLACEMENT edge ASSEM INSIDE

PLACEMENT corner PLI=LPUB STEP_NUMBER PLACEMENT corner PLI

PLACEMENT edge justification PLI=LPUB STEP_NUMBER PLACEMENT edge

justification PLI

PLACEMENT corner ASSEM OUTSIDE=LPUB STEP_NUMBER PLACEMENT corner ASSEM

OUTSIDE

PLACEMENT edge justification ASSEM OUTSIDE=LPUB STEP_NUMBER PLACEMENT

edge justification ASSEM OUTSIDE

LPub Multi-Step Number Statements

VERTICAL=LPUB MULTI_STEP VERTICAL

HORIZONTAL=LPUB MULTI_STEP HORIZONTAL

MARGINS x y=LPUB MULTI_STEP MARGINS x y

SEPARATOR seperator_color separator_width=LPUB MULTI_STEP SEPARATOR

seperator_color separator_width

BEGIN=LPUB MULTI_STEP BEGIN

DIVIDER=LPUB MULTI_STEP DIVIDER

END=LPUB MULTI_STEP END

LPub Bill Of Material Statements

PART MARGINS x y=LPUB BOM PART MARGINS x y

MARGINS x y=LPUB BOM MARGINS x y

BEGIN IGN=LPUB BOM BEGIN IGN

END=LPUB BOM END

-=-

BORDER SQUARE color thickness=LPUB BOM BORDER SQUARE color thickness

BORDER ROUND color thickness radius=LPUB BOM BORDER ROUND color

thickness radius

BORDERLESS=LPUB BOM BORDERLESS

BORDER MARGINS x y=LPUB BOM BORDER MARGINS x y

-=-

BACKGROUND TRANS=LPUB BOM BACKGROUND TRANS

BACKGROUND color=LPUB BOM BACKGROUND color

BACKGROUND [STRETCH] fname=LPUB BOM BACKGROUND [STRETCH] fname

-=-

CONSTRAIN AREA=LPUB BOM CONSTRAIN AREA

CONSTRAIN SQUARE=LPUB BOM CONSTRAIN SQUARE

CONSTRAIN WIDTH width=LPUB BOM CONSTRAIN WIDTH width

CONSTRAIN HEIGHT height=LPUB BOM CONSTRAIN HEIGHT height

CONSTRAIN COLS cols=LPUB BOM CONSTRAIN COLS cols

-=-

SORT WIDTH=LPUB BOM SORT WIDTH

PACK SUBS=LPUB BOM PACK SUBS

LSynth

SYNTH BEGIN (RIBBED_TUBE |

FLEXIBLE_TUBE |

FLEX_CABLE |

RIGID_TUBE |

ELECTRIC_CABLE |

PNEUMATIC_TUBE |

FLEXIBLE_AXLE |

FIBER_OPTIC_CABLE |

RUBBER_BAND |

CHAIN |

PLASTIC_TREAD |

RUBBER_TREAD)

SYNTH END

SYNTH (INSIDE | OUTSIDE | CROSS | SHOW | HIDE)

SYNTHESIZED BEGIN

SYNTHESIZED END

L3P

L3P IFPOV

L3P IFNOTPOV

L3P ELSEPOV

L3P ENDPOV

LDLite

COLOR

COLOUR

TRANSLATE

ROTATE

SCALE

TRANSFORM

COLORNAME

COLOURNAME

POINT

MATRIX

CMDLINE <line>