cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

How to set up a simplified manikin library, including taming mess of layers

Highlighted
Amethyst

How to set up a simplified manikin library, including taming mess of layers

I hope that this will serve as a useful reference to system administrators who would like to provide a manikin library for their users with far greater ease of use than what is provided out-of-the-box from PTC.  This is a long procedure, but you'll only have to do it once, and it'll make everyone's lives easier if you do.


Part 1: library setup & eliminating unnecessary manikins

You can download the full manikin library from PTC's Creo Parametric Software Download page. You won't find it listed under the latest releases though; expand Release Creo 1.0Creo Manikin Population Data 2.1 / Most Recent Datecode.  After you download and uncompress, you will have a folder called "ptc_manikin_lib".  Rename this to be simply "Manikins".

The full library includes 53 manikins!  That is too many.  Your team will not need so many to choose from, and you're not going to want to scrub the layers in all of them.  You probably do want to keep both male and female manikins in a range of sizes, but one set of population data should be sufficient.  In my case, I'm in the USA, and work in the aerospace sector, so the "NASA-STD-3000" population set was the one I chose to keep. It includes 5th, 50th, and 95th percentile male and female adult manikins.  I also kept the 2 children that are provided, for a total of 8 manikins. When adding a Manikin to an assembly, having a list of 8 sizes to choose from is much more reasonable than 53!

The full library also includes a similar set of 6 manikins per National Health and Nutrition Examination Survey data, and 4 per the Army's Natick Soldier Systems Center's data.  And dozens more from various other country's population studies.  Delete them all!

To to this, delete all the folders except for "Comforts", "Postures", and the specific manikins you want to keep. In my case, the 8 I am keeping are in folders named KIDM5_US_50, KIDM10_US_50, M_NASA_5, M_NASA_50, M_NASA_95, W_NASA_5, W_NASA_50, & W_NASA_95.

There are also various files you can delete, for various other languages and unnecessary bookkeeping.  Keep index.lst, manikin_interchange.asm, & manikin_placeholder_template.asm only, delete all the other files.

Now you have to edit that "index.lst" file, to account for the manikins you've deleted.  This file controls what appears in the "Insert Manikin" dialog box.  Open it with a text editor, and observe that it has a line for each of the manikin folders.  Delete the lines corresponding to all the folders you've deleted.

Did you keep the female NASA manikins like I did?  Correct PTC's typo in the "index.lst" file.  On the three "W_NASA" lines, it will say "JAPAN". Correct this to "USA".

