Working with Planes in Kuka | prc

Kuka | prc is a method of driving Kuka robots using Grasshopper. This topic describes the use of planes when programming robot motion. (The larger topic of programming using Kuka|prc is here.)

You can think of a plane as an origin (location in space) and an orientation for the X, Y and Z axes (rotational direction of the axes). Planes are drawn in Grasshopper as a tiny grid, with the X and Y axes shown. You control the display size using the Grasshopper pull-down menu option Display > Preview Plane Size, then enter a size in model units.

You can create a Plane component in Grasshopper then right-click on it and choose Set one Plane. You are first asked to set the origin then asked to define the location of the X axis, then the Y axis. Note that once you define X and Y, then Z is defined automatically, perpendicular to X and Y, using the right-hand rule.

Planes are what are fed into the motion commands to move the robot. The plane specifies the location of the Tool Center Point (TCP) and the orientation for the robot face plate. So an understanding of them is essential to using Kuka | prc.

Generating Planes from Geometry

Planes drive the motion of the robot. Since we often want to follow geometry we've modeled or generated algorithmically in Grasshopper, there are a number of easy to use component which generate planes from geometry.

A simple example is creating planes to cause the robot to follow a curve. The Divide Curve component can be used to output points at equal intervals along the curve.

The planes appear in the viewport like this:

Note that these planes all have the exact same orientation. That's because the points were wired into a World XY component which set the constant orientation to match world XY. This is fine is the tool doesn't need to rotate along the curve.

It's also possible to generate the planes so they oriented tangent or perpendicular to a curve. To do so use the Horizontal Frames component.

The resulting planes. The X axis is tangent to the curve.

This can be used when you want the tool to rotate along the curve. For example if the tool was a knife cutter it needs to follow along tangent to the curve at all times.

It's also possible to generate frames which are perpendicular to the axis along the curve. To do so use the Perp Frames component.

The resulting frames:

Components

There are a number of useful Grasshopper components for dealing with planes, available in the Vector menu / Plane panel.

XY Plane, XZ Plane, YZ Plane

These components output planes matching the world XY, XZ and YZ coordinate systems all centered on the origin. You may wire in a different origin to move them around.

If you right-click on the origin socket and choose Extract Parameter Grasshopper wire in a Point component. You can then enable Gumballs in Grasshopper menus (Display > Gumballs). When you select the Point component you can use a small Gumball widget to graphically alter the point. Doing so interactively adjusts the robot position in the viewport.


Unit X, Unit Y, Unit Z

Also handy are the built in unit vectors for X, Y and Z. These are available in the Vector menu / Vector panel. You can wire in scale factors to change the magnitude of the vectors, or negative values to change their direction and magnitude.

Construct Plane

This component lets you construct planes by specifying an origin, and separate X, Y, and Z vectors to define the plane. See the image below under Deconstruct plane for an example in use.

Deconstruct Plane

This component lets you deconstruct a plane by breaking it into an origin and separate XYZ vectors. The example shown below uses both Construct and Deconstruct; you can see an origin point is wired into Construct Plane on the left (1.0 2.0 3.0). Also wired in are the standard X and Y vectors. This builds a plane, centered at world 1, 2, 3 aligned with the world XY plane.

The plane is then Deconstructed to show they match. So the origin output is 1, 2, 3. The X vector is in fact 1, 0, 0 and Y is 0, 1, 0. Z is, as expected, 0, 0, 1.

Adjust Plane

This component is very useful in re-orienting one of the standard planes. For example you can flip the Z axis of the plane to point in the opposite direction. Here you see a -1 factor wired into a Z vector which is wired into the normal of the Alter Plane. This flips +Z so it aligns with world -Z (down).

Note too how this example divides a curve up to generate the various origin points for the plane. You can see a list is output from Divide Curve. That's wired into the origin of the World XY plane.

Cross Product

Given two vectors this will output a new vector which is perpendicular to both those wired in. In the example below unit X and unit Y vectors are wired in. The output is unit Z (0, 0, 1) which, of course, is perpendicular to X and Y. 

Working with Planes in Kuka | prc

Kuka | prc is a method of driving Kuka robots using Grasshopper. This topic describes the use of planes when programming robot motion. (The larger topic of programming using Kuka|prc is here.)

You can think of a plane as an origin (location in space) and an orientation for the X, Y and Z axes (rotational direction of the axes). Planes are drawn in Grasshopper as a tiny grid, with the X and Y axes shown. You control the display size using the Grasshopper pull-down menu option Display > Preview Plane Size, then enter a size in model units.

