Hello JD,

I´m still confused about the procedure of applying materials onto faces, object on single parts or assemblies, etc. in SW 2009 (latest plugin release).
I really loved the way this was done in the earlier release of the plugin (select button for faces, objects, etc.) - explained by a super video-tutorial.

In principle it´s clear to me how it is meant - but from time to time it gives me results which I dont understand. Usually I dont change the way of
how I construct and organize complex models (parts, assemblies, superassemblies...).

Is it possible to get a complete description (example) within a tutorial ?

Many thanks in advance,

By JDHill
Hi AL,

The reason it was changed was to avoid the plugin trying to define how materials are assigned, and instead just yielding to the standard SolidWorks rules of material assignment. That was the general sentiment in the feedback I received on the earliest version (contrary to your opinion, apparently having liked the old method), so, in all subsequent versions, all one needs to understand about material assignment are the standard rules of precedence used in SolidWorks standard materials, meaning:
  • 1. assignment at the feature-level overrides assignment at the body level
    2. assignment at the face level overrides both feature and body assignment
    3. assignment at the component level overrides all other assignments
    4. component-level assignment is only effective in the .sldasm where it is performed
So, if you have a .sldprt, you can begin by assigning a material to the body itself. Selecting a feature and assigning a material will override what you had just assigned to the body. Selecting one of the faces of this feature will override both the previous feature and body assignments. If you then include this body in a .sldasm, you can select the insert at the component level and assign a material; this assignment will hide all of the assignments you made in the .sldprt.

The two most important features the plugin provides you in regards to this are:
  • 1. the 'Select this Entity's Parent' button (green arrow) in plugin's Object Properties toolbar
    2. the hyperlink that the plugin provides in Object Properties > Selected Object(s) > Info
SolidWorks normal way of working with these things is, in my opinion, very cumbersome. As you know, SolidWorks has no 'material table' like you may see in many other modeling applications, so your materials are scattered about, and it becomes a pain to select an entity, remove the materials from all of the various levels at which they may be defined, and set up the entity to look how you want it to. These two items in the plugin's Object Properties are meant to alleviate this by providing a much faster route from one place to another. For instance:
  • 1. you select a face
    2. to learn what material is assigned to its parent feature, click the 'Select this Entity's Parent' button
    3. to do the same for the feature's (and the face from step 1) parent body, click it again
    4. if you are in an assembly, you can move further up to the body's component, and so on until you reach the top
Alternatively, if, at any of the steps above, the case is that the currently-selected entity is deriving its material from a parent, you will find that there is a hyperlink to that parent in Object Properties > Selected Object(s) > Info. Clicking on this hyperlink will select the entity referred to, so:
  • 1. you are in an assembly, and you have assigned a material to a part at the body level
    2. you select one of the faces of this part
    3. Object Properties > Selected Object(s) > Info reads: 'Info: material source:Body'
    4. clicking on the hyperlink will select the body being referred to
The video you referred to is terribly out of date, and I was not aware that it was even being made available anymore; I'll try make sure it is taken down to prevent further confusion, and I'll try to find the time to make a new one. In the meantime, let me know if the info above is helpful, or if you have any other more specific questions.


Hello JD,

many thanks for your quick reply. I already answerd but I´ve lost connection when submitting - so again:

I never use the sw material appearance system (if rendering with maxwell) - so I assume that there shouldn´t be any assignments existing. As well I don´t assign a material (physical description: alu, steel, etc.) - so sw should have no reason to do anything stupid :) I always open single parts to check or modify the material assignments (and expect, that sw imports them into the assembly with the correct mxm). Most of the time this works quite well - but - sometimes not.

I understand the procedure on how to find out where an assignment comes from but I don´t understand when it was generated. Usually I use material templates (mxm with the target color and texture orientation) and replace them with test-mxm´s until it´s o.k. (find assigned mxm...assign new mxm to selected entities...). For convenience I don´t do this for each single part but at the end in the open master assembly. Maybe that´s a problem? (subassemblies, etc..).

Anyway I would very much appreciate a tutorial (written or video).

By JDHill
Unfortunately, even though you don't use the SW material system, the plugin has to use it in order to show you anything in the viewport. That's why it can seem to take eons for certain operations - the plugin literally has to traverse over every entity in the model attempting to fix up the way entities look in the viewport; it's a pretty crude system, imho. So the upshot is, if at any time, something comes unsynchronized, we will end up with an entity which *should* have Maxwell's identifying data attached to it, but for whatever internal SW reason, does not. So to the plugin, this object will now appear to be untouched, and the SW material which was made by the plugin at some time previous will end up orphaned and stuck on the entity, just as if you had done it yourself. This appearance, depending on which level it appears, may end up hiding Maxwell assignments below it.

As I mentioned in the post above, most modeling applications have a material table of some kind, similar to what you see in Studio; altering the appearance of a single material only requires that you retrieve the material out of the table, modify it, and then update the table; next time the viewport is drawn, the app will use the newly-updated definition for any objects which use this material. Not so with SW; all data is purely local to each entity, so if one single thing goes wrong, we lose synchronization, and by definition, there is no way to determine how to fix things up - the data is just gone.

Not that this information helps you much, but it might; understanding what is going on underneath can make some classes of inconsistency easier to deal with or avoid. At any rate, development is always ongoing, and I will always find better ways of doing things - your input is invaluable in this pursuit, since there is no way that I can personally fabricate and observe all of the different possible scenarios.

On the tutorial thing, let me see what I can do. Feel free to let me know if there is anything in particular you'd like to see, and I'll try to work something up for it.


hardware question :)

I can easily create an usable render in 15/20 mi[…]

Maxwell for Rhino on Max missing Toolbar

Hello, For some reason, the Mac version of Rhino[…]

Let's talk about Maxwell 5.2

Price for sure matter a loot. Speed is the core i[…]

Materials translucent with V5.1

Well, the problems can be in the chair, the monito[…]