Speaking of the "Insert Manikin" dialog box...  Are you an American?  If so, edit your config.pro to include the line "file_dialog_units_class ips". Then the "Insert Manikin" dialog box will show their height and weight in inches and pounds, rather than meters and kilograms.  (Unfortunately, it can't show height in "feet & inches", only "inches".)  This should be made the company default.

Will you be storing the library on a windows disk?  Add these lines to your config.pro:

ptc_manikin_library_path <full windows pathname>\Manikins

ptc_manikin_comforts_path <full windows pathname>\Manikins\Comforts

ptc_manikin_posture_path <full windows pathname>\Manikins\Postures

search_path <full windows pathname>\Manikins\KIDM5_US_50

search_path <full windows pathname>\Manikins\KIDM10_US_50

search_path <full windows pathname>\Manikins\M_NASA_5

...and et. cetera (add "search_path" line for each manikin you are keeping)

Will you be storing the library in PDMLink?  You've got a doozy of a procedure to work your way through!  It's documented here, but I have a few addendums to that for you.

Start by configuring as I just described, so it temporarily works out of a windows folder. This will let you clean up the layers (I'll get to that), and edit the "manikin_interchange.asm" to remove broken links, before you ever load to PDMLink.

Typically, no one ever will load the "manikin_interchange.asm" file; it's just the mechanism by which one manikin can be replaced with another.  If you're keeping it in windows, the links to deleted manikins will never be a problem.  But if you try to add it to PDMLink, they cause ghost entries to appear, preventing you from checking in.  So open it up, and delete the red lines out of the model tree so there are no missing component errors, regenerate, and save.

Also, rather than following step 4 of that procedure, to create the needed PDMLink folder structure using csv files, xml files, and shell commands...  you may just want to create them manually.  If you're only loading 8 manikins instead of 53, it's not such a burden to manually create the folders, and will probably be less hassle.  And don't forget to create the folders and subfolders for Comforts and Postures too. (That published procedure seems to omit the Comforts folders.)

With the data in PDMLink, you won't need "search_path" lines in your config.pro, but will need to set the other 3 lines with this format:

ptc_manikin_library_path wtpub://<name server is registered with>/Libraries/<name of library>/<path within library>/Manikins

ptc_manikin_comforts_path wtpub://<name server is registered with>/Libraries/<name of library>/<path within library>/Manikins/Comforts

ptc_manikin_posture_path wtpub://<name server is registered with>/Libraries/<name of library>/<path within library>/Manikins/Postures

Part 2: eliminating unnecessary layers

Let's start with the easy one, the "manikin_placeholder_template.asm".  This is basically used like a start part; it's copied whenever you insert a manikin with the "Use Placeholder" option (which is usually recommended). It has 23 layers, but only needs 3. There are a few other things you might want to change about it too.  Its units conventions are set to MKS; if you typically use another convention (such as Creo Parametric Default units), you should probably change this to match. You also might want to change the datum names to match your usual standards.  (I changed "ASM_TOP" to just "TOP", etc.)  If you're using PDMLink, and it's not set to receive the "DESCRIPTION" and/or "MODEL_BY" parameters, delete them.  (Or at the very least uncheck the "designate" box on them, so you don't get warnings every time you upload.)

Delete all 23 layers.  Unhide the datums, and the mass property analysis feature that’s in the footer. Now create your new layers.  You probably have a company standard layering scheme for the datum planes and coordinate system.  Use those.  Also create a unique layer called "MANIKIN_CENTER_OF_GRAVITY", and add the mass property analysis feature.  Hide all 3 layers.  Save layer status.  Save the model.

You can now control the visibility of these features with just the layer tree (since they are no longer also hidden in the model tree).  And the layer tree isn't polluted with so much confusing junk.

Now let's eliminate that confusing junk from the manikins themselves.  The idea will be to wind up with only your company standard layers, plus two unique layers, "MANIKIN_DRAG", and "MANIKIN_LINE_OF_SIGHT".

First, we need to establish some rules we can paste in, to establish new layers after we delete the mess of old ones.  Create a new empty part (or assy; doesn't matter).  Create layers that match the names of your company standard layers for datum planes, coordinate systems, axes, and points.  (We will be using your company standard layer for surfaces too, but not yet.)  Also create a layer called "MANIKIN_DRAG".  Set up rules for each of these as follows:

Datum Planes: look for "feature", by "feature", attribute "type", Comparison "is equal to", Category "Datum", Value "Datum Plane"

Coordinate systems:  look for "Feature", by "Feature", attribute "type", Comparison "is equal to", Category "Datum", Value "Coordinate System" AND look for "Feature", by "Feature", status "Layer", comparison "Not Included", value "MANIKIN_DRAG".

Axes: look for "feature", by "feature", attribute "type", Comparison "is equal to", Category "Datum", Value "Daum Axis"

Points: look for "Point", by "Point", history "All"

MANIKIN_DRAG: look for "Coordinate System", by "Coordinate System", attribute "Name", Comparison "is equal" to, value "null"

The "Associative" option for all of these rules except the last one should be checked (on the "Options" menu of the "Rules" tab of the "Layer Properties" dialog), so the rules apply to everything already in the models, not just new items.  And FYI, the particulars of that last rule, for MANIKIN_DRAG, aren't important. Intent was to create a do-nothing rule, that will never catch anything.  You must have a rule for this layer in order to be able to extend it down the tree to all subcomponents, and the layer must be in all subcomponents for the coordinate system rule to work properly.

The MANIKIN_DRAG layer is special.  We're not going to delete it out of the manikins.  It collects certain coordinate systems which are used for manikin manipulation, and is shown & hidden automatically when needed; there will be an error warning if it's not there.  In order to work properly (and it doesn't out-of-the-box), we want to make sure the coordinate systems that PTC placed on this layer are not also placed on any other layer; otherwise they won't actually be shown when the system prompts you to select one.  So that's why the coordinate system rule above has the "AND" statement, so it only layers coordinate systems that aren't already on the MANIKIN_DRAG layer.  Problem is, it won't layer any coordinate systems in models that don't have that layer, so we need to make sure they all do, even if it's usually going to be empty.  (I.e. "not included" on "MANIKIN_DRAG" doesn't register as positive where there is no "MANIKIN_DRAG")

So now you have an empty file with 5 rule based layers in it.  Save it, and put it aside for later.

Open the first manikin you want to modify.  Rather than navigating to its particular folder and searching for the top level assembly, you can select "Manikin Library" from the "Common Folders" list, and you'll see a filtered view of only the top assemblies.

Show the layer tree, and ensure it is set to show "All Submodel Layers".  (From layer tree's "Settings" menu.)  There are 40 layers!  Many of these have similar names, so it's confusing what they're all for.  11 of them are actually completely empty, so definitely useless.  27 of them are unhidden by default, but if someone just hides them all (as is common instinct) the entire manikin will disappear, and it's really not obvious which you have to unhide to get it back.  (It's MANIKIN_GEOM by the way, but that hardly matters...  you can't accidentally hide a layer that doesn't exist, so we won't be layering those feature in the new scheme.)  We're going to replace these 40 layers with just 7 sensible ones.

Before we start deleting the bulk of the layers, we must tag the two layers we want to keep, MANIKIN_DRAG, and INTF_BLANK.  Rename both of these layers so they have a "Z" in the beginning of their name, and drop to the end of the alphabetic layer list. This makes it easy to select all the other 38 layers, and delete them.

Once the other layers are deleted, restore MANIKIN_DRAG to its original name. Rename INTF_BLANK to whatever name you typically use for construction surfaces.  This layer only exists in one model, which contains the "vision cones".  These are translucent regions that are unhidden automatically when you click the "Vision Cones" button on the ribbon.  If the elements on this layer aren't hidden, some other opaque junk will also be displayed when you hit that button, so we want to keep this stuff hidden permanently.  Of course the entire manikin is all surfaces, but since we don't ever want to hide the manikin itself (at least not with layers), we don't want to put the whole thing on the usual surface layer.  That's just for construction surfaces we don't want to see... In the case of manikins, the only construction surfaces are on that INTF_BLANK layer.  We want to keep this layer, but use a name for it that won't add unusual clutter to the layer tree.

Now change the layer tree display to "No Submodel Layers".  (From layer tree's "Settings" menu.)  The only layer remaining at the top level will be MANIKIN_DRAG.  Delete it. (Or else you can't paste in the new rule-based version in a moment.)

Now open that model with the 5 rule based layers you created earlier.  Copy the layers, and close the model.  Paste them into the layer tree of the manikin assembly. Select them all and "Extend Rules".  (From layer tree's "Layers" menu.)  Switch back to "All Submodel Layers".  Hide all layers.  Save status. Regenerate.  Everything is now hidden except the manikin itself, and we only have 6 layers.  We're almost done!

There is one more custom layer we want to create manually, called MANIKIN_LINE_OF_SIGHT, to hold one particular axis in one particular model, so it's easy for the user to find and display it when needed.  This step will be easier if your config.pro includes "floating_layer_tree yes", which I recommend as a default for all users.  Without this, the layer tree obscures the model tree, which makes it cumbersome to click between them, and clicking between is very handy for managing subcomponent layers.

In the layer tree, click the little arrow cursor button on the top left.  Your next click, on either the graphics window or model tree, will change which model is shown in the layer tree.  Expand the "Head_<manikin name>" assembly from the model tree, and click on the "LINE_OF_SIGHT_<manikin name>" assembly within it.  Change the layer display to "No Submodel" layers, so you're only looking at the layers in the "LINE_OF_SIGHT_<manikin name>" assembly, and not also the parts under it.  The axis layer has two items in it.  Edit this layer, remove the rule, and close.  Now the layer is empty.  Edit the layer again, and manually add the "A-T-X_MIDDLE_EYE" axis to it. Create a new layer, call it "MANIKIN_LINE_OF_SIGHT", and manually add the "LINE_OF_SIGHT" axis to it. Hide all layers.  Save status.  Save manikin.

Now time to do a quick test!  Close everything, and erase memory.  Create a new assembly, and insert the manikin, with the "Use Placeholder" option checked.  There should be no junk displayed, only the manikin itself.

  • Clicking the "Reach Envelope" button from the ribbon should display the translucent reach envelopes.
  • Clicking the "Vision Cones" button should display the translucent vision cones.
  • Unhiding the "MANIKIN_CENTER_OF_GRAVITY" layer should display a coordinate system and point at the C.G.  (Will take a regeneration to move these after manipulating the manikin.)
  • Unhiding the "MANIKIN_LINE_OF_SIGHT" layer should display the line of sight axis.
  • When you click the "Manipulate Manikin" button, and check either the "1D Along segment's axis" or "1D Along Manikin's axis" options, then a small handful of coordinate systems should appear on screen, and should vanish once you select one.  (This is due to the automated behavior of the MANIKIN_DRAG layer, and the fact that the items on it are now not on any other layer.)

All good? Repeat these steps for the next manikin.

Did it seem like your save didn't stick, and you're looking at the original, unmodified manikin?  Don't freak out!  For years, I thought the manikins were actually locked from editing, but I think there is just a glitch with how some machines load sequenced models.  You see, the out-of-the-box manikin files are named *.prt & *asm, without any sequence numbers added.  Once you save changes, you'll have files called *.prt.2 & *.asm.2 (or larger numbers if you saved multiple times).  When you open models from Creo, it's supposed to load the version with the highest number.  However, I have noticed that if there is still a version without a number, it can be loaded instead...  (At least, this was the case on one machine I've used; not sure what's different about it.)  There are various approaches to clean up or "purge" a directory of old Creo files; I use a .bat file I found on a forum years ago, but there are various tools out there you can use instead.

Benefits of performing this layer cleanup:

  • When you add a manikin to an assembly, the layer tree is no longer polluted with 40 confusing and non-standard layers.  There are only 8 layers; 5 of which conform to your company's existing standards.
  • Can't accidentally hide manikin itself by hiding all layers
  • Using the "1D" drag options are now much more user friendly, as the appropriate coordinate systems to select from are automatically shown when needed
  • The center of gravity can be shown by simply unhiding a layer (it is well hidden out-of-the-box; many would never realize this feature is available)
  • The line of sight can now be shown by simply unhiding a layer

I hope this has been helpful.

1 REPLY 1

Re: How to set up a simplified manikin library, including taming mess of layers

Search paths can be eliminated from your configuration by using the directory name ptc_manikin_lib.

ptc_manikin_library_path C:\creo\library\ptc_manikin_lib