Community Tip - Learn all about the Community Ranking System, a fun gamification element of the PTC Community. X
Creo 2.0, M080 (But the following applies to WF, M220 as well)
I have in my rule based layers a layer (00_IMPORT) that gathers import features. The rules are:
Note that it only looks for features. It works well, all my copy geom & merge features end up on that layer.
However, if I build an assy with sub assys and with dedicated skeletons at the sub assy level, I start to get quilts and other entities on that layer in the parts in the sub assy. The quilts in particular cause problems.
For example, I create a quilt in the main skeleton A and publish it to sub-assy skeleton B. In skeleton B the copy geom ends up on my layer. I then publish that quilt to part C. In part C the copy geom and the quilt end up on the layer. Because the quilts don’t follow the same rules as features and entities, I cannot show anything without getting the quilts too.
How do I stop these quilts (& other entities) from showing up?
What happens if you exclude the External Copy Geoms from your layer rules just on part level? That is in your part C as you describe.
I've got this layer rule in my part template:
I think tht would accomplish the opposite of what I want. I want the feature, but nothing else. That's how the rulkes are specified - look for a feature, look by feature.
Have you thought about a rule that places all quilts on a layer and then adding an exception to the set of rules to not include items on that layer?
It would be and AND layername != layer_with_quilts
Man, that looked promising. I created these rules:
In the preview it seems to do what I want (only the external copy geom is there), but in reality it didn't change anything. All the individual entities still show up.
I think these entities are showing up there due to their being a part of a feature that was on a layer with that name in the other skeleton model. Or something like that. Once they're tagged for that layer, that's where they are going to go.
You can see a similar result by creating a layer in the skeleton and a layer with the same name in the part. If items that are part of the copy geom are on that layer in the skeleton, even if placed there manually, they will end up on that layer in the part.
Handy when you need it, but I need to be able turn it off.
I hope I undestood your problem correctly.
I just did a quick test using def_layer config option instead of layer rules. I add the following lines to config.pro:
def_layer layer_copy_geom_feat 01_copy_geom
def_layer layer_ext_copy_geom_feat 01_copy_geom
def_layer layer_quilt 02_quilts
The copy geom feature is going in 01_copy_geom layer as a feature and all internal quilts are going in 02_quilts layer as entities. After I blanked the 02_quilts layer only the planes and axesthat were part of the publish geom are visible.
The disadvantage is that ALL quilts will be placed in that layer regardles if they are comming from the copy geom or not. Also this will only work for new parts only.
def_layer based layers are not an option as it offers less flexibility than rule based layers and they rely on the presence of the proper def_layer statements in the config.pro. If a user without those statements edits the file, nothing happens.
That said, I'm curious if you duplicated my assy structure above? My rule based layers work fine when native data is copied from skeleton A to skeleton B, it's when I take that same data out of skeleton B and copy it down one more layer to part C that I get all those extra entities.
I understand your point about def_layer. We are in the oposite situation where we have a unique configuration but multiple templates based on product type and/or department.
I reproduced the behaviour you described and I noticed something interesting. From the Content pane it looks like only the feature was added because of the rules. The green plus sign next to the entities means that the entity was added differently. The bad part is that I have no clue how.
Also I've noticed that if I remove everithing from the layer and then run the rules again only the feature get added.
What it did work for me was to create the dedicated layers for quilts and curves and set the rules as follow:
Quilt layer:
Curves layer:
I attached a sample assembly. Look at the layer rules on prt_c.
Yes, I found the same, but it does not help in removing them from my 00_IMPORT layer. Even by adding an exception for items on that layer, they still end up there.
I want to be able to isolate parts of my imported geometry (planes or curves, for example) without having the screen cluttered with quilts that block my view.
The only thing that has worked so far is manually excluding the items that I don't want. Click the exclude button on your first image and then select everything but the copy geom. This works and things tend to stick, but it seems that new stuff ends up in there on a regular basis, sometimes because I've redefined the copy geom, sometimes just because I regen'ed the assy.
I'd really like an automatic way of excluding those items.
There are times when you have trouble getting exactly what you want in the "rules-based" layers, but they are so superior to "default-style" layers I switched over years ago. One problem I found is that you are limited in the "logic" you can use. For example, you can't say: (IF this1 AND this2 AND this3) OR (IF that1 AND that2 AND that3) THEN put it on layerX etc.. That said, you can do almost everything you want and it works well, although I have also noticed issues with layers at the assembly level not working right with regard to skeletons and other models. Seems a little glitchy, but I'd still never go back. AND, the great thing about "rules-based" layers is that you can, at th etop assy level, fix all the models below by "extending" the rules.
I found this VERY helpful: