Difference between revisions of "Custom LDraw File Syntax Additions"

From LDraw.org Wiki
Jump to navigation Jump to search
(→‎MLCad: add a missing MLCAD meta tag)
 
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
The following is a list currently known META Commands.  These commands are documented and maintained by the owner of their respective programs.  The URLs listed are the last known good links to that product.  This list is not all inclusive and should not be construed as a limitation but merely tool for programmer to use to prevent META command overlap.
+
Sometimes, [[App Developer|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.
  
===MLCad===
+
For that reason, doing so in general is a Bad Idea (TM).
http://mlcad.lm-software.com
+
 
 +
However, this in the past has happend quite in some instances.
 +
 
 +
This page tries to list all the existing custom syntax elements.
 +
 
 +
== [[MLCad]] ==
  
 
<code> ROTSTEP (&lt;x-angle&gt; &lt;y-angle&gt; &lt;z-angle&gt; [(REL| ADD | ABS)] | END)</code>
 
<code> ROTSTEP (&lt;x-angle&gt; &lt;y-angle&gt; &lt;z-angle&gt; [(REL| ADD | ABS)] | END)</code>
Line 16: Line 25:
  
 
<code> MLCAD BGT &lt;group name&gt;</code>
 
<code> MLCAD BGT &lt;group name&gt;</code>
 +
 +
<code> MLCAD HIDE</code>
  
 
<code> MLCAD SKIP_BEGIN</code>
 
<code> MLCAD SKIP_BEGIN</code>
Line 33: Line 44:
 
<code> MLCAD RUBBER_BELT</code>
 
<code> MLCAD RUBBER_BELT</code>
  
===LPub===
+
== [[LPub]] ==
http://www.kclague.net/LPub/index.htm
 
  
<code>[LPub Statements]</code>
+
=== LPub Statements ===
  
 
<code> LPUB PLI BEGIN SUB=LPUB PLI BEGIN SUB</code>
 
<code> LPUB PLI BEGIN SUB=LPUB PLI BEGIN SUB</code>
Line 52: Line 62:
 
<code> LPUB GROUP REMOVE=LPUB GROUP REMOVE</code>
 
<code> LPUB GROUP REMOVE=LPUB GROUP REMOVE</code>
  
<code> </code>
+
=== LPub Page Statements ===
 
 
<code> [LPub Page Statements]</code>
 
  
 
<code> SIZE=LPUB PAGE SIZE</code>
 
<code> SIZE=LPUB PAGE SIZE</code>
Line 82: Line 90:
 
<code> NUMBER MARGINS x_margin y_margin=LPUB PAGE NUMBER MARGINS x_margin y_margin</code>
 
<code> NUMBER MARGINS x_margin y_margin=LPUB PAGE NUMBER MARGINS x_margin y_margin</code>
  
<code> </code>
+
=== LPub Assembly Statements ===
 
 
<code> [LPub Assembly Statements]</code>
 
  
 
<code> MARGINS x_margin y_margin=LPUB ASSEM MARGINS x_margin y_margin</code>
 
<code> MARGINS x_margin y_margin=LPUB ASSEM MARGINS x_margin y_margin</code>
Line 100: Line 106:
 
<code> y_offset</code>
 
<code> y_offset</code>
  
<code> </code>
+
=== LPub PLI Layout Statements ===
 
 
<code> [LPub PLI Layout Statements]</code>
 
  
 
<code> PART MARGINS x y=LPUB PLI PART MARGINS x y</code>
 
<code> PART MARGINS x y=LPUB PLI PART MARGINS x y</code>
Line 162: Line 166:
 
<code> CONSTRAIN COLS cols=LPUB PLI CONSTRAIN COLS cols</code>
 
<code> CONSTRAIN COLS cols=LPUB PLI CONSTRAIN COLS cols</code>
  
<code> </code>
+
=== LPub Callout Statements ===
 
 
<code> [LPub Callout Statements]</code>
 
  
 
<code> MARGINS x y=LPUB CALLOUT MARGINS x y=</code>
 
<code> MARGINS x y=LPUB CALLOUT MARGINS x y=</code>
Line 254: Line 256:
 
<code> POINTER placement loc assem_x assem_y=</code>
 
<code> POINTER placement loc assem_x assem_y=</code>
  
<code> </code>
+
=== LPub Step Number Statements ===
 
 
<code> [LPub Step Number Statements]</code>
 
  
 
<code> PLACEMENT CENTER PAGE=LPUB STEP_NUMBER PLACEMENT CENTER PAGE</code>
 
<code> PLACEMENT CENTER PAGE=LPUB STEP_NUMBER PLACEMENT CENTER PAGE</code>
Line 284: Line 284:
 
<code> edge justification ASSEM OUTSIDE</code>
 
<code> edge justification ASSEM OUTSIDE</code>
  
<code> </code>
+
=== LPub Multi-Step Number Statements ===
 
 
<code> [LPub Multi-Step Number Statements]</code>
 
  
 
<code> VERTICAL=LPUB MULTI_STEP VERTICAL</code>
 
<code> VERTICAL=LPUB MULTI_STEP VERTICAL</code>
Line 304: Line 302:
 
<code> END=LPUB MULTI_STEP END</code>
 
<code> END=LPUB MULTI_STEP END</code>
  
<code> </code>
+
=== LPub Bill Of Material Statements ===
 
 
<code> [LPub Bill Of Material Statements]</code>
 
  
 
<code> PART MARGINS x y=LPUB BOM PART MARGINS x y</code>
 
<code> PART MARGINS x y=LPUB BOM PART MARGINS x y</code>
Line 354: Line 350:
 
<code> PACK SUBS=LPUB BOM PACK SUBS</code>
 
<code> PACK SUBS=LPUB BOM PACK SUBS</code>
  
===LSynth===
+
== [[LSynth]] ==
http://www.kclague.net/LSynth/
 
  
 
<code>SYNTH BEGIN (RIBBED_TUBE |</code>
 
<code>SYNTH BEGIN (RIBBED_TUBE |</code>
Line 389: Line 384:
 
<code> SYNTHESIZED END</code>
 
<code> SYNTHESIZED END</code>
  
===L3P===
+
== [[L3P]] ==
http://www.hassings.dk/l3/l3p.html
 
  
 
<code> L3P IFPOV</code>
 
<code> L3P IFPOV</code>
Line 400: Line 394:
 
<code> L3P ENDPOV</code>
 
<code> L3P ENDPOV</code>
  
===LDLite===
+
== [[LDLite]] ==
http://ldlite.sourceforge.net/
 
  
 
<code> COLOR</code>
 
<code> COLOR</code>

Latest revision as of 18:54, 21 February 2020

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>