Easily Create Graphical User Interfaces in Rhino Python

,cnc machinist,cnc manufacturing,cnc mechanic,cnc mill,cnc milling center,cnc milling companies,cnc milling tools,cnc parts,cnc plasma cutter,cnc plasma cutting,cnc plasma table,cnc production,cnc router table,cnc screw machine,cnc service,cnc swiss,cnc turning,cnc turning center,cnc turning centers,cnc vertical lathe,horizontal cnc,how to cnc machine,machining cnc,manufacturing cnc machines,okuma cnc,plasma cnc machine,production cnc machining,troubleshooting cnc machines,used cnc machine tools,used cnc milling machines,vertical cnc lathe,what can a cnc machine make

I have been doing some work for the Taubman College of Architecture Fabrication Lab. I've been working on some Graphical User Interface helper classes for use in Rhino Python. The idea behind these classes is they allow you to create custom, floating dialog user interfaces without having to use a UI creation tool like SharpDevelop.

I thought these would be generally useful so I made them free to download and use. Use the link below to download a ZIP file of everything you'll need.

Download the Code

Getting Started

Simply unzip the file into a directory of your choice. Run the Rhino Python Editor, load one of the example .py files (for instance Circle UI Example.py) and choose "Run Script (no debugging)" from the python editor.

Here are a few examples of UIs you can easily make. These examples are all included in the ZIP file.

Circle UI Example.py

This is the most basic example. The UI is a single numeric control which allows the user to enter the radius for a circle. After the dialog is closed the circle is drawn in the Rhino viewport. This demonstrates the basic setup pattern and how a single variable can be changed in the UI and then used by your script.

Relative Prime UI Example.py

This demonstrates using two numeric input controls and a read-only label field which is updated based on the values in the two spinners. There are also OK, Cancel and Help buttons. This shows how the controls can interact with one another.

All Controls UI Example.py

This sample shows every control that's available and demonstrates some basic techniques to process the controls as the user interacts with them. It shows how to create and use labels, URL link labels, text boxes, read-only text fields, check boxes, buttons, combo boxes, separators, numeric up/dn controls, trackbars, and picture boxes.


Torus Knot UI Example.py

This example goes beyond being educational and is actually somewhat useful! This script creates torus knot curves and polysurfaces and provides an interactive preview in the viewport as the user changes the control values.
The basic idea for this example came from Steve Baer's excellent Starmaker sample. I used it as the pattern for the interactive redraw. However I'm not using the SharpDevelop IDE as Starmaker does.

Basic Steps - An Overview

To make a UI for your script there are just a few things you need to do:
  1. Import the necessary modules into your code. 
  2. Define the variables the UI controls will change.
  3. Write the code to create the UI form. 
  4. Write the code to process the UI controls.
  5. Display the form to the user. 
  6. Work with the updated variable values the UI has altered. 
The idea is that every one of those steps should be easy! Let's start with the simplest examply and see specifically how to accomplish each step. Load Circle UI Example.py into the Python Editor.

    The Circle UI Example


    This example is trivially simple. Here's the complete script:

    Circle Example Details


    1. Import the necessary modules into your code. 
    First you need to import the Meier_UI_Utility module. This file contains the code to create the form, methods to add controls, and a method to arrange them on the form. You can see the import on line 3, in the code above.


    2. Define the variables the UI controls will change.
    The next thing to do is define a class which creates and manages the UI variables. That's class CircleUI above (line 16). Everything happens in the __init__ method. Line 19 defines a variable to hold the radius value the UI will change.


    3. Write the code to create the UI form. 
    Line 21 creates the UIForm object using the Meier_UI_Utility module. You can think of the form as the dialog window (the frame, the title bar, and the close button). This line also creates a panel and docks that into the form. You can think of the panel as an empty surface that will hold the controls. When the form is displayed the panel's controls are what appears inside the window.

    From the ui variable you access the form using this code:
    ui.form
    You access the panel on the form using this code:
    ui.form.panel

    The next step in building the UI is to add controls to the form's panel. There are methods provided such as addLabel, addTextBox, addPictureBox, etc. It is the parameters which you pass to these methods which describe the control. In the Circle example only two controls are needed - a label control and a numeric up/dn control. The label just shows the name "Radius:". The numeric up/dn allows the user to type in a value and use the up and down arrows to increment or decrement the value.

    Here are the two calls to add them:

    It is worth carefully looking at each parameter to understand them. First the label - it has the following parameters as defined in the addLabel method of the Meier_UI_Utility.py file.

    Note: You should use Meier_UI_Utility.py as your reference for the parameters. Each is fully documented in the file itself as shown below.
    Several of these parameters apply to every control. For example name and breakFlowAfter. Others are unique to each control type.

    Every control has a name associated with it. You can use the name so your code can "find" the control later. We'll see examples of this in a more complex example. If you don't need to find the control you can simply pass "" for the name. The Circle example doesn't need to find it.

    The text parameter is simply the label text - what shows up in the UI. In our case that's passed as "Radius:".
    The label text can be any color you like. If you pass None for the color parameter you'll get black text. Otherwise pass an (R,G,B) list like (0, 255, 0) to get a custom color.

    The breakFlowAfter parameter controls the layout. This one is important to understand.

    Controls are laid out on the form from left to right, top to bottom.

    You can think of them as "flowing" onto the form.

    If a control does not "break the flow after itself" then the next control will appear directly to its right.

    For example, the numeric up/dn control appears directly to the right of the label control. To get that we pass False as the label's breakFlowAfter parameter. Here is our call to addLine and the result:

    If instead we passed True to breakFlowAfter the UI would appear like this:
    The layout "flow" is broken and the next control begins again on a new line. This is the essence of how you manage the layout on the form. The entire UI for the Torus Knot example was done that way.

    Next let's see the code to add the numeric up/dn control. Here's the definition from the Meier_UI_Utility.py file for the addNumericUpDown method - the comments describe the parameters:

    The Circle example call to this method looks like this:

    The name is passed as "". The next to arguments define the lower and upper limits for allowable values. So this control will allow values between 1 and 50. The next argument is the increment to use when the up and down arrows are clicked. Here the increment is set to 1. The next argument is the number of decimal places to display. This is set to 2. If you want integers to appear you'd pass 0. The next argument is the default value to use - that is what value appears in the control initially. Here we pass the self.radius variable. The next argument is the width - the horizontal size for the control in pixels. Next is breakFlowAfter and True is passed. If there were any additional control they would appear on a new line. In this example it really doesn't matter since there are no more controls.

    4. Write the code to process the UI controls. 
    The last parameter is an important one. It is called a delegate. A delegate is a method that you write with a specific signature (set of parameters). This method will be called as the user operates the control.

    Some control don't have a delegate - because they need no processing. For example the label. Other controls, like the numeric up/dn do.

    In this example the delegate is self.Radius_OnValueChange. As the name suggests this is what's called when the radius value changes. Here is the code we provide as that delegate:

    The parameters to the method form the standard signature - (self, sender, e). The one we are most concerned with is sender. This is the "sending" control itself, e.g. the radius numeric up/dn control. We use the Value property of that control to get the current value and set our radius variable equal to it.
    In this way, as the user operates the control our method gets called and we can store the variable or do any other work we like based on the change. This is a very simple example so the only thing we do is store the value. In more complex user interfaces you'll often do things like enable or disable other controls, or ask the viewports to redraw to reflect the changed value. The other examples - Relatively Prime, All Controls, and Torus Knot all demonstrates this.

    The next step is to get the controls onto the form. What's actually happened during these addXYZ... methods is the controls are just accumulated. In order to place them on the form you need to call a method of the form named layoutControls().

    That's all we need to create the UI and handle processing the controls.

    5. Display the form to the user. 
    What's next is displaying it to the user and then processing the results. In this Circle example that's very easy. Here's the code:

    First we create the CircleUI object which we defined and store it in a variable named ui. Then we present the UI to the user by calling the Rhino method ShowSemiModal(). We pass in the form from our UI object (ui.form).
    That method runs and puts up the dialog. The user can change the controls as well as do some simple work in Rhino itself. For example they can change layers, and create objects. However many operations are restricted while the dialog is up - for example they can't change the selection.

    6. Work with the updated variable values the UI has altered.
    When the user exits the dialog by pressing the [X] button in the title bar control returns to the script. In this example we simply add the circle to the drawing.

    rs.AddCircle(rs.WorldXYPlane(), ui.radius)

    Note that we pass the value from the ui object - ui.radius.

    That's it. Those basic steps are all that's required to make a GUI and use the results. One you get used to this pattern it's easy to copy/paste code to create more complex UIs.

    Other Examples

    In this next section we'll look at a few more code snippets from some of the other examples.
    The Relative Prime UI Example has two numeric input controls and a read-only label field which is updated based on the values in the two spinners. There are also OK, Cancel and Help buttons.

    This example is a little larger and demonstrates compartmentalizing the code a bit more.

    This example does some demo processing of the dialog return value. It prints "OK" or "Cancel" depending on how the user closes the dialog. Therefore an extra import module is needed. You can see that DialogResult is imported at the top of the code.
    Instead of a single value to update as in the Circle example, this code has two: a and b. For the sake of demonstration this is broken out into its own small class, UIData. This objects holds the two value the UI will change.

    It is constructed and then passed in the RelativelyPrimeUI object. As we'll see below that's the one that actually creates the form, adds the controls, and lays them out. This is very similar to the Circle example except the data to manipulate comes from another object. Notice how Main() create the data object then passes it to the RelativleyPrimeUI class which stores it.
    The form is created as before. The controls are added as before, however they are broken out into their own method for clarity.

    Let's see how this example updates the read-only label when the spinners change. As before there is a delegate passed to the AddNumericUpDown method to process the changes. Inside this delegate is where the processing happens.

    Note that we have delegates for the A, B and the Help buttons. We also have a method which updates the UI to report is the current numbers are indeed relatively prime.

    The A_OnValueChange() and B_OnValueChange() methods each store the value and then call an UpdateUI() method. This "finds" the read-only control and sets the string appropriately. You can see in the code above it searches using the name of the control. So the read-only name field is assigned the name "readOnlyResult". UpdateUI() uses this name to find it with the code shown above. Note the try/except mechanism - this is needed to prevent problems as the form is constructed. When the A and B spinners are added to the form their ValueChange method can be called as the initial value is set. That happens before the read-only field control is added to the form. When that's the case Find method will not succeed - the control isn't there yet and would crash. To prevent that we use try/except. If the try block fails we simply do nothing.

    The delegate for the Help button is shown. This is called whenever the button is pressed. You can see it simply brings up a MessageBox.

    One other thing to note here. Buttons which have text parameters "OK" or "Cancel" get special treatment. It is assumed these are meant to close the dialog and return the appropriate return value. So - that's how they are set up to work. A Cancel button also allows the Esc key to close the dialog.

    Further Examples

    Have a look at All Controls UI Example.py. It shows the correct format for adding every UI control that's supported. The delegates are all used and simple processing code is provided.

    The Torus Knot UI Example.py provides a larger sample which supports interactive redraw as the user changes the controls.

    Final Thoughts

    I sincerely hope you enjoy using these tools. However, this code is provided "as-is". If you leave comments I'll try to address them as I have time.

    Known Issues

    The following issues are known bugs or limitations:
    • These UI controls are based on Winforms from the Microsoft Windows operating system. Therefore these UIs will not work on Mac versions of Rhino. 
    • The PictureBox control has a vertical spacing issue. The layout code for the FlowLayoutPanel which makes them computes the required space incorrectly. The work around for this is to use a blank label before the PictureBox. Make sure to pass False to the breakFlowAfter parameter. Like this:
                         addLabel("", "", None, False)
                         addPictureBox("picbox1", "./SamplePicture.jpg", True)


    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,cnc machinist,cnc manufacturing,cnc mechanic,cnc mill,cnc milling center,cnc milling companies,cnc milling tools,cnc parts,cnc plasma cutter,
    4:22 PM

    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" #DIY #Woodworking 2007. 2013 2014 2016 2d printing 2d to 3d 3 axes 3 axis 3 Axis Milling Machine 3-axis CNC 3-axis CNC Kit 30c3 3D 3d capture 3d carving 3d cnc router 3d company 3d copy 3D design 3d display 3d drawing pen 3D Machining 3d model 3D modeling 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 machining 5-axis router operating procedure 5d print d8 5G 6 axis 6BigLosses 7-axis robot 7512 abs abs juice Accelerometers Accuracy acetal acetone acp cnc router acrylic acrylic board cut machine acrylic cut acrylic cutting activism adafruit Adafruit NeoPixel Strip adaptive cutting Adaptive Milling adapto Additive manufacturing adobe advanced advanced CNC techniques advanced manufacturing advanced sensors Aerospace aerospace components aerospace manufacturing afinia africa Agilus Workcell Agilus Workcell Tutorial AI AI CNC AI in manufacturing AI manufacturing AI-powered CNC aio robotics air airbus aircraft airwolf3d alabaster aleph objects alignment tools all-in-one AlTiN coating aluhotendv4 aluminatus aluminum aluminum alloys Aluminum Machining Amazon ampersand sign cutting AMRI amsterdam android animal ANSI standards antenna ao-101 app apple appropedia AR in machining AR simulation AR Technology arburg archery Architectural Robotic Fabrication architecture architecutre hollow out. arduino Arduino Micro LED Arduino NeoPixels Arduino system argentina armour arrow art art projects artec artificial stone arxterra asia asiga astronomy atm Augmented Reality australia austria Autodesk Automated Data Capture Automated Manufacturing automated production automated wood cutting automation Automation Engineering Automation Systems Automation Technology automotive Automotive factories automotive manufacturing avoid CNC errors axis alignment axis misalignment Axis system b3 innovations baboi bacteria baddevices badprinter bag balance baluster process Basic Commands batteries beaglebone beams bebopr bed leveling bee Beer Caddies beginner checklist beginner CNC guide beginner engineers beginner projects beginners belgium Belle Kogan ben heck bendable bending bicycle Big Data big objects big printers bike biocompatible materials biocompatible polymers Biodegradable Lubricants biohacking bioprinter bitcoin blacksmith blade blade 1 blender blimp blind blizzident Block Delete Blockchain blog Blogs blokify bluetooth board cut boeing bomb bone book book recommendation Books boot Boring Cycle bottle bow bowden box bracets braille Bre Pettis bridging bronze brook drumm buccaneer build Build a CNC Machine Building a Small CNC Router BuildingCncMachine bukibot bukito bukobot burning man business Business Equipment 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 CAD CAM CAD CAM optimization CAD design CAD/CAM CAD/CAM integration CAD/CAM software CADCAM calibration CAM CAM Software CAM Toolpaths camera can be done in various forms canada Canned Cycle canon car Car Manufacturing Technology Car Production carbide carbomorph carbon carbon fiber cardboard carmine cartesio cartouches carved architecture carving carving machine carving with gouges and rasps case case studies cashier board cut casting Cathy Lewis cb printer ccc cell cellphone cellstruder central overhead elements. CentralizedManagement centrifuge cerajet ceramic ceramic tiles engraving ceramics cerberus CES ces 2012 CES 2013 ces 2014 ces 2015 cff chain maille chair chamber chamfering chart Chassis chassis parts chefjet chemistry children china china cnc router china laser machine chip management chip removal chipfuzer chocolate choose cnc router chopmeister chopper chris anderson Cincinnati circular platform CircularInterpolation Clamps clay clear figure sculpture clone closed loop cloud cloud computing cloud solutions cloud storage Cloud-based CNC cnc CNC 4th axis CNC 5 Axis CNC advantages CNC Alignment CNC Analytics CNC applications CNC automation CNC axes CNC basics CNC beginner CNC beginner guide CNC beginners CNC Box CNC brands CNC business guide CNC calibration CNC Checklist CNC commands CNC community CNC comparison CNC components CNC Composites CNC control CNC control system CNC control systems CNC controller CNC coolant CNC Coordintes CNC Corner Fix CNC cost calculation CNC cut acrylic figure sculpture CNC Cut Guitars CNC cutting tools CNC cycle time CNC Data Capture CNC data management CNC data security CNC design CNC drilling CNC EDM CNC Education CNC efficiency CNC electrical CNC Electrical Discharge Machine CNC enclosures CNC Engineer CNC engineering CNC Engraving Machine cnc engraving machine. CNC Equipment Care CNC error solutions CNC Errors CNC fixtures CNC forum CNC foundation CNC grinding CNC guide CNC History CNC ideas CNC implementation CNC Information System CNC innovation CNC innovations CNC inspection CNC inspiration CNC installation CNC Integration CNC Joints CNC Knowledge CNC laser CNC laser machines CNC lathe CNC lathes CNC Learning CNC Learning Lab CNC Legacy cnc machine CNC machine 3D printing tools CNC machine building CNC machine errors CNC Machine Information System CNC Machine Management CNC Machine Monitoring CNC Machine Safety CNC Machine Setup CNC machine table CNC machines CNC machining CNC Machining Aluminum CNC machining materials CNC machining skills CNC Machining Steel CNC machining tips CNC machinist cnc machint CNC Macro CNC maintenance CNC Maintenance Guide CNC manufacturing CNC Market CNC material selection CNC Materials CNC metal cutting machine CNC metals cnc mill CNC milling CNC milling machine CNC milling machine construction CNC mistakes CNC modernization CNC Monitoring CNC Networking CNC Operation CNC operations CNC operator CNC Operator Skill CNC Opportunities CNC optimization CNC plasma CNC plasma cutters CNC plastics CNC post-processor CNC pricing CNC printing tools CNC probing system CNC problems CNC Process CNC processes CNC Production Line CNC Programmer CNC Programming CNC programming tips CNC programming tutorials CNC Projects CNC prototyping CNC quality control CNC repair guide CNC retrofit CNC retrofits CNC Robots CNC Rotary Axis cnc router cnc router aluminium cnc router art work CNC router construction 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 Safety CNC scripts CNC selection CNC sensors CNC setup CNC setup requirements CNC simulation CNC Software CNC software update CNC solutions CNC Spindle CNC success stories CNC system CNC systems CNC Tapping CNC techniques CNC technology CNC Tips CNC Tool Holders CNC Tool Library CNC Tool Path Optimization CNC Tools CNC Training CNC Trends CNC troubleshooting CNC turning CNC tutorial CNC types CNC visualization 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 workflow CNC Workplace Safety CNC workshop CNC-Woodworking cnclathe cncmachine CNCMonitoringSystem co cody wilson coffee Collision Detection color changing filament colorfabb comic community Community Projects company tour complex 3d print Component Production composite Composite Filament Fabrication composite machining computer numerical control Computer Numerical Control System Computer-Aided Design Computer-Aided Manufacturing concept concrete conductive ink consultancy Consumer Electronics Show contour crafting Contour Milling contouring Control control unit controller conventional machining cool things to 3d print Coolant Control Coolant Cutting Coolant system Coolant-Free Machining cooling coordinate measuring machines coordinates copyright Corner Fix cosplay cost reduction cost savings cottle boards creaform Create a 3D model illustration showing a CNC machine performing 3+2 axis machining. The machine should have X Create a 3D printed CNC tool creative CNC ideas creative commons creative tools Credit card fraud crime criminals croatia crowdfunding CT cube cubejet cubesat cubex cubify cubify invent cubify.com cups cura curaengine custom car parts custom design Custom Fabrication Custom fixtures custom parts production custom PCB customized cut cut acrylic cutting cutting depth Cutting Fluids cutting parameters cutting speed Cutting Tool Cutting tools cyberpunk Cybersecurity cycle time reduction Cycloidal Gyro Czech Republic d3d da vinci daily use dart gun data Data analytics Data Collection data management data matching tutorial Data Protection data security data tree tutorial. dc motor deburring decimation master deezmaker dell delta delta 3d printer delta forge deltaprintr demonstration denmark dental 3d printing dental devices desert design desktop 3d printing desktop cnc router desktop printer desktop production desktopcnc Developable Surfaces dglass 3d dial indicators die casting Digital Design digital fabrication Digital fabrication of figure sculpture Digital Fabrication Slip Casting Digital Factory digital figure sculpture Digital Manufacturing Digital Portrait Sculpture Digital Sculpting Digital Sculpting Renders Digital Sculpting with Two Models Digital Tool Management Digital Transformation Digital Twin Digital Twins Digital Woodworking Digitalization dilbert dimensional accuracy dimensional measurement dimensional tolerance disabled disney Display Conduit DistributedNumericalControl diy diy 3d metal printer diy 3d printing diy 3d printing companies DIY CNC DIY CNC milling machine DIY CNC milling machine construction DIY Machine diy science DiyCncMachine dlp dmls DNC DNC integration DNC systems documentary double decker 3d printer Doubly Curved Surfaces dremel drill drill bits Drilling Cycle Drive system drivers DRM drone Dry Cutting dual extruder dual extrusion duct tape duo E-learning e3d Eco-Friendly ecology economy edc Edge Computing edge finishing EDM education eff Egypt ejection Electric Motorcycles Electrical Discharge Machining electron beam electronic components electronics electronics industry electronics manufacturing electronics production elon musk enclosure encryption end mills Energy Components Energy Efficiency Energy Efficient Production energy generation energy-efficient CNC engine engine components Engineering engineering basics engineering design engineering education Engineering Innovation Engineering Materials Engineering Technology Engineering Tips Engineering Tools Engineering trends Engraved Signs engraver engraving enrico dini EnterpriseResourcePlanning environment envisiontec EOS epoxy EPS Foam EPS shaping ERP ERP integration Error Correction Error Detection ESA etching etsy euromold 2011 Euromold 2012 euromold 2013 euromold 2014 europe EV Manufacturing event eventorbot events evo exoskeleton experiment experimental 3d printing extended platform extruder eye glasses eyewear fabbot fablab fablab berlin fabtotum Face Grooving Cycle facing Facing Cycle Factory Automation Factory Network Factory Revolution Factory Technology Factory Tools fail fan fantasy figure Fanuc FANUC CNC farm fashion Fasteners faster machining fdm Feed and Speed Feed Rate feed rate calculation felix festival fff fiberglass figulo. video Figure Sculpting in ZBrush figure sculpture in acrylic. filabot filaflex filament filament extruder filament winder filawinder fine finish Finished part Finishing Cycle finland fire firmware Fixturing flexible flexible pla Flip cut flomio flood coolant 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 furniture making Fusion 360 Future Future Careers future industry Future of the Factory Future Trends G Code G Codes g-code G-code automation G-code commands G-code training G-code tutorial 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 GCode GDT ge gears geeks gemma geodesic geomagic geometric tolerance germany gigabot github glass glass engraving cnc router glazing techniques global manufacturing 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 GRBL green Green Manufacturing Green Technology guardian guerrilla gardening GUI guide Guitar Stand guitar stands gun magazines h-bot h480 Haas Haas CNC HAAS CNC 5-Axis HAAS CNC machine Haas Vertical Mill hack hacking Hand carved rocking horse hand carving handheld handrail process Hands-on CNC haptic harvard Hass hbot hdpa health healthcare technology heat chamber heat gun heated 3d printing chamber heated build platform Helical Interpolation Helix Angle hexapod high precision high strength high-efficiency production High-precision machining high-precision parts High-Precision Tools high-speed machining high-speed steel High-tech Industry HIPS history hobby woodworking hobbycnc hollow out holograph Home Home CNC machine Home CNC Workshop home manufacturing Home Shop CNC hot end hot glue Hot News hot to Hot-wire cutting hotend house household items how CNC machines work How does a CNC machine work how is china laser machine how is chinese cnc router How many types of CNC machines are there how to HowToMakeCncMachine HP HSM technology humor huxley hybrid Hydroelectric Systems hype hyrel i2 i3 ice 3d printing idea lab IIoT ikea implant implants improv india indiegogo industrial industrial 3d printer Industrial AI Industrial Applications industrial automation Industrial Control System industrial engineering industrial equipment Industrial innovation Industrial IoT Industrial IT industrial machinery industrial machines industrial machining industrial manufacturing Industrial Noise industrial robots Industrial Safety industrial technology industrial tools Industry 4.0 Industry 4.0 Technology Industry Certifications infill infographic infrastructs injection mold injection molding ink inkjet 3d printer insects inspection techniques instructables instruction Integrating CNC intel Intel Galileo intellectual property interior decoration interior decoration ceramic tiles interior design Interlocking Joint internet interview introduction to 3d printing Inventables ios IoT IoT CNC IoT in Manufacturing IoT Machines IoT Sensors ip ip rights ipad IR bed leveling irapid iron man ISO standards Israel IT integration IT Skills IT training italy japan jet engine jewelry jewelry making 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 alignment laser cut leather laser cutter laser cutting laser cutting foam laser cutting machine Laser Cutting Technology laser engraving machine laser machine laser machine sign laser machine video laser sintering lasercusing lasercut lasersaur latex lathe law lcd lean manufacturing Lean Production leap leapofrog learn CNC online learning leather led LED lights on figure sculpture leg legacy CNC machines 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 motion Linear Rails Linear Rails Upgrade LinearInterpolation 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. Low-Emission Machines LP lulzbot lumia lumifold lunavast lunchbox LUNYEE 3018 PRO ULTRA 500W lyman lywood M Codes M-Code M03 M08 mach3 machine machine accuracy Machine Architecture Machine assembly machine automation Machine bed Machine Commands machine control machine efficiency Machine Failure Machine Learning Machine Learning in CNC machine longevity Machine Maintenance Machine Operators Machine Optimization Machine Parts Machine performance Machine Precision Machine Productivity Machine setup guide Machine technology Machine Tool Machine Tools machine upgrade machine vibration Machine Zero machinekit machinery CNC Machining Machining Accuracy machining applications machining comparison Machining Efficiency machining for beginners Machining optimization machining precision Machining Process machining safety machining techniques machining technology machining tips machining tools Machining Visualization machining wax machining workflow Machinist Machinist Tips macro programming madrid magazine magma Magnetic chuck magnetic filament magnets Mail (armour) maintenance make make magazine maker faire 2013 makeraser makerbot MakerBot Industries makerbotPLA MakerCon makerfaire makerfarm prusa Makers makerslide makerware makible makibox Making a CNC Router Making CNC Machine making money with 3d printing Making of a large component (cnc milling) MakingCncMachine maksim3d Malaysia mandel Manhattan Manual Data Input Manual Limitations Manual Machining manufacturer manufacturer video manufacturing Manufacturing 4.0 Manufacturing Analytics manufacturing automation manufacturing cost estimation Manufacturing Cost Reduction Manufacturing Education manufacturing efficiency manufacturing equipment manufacturing guide manufacturing innovation manufacturing optimization Manufacturing Safety Manufacturing Skills Manufacturing System Manufacturing Technology Manufacturing Tools manufacturing trends manufacturing upgrades manufacturing workflow ManufacturingExecutionSystem map marble Mark Meier mark one mark34 market Marlin Mastercam material Material Comparison Material Optimization materialise math plug-in mathematical object mathematics matsuura matterform Mazak MCode mcor MDF MDI Mebotics mechanical engineering media medical applications of 3d printing medical device medical device manufacturing Medical Devices medical manufacturing medical technology medicine melamine mendel mendel90 mendelmax mendelmax 2 MES 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 chips metal clay metal cutting metal extruder metal fabrication metal filament metal hot end metal parts Metal Prototyping metalwork Metalworking micro Microfactory micron-level accuracy microrax microscope microsoft MIG milestone military milkrap mill Milling Milling Cutter Milling machine mind interface Mini Mini CNC machine mini cnc router minicnc miniFactory Mirror Image On / Off mist coolant MIT Mitsubishi mix MkII MkMrA2 MkMrA2 shop mobile mobile 3d print control mobile factory moddler studios model quality modeling carving modern CNC modern CNC solutions modern manufacturing modification modillion carve modillion cnc router modillion engrave modillion engraving modillion machine modular Modular fixtures mojo 3d printer mold mold and die Mold making molds molecule moon morgan mori motion motion control motor motor control motorola MRI mrrf MTU mug muli color multi color multi jet fusion multi materials multi-axis CNC multimod multiple guitar stands MULTIPLE REPETITIVE CYCLE Multiple Thread Cutting Cycle multitool museum music n nano nanobots nanoparticles NASA natural machines nature NCProgramManagement NEMA23 nerf gun nesting Netherlands new diy 3d printer new valence robotics new york newel post produce news newzealand cnc router nfc NIMS Certification ninjaflex Noise Reduction noisebridge nokia non cartesian Norway nozzle number cutting NV nyc nylon object Objet Objet Connex 500 octo extruder OEE OEECalculation off topic office sign Offset Okuma Old Machinery Online CNC learning online learning Onsrud 5-axis router open sls open source open source 3d printer Open Source CNC open source hardware open source software Open-source CNC Open-source Hardware openRail OpenSCAD optics Optimization optomec ordsolutions organic organic printing organovo orion ornament ornithopter orthopedic implants os OS X OT Security otherfab othermachine othermill outdoor outdoor advertising Overall Equipment Effectiveness OverallEquipmentEffectiveness Overcoming Manual Limitations overheating motors p2p pandabot Panel Keys paper paper cut parametric parametric object by function parc part deformation Part Program partitioning partners past paste patent pbs pc pcb pcb milling PCB prototyping Peck Drilling Cycle PEEK pellet pen people Performance Measurement 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 plasma cutting plastic mold Plastic Prototyping plastic welding plasticine Plastics Plastics Overview play-doh plexy plotter plywood pocket Pocket Milling Pocketing 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 position sensors post-processor powder 3d printing power power consumption power supply precision precision crafting precision cutting precision engineering precision level Precision Machinery precision machining precision manufacturing precision milling Precision Tools precission cutter Predictive Maintenance presentation preventive maintenance preview price princeton print bed printhead Printrbot printrbot jr printxel problem problemsolving process product development Production Efficiency production flexibility production innovation Production Management production optimization Production Workflow productivity products Profile turning program transfer Programmed Data Setting G10 programming Programming Tips progressive stamping dies project biped projet promotion prosthetic prosumer protoforge prototype Prototype Manufacturing prototype production prototyping prusa prusa i4 Publishing and Printing pump purse puzzle pva pvc pipes pwdr pypy python qr qu-bd quad extruder quadcopter quality control quantum ord bot r360 Ra Ra radiant radio rail Rake Angle RAMBo RAMBo 1.2 ramps rapid motion rapid prototype Rapid Prototyping rapide raspberry pi re3d Real-time Monitoring RealTimeData Recap recording Recreus recycling reddit Relief Angle relief sculpture remote access Renewable Energy repair Repeatability repetier replacement part replacement parts replicator replicator2 reprap reprap wally reprappro repstrap resin retraction retro retrofit benefits retrofit technology 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 Arms Robotic Digital Fabrication Robotic Light Paint Robotic Light Painting Robotic Motion Analysis robotic painting with light robotics Robotics Automation robots robox rocket rocking horse carved by hand ROFI rolls royce rostock rostock max rotary Rotating Model Stand Rotite rotomaak rough finish roughness measurement router RPM rubber rubber band ruled surfaces russia safety safety features Safety Guidelines sailplane Sainsmart sale samsung sand sand casting sander Sandvik Sanjay Mortimer satellite SAV SCADA scalable production scam scara school sciaky science screw scripting tools sculpteo Sculpture Pedestals sea sectioning security sedgwick seed seemecnc selective laser sintering self assembly. self-learning CNC sense sensor SensorInstallation sensprout Server service servo servo motor servo motors setup KUKA|prc tutorial seuffer sf shandong laser Shapeoko shapeshop shapeways shapeways 3d printing sharing ship shoes shop Shop Built Side Table sieg siemens Siemens NX sign sign cut sign laser machine signage signature signing silicon silicone silk silver simpson Simulators 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 Slotting Slovenia sls small business manufacturing small factory benefits small manufacturers small workshop Smart City smart CNC machines Smart CNC Monitoring Systems Smart Contracts smart factories Smart Factory smart manufacturing smart monitoring Smart Technology smartphone smartrap Smoothieboard smoothing sneakey snowflake soapstone software soild concepts solar Solar Panels solder solid concepts solidator SolidCAM solidoodle solidoodle 2 solidoodle 4 solidus labs solution sony sound south africa space spaceX Spain spark speakers Spectrometer speed spider spin casting Spindle Spindle Control spindle precision spindle speed Spindle Troubleshooting Spindle Types spoolhead sport spray 3d printing SprutCAM square carved rosettes Stack Lamination stair machine stair parts stair parts equipment stair parts processing stairparts machine Stamps School of Art & Design Standard Size CNC Machine stanford star trek startup engineering startups steampunk steel Steel Machining Steel vs Aluminum stepper stepper motor stereolithography steve purdham stone stone carving store stratasys strength strong stuck students styrofoam block shaping styrofoam shaping subdivision mesh SubProgram subtractive manufacturing success story sugar sugru suitcase sun Super Matter Tools support material surface surface finish surface finish inspection surface finishing surface roughness surgery surgical instruments suspended deposition Suspension sustainable manufacturing sweden swisspen Switzerland syringe table numbers cutting tablet tabletop tactile taiwan talk tangibot tantillus tapering Tapping Cycle tattoo Taubman Colledge Taubman College Taubman college Agilus Workcell Taubman College FabLab taz 2 taz 3 taz 4 Technology technology education TED ted talks telescope temperature temperature measurement temperature sensors TemperatureSensor test testing textile the pirate bay theta thingiverse This Manual Assembles the Machine Thread Thread Cutting Threading Tools threeform through-spindle coolant tiertime TIG tiger maple Time Estimation TiN coating Tips Tips and Techniques titanium titanium alloys titanium implants Tolerances tool tool breakage Tool Calibration tool chain tool change Tool Compensation Tool Data Tool Geometry Tool holder tool life Tool Life Management tool maintenance tool management Tool Management System Tool Nose Radius Compensation tool offsets Tool Path Tool Path Efficiency Tool Path Optimization Tool Paths tool selection Tool Tracking tool wear Tooling Toolpath Toolpath Optimization toolpaths tools torrent Torus Knot Torus Knot Table touch touch x toy toyota TPE Transition to Automation Transverse Cut-Off Cycle G75 trident trinitylabs trinityone trinket try it out! tu wien turbine blades Turning turning tools 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 upgrading old machines Urban Innovation urethane USA usb user interface using a router to produce a ZBrush model using china cnc router uv 3d printing v-slot Vacuum fixture vader vapor vehicle manufacturing velleman veterinary Vibration Damping Vibration Reduction vibration sensors VibrationSensor Vices video vietnam viki lcd Virtual CNC Virtual Machining Virtual Models virtual reality virus visualization volumental voronator voronoi meshes voxeljet VR VR Technology Vulture 2 vw Wallace Detroit Guitars wally Walnut Table wanhao warping wasp wasp 3d printer waste waste reduction 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 Wind Turbines windows windows 8.1 Windows Keyboard Shortcuts windows mobile phone wire wire bender wired wireless 3d printing With limited tools with limited tools. wobbleworks wood wood carving wood engraving wood frame 3d printer Wood Information Wood Joint Fabrication wood portrait Wood Species Wooden door pattern designed with CNC machine Woodturning woodwork woodworking Work Zero workflow Workholding Workholding techniques working with planes in kuka|prc workpiece preparation Workpiece Zero workplace safety workshop equipment workspace WorldClassOEE x x winder X-axis xeed xmass xt xyzprinting y Y axis Y-axis yale yeggi youth Youtube CNC z z axis Z movements and tilting A and B axes 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 китайский фрезерный станок с чпу фрезерный станок с чпу โปรแกรมจำลอง CNC