<p>As you’ve found, it’s hard to use a two-dimensional format, even from multiple viewpoints, to represent a 3D structure that’s not axis-aligned. I’m not sure I have a useful suggestion there—there’s a reason most 3D file formats support specifying translation/rotation/scaling of individual parts.</p>

<p>A different direction you might try would be using the existing work in the <a href="https://ldraw.org" rel="nofollow noreferrer">LDraw</a> project; their <a href="http://www.ldraw.org/article/218" rel="nofollow noreferrer">file format</a> is technically ASCII, and though it’s closer to a standard 3D format in that the fundamental parts (like studs) are built out of lists of vertices / triangles / etc., the higher-level pieces (bricks, plates, etc.) are built out of references to the fundamental ones, which sounds like it’s roughly along the lines of what you’re after. There’s an <a href="http://www.ldraw.org/downloads-2/third-party-software.html" rel="nofollow noreferrer">assortment</a> of third-party design tools that provide GUIs on top of the LDraw parts library; of those, I’m partial to <a href="http://bricksmith.sourceforge.net/" rel="nofollow noreferrer">Bricksmith</a>.</p>

CC BY-SA 3.0
2018-01-05T21:57:29.987Z
2018-01-05T21:57:29.987Z
Noah Witherspoon
<p>This question is a little different to your typical questions but I think this is the best community to ask this in.</p>

<p>I've been interested in lego technic for most my life and have been trying to come up with a way to quickly and easily represent axles, pins, axle holes and pin holes on computers universally. I decided to  use plain ASCII since it is quicker and works on mobile devices and on desktops.</p>

<p>I made a good representation of the pins, axles and holes in one axis but the problem is: ASCII is 2D but lego technic is 3D, so rotated or flipped lego parts are very hard to represent and if the entire building axis changes then so do the part orientations.</p>

<p>Is there some way I can do this?</p>

<p>Here is my syntax:</p>

<pre><code>facing the front:

+ axle hole
× axle
o pin hole
. pin

facing the side:

&lt; axle hole
= axle
Z pin hole
- pin

facing the side rotated 90 degrees:

V axle hole
! axle
N pin hole
| pin
</code></pre>

<p>if a symbol is underlined it means it is half thickness, if not it is worth 1L</p>

CC BY-SA 3.0
2017-12-25T03:53:29.420Z
Is this just a way of drawing a lego technic or a format for storing the design of one? If is is the latter, are you looking for something compact/compressed which takes up little storage or something that is convenient to work with and easy to edit?
Chuck
CC BY-SA 3.0
2017-12-25T06:42:42.190Z
@chuck easy to edit/create, and its drawing lego technic sections which create a full model, a full model is impossible to interpret on small phone screens.
CoderCat
CC BY-SA 3.0
2018-01-03T09:24:44.237Z
I'm not sure I understand what the actual question is here.
Dan Hulme
<diagram>
Creating 3d model building notation using ASCII
CoderCat
# Creating 3d model building notation using ASCII

(Asked by: username_0 on 2017-12-25)

This question is a little different to your typical questions but I think this is the best community to ask this in.

I've been interested in lego technic for most my life and have been trying to come up with a way to quickly and easily represent axles, pins, axle holes and pin holes on computers universally. I decided to use plain ASCII since it is quicker and works on mobile devices and on desktops.

I made a good representation of the pins, axles and holes in one axis but the problem is: ASCII is 2D but lego technic is 3D, so rotated or flipped lego parts are very hard to represent and if the entire building axis changes then so do the part orientations.

Is there some way I can do this?

Here is my syntax:

```
facing the front:

+ axle hole
× axle
o pin hole
. pin

facing the side:

< axle hole
= axle
Z pin hole
- pin

facing the side rotated 90 degrees:

V axle hole
! axle
N pin hole
| pin

```

if a symbol is underlined it means it is half thickness, if not it is worth 1L

**Tags:** diagram

> **Comments:**
> **username_1**: Is this just a way of drawing a lego technic or a format for storing the design of one? If is is the latter, are you looking for something compact/compressed which takes up little storage or something that is convenient to work with and easy to edit?  
> **username_0**: @username_1 easy to edit/create, and its drawing lego technic sections which create a full model, a full model is impossible to interpret on small phone screens.  
> **username_2**: I'm not sure I understand what the actual question is here.  

---

## 1 answers

### Answer by username_3 on 2018-01-05. Score: 1

As you’ve found, it’s hard to use a two-dimensional format, even from multiple viewpoints, to represent a 3D structure that’s not axis-aligned. I’m not sure I have a useful suggestion there—there’s a reason most 3D file formats support specifying translation/rotation/scaling of individual parts.

A different direction you might try would be using the existing work in the [LDraw](https://ldraw.org) project; their [file format](http://www.ldraw.org/article/218) is technically ASCII, and though it’s closer to a standard 3D format in that the fundamental parts (like studs) are built out of lists of vertices / triangles / etc., the higher-level pieces (bricks, plates, etc.) are built out of references to the fundamental ones, which sounds like it’s roughly along the lines of what you’re after. There’s an [assortment](http://www.ldraw.org/downloads-2/third-party-software.html) of third-party design tools that provide GUIs on top of the LDraw parts library; of those, I’m partial to [Bricksmith](http://bricksmith.sourceforge.net/).


---