You can create a Plane component in Grasshopper then right-click on it and choose Set one Plane. You are first asked to set the origin then asked to define the location of the X axis, then the Y axis. Note that once you define X and Y, then Z is defined automatically, perpendicular to X and Y, using the right-hand rule.

Planes are what are fed into the motion commands to move the robot. The plane specifies the location of the Tool Center Point (TCP) and the orientation for the robot face plate. So an understanding of them is essential to using Kuka | prc.

Generating Planes from Geometry

Planes drive the motion of the robot. Since we often want to follow geometry we've modeled or generated algorithmically in Grasshopper, there are a number of easy to use component which generate planes from geometry.

A simple example is creating planes to cause the robot to follow a curve. The Divide Curve component can be used to output points at equal intervals along the curve.

The planes appear in the viewport like this:

Note that these planes all have the exact same orientation. That's because the points were wired into a World XY component which set the constant orientation to match world XY. This is fine is the tool doesn't need to rotate along the curve.

It's also possible to generate the planes so they oriented tangent or perpendicular to a curve. To do so use the Horizontal Frames component.

The resulting planes. The X axis is tangent to the curve.

This can be used when you want the tool to rotate along the curve. For example if the tool was a knife cutter it needs to follow along tangent to the curve at all times.

It's also possible to generate frames which are perpendicular to the axis along the curve. To do so use the Perp Frames component.

The resulting frames:

Components

There are a number of useful Grasshopper components for dealing with planes, available in the Vector menu / Plane panel.

XY Plane, XZ Plane, YZ Plane

These components output planes matching the world XY, XZ and YZ coordinate systems all centered on the origin. You may wire in a different origin to move them around.

If you right-click on the origin socket and choose Extract Parameter Grasshopper wire in a Point component. You can then enable Gumballs in Grasshopper menus (Display > Gumballs). When you select the Point component you can use a small Gumball widget to graphically alter the point. Doing so interactively adjusts the robot position in the viewport.


Unit X, Unit Y, Unit Z

Also handy are the built in unit vectors for X, Y and Z. These are available in the Vector menu / Vector panel. You can wire in scale factors to change the magnitude of the vectors, or negative values to change their direction and magnitude.

Construct Plane

This component lets you construct planes by specifying an origin, and separate X, Y, and Z vectors to define the plane. See the image below under Deconstruct plane for an example in use.

Deconstruct Plane

This component lets you deconstruct a plane by breaking it into an origin and separate XYZ vectors. The example shown below uses both Construct and Deconstruct; you can see an origin point is wired into Construct Plane on the left (1.0 2.0 3.0). Also wired in are the standard X and Y vectors. This builds a plane, centered at world 1, 2, 3 aligned with the world XY plane.

The plane is then Deconstructed to show they match. So the origin output is 1, 2, 3. The X vector is in fact 1, 0, 0 and Y is 0, 1, 0. Z is, as expected, 0, 0, 1.

Alter Plane

This component is very useful in re-orienting one of the standard planes. For example you can flip the Z axis of the plane to point in the opposite direction. Here you see a -1 factor wired into a Z vector which is wired into the normal of the Alter Plane. This flips +Z so it aligns with world -Z (down).

Note too how this example divides a curve up to generate the various origin points for the plane. You can see a list is output from Divide Curve. That's wired into the origin of the World XY plane.

Cross Product

Given two vectors this will output a new vector which is perpendicular to both those wired in. In the example below unit X and unit Y vectors are wired in. The output is unit Z (0, 0, 1) which, of course, is perpendicular to X and Y. 

Data Matching and Data Trees in Grasshopper

An understanding of data matching and data trees is critical to successfully developing more complicated definitions in Grasshopper. This post will help you understand these concepts.
The Grasshopper examples (and corresponding Rhino file) shown below can be downloaded here. You can disable all the components in the definition, then Enable those in a single group to see its effect.

Data in Grasshopper

Data in Grasshopper can be single values, lists of values, or what are known as trees of data.

Single Value

A single value is obvious, for example the output of a number slider is single value. You can see this when you wire it into a panel:

You can also see this in the wire itself - it is shown as single solid line which indicates a single value.

Here's another example. The single value is fed into the radius of a Circle component. A single plane specifies the plane to draw the circle on. The result is one circle drawn.

List of Values

A list of values results when a component outputs several values. An example is the Series component which outputs, well, a series of numbers. The user specifies a start value, and an increment for one value to the next, and a total count of values. In the example below the series starts at 1, is incremented by 2, with a total number of values of 3.

