Peter's Tools
(by Peter Harris)
A variety of tools including bill of materials tools, a project timer, an archiving tool, and more.
Support Email


This is a collection of scripts that I've written (with the help of many people) which I compiled as a plugin and a toolbar to go with it. There are geometry-creating/editing tools, Bill of Materials, Mass calculation, and other data tools, a project timer, an archiving script, and more. Here is a list of available commands (all commands are also available by typing in PetersToolsCommands):

***Mac users: there is no toolbar for Macs yet. I'm still trying to figure that out. In the meantime, commands can be accessed by typing PetersToolsCommands***

Bill of Materials and object data tools

  1. RealMaterialTools - Includes options to add a real material to objects (includes a way to create custom materials based on the density, and it comes with some materials already in there), match real materials, select objects with no real material, select objects by material name, or delete real material data from selected objects.
  2. BOM - Calculates object mass based on density and exports object notes and other attributes to a .csv file or to the clipboard. (Note: objects need to have a "real material" assigned in order to do the mass calculations.) You can select which columns to export. Items that can be exported to the bill of materials includes Part Name, Name Count, Real Material, Density, Mass, Box Size, Object Note, Volume, Surface Area, Layer, Volume Centroid, and Area Centroid. Can also get data from custom fields of user text.
  3. MassTools - includes 4 tools. AddMassText creates a live text object linked to any object. ScaleObjectToSpecificMass does that. Mass just calculates mass and writes it to the command line, and CenterofGravity shows the cumulative center of gravity of a group of closed objects based on their various weights.
  4. ObjectNoteTools - Includes options to add an object note to objects, match object notes, select objects with no object notes, select object by note text, or delete notes from objects. Object notes show up in the BOM or in the DotWithData tool.
  5. DotWithData - Adds annotation dots to selected objects with text option of either part name, layer, real material, mass, object volume, object surface area, object note, volume centroid, area centroid, or bounding box dimension.
  6. NameTools - Lets you name a bunch of objects in serial fashion, add text to a batch of object names at once (either at the front or end of the name) or select unnamed objects.

Geometry-creating or editing tools

  1. TrimAtLine - Prompts you to draw a line to use as a trim line, pick whatever you want to trim, then right-click to delete the line.
  2. TrimAtZero - Same, but starts line at 0,0
  3. SplitBoth - Splits two sets of surfaces with each other
  4. SplitWithEdgesAndCurves - Script that automates typing in 'crv' after picking the split command.
  5. JoinCurvesByClosestEnds - Joins two curves by closest ends by adding two straight lines.
  6. QuickCage - Click one of 15 numbers (2 through 16) on the command line or type in a number, and the tool creates a bounding-box cage around your object with that many points in each direction.
  7. SetX - Flattens an object in the world X direction.
  8. SetXTo0 - Flattens an object in the world X direction to 0.
  9. SetY - Flattens an object in the world Y direction.
  10. SetYTo0 - Flattens an object in the world Y direction to 0.
  11. SetZ - Flattens an object in the world Z direction.
  12. SetZTo0 - Flattens an object in the world Z direction to 0.
  13. MagicCap - Creates a planar surface from any selection of curves and/or surface edges.
  14. HideAllUnselectedCurves - Hides all unlocked visible unselected curves.
  15. HideAllUnselectedPoints - Hides all unlocked visible unselected points.


TimerTools - Tools for keeping track of time spent on a project. Options include StartTimer, StopTimer, TimerLog, and CalculateTotalHours. The TimerLog is a text file of the start and stop times and it is part of your current rhino document. It can be edited manually if you make a mistake - just open TimerLog.


This group of tools manages an archive of bits of geometry you might need later. It does this by creating a layer called Archive that stays turned off, and it manages adding or retrieving items from that layer. I created this because I use Hide just to hide things for a few moments, and I needed something else for longer-term holding of things I wanted to keep around just in case they are needed later. There are 4 options: ArchiveObjects moves objects to archive layer. ArchiveCopy moves a copy of objects to the archive layer. UnarchiveSelected lets you pick objects from the archive layer to move from that layer to the current layer, and UnarchiveChronologically lets you unarchive based on when you archived the object.

Misc tools

  1. ZoomToUnlocked - Zooms to all unlocked objects ('normal' objects).
  2. ZoomToUnlockedAll - Same as zoom to unlocked, but all views.
  3. DetailsTools - Tools for creating and modifying layouts. CreateFittedLayout creates a 4-view layout that fills the page with synchronized details. Other tools in DetailsTools include ChangeDisplayModeAllDetails, ZoomExtentsAllDetails, ZoomByFactorAllDetails, RotateRight, RotateLeft, and FlipView.
  4. AddPointAtBBoxCentroid - Adds a point at an object's bounding-box center.
  5. AboutPetersTools - Brings up a box showing you what version you are running and link to more info.
  6. PetersToolsCommands - Brings up a clickable list of all commands in the plugin.



License Cost:
PetersTools 3.2.5
Mass tools and other tools for working in Rhino. See website for details.
Rhino 8 Mac
Rhino 8 Win
PetersTools 2.21 (legacy)
Rhino 6 for Win