Isometric Drawing Paper

john's Avatar

john

26 Mar, 2023 12:02 PM

Hot off the press: a system for making isometric drawings!

The core system consists of three nodes:

  • iso_paper draws a sheet of "paper" with an isometric grid. You can set:
    • Width - the width of the page
    • Height - the height of the page
    • Gauge - the size of line segments making up the grid (and thus of anything you draw on it)
    • Line color
    • Paper color
    • Clip to page. Check this to trim the gridlines to the edge of the page (faster if unchecked)
  • iso_start sets a new starting point on the isometric paper. You can set:
    • X - units southeast from the origin (negative moves northwest)
    • Y - units northeast from the origin
    • Z - units north of the origin
  • iso_line creates or adds a line segment in a path on the isometric paper. You can set:
    • Angle - an integer from 0 to 5 for North, Northeast, Southeast, South, Southwest, or Northwest
    • Distance - an integer for the length of the line segment in grid units

By itself, iso_paper creates a sheet of isometric grid paper that you can print out and draw your sketches on. When used with the other two nodes, it provides a background to form Nodebox paths and ensures that all lines stay on the grid. A large sheet of paper with a small gauge may take a second or two render if "Clip to page" is checked. The construction process will go a little faster if you leave that box unchecked while building your drawing; you can check the box (or change the gauge or paper size) at any point during the process.

You construct an isometric drawing by snapping copies of these nodes together like lego bricks. Here's how it works:

  • Add an iso_paper node and set the size of your grid.
  • Add an iso_start node and hook the iso_paper node into it. When you render this node it will show the paper with your current position marked as a small black dot. Change the X, Y, and Z coordinates to move that dot.
  • Add an iso_line node and hook the iso_start node into it. Set an angle and distance. When you render this node it will show a blue line segment starting at the position defined in iso_start
  • Option-drag the iso_line node to add another iso_line node. Be sure to connect the PREVIOUS iso_line node into this one, set the angle and direction, and render it. You should now see a two-segment path.
  • Option-drag more iso_line nodes to add more segments. I recommend initially dragging a new copy below and to the left of the previous node; this makes it easy to connect the previous node to the new one. Once they are connected you can drag the new node directly underneath the previous node to form a tidy stack of iso_line nodes.
  • To start a new path, copy-paste a new copy of an iso_start node and hook the end of the previous path into it. When you render this second iso_start node it will show the previous path with a dot for the current position. Change the X,Y, Z coordinates to move the dot to the start of your new path. Then proceed as before: option drag any previous iso_line node under your new iso_start node and hook the new iso_start node into it. Then option-drag more iso_line nodes to extend this second path.
  • Lather, rinse, repeat

At every step of the process you will always be able to see the isometric paper as a reference. Each node passes the paper and the current set of drawing paths onto the next node in the chain. You can render any node to see the progress up to that point (and change angle or distance if you made a mistake). And because the whole thing is one chain, changing the iso_paper settings on the top with automatically update the rest of the drawing.

The attached screenshot shows an impossible triangle drawing I made using this system.

As you can see, there are eight separate paths, each drawn by a stack of iso_line nodes with a different iso_start at the top of each stack. The bottom node of each stack is hooked into the iso_start node at the top of the next stack to form a continuous chain. I was able to construct this drawing fairly quickly by repeating these three motions: option-drag, set parameters, add link to chain.

Because I wanted to add shading, I closed each path (returned to the beginning of each path). If you change to data view you can see that each iso_line node outputs a geometry (the paper) and one or more paths. So, in order to color the paths, I separated them from the paper by simply feeding the last isoline node into a first node to isolate the paper and a rest node to isolate the remaining 8 paths. I then fed those 8 paths into a colorize node and combined them again with the paper.

This system was designed to make drawing on isometric paper as quick and easy as possible. To get the feel for it you have to try it. It's faster to build a drawing than it is to describe how to do it.

I will add iso_paper into the next rev of my node library and include iso_start and iso_line in the demo. To make your own drawing just copy the three core nodes into your project and then option-drag the iso_start and iso_line nodes to make as many additional nodes as you need.

I hope someone out there will actually try this system and report back with any suggestions for improvement. I may add a few additional nodes to draw arcs (which begin and end on the grid), or perform other operations that stay on the grid and handle the paper.

Enjoy!

John

Reply to this discussion

Internal reply

Formatting help / Preview (switch to plain text) No formatting (switch to Markdown)

Attaching KB article:

»

Already uploaded files

  • isopaper_screenshot.png 971 KB
  • isopaper.ndbx.zip 1.16 MB

Attached Files

You can attach files up to 10MB

If you don't have an account yet, we need to confirm you're human and not a machine trying to post spam.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac

Recent Discussions

16 May, 2024 02:11 AM
16 May, 2024 01:58 AM
14 May, 2024 01:29 AM
13 May, 2024 12:36 AM
12 May, 2024 07:46 PM

 

05 May, 2024 04:38 PM
03 May, 2024 06:50 AM
03 May, 2024 12:30 AM
03 May, 2024 12:09 AM
19 Apr, 2024 04:41 AM
16 Apr, 2024 06:18 PM