The Panel shows the output values, 1, 3, 5. Also note the wire is shown as double lines indicating the data is a list rather than a single value. The Series is wired into a Circle component which uses the value as a Radius. The result is three circles of radius 1, 3, and 5.

There are some components commonly used with lists. List Item returns a single item in the list. List Length returns the number of items in the list. Usage of these is shown below:

Tree of Data

A tree of data is output when a hierarchy is involved in the data. It's called a tree because the data is organized into separate branches. A simple example is when you use the Rectangular component to create a grid of cells/points, each column in the grid is in an independent branch. In the rectangular grid below there are 4 columns and 6 rows. The tree has four branches (one for each column). In each branch is a list of 6 items. A circle is drawn at every point. 


Grasshopper provides tools to help you visualize data trees. First, note the wire coming out of the grid is drawn as a dashed line. That always means the data is in the form of a tree. There is a component called the Param Viewer which lets you visualize the structure of the tree.

The Param Viewer shows there are 4 branches, where each one has 6 elements (N=6). The Param Viewer has a right-click menu option to draw the tree graphically.

With that enabled you see a graphic representation of the tree. Note it only shows the 4 branches, not the "leaves" (the list of 6 items in each branch).

Another tool useful in visualizing a tree like this is the Point List component. When there is a tree or a list of points, Point List labels them in the Rhino viewport by using numeric text to show the position in the list of each point. Here it is wired in, with a slider to set the text size, shown in Grasshopper and the viewport.

It's very important to note the following; There are four branches, each with six points. The Point List shows quite clearly that each branch is independent of the others. The points in each branch are labelled 0 to 5. Then the numbering starts over again at 0 again. Why? Because each branch of the tree is independent of the others. The data is not shared between or across branches. Therefore the Point List shows them independent of one another.

This independence of the branches is usually very useful. It can also be controlled by using specialized components to manipulate the branch structure. Your skill in using these components has a big impact on your overall skill with Grasshopper in general.

There are some common components used with data trees. These are Flatten and Graft. Have a look at the Param Viewer examples below to see the structure of each tree after being processed by Flatten and Graft.

Flatten
This component converts the data from a tree into a list. It removes the hierarchy information entirely. The grid point labeling, after flattening, looks like this:

As you can see the hierarchy is gone and the points are numbered in order, 0-23.

Graft
This component takes every leaf in the tree and makes it its own branch. Since the branches are independent, the point list is all 0's. That's because as soon as it labels one point it starts a new branch and the labels its first point. There's always one per branch.

Flip Matrix
This component flips a "matrix-like" (think two dimensional grid or array) data tree by swapping the rows and columns. Note how the numbering is flipped so the columns climb in value (where previously the rows climbed in value):

Data Matching

This section discusses what data matching is and why it is important to understand.

Components in Grasshopper automatically handle wired-in single values, lists, as well as trees.

  • A component will process a single value once. 
  • A component will automatically loop or iterate over a list and process each element in the list. 
  • A component will automatically loop over a tree, dealing with each branch independently, and process each value or element in the list in the leaves of each branch. 
But what happens when a component is required to process both a list of values and a single value? Or a list and a tree? Whenever a situation like that arises, data matching is involved. This term refers to how the single value and the list of values are matched up and processed. Or how a list of values and trees of values are matched up and processed. Some simple examples will make this clear. You'll be introduce to the Grasshopper components which give you precise control over the processing.

Data Matching Lists of Points

The first few examples shows two lists of points. These points are fed into a Line component which takes two endpoint inputs and draws a line between them. One list is shorter (has less data) than the other.

A series component generates a list of values which become points with different Y coordinates. A second series generates another list of Y values, however these points are shifted one unit in X. These two lists are wired into the Line component which draws the line between them. This allows you to easily visualize the various types of matching between the two lists. Here's the simple definition:

Here's the result in the viewport - lines are drawn between points in the two lists:

As you can see, one list is shorter than the other. When Grasshopper does data matching to match up the values between the two lists, its default behavior is "longest list, repeat last". That means it uses the longest list for drawing the lines, thus there are 10 of them. It repeats the last item of the shorter list when it matches to the items in the longer list. This is the default behavior of Grasshopper.

There are two basic components which let you control data matching. Shortest List and Longest List. We'll look at Longest List first. The definition below is the same as the one above with the addition of a single Longest List component. As we saw above, longest list will repeat to the length of the longest list wired in. It has a right-click menu which let's you control how the repetition happens:

