Creo 2, M230
I'm struggling with managing my sketched points with layers. My rule based layers did a great job unitl sketched points were moved into the general sketch feature. It's a welcome change generally, but it has made managing the visibility of points more difficult.
All my sketch features are placed on a 00_CURVE layer including sketches that have no curve entities, only points. Those sketch features don't end up on my 00_POINT layer either, however. There is no option for "has_points" as there is for has_axes".
Has anyone found away to get sketch features with points onto a specific layer and a way to keep sketch features with no curve entities off of the curve layer?
I'm a little confused Doug. Do you want curves with GEOMETRY (not construction) points on a specific layer, say, "POINTS" (but no other layer, not even "CURVES"), but curves without geometry points on a layer, say, "CURVES"?
Yes, I'm talking about geometry points in sketches, not construction points.
First and foremost I'd like to get sketches with geometry points on my points layer. Right now there's no way to capture sketches with geometry points (or coordinate systems either, for that matter.).
Beyond that, I'd love to prevent sketches that are entirely points with no curve geometry from going on the curve layer.
The layer rules are a little clunky, and you're not really able to do any fancy conditional statements, but maybe I can do something. I'll see what my layers do with that. Do you also want curves with points AND geometry NOT to go on the curve layer, only go on the points layer? Maybe I'll get a chance to play with it today.
Layers and layer rules are unfortunately still too confusing. We're working on making them easier, but there's still more to be done...
One thing to understand is that if a feature is added to a layer and that layer is hidden everything owned by the feature that's able to be hidden will be hidden. So, if you have a sketch with curves and geometry points and you hide that entire sketch feature, you'll be hiding both the points and the curves.
To be able to segregate what you want hidden you need to avoid adding features to the layer but instead add only the entities that you want to hide.
Here's what you should do:
The Look for: field in the Rule Editor dialog is the field that determines the type of thing that will be returned by the search and the type of thing to be added to the layer. In your case, this should be set to "Point". This will populate the layer with only the point entities and not the features that own the points. The Look by: field sets the search criteria. Here's where you have the flexibility to determine which points will be added to the layer.
If you want to have a general POINTS layer that contains all of the points in the model regardless of the feature type that owns the points, that search would look like this:
Here I'm looking for points (the things that get added to the layer) and I'm looking by points (meaning that the search queries all of the point entities in the model to see if they meet the criteria) and the rule is ALL, which is found under the History tab. So this search will find all points in the model.
If you wanted to get more granular and only collect points owned by a sketch and not include points owned by other feature types (such as datum point features), then you could do the following search:
Note how the Look by: is set to Feature and the type is set to Sketch. So the search will query all features in the model to find those of type Sketch and then add any points that are owned by those features.
I hope this helps.
Well, I suppose if your model only contained points owned by sketch features, then the two searches would produce the same result. But if the model also contained a datum point feature, then those points would be included in the first search (that finds all points) but would not be included in the second search (that only finds points owned by sketch features).
One thing that would help is a full tree map of the search space with explanations of what all the leaves and branches are referring to. Heck, any documentation would help.
To figure this out I would fall back to creating a layer w/o rules that contains the desired items.
I would try to add all the geometric entities (points) to the layer, then add the needed parent features to that layer as well.
This lets me see exactly what kinds of items it is I want on the layer.
Having that, I can usually craft the rules needed to find those objects for inclusion on the layer.
What I'm finding difficult in this case is filling the Query Builder with rules that select exactly the items needed.
There seems to be some serious problems with the Query Builder. Depending on the Look For and Look By options, it invalidates previously defined rules for no good reason. In one case I found the order the rules were defined had an impact on being able to create the pair. Once created I was able to reorder them as if the second was created first.
I don't seem to be able to setup a pair of rules that would, Look For points with Look by points, and a second rule that will Look For features using Look By Points.
The second rule can be Look For feature with other choices for Look by as long as it isn't Look by points. It just doesn't make any sense.
Decided to take one more look at this after lunch, Started with a fresh model this time.
This set of rules puts all point geometric entities & all sketched features that create same, onto a layer.
Note: If feature 6 is on some other hidden layer, pnt3 will not display when this layer is set to Isolate.
If you add a feature parameter to sketches that just contain points you can filter the layers so it searches by expression. For sketches containing only points you can add a parameter SKETCH_TYPE and set this parameter to a string value of POINTS. You can create a filter that searches for this expression it will add it to the layer. If you want to exclude it from a layer that searches for sketches add a second filter with the AND condition and the criteria of searching for an expression with a comparison of "not exists". Only sketches that don't have the parameter will be added to the layer.
Rules aren't always the answer. For one-off cases, it's less trouble to specifically include or exclude items as needed.
Layer rules are all about selecting items to be included on a layer.
It's not really possible to craft a rule that excludes items, except in the sense of choosing everything but the items to be excluded. Which is not the same thing at all.
Author, Mastering Layers, 2007
I'm not saying a rule is the answer but I was able to setup rules that did what I thought was being asked for. Just thought I'd mention it if someone wanted to try.
Maybe exclude is the wrong term maybe keeping a feature from being returned in the search results is a better description.
Sorry if I misinterpreted your response.
This brings to my mind a question I think you layer gurus can provide much quicker than scouring the PTC documentation:
what is the difference between "excluding" items and removing them from the layer's items list ? For example:
Here, I used the "Exclude" function on DTM2 item in the list. But why would I use that instead of the "Remove" function? They do different things to the list, but the visibility effect seems to be the same... I never use the exclude function, but I am wondering if there is an advantage to it.
Layers with rules that have the associativity checked, will be repopulated according to the layer rule every time the model is regenerated. Removing such items is temporary.
Exclude is for exempting items from layer tree's item list, no matter how they came to be added to the Content tab.
For items that were added manually, It could be useful to exclude those items from the layer, instead of removing them. It would be possible to return to the layer properties later and easily change the status back to included, saving the effort of tracking down just what those items were. If that isn't a consideration, use Remove.
Also include in the rule to not include items that are already on some other layer.
For example, I usually set the default datum planes rule to not include any items that are on the set_datums layer. This prevents any item from having a combination of visibility rules to govern it.
Actually, I think I found exactly what you're looking for Doug. I think Raphael is close, but if I understand you, I think this will work better:
This puts ONLY the GEOMETRY points in a datum curve on a layer, not points generated as stand alone points, and does NOT put the curve itself on that layer (in my case, layer: 01_HAS_POINTS). I'm sure you could also do this for CS's, and you could also probably separate to have ONLY geometry in curves on the curve layer, not the GEOMETRY points or GEOMETRY CS's as well.
Hope this helps!
I have been battling layers for a while. I often have to manually put datums in layers that they should have gone into automatically. I found success using the following in my config.pro...
def_layer layer_axis_ent DATUM_AXIS
def_layer layer_csys_ent DATUM_COORD_SYS
def_layer layer_curve_ent DATUM_CURVES
def_layer layer_datum_point DATUM_POINTS
It looks like PTC fiddled with layers a bit and these new default layers were the result. It may be just my configuration, but I did have to shuttle the old default layers to a layer that I always keep shown...
def_layer layer_axis DEF_LAYER
def_layer layer_csys DEF_LAYER
def_layer layer_curve DEF_LAYER
def_layer layer_point DEF_LAYER
"default" layers are garbage, don't use them. Rules-based layers are what should be used. There's threads here as to why, search for them.
One way to keep or exclude sketches with no curve geometry in it is to create a feature parameter and have the layer filter by an Expression under Attributes.
We struggled with this as well. Prior to this change you were able to have a CURVES layer and a POINTS layer with no overlap. Now there is no way to hide a curves layer without hiding any points that are on those curves using rules (at least not that we were able to figure out).
We use these layer rules in our start parts.
Currently we settled on having to unhide both the curves and point layers to turn on all points.
Iam not sure why there is a problem for you. I was able to achieve what is being discussed here (if I understood correctly).
I was able to create layers for curves, datum points and sketched points, all with rules and was able to hide all of these independently without overlap.
Iam using Creo 2.0 M180. see attached snapshots for Datum points and Sketched points.
Let me know if I have missing something form the discussion.
Whats your rule for curves? This is the tricky one because it would need to hide any splines that are part of the curve feature but not the sketched points.
It all depends on what is in the "Look for:" field.
If all you want is the curves on the layer - and not the points - then your "Look for:" needs to just be "3D Curve".
If your "Look for:" includes "Feature" then everything owned by the feature that can be hidden will be hidden when the layer is hidden.
The below rule would only collect curve entities owned by any feature type, but not include other entities owned by those features. In other words, the layer rule below would include the curves owned by a sketch, by a curve from x-section, by a curve through points, etc...
You could use the following rule to get all of the points in the model regardless of the feature owning the points. Since the "Look for:" is set to "Point" you will only be getting the point entities themselves and not the features. This would prevent the layer from unintentionally controlling other entities that happen to be owned by the features.
Yay Ralpheal! Was In the middle of writing just about that same message.
When I presented the Mastering Layers in the 2007 conference. I suggested to everyone that to simplify creating layer rules, that they should start by putting features on layers. But did stress that eventually the need to put geometric entities on layers would be recognized.