PDT Help 4: Parts Library

This page deals with the Parts Library.

This module is in its infancy at the moment and is an attempt to organise a collection of parts, as objects, in a central repository. This library will consist of Objects, Collections and Materials. For now, I have placed he holder blend file in the clockworxpdt folder in Blender’s Scripts/Addons folder.


The basic idea at the moment is to store parts as either individual objects, or in the case of more complex parts, like an engine assembly for example, as collections. I have looked at the way Blender handles materials for imported objects and find that if you import an object using Append, it will bring the materials of the object with it. If you append the part many times, you get many copies of the same material – not a situation that I am very happy with. So my recommendation for this trial system is to leave the materials off the objects and store them either against a “holder” object, or set a fake user so the material is always held in the library blend file. Then you can append, or link the material once and sign it to many copies of the appended, or linked object.

Once I have worked out how to do it, I hope to expand the system so users can send objects, or collections, or material from their current open blend file to the Library blend file. I do not know if this is possible, I imagine it must be. I first came across this system in 1980’s where we called parts “cells” and had one, or many “Cell Libraries” to store them in, each cell had a user defined origin point that was used to place the part. The process was to put the cursor where you wanted the part, then call it by name and it would be placed with its origin at the cursor location.

I have used the same method with PDT’s Parts Library as will hopefully be shown below, an image first:

This shows the Parts Library Menu and some sample parts brought in by either Appending, or Linking.

The Commands are:

Append – this will append the chosen Object, Collection, or Material from the library into your current blend file.

Link – this will link the chosen Object, Collection, or Material from the library into your current blend file.

Whether you are going to work with objects, collections, or materials depends on the setting of the Selector next to the Link button.

The next three Selectors will show the Objects, Collections and Materials in the Library blend file, either all of them, or filtered by the Search input next to each Selector.

The Search strings consist of any characters that appear anywhere in the Object’s , Collection’s, or Material’s Name. So searching with “gear” in the search box will find, for example, objects named “25T 20mm gear“, or “gears – 20mm 25teeth“, etc.

The principle of operation is therefore, place the 3D cursor where you want the objects to be, if you are linking objects/collections, enter any required search criteria, chose the type to work with, click either Append, or Link.

At the moment, if you bring in a collections, ALL objects in that collection are placed at the cursor location, I need to think on this some more as to whether this is the best approach, or not. The purpose of this is to bring in complex models and assume that they will be placed “as one” at the cursor location, this assumes that they were built as a number of objects with a shared origin in the library.

I am suggesting at this stage that materials can be imported and used on each object to which they are appropriate, it may be that many parts share a common material, in which case, using this approach does not result in many duplicate materials in the blend file.

Here is an example from Blender 2.79, of a series of engines that are used in many different bikes, trikes and three-wheelers, as a Parts Library blend file:

You can see a 500cc single, a 1200cc V-Twin, a Longitudinal 2400cc V4 and a Transverse 2400cc V4. I used these four engines in around a dozen different bike/trike/three-wheeler models. Below are some of them with their riders:

This is a development module and will need a lot more work, so any user input here would be greatly appreciated.

If you have any issues, or suggestions for improvement, with this Add-on, please contact me using the Contact page.