Longest List - Repeat First
You can see how the first item in the short list is repeated until there are enough items left to match up with the longer list.

Longest List - Repeat Last
This is the default case. You can see how the short list items are matched up with the longer list until they run out then the last item is repeated to match up with the remaining longest list.

Longest List - Interpolate
The items in the short list are uniformly distrubuted to the longer list. This results in four items being reused twice.

Longest List - Wrap
Here, after the shortest list items are used up they wrap back to beginning of that list and the matching happens from the beginning again.

Longest List - Flip
In this case, after the shortest list items are matched up, the longest list items starting matching back down, 7 to 5, 8 to 4, 9 to 3, and 10 to 2.

There's also a Shortest List component. In this case only the number of elements in the shortest list are matched up with those in the longer list. Right-click menu options let you choose between Trim End, Trim Start, and Interpolate. Here's the simple definition which demonstrates this:

Shortest List - Trim End
In this case the items at the end of the longest list are trimmed (not matched).

Shortest List - Trim Start
In this case, the items at the start of the longest list are trimmed (not matched).

Shortest List - Interpolate
In this case the items in the shortest list are distributed across the items in the longest list. As you can see this leaves four gaps in the matching but spans from the start to the end of the longest list.

Data Matching Shapes in a Loft

Here's an example that lofts three different shapes:

  • 0: Square
  • 1: Circle
  • 2: Ellipse

The various Longest List options are shown when repeating the 3 items 9 times


Longest List - Repeat First
The first shape, the square, is repeated 6 times, then the list is used. 


Longest List - Repeat Last
The three shapes are used, then the last shape is repeated 6 times. 


Longest List - Interpolate
Each shape is used repeatedly to spread out over the range. So three of the first, three of the second and three of the third. 


Longest List - Wrap
The three shapes are used, in sequence, over and over (square, circle, ellipse, square, circle...). 


Longest List - Flip
The three shapes are used in order, then in reverse order, then in order again (square, circle, ellipse, circle, square, circle, ellipse, circle, square). 


Data Matching between a Tree and List

The next example shows data matching between a tree and a list. The tree is generated by the Rectangular grid component. The list is generated by a Series component. These are wired into a Longest List component which is set to Warp. 

You can see the results below. As we've seen previously each branch is treated independently. The series of 4 radius values are wired into the Circle component. The radius values wrap, that is they turn back to the smallest value once the list is fully used. So they get bigger for the 4 values in the series, then start over small. This happens independently in each branch. 

Compare this to when the tree is flattened (converted to a list). Take Note: these type of conversions are very commonly used and so there are right-click menus on the sockets of nodes to flatten, graft, etc. without having to wire in a component each time. That's what's done below: 

Here's the result - the values continue wrapping across all the (former) branches. Once the first column is done the radius values continue at the bottom of the next column. 

What happens if we Graft the list - turning it into a tree - how would this affect the data matching? This is done below: 

Now the matching is occurring between four branches of the radius data and four branches of the grid point data. Each branch is matched up one for one, so the first branch gets a branch with the smallest value. The next branch with the next biggest value, and so on. 

Summary

By understanding how Grasshopper matches data, and knowing the components which give you control over that matching, you can more quickly and successfully develop your definitions. This topic has presented the basics of dealing with single values, lists and trees and managing the flow of data between components.

If you'd like to read a more technical account of data trees written by Grasshopper developer David Rutten please see The Why and How of Data Trees.



CNC CODE

5 axis cnc mill,5 axis cnc router,cad cnc,cc machine,cnc cutter machine,cnc cutting system,cnc definition,cnc equipment manufacturers,cnc fabrication,cnc lathe retrofit,cnc machine accessories,cnc machine automation,cnc machine business,cnc machine companies,cnc machine description,cnc machine maker,cnc machine news,cnc machine repair,cnc machine services,cnc machine shop,cnc machiner,cnc maching,cnc machining companies,cnc machining equipment,cnc machining parts

Labels

"7-Axis Robot" "Digital Fabrication" "Planar Polygons" "Rhino" "Rhinoscript" 2007. 2013 2014 2016 2d printing 2d to 3d 3-axis CNC 3-axis CNC Kit 30c3 3d capture 3d carving 3d cnc router 3d company 3d copy 3d display 3d drawing pen 3d model 3d piracy 3d print farms 3d print platform 3d print quality 3d printed 3d printed airoplane 3d printed airplane 3d printed buildings 3d printed car dashboard 3d printed car part 3d printed car parts 3d printed clothing 3d printed cyborg 3D Printed Figure Sculpture 3d printed food 3D Printed for in Ceramic 3d printed gun 3d printed machines 3d printed music instrument 3d printed music record 3d printed organs 3d printed parts 3D printed relief 3d printed rifle 3d printed robot 3d printed sensors 3d printed skateboard 3d printed toys 3d printed uav 3d printed vehicles 3d printed weapons 3d printer 3d printer accessory 3d printer crime 3d printer desk 3d printer eclosure 3d printer review 3d printer stand 3d printer table 3d printers comparison 3D printing 3d printing filament 3d printing in cement 3d printing materials 3d printing myths 3d printing on battery power 3d printing photographs 3D printing piracy 3D printing portraits 3d printing primer 3d printing systems 3d printing with carbon fiber 3d printing wood 3D printing ZBrush sculpts 3d printshow 3d puzzle 3d scanner 3d sensors 3d shaping cnc router 3d startup 3d systems 3d ui 3dea 3dMonstr 3doodler 3dPrinting 3dprintmi 3dprn 3dr 3dsimo 3ntr 4 Jaw Chuck 4-axis 4-axis CNC 4-axis cnc woodworking 4d printing 4th dimension 5 axis 5 axis cnc router china 5-axis 5-axis CNC 5-Axis CNC woodworking 5-axis router operating procedure 5d print d8 6 axis 7-axis robot 7512 abs abs juice acetal acetone acp cnc router acrylic acrylic board cut machine acrylic cut acrylic cutting activism adafruit Adafruit NeoPixel Strip adapto adobe advanced afinia africa Agilus Workcell Agilus Workcell Tutorial aio robotics air airbus aircraft airwolf3d alabaster aleph objects all-in-one aluhotendv4 aluminatus aluminum Amazon ampersand sign cutting AMRI amsterdam android animal antenna ao-101 app apple appropedia arburg archery Architectural Robotic Fabrication architecture architecutre hollow out. arduino Arduino Micro LED Arduino NeoPixels argentina armour arrow art artec artificial stone arxterra asia asiga astronomy atm australia austria Autodesk automation automotive b3 innovations baboi bacteria baddevices badprinter bag balance baluster process batteries beaglebone beams bebopr bed leveling bee Beer Caddies belgium Belle Kogan ben heck bendable bending bicycle big objects big printers bike biohacking bioprinter bitcoin blacksmith blade blade 1 blender blimp blind blizzident Block Delete blog blokify bluetooth board cut boeing bomb bone book Books boot Boring Cycle bottle bow bowden box bracets braille Bre Pettis bridging bronze brook drumm buccaneer build bukibot bukito bukobot burning man business busybotz buy china cnc router buy cnc router buy cnc router from china buy laser machine buy modillion carving machine buy router cnc bycicle parts cad calibration camera canada Canned Cycle canon car carbomorph carbon carbon fiber cardboard carmine cartesio cartouches carved architecture carving carving machine carving with gouges and rasps case cashier board cut casting Cathy Lewis cb printer ccc cell cellphone cellstruder central overhead elements. centrifuge cerajet ceramic ceramic tiles engraving cerberus CES ces 2012 CES 2013 ces 2014 ces 2015 cff chain maille chair chamber chart chefjet chemistry children china china cnc router china laser machine chipfuzer chocolate choose cnc router chopmeister chopper chris anderson Cincinnati circular platform clay clear figure sculpture clone closed loop cloud cnc CNC 4th axis CNC 5 Axis CNC Box CNC Coordintes CNC Corner Fix CNC cut acrylic figure sculpture CNC Cut Guitars cnc engraving machine. CNC Joints cnc mill CNC Rotary Axis cnc router cnc router aluminium cnc router art work cnc router copper cnc router cut acrylic cnc router factory cnc router foam cnc router importer CNC Router Kit cnc router manufacturer cnc router mdf cnc router modeling and prototyping cnc router mold cnc router packing CNC Router Parts Build CNC Router Parts Rotary Axis cnc router problem cnc router review cnc router type3 cnc router video cnc router work CNC routing file preparation CNC routing ZBrush CNC Tool Holders CNC Tools CNC walnut CNC Wood Joinery cnc wood router CNC Woodworking CNC Woodworking 5-axis Digital Fabrication Taubman College CNC Woodworking Sleigh Bed Digital Fabrication Tabuman College CNC-Woodworking co cody wilson coffee color changing filament colorfabb comic community company tour complex 3d print composite Composite Filament Fabrication concept concrete conductive ink consultancy Consumer Electronics Show contour crafting contouring Control control unit controller cool things to 3d print cooling copyright Corner Fix cosplay cost reduction cottle boards creaform creative commons Credit card fraud crime criminals croatia crowdfunding CT cube cubejet cubesat cubex cubify cubify invent cubify.com cups cura curaengine customized cut cut acrylic cutting cyberpunk Cycloidal Gyro Czech Republic d3d da vinci daily use dart gun data data matching tutorial data tree tutorial. dc motor decimation master deezmaker dell delta delta 3d printer delta forge deltaprintr demonstration denmark dental 3d printing desert design desktop 3d printing desktop cnc router desktop printer desktop production Developable Surfaces dglass 3d Digital Design digital fabrication Digital fabrication of figure sculpture Digital Fabrication Slip Casting digital figure sculpture Digital Portrait Sculpture Digital Sculpting Digital Sculpting Renders Digital Sculpting with Two Models Digital Woodworking dilbert disabled disney Display Conduit diy diy 3d metal printer diy 3d printing diy 3d printing companies diy science dlp dmls documentary double decker 3d printer Doubly Curved Surfaces dremel drill Drilling Cycle drivers DRM drone dual extruder dual extrusion duct tape duo e3d ecology economy edc education eff Egypt ejection electron beam electronics elon musk enclosure encryption energy generation engine Engraved Signs engraver engraving enrico dini environment envisiontec EOS epoxy EPS Foam EPS shaping ESA etching etsy euromold 2011 Euromold 2012 euromold 2013 euromold 2014 europe event eventorbot events evo exoskeleton experiment experimental 3d printing extended platform extruder eye glasses eyewear fabbot fablab fablab berlin fabtotum Face Grooving Cycle Facing Cycle fail fan fantasy figure Fanuc farm fashion Fasteners fdm Feed Rate felix festival fff fiberglass figulo. video Figure Sculpting in ZBrush figure sculpture in acrylic. filabot filaflex filament filament extruder filament winder filawinder Finishing Cycle finland fire firmware flexible flexible pla Flip cut flomio flower foam foam dart focus foldable food food safe foodini ford form 1 form 2 formlabs Formula foundry FRAC exhibition fractal frame framework France freed friction welding Front Drilling Cycle fuel3d fumes fun fundable furniture Furniture Design Future G Codes g-code G00 G01 G02 G02.1 G03.1 G07.1 G32 G33 G40 G41 G42 G70 G72 G73 G74 G75 G76 G77 G78 G79 G80 G83 G84 G85 G87 G88 G89 G90 G92 G94 gallium game gamechanger gaming Garage shop garage tool layout garden gartner ge gears geeks gemma geodesic geomagic germany gigabot github glass glass engraving cnc router glazing techniques glue gmax golemD google google glass gopro gpl granite Grasshopper Grasshopper attractor point Grasshopper data matching Grasshopper data trees Grasshopper Graph Mapper Grasshopper grids Grasshopper Image Sampler Grasshopper Light Painting Grasshopper Physics Simulation grasshopper planes tutorial Grasshopper tabs Grasshopper unroll tabs green guardian guerrilla gardening GUI guide Guitar Stand guitar stands gun magazines h-bot h480 Haas Vertical Mill hack hacking Hand carved rocking horse hand carving handheld handrail process haptic harvard Hass hbot hdpa health heat chamber heat gun heated 3d printing chamber heated build platform Helical Interpolation hexapod high strength HIPS history hollow out holograph Home Home CNC machine home manufacturing Home Shop CNC hot end hot glue Hot News hot to Hot-wire cutting hotend house household items how is china laser machine how is chinese cnc router how to HP humor huxley hybrid hype hyrel i2 i3 ice 3d printing idea lab ikea implant improv india indiegogo industrial industrial 3d printer infill infographic infrastructs injection molding ink inkjet 3d printer insects instructables instruction intel Intel Galileo intellectual property interior decoration interior decoration ceramic tiles interior design Interlocking Joint internet interview introduction to 3d printing Inventables ios ip ip rights ipad IR bed leveling irapid iron man Israel italy japan jet engine jewelry jinan laser jinan laser machine job jrx k8200 kai parthy kamermaker Kangaroo 2 Kangaroo 2 Catenary Kangaroo 2 Circle Pack Kangaroo 2 Planarize Kangaroo for Grasshopper Kangaroo Physics Kangaroo Tensile Forces kevlar key keyboard kickstarter kikai kinect kinetic sculpture kitchen cabinet process knife Korea kossel kossel air kraken Kuka PRC Kuka prc programming Kuka Robots KUKA|prc Kuka|prc sample l5 lamp large models large printer laser laser cut leather laser cutter laser cutting laser cutting foam laser cutting machine laser engraving machine laser machine laser machine sign laser machine video laser sintering lasercusing lasercut lasersaur latex lathe law lcd leap leapofrog leather led LED lights on figure sculpture leg lego lens lenticular printing letter cut letter cutting letter sign leveling leweb lewis LG liability library light bulb Light Painting Light Painting Stick limestone linear actuator Linear Bearings Linear Rails Linear Rails Upgrade link linux liquid Liquid Metal Jet Printing lisa lisa harouni lix lmd load bearing lock logo LOHAN london Longitudinal roughing cycle lost foam lost foam making lost foam mold making lost pla casting low cost low cost. LP lulzbot lumia lumifold lunavast lunchbox lyman lywood M Codes mach3 machine Machine Zero machinekit Machining machining wax madrid magazine magma magnetic filament magnets Mail (armour) maintenance make make magazine maker faire 2013 makeraser makerbot MakerBot Industries makerbotPLA MakerCon makerfaire makerfarm prusa makerslide makerware makible makibox making money with 3d printing maksim3d Malaysia mandel Manhattan manufacturer manufacturer video manufacturing map marble Mark Meier mark one mark34 market Marlin material materialise math plug-in mathematical object mathematics matsuura matterform Mazak mcor MDF Mebotics media medical applications of 3d printing medicine melamine mendel mendel90 mendelmax mendelmax 2 mesh related grasshopper plug-ins mesh related rhino plug-ins mesh repair for 3D printing meshes meshes in grasshopper meshes in rhino MeshUp metal 3d printing metal casting metal clay metal extruder metal filament metal hot end micro Microfactory microrax microscope microsoft MIG milestone military milkrap mill Milling mind interface mini cnc router miniFactory Mirror Image On / Off MIT mix MkMrA2 MkMrA2 shop mobile mobile 3d print control mobile factory moddler studios model quality modeling carving modification modillion carve modillion cnc router modillion engrave modillion engraving modillion machine modular mojo 3d printer mold molds molecule moon morgan mori motion motor motorola MRI mrrf MTU mug muli color multi color multi jet fusion multi materials multimod multiple guitar stands MULTIPLE REPETITIVE CYCLE Multiple Thread Cutting Cycle multitool museum music n nano nanobots nanoparticles NASA natural machines nature nerf gun nesting Netherlands new diy 3d printer new valence robotics new york newel post produce news newzealand cnc router nfc ninjaflex noisebridge nokia non cartesian Norway nozzle number cutting NV nyc nylon object Objet Objet Connex 500 octo extruder off topic office sign Offset Okuma Onsrud 5-axis router open sls open source open source 3d printer open source hardware openRail OpenSCAD optics optomec ordsolutions organic organic printing organovo orion ornament ornithopter os OS X otherfab othermachine othermill outdoor outdoor advertising p2p pandabot Panel Keys paper paper cut parametric parametric object by function parc Part Program partitioning partners past paste patent pbs pc pcb pcb milling Peck Drilling Cycle PEEK pellet pen people personal pet pet+ pets phantom desktop philips phoenix phone photo Photoformance photography photoshop pick and place pico piracy piratebay pirx PLA pla/pha plane components in grasshopper plant plasma cutter plastic mold plastic welding plasticine Plastics Plastics Overview play-doh plexy plotter plywood pocket poland polar polishing polyamide polycarbonate polyjet polypropylene polystyrene shaping polyurethane pongsat pop culture popfab porcelain poro-lay portabee portable 3d printer portable device portrait portrait sculpt portugal powder 3d printing power power supply precission cutter presentation preview price princeton print bed printhead Printrbot printrbot jr printxel problem problemsolving process products Profile turning Programmed Data Setting G10 project biped projet promotion prosthetic prosumer protoforge prototype prusa prusa i4 Publishing and Printing pump purse puzzle pva pvc pipes pwdr pypy python qr qu-bd quad extruder quadcopter quantum ord bot r360 Ra Ra radiant radio rail RAMBo RAMBo 1.2 ramps rapide raspberry pi re3d Recap recording Recreus recycling reddit relief sculpture repair repetier replacement part replacement parts replicator replicator2 reprap reprap wally reprappro repstrap resin retraction retro review RFID Rhino rhino math Rhino math plug-in Rhino meshes Rhino Nesting Grasshopper Sectioning Layout Rhino Python Rhino Python Scripting Rhino Python User Interface Rhino UI Rhino Unroll Rhino UnrollSrf Rhinoscript Rhombic Triacontahedron Fabrication; CNC Woodworking; 5-axis CNC richrap rings risk robo 3d robohand robot Robot Motion Study Robot Programming setup Robotic Digital Fabrication Robotic Light Paint Robotic Light Painting Robotic Motion Analysis robotic painting with light robots robox rocket rocking horse carved by hand ROFI rolls royce rostock rostock max rotary Rotating Model Stand Rotite rotomaak router rubber rubber band ruled surfaces russia safety sailplane Sainsmart sale samsung sand sand casting sander Sandvik Sanjay Mortimer satellite SAV scam scara school sciaky science screw sculpteo Sculpture Pedestals sea sectioning security sedgwick seed seemecnc selective laser sintering self assembly. sense sensor sensprout service servo setup KUKA|prc tutorial seuffer sf shandong laser Shapeoko shapeshop shapeways shapeways 3d printing sharing ship shoes shop Shop Built Side Table sieg siemens sign sign cut sign laser machine signage signature signing silicon silicone silk silver simpson Singapore single arm 3d printer singularity sintering Six-N-Sticks Skanect skimmer skull skylar tibbids sla slashdot slate slic3r slicer slip casting Slip Casting 3D Printed Objects slotted Slovenia sls smartphone smartrap Smoothieboard smoothing sneakey snowflake soapstone software soild concepts solar solder solid concepts solidator solidoodle solidoodle 2 solidoodle 4 solidus labs solution sony sound south africa space spaceX Spain spark speakers Spectrometer speed spider spin casting Spindle spoolhead sport spray 3d printing square carved rosettes Stack Lamination stair machine stair parts stair parts equipment stair parts processing stairparts machine Stamps School of Art & Design stanford star trek startups steampunk steel stepper stereolithography steve purdham stone stone carving store stratasys strength strong stuck students styrofoam block shaping styrofoam shaping subdivision mesh SubProgram success story sugar sugru suitcase sun Super Matter Tools support material surface surgery suspended deposition sweden swisspen Switzerland syringe table numbers cutting tablet tabletop tactile taiwan talk tangibot tantillus Tapping Cycle tattoo Taubman Colledge Taubman College Taubman college Agilus Workcell Taubman College FabLab taz 2 taz 3 taz 4 TED ted talks telescope temperature temperature measurement test testing textile the pirate bay theta thingiverse Thread threeform tiertime TIG tiger maple Tips Tips and Techniques titanium tool tool chain Tool Data Tool Nose Radius Compensation tools torrent Torus Knot Torus Knot Table touch touch x toy toyota TPE Transverse Cut-Off Cycle G75 trident trinitylabs trinityone trinket tu wien Turning turpentine tutorial tv Twist Table two color 3d printing type a machines Types of Plastic uav uformia UK ultem 2300 UltiController ultimaker ultimaker 2 ultimaker 3 ultrasonic unboxing university university of sauthampton unrolling up mini up plus 2 upgrade urethane USA usb user interface using a router to produce a ZBrush model using china cnc router uv 3d printing v-slot vader vapor velleman veterinary video vietnam viki lcd virtual reality virus visualization volumental voronator voronoi meshes voxeljet VR Vulture 2 vw Wallace Detroit Guitars wally Walnut Table wanhao warping wasp wasp 3d printer waste watch water water cooling wax way finding sign WCC CNC WCC NCT weapon wearable weaverbird web web app web interface wedding sign cutting wedding sign decoration cutting weistek Welding West Huron Sculptors what cnc router can do whiteant wideboy wifi wikiwep wind generator windows windows 8.1 Windows Keyboard Shortcuts windows mobile phone wire wire bender wired wireless 3d printing wobbleworks wood wood carving wood engraving wood frame 3d printer Wood Information Wood Joint Fabrication wood portrait Wood Species woodworking workflow working with planes in kuka|prc workspace x winder xeed xmass xt xyzprinting yale yeggi youth z axis zach hoeken ZBrush Basics ZBrush Decimation Master ZBrush Figure Sculpture ZBrush for Rhino users ZBrush Import and Export to and from Rhino ZBrush Portrait Sculpting ZBrush sculpting tutorial ZBrush Shaders Test ZBrush ZRemesher zeus zmorph zortrax китайский фрезерный станок с чпу фрезерный станок с чпу